王亚萍
摘要:针对目前高校计算机程序设计教学的现状,在计算思维的视域下,以Python语言为载体,总结出以高校计算机程序教学为主阵地培养学生计算思维的改革要点,为高校计算机程序设计教学提供一种可供参考的实践模式。
关键词:计算思维;Python语言;高校计算机程序教学
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2018)02-0099-02
1 概述
2006年3月,美国卡内基.梅隆大学计算机科学系主任周以真(Jeannette M.Wing)教授在美国计算机全文期刊《Communications of the ACM》杂志上给出并定义的计算思维(Computational Thinking)。随着信息技术的迅猛发展,社会各行各业都离不开计算机,面对时代的发展和变迁,计算思维是人们适应社会所必需的一项基本技能。高校作为人才培养的主阵地,须将培养学生的计算思维作为高校计算机基础教学的教学目标。计算思维帮助学生模拟计算机的思维来思考解决现实问题的思想和方法,提升学生分析和解决问题的能力。2016年,教育部高等学校大学计算机课程教学指导委员会发布了《大学计算机基础课程教学基本要求》(以下简称《基本要求》)。《基本要求》综合信息技术发展及国内高校开展教学情况,建议将C、VB和Python作为首门程序设计课程的教学语言。实践表明:随着高中信息技术课程的不断推进和完善,以C语言和VB语言为主的高校程序设计类课程多年来未曾改变,不能适应社会需求。现在很多高校已认识这一现状,并开设Python程序设计、JAVA程序设计语言等课程,师生反映良好。本文以Python程序设计语言作为载体,探讨如何对高校计算机基础教学进行改革,在课程中引入对计算思维的培养。
2 目前高校程序设计类课程教学中存在的问题
高校程序设计类课程是培养学生计算思维的核心课程。程序设计类课程是高校计算机基础教学中的一门必修课程,其教学目标是培养学生的编程思维和编程能力,为后续专业学习奠定基础。
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它应用范围广泛,具有很强的数据处理能力。C语言语法简洁,数据结构类型和运算符丰富。但C语言从本质上讲是面向过程的语言,语法晦涩难懂,学生的主要精力都花费在了对前期语法的理解和运用,而忽视了面向过程的问题处理,教师无法顾及到学生计算思维的培养。利用C语言进行程序开发时工作量较大,具有一定的难度,很多基本的功能都需要用户自己设计。因此对于非计算机专业的学生而言选择C语言进行学习并非明智之取。
VB是Visual Basic的简写,是一种可视化的、面向对象和采用事件驱动范式的结构化高级程序设计语言,难度较低。目前国内很多高校依旧选择VB6.0的程序开发环境,但VB6.0仅适用于Windows系统,不具备跨平台的功能。另外VB6.0版本已很长时间没更新,当下产生和盛行的一些新的编程思想也无法体现。同时目前的主流移动计算平台大多不支持VB语言作为开发语言。因此,在移动技术快速发展的大背景下,VB语言已无法适应社会发展的现实需求,同时也不利于学生的发展。毫无疑问选择适应性更强的程序设计语言对于高校计算机基础教学而言是必要的。
3 Python语言的教学优势
Python语言是一种被广泛使用,面向对象的高级通用脚本编程语言,其程序语法简洁,明晰易懂。它体现的哲学思想是“优雅”“明确”“简单”。
3.1 简单易学,程序框架简单
Python程序设计语言与英语非常相似,语法非常简单。学生易于理解和书写,这在一定程度上降低了学生书写程序代码时的错误率。Python自带的IDLE可以在多种操作系统平台上运行,学生可以在自己熟悉的操作系统平台中书写程序代码。Python程序设计语言拥有的列表、字典和元组等高级数据类型可以帮助学生解决更加复杂的问题。
3.2 功能强大
众所周知,Python程序设计语言是免费开源的程序设计语言。为了方便学习者学习,许多Python语言的热衷者根据学习者的需求开发了很多功能齐全的Python学习拓展包和插件,这样学习者就无需花更多的是时间去解决解决较普遍的问题,大大节省了学习者的学习时间,提高了学习者的学习效率。
3.3 可拓展性和持续更新
Python程序设计语言的底层是用C和C++语言编写的。针对程序编写过程中那些核心的而且计算庞杂的关键模块,程序开发者可以用C和C++编写。Python学习者如果要运用到该功能时可以直接调用程序开发者编写的模块就可以了,这样就可以降低程序编写的难度,同时提高了程序的运行速度。Python程序设计语言自出现之日起已进行了多次的版本更新,更新后的版本更加易于学习者学习。因此Python程序语言的具有较强的可拓展性。
虽然Python程序设计语言也有其不足之处,例如:程序运行速度不够快、程序代码缩进语法比较繁琐等,但其简单易学的平民化、草根化的特点使其他程序设计语言所替代的,因此将Python程序设计语言作为高校非计算机专业学生的程序学习语言是非常明智的选择。
4 计算思维视域下《Python程序设计》课程教学改革实践
随着信息技术的飞速发展,各行各业对高校毕业生的计算思维提出了更高的要求。为了适应社会的现实需求,高校都在積极进行程序类教学改革,《Python程序设计》课程作为很多高校的理想选择,并根据本校实际进行了尝试性的改革。笔者所在学校也进行了这方面的教学改革实践,具体包括:教学内容的改革、教学模式的改革和教学评价手段的改革,具体内容如下:
4.1 整合教学内容:兼顾编程技术和数据分析技术
为了分层次、分步骤的培养非计算机专业学生的计算思维和数据分析处理能力,Python程序设计课程的内容可以划分为基础和高级两个循序渐进的教学模块。基础模块的内容主要包括:Python的基本介绍和基本编程环境的搭建、基本数据类型、高级数据类型(列表、元组、字典)、表达式、常用系统函数、程序基本流程(顺序、选择、循环)、函数的定义和调用、面向对象的编程。高级模块主要包括多维结构化数据集分析包pandas、绘制数据图表的数据可视化库Matplotlib等。基础模块和高级模块的教学课时根据学生的实际情况确定。任课教师要注重基础模块和高级模块内容之间的有效衔接和融会贯通。例如在应用数据挖掘算法进行分析时会讲授程序异常处理。任课教师要将教学内容问题化、案例化和项目化,以具体的问题导入新课,以生动鲜活的案例进行讲解,以完成现实项目的情境引导学生进行知识同化、建构和应用。任课教师还需将教学内容电子化、网络化、立体化,将所有的纸质教学内容电子化,并上传到相应的课程学习网站上,学生可以随时随地在硬件条件循序的条件下进行课前预习、课后复习。任课教师需为学生准备包括教材、教学PPT、应用案例、课程学习视频及其他参考资料等立体化、多维度的教学内容学习包,这样学生可以根据自己的实际情况选择适合自己的教学材料进行学习,这在一定程度上促进了学生的分层学习和混合式学习。endprint
4.2 更新教学模式:基于SPOC的翻转课堂教学模式
原先该课程的教学是采取教师先讲、学生后练习的教学形式,因缺乏有效的监督和监管机制,学生的课前预习和课后复习两个环节大都是形同虚设,因此该课程的整体教学效果不是很好。本研究试图将翻转课堂和SPOC有机的整合在一起,以具体的工作任务为主线,以SPOC在线课程资源为依托,在MOOC学习平台以及真实教室环境中展开,混合了分层教学、问题式教学、启发式教学、情景式教学等多种教学方法。
课前导学环节:学生进行分组,并以小组为单位,完成以下任务:①通过自主学习、小组讨论、协作探究等方式,通过学校教务处MOOC教学平台观看教学微视频,完成教师布置的课前预任务。②小组内部根据成员自身实际进行分工,准备课堂展示材料。教师则通过MOOC平台的数据统计和分析功能,对学生在线学习的进度进行关注和监控,并根据学生的反馈信息对教学步骤进行必要的调整。
教师可以根据学生课前预习作业完成情况掌握每个学生的实际情况,使得后续课堂教学过程中的讲解和辅导做得更有效的有的放矢。
课堂教学环节:教师首先对学生的预习作业完成情况进行总结,并以学生课前普遍反映的重难点内容或教师预先设定的重难点问题作为课堂面授教学导入话题,并以问题为导向,对内容进行深度剖析。学生在教师的引导下按照课前的学生分组进行小组讨论交流,对问题进行认真思考,并提出问题解决方案在交流探讨中完成知识的内化。每个小组均需到教师机上向其他同学和教师展示小组成果,其他小组成员和完成知识的对其进行评价。教师会适时监督和辅助学生进行讨论、交流和成果展示。教师评价和学生互评两个环节可以更加有效的促进学生的学习。
课后巩固环节:学生需要完成以下三个方面的工作,一是在教师规定的时间内完成教师不知的课后作业;二是以小组为单位,对MOOC平台上教师上传的拓展性内容进行学习,以小组为单位在线提交学习结果,教师及时批阅,并将批阅意见及时反馈给学生;三是开展在线答疑,项目组负责人安排项目组成员进行定期的在线答疑,及时回答学生的问题,并将学生的在线互动情况纳入评价指标体系。
4.3 构建新的评价方式:基于过程的动态综合评价
目前《Python程序设计》课程的评价方式主要采用期末的总结性评价,即采用期末考试等一次性检验方式,以单一的期末考试成绩来衡量学生的学习结果和教师的教学质量。这种量化的总结性评价考核的内容的数量和难度有限,只停留在基本陈述性知识和简单操作步骤的再现,思维成分考核较少。本项目借鉴互动分享的思想,以动态综合评价,对学生的学习效果、学习能力、合作能力多个指标进行综合评估,实现形成性评估和总结性评估相结合。其中形成性评估涵盖课前导学、课堂教学、课后应用的每一个环节。SPOC平台内设的大数据学习分析技术,可将过程性评价转化为量化的分数,有助于教师和学生获得准确客观的学习评价。该课程的评价体系可概括如下:
5 结束语
本文分析了目前高校程序设计课程的教学现状、存在问题,并比较了常用的几种教学语言,阐述了在高校程序设计基础课程的改革中使用Python语言的必要性和重要性。基于计算思维培养的教学改革需要充分领悟计算思维的时代性,教学改革需与计算机技术的发展保持同步。本文从培養学生计算思维的必要性出发,阐述了传统程序类课程教学中存在的问题以及Python程序设计语言独特的教学优势,并在此基础上阐述了计算思维视域下《Python程序设计》课程的教学改革措施。
参考文献:
[1] 教育部高等学校大学计算机课程教学指导委员会.大学计算机基础课程教学基本要求[J].北京:高等教育出版社,2017.
[2] 郑戟明.Python程序设计课程中计算思维的应用[J].大学教育,2016(8):127-129.
[3] 刘研.Python语言在非计算机专业计算机教学改革中的探讨[J].科学教育,2016(10):301-303.
[4] 嵩天,黄天羽,礼欣.Python语言程序设计课程教学改革的理想选择[J].中国大学教学,2016(2):42-46.
[5] 刘琼,史诺.基于计算思维视角的程序设计教学改革研究[J].自动化与仪器仪表,2015(12):93-94.endprint