高职院校“Python语言”课程教学探讨
2021-04-20油晔
油 晔
(辽宁轨道交通职业学院,辽宁 沈阳 110023)
0 引言
目前,经调查统计(以2019年51job网站上发布的招聘信息为参考)社会用人单位对Python开发人员的需求量远远高于掌握其他语言的需求量。在Python的相关岗位中,开发工程师的需求量约占50%,数据分析工程师与网络爬虫工程师的需求量约各占10%,另外,还有部分游戏设计师、测试工程师等的需求。为了满足用人单位的需求,同时扩大学生的学习知识面,从2018年起笔者在公共选修课程中开设了“零基础学习Python语言”这门课程。
1 “零基础学习Python语言”课程介绍
“零基础学习Python语言”[1]这门选修课主要面向全校学生的公选课,课时为26~30学时。本课程针对编程零基础同学进行讲授,以任务为驱动,通过案例分析与引领帮助学生快速掌握Python语言,培养学生运用Python语言解决实际问题的编程能力。
本课程的教学目标是使学生在全面了解Python技术历史、现状与发展趋势的基础上,初步掌握Python基本概念、编程思想以及程序设计等方面的技术,并具备良好的Python编程技能和面向对象程序设计思想。通过本课程的学习,学生能够综合应用Python技术和面向对象的思维编写程序,以解决现实生活中的问题,最终提高程序设计水平和计算机应用能力。
2 高职学生学情及学习需求分析
2.1 高职学生学习动机分析
处于高职阶段的学生相比较中学阶段或高中阶段的学生来说,他们的学习动机具有多样化。由于学生来自不同的地域、不同的生活环境、不同的专业,所以每个人的学习动机也不尽相同。高职高专的学生他们在进入学校之初,有少部分学生已经基本了解自己将来的工作岗位(岗位群)的要求,并能够围绕这种职业定向进行基础知识课、专业基础课、以及专业核心课程的学习,而绝大多数的学生对于所选择的专业多是听从家长或亲戚朋友的建议,或是因为分数不够本科院校的录取分数线,而进行的无奈选择,所以这部分学生对于专业的认识并不清晰,学习的积极性也并不很高。
2.2 高职学生学习态度分析
高职高专的学生在学习时,其学习的情绪化占据了主导作用[2]。他们对于自己感兴趣的学习内容,会表现出很高的学习积极性及热情,而对于一些比较枯燥的学习内容时,学习的积极性明显偏低。同时,高职学生的文化课底子比较薄弱,学习的主动性、自觉性略显不足,没有形成一个良好的学习习惯,而且不能够很好地利用课余时间进行自学与补充,学习比较被动,课前没有预习的习惯,课后没有复习的过程。
2.3 高职学生学习计算机语言需求分析
本课程从2018年至今已经开设了4个学期,通过每个学期结课的调查问卷统计、分析后,了解到学生的真实学习状态及学习需求大概可以分为以下几种状况:
(1)对于有一定计算机编程基础(主要是三校生中或多或少的学过其他计算机语言)或对计算机知识很感兴趣的高职学生来说,他们觉得所学习的内容有些简单,希望能够后续继续开设相关课程,并在以后的课程中加深难度。
(2)对于普通高职学生(即虽然之前没有学过计算机编程语言方面的内容,但是学习比较努力,有学习意向的学生)来说,他们觉得通过一学期的学习有一定的收获,培养了他们在计算机编程方面的学习兴趣,希望多增加一些图形绘制方面的内容,同时愿意在下学期继续学习有关课程。
为此,根据以上对学生的学情分析及学生学习后的课程反馈情况,笔者认为在开设“零基础学习Python语言”公共选修课时,应面向不同的需求群体开设两个方向的公共选修班。一个是针对有一定计算机编程基础的“Python语言”公共选修教学班,一个是以趣味图形设计为主要内容的公共选修班,这样能满足具有不同需求的学生要求,使每名学生都会学有所获[1]。
3 “Python语言”教学过程设计
作为公共选修课程的“零基础学习Python语言”这门课程,在建课之初,就本着以任务为驱动,以案例为基础的教学目标进行课程内容安排。Python在图像视频处理、游戏开发、人工智能、自动控制等方面有着广泛的应用。而笔者所授课的对象许多都是非计算机专业的学生,在学习本课程之前,他们并没有计算机编程的基础,但为了更好地培养他们的程序模块化、结构化、流程化的思维,调动他们学习的积极性,进而编写出高质量的Python程序,故在案例的选择上,笔者从学生现有知识水平入手,围绕数学几何图形或函数曲线等内容挑选,设计Python案例。通过案例的设计,使学生更好地掌握Python语言的特点,真正实现了在“做中学,学中做”的教学理念[2]。
例如在讲解超炫三角形这节课时,先介绍turtle库基本语法元素right()函数、left()函数和forward()函数,并让学生利用这两个函数绘制一个简单的等边三角形,使学生首先明白三角形的画法。在学习过程中学生会运用不同的函数,绘制出不同方向的等边三角形。
在此基础上,进一步启发学生利用所学知识,并结合问题分析下面图形的制作原理,将循环编程的思想、列表的运用等相关知识引入进来,以此来激发学生的学习兴趣。
【拓展练习】
请同学根据提示进行任务分析,如图1所示。
图1 (拓展练习)
(1)基础图形是什么形状?
(2)如何实现三条边用不同的颜色呈现?
(3)如何实现三条边线条的长度的逐渐变化?
【程序代码】
对于一些接受知识比较快的学生,在完成了上面案例的基础上,笔者会在举一反三的教学环节进一步提出制作要求。
【举一反三】如果想实现显示图2的效果,应该如何更改程序?
图2 (举一反三)
【提示】可以试着修改旋转角度语句
【程序代码】
通过不同案例的学习,使学生能够由浅入深的逐渐掌握编程思维,进而激发学生的学习兴趣,使学生不再觉得编程很枯燥、很无聊,而是让学生觉得编程也是这么有趣、这么好“玩”,只要试着进行一些小小的修改就能产生不同的图案,从而更好地激发了他们的学习热情[3]。
在教学过程中,笔者通过对教学内容的精心选择、用心设计与细心讲解,绝大多数学生都能够认真地进行相应知识的学习,尤其是在最后的作品创作中,学生都能够很好地从自身已有知识出发,结合自己的所学、所知、所想进行作品的创作。在创作过程遇到一些问题时,同学之间也能够互相促进、积极讨论、共同进步。看到学生的作品,同时作为教师的笔者也深深地感受到教学相长。