APP下载

基于PTA 平台的“Python 程序设计基础”课程探索与实践

2021-03-10肖艳萍

智能物联技术 2021年3期
关键词:程序设计编程题目

陈 丹,肖艳萍

(浙大城市学院 计算机与计算科学学院,浙江 杭州 310015)

0 引言

近几年来,Python 语言作为排名上升最快的程序设计语言,变得越来越流行。 其主要原因是:第一,简单易用,更贴近人类自然语言的语法,使得学习曲线相对其他编程语言要不陡峭, 学习时间成本低;第二,作为开源的脚本编程语言,第三方库众多,功能强大,目前已超过十万个,而且还在快速增长,因此适用于众多领域,适合不同专业学生学习,易于激发学生的学习兴趣,并有利于用计算机解决所面临的各类专业问题;第三,对人工智能和大数据的强大支持,贴合当前时代的发展需求等。 从这些特点来看,Python 语言不仅适合计算机专业学生学习,更是非计算机专业学生学习编程语言的好选择。基于此,我校自2019 年开始即开设了“Python 程序设计基础与实验”公共基础课,并逐步扩展了开课范围。

对程序设计类课程来说,准确快速地批改大量学生所编程序一直是任课教师的一大痛点。而能够在线实时地批改学生编写程序将对教学效果提升、 减轻教师工作量都会有很大的帮助。 PTA(Programming Teaching Assistant)是程序设计类实验辅助教学平台,能够解决程序批改的问题。 该系统包括教师和学生角色, 教师可以建立自己的题目集、创建自己的班级、添加学生、布置作业、统计成绩并进行数据采集和分析等。 学生登录系统后可以根据教师布置的任务完成相关习题, 查看习题完成情况和自己所得分数, 并且了解自己在班级中的排名, 根据掌握情况及时调整自己的学习态度和学习计划。 另外,PTA 还提供查重、主观题互评功能,能够督促学生独立完成作业,在评判综合主观题中学生能够相互学习解决问题的思路,也可以培养学生的程序调试和评判能力。 教师还可以建立题目和分享题目集, 方便教师间的题目共享和课程组开展统一教学活动。

1 教学内容

作为公共基础课,“Python 程序设计基础与实验”是入门级编程课程,基本忽略了学生背景的差异,从零编程基础起步。 教学内容上主要分为三大部分:课程引入部分旨在降低非计算机专业的学生对编程的恐惧,同时提高学生的编程自信心和学习兴趣,内容包括简单程序的实例、利用turtle 库来作图等;基本语法部分主要目的是教授语言的基本语法内容,包括基本数据类型、组合数据类型、分支循环流程控制、函数、标准库等;扩展应用部分主要目的是结合不同专业特点和领域进行教学,为专业学习打好信息基础, 为学科交叉作好一些准备,并培养创新创业基础, 能更好适应 “互联网+”、“数字+”的社会发展。 具体教学内容见表1。

表1 Python 基础课程教学内容Table 1 Basic course teaching content of Python

2 教学设计

“互联网+”、“数字+”等是当下各行各业发生变革的重要推动力, 在各类新型信息技术的加持下,教育领域与互联网科技相结合也已经是一种必然趋势。 学生获取知识的方式也发生了变化,可以通过线上和线下两种方式进行课程学习。为了提高课程教学质量、提高效率,我们在教学设计中充分考虑了线上线下方式的结合。

2.1 实施过程

实施过程中主要从教学形式、 教学内容等多方面进行探索实践。 教学形式上除了常规的讲解方式外,更多是运用翻转课堂、课堂讨论、项目展示等多种形式来调动课堂氛围和组织课下学习活动, 激发学生的兴趣。 同时, 充分利用好 PTA 和MOOC 两个平台。 PTA 平台题库中目前开放的题目数超过2 万题,而且PTA 作为一个开放平台,教师可以根据需要自行添加相应题目, 能够适应不同学生的学习需求。 MOOC 平台上选取了嵩天老师建设的国家精品课程“Python 语言程序设计”的相关资源, 同时针对本校学生的能力和教学大纲要求适当进行增补, 探索与实践的重点放在PTA平台的充分运用上。

具体实施上,针对每周的课程计划安排,设置课前引导问题,引导学生课前认真预习,并自主进行相关内容的MOOC 学习。 在课堂上,教师进行关键知识点的讲解,并围绕引导问题,安排讨论环节和翻转环节, 针对讨论中以及前一周暴露的问题,进行深入讲解,突出重点,解决关键难点。

同时,每周安排2 学时的实验课时,每周进行练习。 每周的练习题集由两部分组成:一部分是常规基础题集,20 题左右,每人必做;另一部分是5~10 题的进阶练习题集,针对学习较好的同学。 基本形式是:依托PTA 平台,首先安排30 分钟的训练题集,题量20 题左右,由选择题、函数题、编程题等构成,题集内容覆盖前一周及本周涉及的教学知识点。 教师根据学生的完成情况及时反馈,进行重点讲解。然后,在剩余的实践时间,学生根据自己练习的情况,未完成的继续完成;完成有错误的进行订正,顺利完成的可以做更高一级的进阶题集。 分层次对待,更有针对性地提高编程能力。

每周练习是一个半开放练习,给学生的时间限定比较宽松,主要是学生在学习了本章知识后的一个实践验证的过程。 每月进行一次课堂测试,安排10 道左右题目,30 分钟时间,主要帮助教师掌握学生在近段时间的真实学习情况,以及学生了解自己成绩在班级中的位置情况,以便教师和学生都能适时调整教学和学习计划。

通过PTA 平台提供的考试功能安排期中考试,考前做好充分准备,协调考场及批次,考试使用PTA 提供的OMS 客户端+手机扫码进行登录。考试中利用监考功能实时监控,保证考试的公平公正,通过自动判题及时获取成绩,能大大提高效率。

2.2 数据分析与查重

在项目建设期,还有两项贯穿始终的工作。 一是根据平台提供的有监督环境下产生的可信的学生学习过程数据,由平台导出数据,包含答卷(以学生为单位)、成绩单(包含每个题目的得分)、正答率(以题目为单位)、得分代码(以学生为单位)、试卷分析(包含每个知识点的得分率、平均分、分数段人数分布等), 为课后评价提供了足够精细的数据。通过分析这些数据,在课堂教学中可以做到有的放矢,提高教学效率,形成良性反馈机制。 二是通过PTA 平台提供的PDS 查重系统对学生线上学习进行监督, 培养学生独立思考能力和诚实守信的习惯。

查重功能不仅有数值化的显示,也有程序代码的对比情况,如图1 所示。在使用时,一般对稍复杂的程序进行查重, 并在使用前对学生强调此项功能, 对查重中发现的抄袭现象及时予以批评指正。经过一段时间的运用, 学生大都能较好地遵守,有利于培养学生独立的编程能力和计算思维。

图1 PTA 平台查重功能Figure 1 Duplicate checking function of PTA platform

2.3 互评功能的运用

为了更好地培养学生解决问题的能力和创新思维, 在课程中还设置了一些综合的小型Project。这些Project 需要更多地发挥学生的综合能力,因为这些Project 允许有一定的创造性和个性化,不设置完全统一的运行结果要求,故也不适合直接用PTA 平台的判题系统来进行。对这些题目的评价一方面通过老师的批改,另一方面可以通过学生互评的方式来进行。 学生在互评的过程中,既能学习到其他同学的创作思路和实现方式,也是对如何评价作品能力的一个培养。PTA 平台提供的互评平台操作方便,功能完善,如图2 所示。

图2 PTA 平台的互评功能Figure 2 Mutual evaluation function of PTA platform

3 课程评价与效果

3.1 评价方式

该程序设计课程的主要目的是培养学生的计算思维能力、掌握Python 的基本语法、具备基本算法分析能力、能用Python 语言解决一些实际问题,所以在评价方式上,包括了课堂表现、实践操作和期末考试等多部分。 理论课堂上, 通过提问、 小测试提高学生的注意力, 实时巩固所学知识。实践部分主要通过PTA 平台来实施,包括练习实验、编程作业、互评作业和期中编程测试等。 期末考试主要是理论形式, 不完全是要求对语法的准确掌握,更多的是对程序的阅读能力、问题的分析能力和计算思维能力的测评。 总评成绩组成如图 3 所示。

图3 总评成绩组成图Figure 3 The composition diagram of the overall evaluation results

3.2 效果提升

从2019 年Python 课程在我校开设以来,也同步对PTA 平台进行了初步使用。 随着这两年对PTA 平台应用的进一步深入,学生成绩也在稳步提高。 特别是今年的实验班,通过结合MOOC 课程、翻转课堂和PTA 的深入应用等, 使得实验班的成绩进步尤为突出。 表2 所示为Python 开课三年以来的期中期末成绩对比(2019~2020 年因疫情原因未进行期中考试)。

表2 Python 语言课程历年期中和期末成绩表Table 2 Middle-term and final transcripts of Python language courses over the years

4 结语

作为一门公共基础课,在培养学生计算思维的过程中, 要进一步探索如何在教学内容和方法上针对不同专业的学生实行专业分类教学, 研究如何通过与专业相关的教学案例, 加强学生对Python 课程的理解,帮助学生更直观、更有效地了解和掌握Python 理论知识和其在各专业领域的应用技术。 例如, 为财经类专业的学生增加利用Python 来预测某个城市房价的走势, 分析网上购物平台某种商品的价格分布情况、 销量分布情况等实例。 为艺术类学生增强利用turtle 作图的实例, 可以为中文类的学生增强分词、 词云等的实例, 使Python 课程更多、 更深地和学生的专业知识、专业问题相结合,并且利用编程思想来解决这些专业上的实际问题,激发学生的学习兴趣,使学生领略到Python 编程的美妙之处。同时,在课程考核上,要研究如何提高过程考核的比例,使考核更好地为能力培养服务。

猜你喜欢

程序设计编程题目
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
唐朝“高考”的诗歌题目
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
关于题目的要求
本期练习类题目参考答案及提示
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索