李昂
摘 要:Python语言已经成为物联网开发领域中最具活力的语言之一,因此,高校物联网专业有必要开设相关课程,并形成课程体系。文中针对当前Python课程教学准备过程中遇到的主要问题展开分析,提出了具体的解决思路和方案。紧密结合物联网专业特点,从学生兴趣培养、教学内容和考评方法等方面进行了具体的阐述,其中一些创新方法对教学有一定的参考作用。
关键词:Python;物联网;教学准备;教学内容和方法
中图分类号:TP39;G642.3 文献标识码:A 文章编号:2095-1302(2018)03-0-03
0 引 言
近年来,随着人工智能在世界范围内掀起新的智能化浪潮,一种全新的语言——Python,越来越被人们关注。据Stack Overflow最近的调查显示,Python已成为发展最快的主流编程语言,且位列程序语言排行榜榜首[1,2]。
1 Python语言简介及其与物联网的关系
Python语言简单易懂,入门门槛较低,所以很多非计算机专业的人都在学习Python[3]。这使得它具有极其广泛的应用前景,主要包括以下五个方面[4-8]:
(1)Linux运营维护
物联网应用主要依靠Linux实现,而如今对Linux的运营维护必须掌握Python语言,它可以帮助Linux工程师提高工作效率,尤其当运维工程师需要独立开发一个完整的自动化系统时,Python可提供较大帮助。
(2)Python Web网站工程师
在智能互联大潮中,Web一直都是不可忽视的存在,当今世界一刻也离不开Web。而利用Python框架可轻松完成网站制作,且前端界面十分精美。
(3)Python自动化测试
众所周知,Python语言对于测试的作用较大。在自动化测试中,Python语言用途广泛,Python能提供自动化的流程、方法和常用模板。目前为止,自动化测试应用Python最多。
(4)数据分析
大数据时代来临,使得数据可以成为说明一切问题的原因。如今,数据分析已不同于以往,Python语言已成为数据分析师的首选,工作效率得到极大提升。
(5)人工智能
2016年,阿尔法狗战胜了一众围棋大师,让人工智能扬名四海。目前,人工智能还处于初期阶段,而Python可帮助我们在不远的将来进入一个全新的人工智能时代,世界将发生天翻地覆的变化。
上述五个方面的应用都与物联网关系密切。物联网开发涉及面较宽,且开发周期长,因此必须寻找一种覆盖面广的编程语言和方法。Python 作为一种胶水语言,其众多免费和开源的科学计算库让用户可以在任何计算机上自由使用[9,10],由此可在物联网及嵌入式系统中承担大量任务。
2 Python课程在物联网专业课程体系中的位置
国内众多高校都建立了物联网专业,通过上述介绍可知,物联网专业开设Python课程不仅完全可行,而且非常必要。由于Python语言的简洁性、易读性以及可扩展性,国外用Python做科学计算的研究机构日益增多,一些知名大学已采用Python来教授程序设计课程[11]。例如,卡耐基梅隆大学的《编程基础》、麻省理工学院的《计算机科学及编程导论》都使用Python语言讲授[11-13]。
应用型本科院校的物联网工程专业在应用型人才培养目标的要求下,多数都强调物联网应用的开发与设计。其培养方案大多分为两类:无线传感智能互联,物联网应用系统集成与工程设计。这两个方向一般从本科三年级开始分设,此后往往缺乏交集,原因是无线传感智能互联方向较偏重于应用的早期开发,一般只停留在方案论证阶段;而物联网应用系统集成与工程设计方向则偏重于后期实施,更强调系统的建立过程和运营维护。显而易见,实现方向一较为容易,方向二对院校和专业提出了较高要求,而缺乏工程实践经验恰恰是高校教学的一个短板。Python恰好可以起到桥梁和纽带作用,既能为应用的早期开发提供较好的平台和方案,又能通过其自身的广泛应用性和灵活性,为后期工程实践提供大量接口。这一点已在试点运行中得到了证实。因此Python语言课程在物联网专业本科教学第五学期开设较为合理。
3 Python教学中可能存在的问题分析及对策
3.1 学生对语言类课程缺乏学习兴趣
兴趣是最好的老师。从目前已开设的语言类课程(如C语言、Java等)可以发现,学生对于此类课程普遍具有畏惧心理,从而很难提起学习兴趣。因此可通过以下方式激发学生学习Python语言的热情:
(1)教师要正确引导。在课程学习中,枯燥无味、晦涩难懂的课堂教学会让教师失掉所有学生的关注,如何让枯燥的编程语言变得简单、生动、妙趣横生,这就给教师们提出了更高的要求。
(2)要让学生感受到一定的压力。人生来具有惰性,没有压力就没有动力。可通过行业现状介绍、案例分析,使学生对当前Python的发展有一个清晰的认识,对行业形势有所了解,体会到这门语言可为他们今后的学习与工作带来较大帮助,这样自然就有了压力和动力。
所以在学生兴趣培养上,教师不但要履行好自身责任,而且要通过现实引导让学生从自身提高学习源动力,只有内外结合,才能真正培养起学生的学习兴趣。
3.2 教师自身素质欠缺
物联网发展至今,已不是一个新颖的概念,这方面的人才也并不缺乏。而Python则不然,人才缺口依然存在。很多高校都缺少可以讲授Python课程的教师,甚至许多教师对Python一知半解,大大限制了Python课程的开设以及Python在物联网中的应用。如何将教師培养成专门的Python人才迫在眉睫。
4 Python课程教学准备方案
4.1 教学目标制定
学习一门知识,首先要对该课程的学习目标有清晰的认识,这样才能朝着目标持续前进,少走弯路,从学习中得到不断提升。学习计算机编程语言更是如此,不能够因为Python时下比较热门,就凭着一时冲动去学习,首先应清楚地制定学习目标:因何种原因学习Python,如何学习,学习到何种深度。如此才能享受Python学习的过程。
物联网应用领域的Python学习目标是学生通过学习,能够使用Python基本开发环境,对Python编程语法较为熟悉;能够编写简单的程序解决简单的小项目;会使用Python库,最终具备利用Python开发物联网应用项目的能力。这是一个由浅入深,循序渐进的教学过程。
4.2 教学内容与进度规划
通过分析Python语言特点及其主要应用方法,物联网专业的Python课程教学计划应包括以下内容[14-16]:
(1)了解Python,学会下载和安装Python学习环境——Python 3.0以上版本。
(2)学习Python基本语法,掌握Python中的关键字语法、函数语法、数学表达式、变量、数据结构、语法等。知道什么是变量、算法、解释器,牢记 Python基本数据类型,掌握列表和元组的操作方法、字符串操作方法,尤其是掌握基本的字典操作方法。
(3)通过一些小项目对上述基础内容加以巩固。Python具备良好的交互学习模式,对于书本上的例子可通过交互平台操练,通过练习加深印象,达到掌握的目的。
(4)经过以上三个步骤的学习后,学生已大致掌握了Python的常用方法、关键字用法以及函数语法等。接下来,可以着手学习常用模块的使用,比如OS,os.path,sys,string模块等,可以在交互环境中先熟悉使用其中的函数。如果遇到函数使用上的问题,可以参考Python 安装后的自带chm帮助文件解决。
(5)为了更好地掌握Python,不能僅停留在语法学习或API阶段。在此阶段中,学生可以尝试用Python解决一些简单的实际问题。例如,用Python制作一些简单的工具(utility),通过这些工具简化一个复杂项目的任务,提高工作效率。
(6)Python库是Python的精华所在,是Python开发者的利器,Python库组成并造就了Python,所以学习Python库显得尤为重要。
(7)为了学以致用,能真正地将Python应用于项目开发或产品开发,还必须学习企业应用开发中的网络和数据库知识。
(8)除了掌握上述Python自带的模块外,还应掌握一些业界广泛使用的开源框架,如Twisted,Peak,Django,XML等。通过熟练使用这些开源框架,能够进行快速开发,从而大大节省项目时间。
任何知识都是基础入门比较快,而要达到精通程度则需要较长时日的积累。只有通过不断地看别人编写的源码,分享自己的代码,才能够精通Python的方方面面。从编程初始阶段,就应不断地动手编写代码,不停地实践、修改、总结经验,最终达到精通程度。一个对Python程序精通的程序员面对同样一个问题的,会多种解决问题的方法,并能从中选择最有效率的一种。
4.3 教材的选择
选择一本真正适合教学的教科书是做好教学工作的第一步。在选取编程语言类课程教材时,切忌选择通篇只讲解语法和编程思路的教材,而应选择教材作者以第一人称视角,站在一个初学者的角度,从技术、心理和思想上为学生做出引导,完美展现编程切入角度的教材。只有这样的教材才是最理想的编程教材,而不只是提供了一部可供查询的字典。
经过细致比较,物联网专业Python课程可以选取《Python编程:从入门到实践》《Python基础教程(第2版)》《“笨办法”学Python》作为教材。
4.4 教学方法
学习任何编程语言最重要的一点就是多用多实践,其他所谓的好方法只能起到辅助作用。只有通过大量的实际训练,才能尽快掌握开发技巧、将各主要技术要点融会贯通。同时,每次需求目标的实现都体现了编程人员的自身价值, 有利于提高他们的自信心和成就感[14],对于学习兴趣的培养十分有利。
因此,除了在理论课教学中采取结合实际应用的讲授方法外,还应加大实践教学的比重,单独设立基于Python开发的课程设计[17],进一步巩固所学的理论知识。更为实际有效的方法是引进来自企业的工程技术人员直接授课,通过他们积累的开发经验和切身体会,让学生直接与行业实践触碰[18],使学生的印象更为深刻。
4.5 考核方式
传统的编程语言类课程多侧重于语法理论和编程规则的考核,而忽视了对实战能力的考查,这种导向也使学生只重视语法理论而忽视了编程实践能力。因此,对于Python这类新颖、灵活且用途广泛的语言,课程考核的重点应当放在实践能力上。例如,可以将理论考试比重和实践能力考核比重各设置为50%[19],而且实践能力的考核形式应当多样,既可考查单人实战能力,也可考查团队实战能力,还可考核对Python的创新应用能力,并将其作为加分项[20]。总之,应当以考核为手段,革新考核方法,突出Python的实践特性和创新特性。
5 结 语
本文从应用型本科高校教学视角出发,首先分析了Python语言与物联网的关系及其在物联网专业课程体系中的位置,进而给出了对Python课程进行教学准备的方式,并针对可能出现的问题和面临的困境给出了解决策略,不仅对Python课程,而且对其他新兴的工科类课程都具有一定的借鉴意义和实用价值。
参考文献
[1] 嵩天,黄天羽,礼欣.Python语言:程序设计课程教学改革的理想选择[J].中国大学教学,2016(2):42-47.
[2] 狄博,王晓丹.基于Python语言的面向对象程序设计课程教学[J].计算机工程与科学,2014,36(S1):122-125.
[3] 张莉,金莹,张洁.多样化可扩展的Python教学体系探索与实践[J].计算机教育,2017(8):18-22.
[4] 刘卫国, 奎晓燕.Python语言程序设计教学体系建设[J].计算机教育,2017(8):13-17.
[5] 秦科, 刘贵松.面向Python应用的大學教学改革初探[J].计算机教育,2017(9):21-25.
[6] 赵建兵.重拾程序设计教学,点燃信息技术课堂新活力[J].当代教育实践与教学研究(电子刊),2017(3):4.
[7] 黄天羽,嵩天.以图形牵引兴趣的Python案例教学方法与实践[J].计算机教育,2017(8):32-37.
[8] 肖斌涛,黄君强.Python语言在教学辅助软件开发中的应用研究[J].现代计算机(专业版),2009(7):113-115.
[9] 乔亚男,李波,谢涛.基于Python的“大学计算机基础”课程教学设计[J]. 科教导刊(中旬刊),2016(11):121-122.
[10] 王明松,钱静媛.基于Python语言的面向对象课程实践教学探讨[J].电脑知识与技术,2017,13(4):136-137.
[11] 张茗芳.使用Python进行非计算机专业程序入门教学的探讨[J].电子世界,2012(17):167-168.
[12] 王立翔.基于计算思维的Python语言课程教学改革刍议[J].教育现代化,2017(15):12-13.
[13] 仲晓芳,庞胜楠,尹百慧.面向非计算机类专业Python编程教学设计研究[J].无线互联科技,2017(18):82-83.
[14] 刘梅彦,徐英慧,周淑一.基于成果导向的“Python程序设计”教学设计[J].电脑知识与技术,2017,13(20):105-107.
[15] 文欣秀,王家辉,马轲,等.基于Python的辅助教学系统设计与开发[J].物联网技术,2017,7(9):113-114.
[16] 朱贇.Python语言对程序设计基础教学的意义[J].福建电脑,2017(6):176-177.
[17] 赵广辉.面向新工科的Python程序设计交叉融合案例教学[J].计算机教育,2017(8):23-27.
[18] 嵇立安.网络资源辅助下的Python程序设计教学[J].电子技术与软件工程,2017(21):250-251.
[19] 裘锴.Python语言编程在计算机理论教学上的应用探索[J].纳税,2017(21):188.
[20] 嵩天,黄天羽,礼欣.面向计算生态的Python语言入门课程教学方案[J].计算机教育,2017(8):7-12.