童 宇 张明键
(1.湖南警察学院,湖南 长沙 410138;2.网络犯罪侦查湖南省普通高校重点实验室,湖南 长沙 410138)
信息通信技术的发展给人类知识的更新速度带来了翻天覆地的变化,到了2020 年,许多学科的知识更新周期甚至只需要73 天。互联网又大大降低了信息获取的门槛,再加上一些优秀的搜索引擎(如百度、Google)极高地提升了信息聚合的能力,使互联网用户对知识快速精准地获取变得轻而易举。如果高校的教学方式还停留在课堂上老师的讲解,还停留在书本上习题的讨论,那学生将面临还没有毕业就被新知识所淘汰的局面,学生将切身体会到什么叫今天学习的专业知识无法解决明天的问题。
以老师为中心,以课本为导向的传统教学方式必须进行改革。一些基础知识和简单应用的掌握可以让同学们通过线上的资源去获取,在课堂有限的时间内,教师应该更专注于学生对问题的分析、评价、知识理论的创新等高阶认知活动能力的培养。本文以“Python 程序设计”这门课为例,详细阐述在新工科背景下如何对程序设计类课程进行教学改革。
C 语言程序设计、Java 语言程序设计、Python 语言程序设计等课程是高等院校理工科低年级普遍开设的程序设计类课程,这些课程一般定位为通识课,对课程学习的要求低。在教学目标上,只要求学生掌握程序设计基础知识和基本方法,会解决简单计算问题和简单算法即可;在教学内容上,重知识、重语法、重讲授,但是往往布置的作业较简单;在教学模式上,以线下课堂知识点的讲授为主,再辅以线上的MOOC 资源;在考核评价上,偏重结课考试的成绩,一般来说成绩的比重分配为预习占10%、作业占30%、期末考试占60%,但是作业抄袭现象比较严重。
对比一些国内和国外的优秀大学,可以发现,这些大学一般将程序设计课程定位为技术课,对课程学习的要求高。在教学目标上,要求学生拥有利用程序设计方法解决复杂问题的能力;在教学内容上,重分析、重算法、重实践,布置的作业难度大,通常需要学生编写300~600 行的代码项目;在教学模式上,多采用线上线下混合教学,线下课堂以对复杂问题的分析求解为主,知识点则放在线上的教学录播中进行讲授,学生可以反复观看;在考核评价上,注重过程考核,成绩的比重分配为预习占5%、小作业占9%、大作业占21%、期中测验占15%、期末考试占50%,一旦发现作业有抄袭现象,将会面临严重的处罚。
十九大报告指出:要加快一流大学和一流学科建设,实现高等教育内涵式发展;教育部高教司司长吴岩在《走进新时代赢得新时代迈入普及化的中国高等教育强国之路》上提出:高等教育全面进入以人才培养为根本的提质新时代;中国高等教育人才培养范式必须要进行一次重大的变革。程序设计类课程必须从单纯的程序设计语言或者知识的教学,进化到提升学生利用信息技术知识解决专业问题能力的教学上来,从知识传授转向能力培养的课程改革势在必行。
随着互联网和信息时代的迅猛发展,新工科产业,如深度学习、人工智能、大数据等领域的研究热潮的到来,这些领域的人才供给出现不足的现象,而传统工科教育已不再适应新兴经济行业对人才能力培养的需求。为应对这一问题,教育部多次提出全国高校应加快建设和发展新工科,优化学科专业结构,发展新兴前沿学科专业。程序设计基础课程是培养大学生计算机应用能力和计算思维能力的一门重要课程,是激发学生对新工科等技术兴趣的第一课堂,探究面向新工科的程序设计基础课程改革对深入新工科建设发展有重要意义。
大多数高校都将C 语言作为工科专业大学生第一门程序设计基础课程,C 语言虽然效率高、使用灵活,但是语法复杂,要灵活应用很不容易,不适合非计算机专业解决复杂工程问题,难以适应新工科建设的要求。Python 语言是一种解释性程序设计语言,具有简洁、易读、便于扩展等优点,易于学习掌握,可实现快速开发。更重要的是它具有众多的第三方库支持,可方便用于各个专业的复杂问题处理,满足新工科产业大数据和人工智能领域的人才需求,因此本文认为,Python 语言更适合作为工科专业大学生第一门程序设计基础课程。
本门课程设定了三个教学目标,分别为知识目标、能力目标和素质目标。课程学习的重点从普适性的程序设计能力培养转变为专业性问题解决能力的培养;要求学生在学习和实训过程中了解计算机软件从业人员应当具备的职业道德守则,为进军软件行业做准备;要求学生理解并敬重工匠精神,在学习中努力发扬工匠精神;通过软件行业发展前景,引发学生对未来的职业愿景,激发学生对社会主义核心价值观的认同感;培养学生具有求真务实的科学精神、百折不挠的专业素养和精益求精的工匠精神。
针对三个教学目标,“Python 程序设计”的教学内容可以分为三个阶段:知识讲授、能力培养和素养修炼。
其中,知识讲授部分包括讲解Python 的基本知识、概念、语法和基础算法,这部分的内容大部分要求学生在线上以自学的形式来完成,教师在课堂只针对重点、难点和容易混淆的概念进行补充讲解;能力培养主要是培养学生具有较强的独立分析、设计编程、调试程序的能力,以及具有良好的程序设计风格;素养修炼主要是培养学生具有严谨扎实、细致入微的学习态度和勤于实践、勇于存疑的学习习惯。
本门课程的教学设计以案例为主导,从具体问题的解决中激发学生思考的积极性,有意识地培养学生运用知识分析与处理实际问题的能力。例如,从“世界最难九宫格”这个数独问题的求解出发,可以让学生深入掌握和理解数组、列的切片、循环、排序等知识重点、难点。又如在授完Python 的基本语法后,让学生通过自学的方式扩展学习Numpy、Pandas、Matplotlib 等相关内容,教师提供2018 年世界杯、2020 年国内酒类消费、2020 年APPL 公司股价、全球新冠肺炎疫情等数据,引导学生利用Python 对提供的数据进行分析、处理和预测,并将分析结果以可视化的形式进行展示。
按照“两性一度”要求深化课程改革,建设了在线课堂并组织开展线上线下混合式教学。教学组织与实施突出了学生中心地位,以教为中心向以学为中心转变。教学采用项目驱动式教学方式,师生之间、生生之间进行合作学习,由之前80%的知识由教师讲授来获得,到现在80%的知识是在项目的设计、谈论和实施当中,通过学生自主学习来获得。教学设计坚持知识、能力、素质有机融合。教师只要教会学生掌握基本知识、解决基本问题、实现基本应用,学生在一个一个的实验项目中不断提升自己的综合能力,包括程序设计、问题分析与建模、数据分析、数据可视化等专业应用能力和综合设计能力,还有计算思维、信息素养、道德品质等素养能力。
课前通过线上进行预习,课堂通过PPT 进行讲解,课后通过线上虚拟实验平台进行实践,引入大量个性化教学资源,开展线上项目专题讨论,形成线上线下内容互补,丰富教学内容,提升学生动手、思维和表达能力。
线上线下教学模式以问题作为驱动,让学生带着问题进行自主学习。通过线上课程将信息化教育手段引入“线下”课堂教学,将课堂教学与“线上”网络教学进行融合,既解决了纯线上的教学方式中存在无法监督学生的学习情况及学习质量、学生缺少面对面的交流机会、课程过于机械化标准化等问题,又解决了学生在传统的面授课上难以保持专注和投入、学习效果不佳的问题,明显提高了教学效果。
本课程建立了一个能力与知识考核并重的多元化考核评价体系,考核方式重点体现过程化,总评成绩体现了整个学期学习的全过程,包括课前预习(占10%)、作业完成情况(占15%)、阶段性测试成绩(占20%)、期末考试成绩(占40%)和平时成绩(占15%)。
针对程序设计类课程,学院本年度投入25 万元建设了一个功能集约、开放共享、运作高效的一体化“在线考试支撑平台”,该平台可以实现对不同编程语言及技术架构的试题自动评测和在线编译运行,进一步健全了Python 程序设计课程的考核评价体系。
本课程使用的线上平台主要是超星学习通和EduCoder 实训平台。在超星平台上上传了课程教案、课件、相关软件、实验报告等资料供学生下载。在EduCoder 实训平台上进行了实践课程的建设,自主研发了76 个实训项目(如图1、图2 所示);每学期在平台上开设线上教学课堂,发布190 多个线上实训项目,访问量累计超过15 万次,如图3 所示。
图1 超星学习通Python 程序设计课程门户网页截图
图2 Python 程序设计EduCoder实训平台实践课程建设页面截图
图3 Python 程序设计EduCoder 实训平台教学课堂页面截图
对连续三届的学生采用了教学改革,随着教学模式的不断创新、教学资源的逐渐完善,学生考核成绩都得到了提高(如图4 所示),平均分由72.65 提高到了83.8 分,大部分学生的成绩在70~90 分之间,符合正态分布,证明教学改革取得了良好的成效。
图4 三届学生考试成绩分布图
在教学实践中不断总结经验,同步收集数据并组织教学团队开展教学反思和教学研究,然后将总结的经验在教学中进行迭代,做好教学改革的深化与持续。
组织教学团队的老师进修,掌握最新的行业动态;收集教学资源并编写教材。将教学改革的成果进行全院的推广。