1. 引言
在最新的2024 TIOBE排行榜中,Python稳居排行榜第一位,被誉为“编程语言之王”,Python语言[1]以它崇尚优美、清晰、简单的特性,使得其应用越来越广泛并且也逐渐得到业内的普遍认可。
Python编程语言代码简单、容易上手,且有丰富的拓展模块,适合作为非计算机专业学生学习编程的程序设计语言。
随着高校“双一流”建设的不断深入,越来越多的学生在本科阶段就开始接触科研,同时,本科大学生创新训练项目、大学生科研训练项目等,为本科生接触科研提供了比较好的平台,Python语言简单易上手和丰富的类库,适合成为科研入门利器[2]。
2. 课程建设现状
2.1. 案例高校的课程建设情况
当前,以省内某重点本科院校为例,课程教学改革正在大刀阔斧的进行,计算机及相关专业已全部将Python课程列入教学计划并有序开展、某些学院程序设计及算法、数据结构也开设为Python描述;在学校的通识课列表中,至少有4门课程与Python程序设计相关;学校有8个学院开设了Python相关课程;需要特别指出的是,正在进行的大学计算机基础教育改革已于2022~2023-1学期起全面改革为Python程序设计,这就意味着该校每年几乎所有新生都将进行Python程序设计的学习,如表1所示。
Table 1. Python related courses offered in non-computer schools
表1. 非计算机学院开设Python相关课程情况
课程性质 |
课程代码 |
课程名称 |
学分 |
学时 |
选修专业 |
公选课 |
B061005C |
Python程序设计 |
2 |
40 |
全校本科生 |
公选课 |
B061012C |
Python数据可视化 |
2 |
40 |
全校本科生 |
公选课 |
B061013C |
Python科学计算 |
2 |
40 |
全校本科生 |
公选课 |
B061014C |
Python科研入门六讲 |
1.5 |
32 |
全校本科生 |
专业选修课 |
B0141380 |
Python与空间数据智能处理 |
1 |
32 |
地信 |
专业选修课 |
B0640660 |
Python程序设计基础 |
2 |
40 |
林学(成栋班) |
专业选修课 |
B0641260 |
Python应用 |
2 |
40 |
食品科学与工程 |
专业选修课 |
B0341040 |
Python语言程序设计 |
1.5 |
40 |
数学与应用数学 |
续表
专业选修课 |
B0341040 |
Python语言程序设计 |
1.5 |
40 |
信息与计算科学 |
科创实践课 |
B0450130 |
基于Python软件开发及应用 |
2 |
48 |
机械设计及自动化 |
专业选修课 |
B1440910 |
交通工程Python程序设计 |
1.5 |
32 |
交通工程 |
2.2. 当前建设存在的问题
当前,Python程序设计教学[3]和实验的编程环境绝大多数在本地执行,程序编写、调试和保存都在本地PC机上进行,并且实验教学部分,基本在实验室完成。由于Python的编辑器[4]众多,不同课程的教学使用的软件又不相同,对于非计算机专业的学生来说,软件的安装成为了耗费大量精力去解决的问题,大多数编辑器的功能非常丰富,而基础学习阶段学生使用的功能却有限,往往会给学生在软件安装的过程就带来了负担,对程序设计的学习兴趣大大打了折扣。
近年来,随着线上、线下混合模式教学、慕课教学模式的大力推广,打破了传统的教学方法和教学规律。针对程序设计类课程的特点,特别是实验[5],这种学生和老师分离,利用不同编译器和环境进行代码编写、程序设计的形式,往往会造成师生沟通困难,软件安装不畅,远程指导不利等现象。可见,使用一款统一界面、统一形式的编程环境的编译器势在必行。这不仅可以大大提高授课效果、更重要是能够完全规避线上课对程序设计实验教学造成的所有不利情况。
3. 课程建设关键性问题解决方案
3.1. 在线实验平台
研建一款Python线上实验平台可以完美的解决这些问题。Python线上实验平台具有如下特点:
避免师生耗费大量精力来进行系统环境的搭建配置及调试,不能聚焦到程序设计的学习和应用上。以往师生在本地安装编辑器,不仅造成师生的精力的浪费,消耗大量时间成本,同时,也很难保证本地构建环境的完全同步,引发大量问题。
解决本地硬件配置不高,编译构建速度慢的问题。众所周知,编译构建硬件资源消耗大,普通开放实验室,硬件配置普遍不高,造成编译构建速度慢,影响开发效率。
具有分布式、多点编译的特点,能够与线上、线下混合课程、虚拟教研室课程、慕课等新型课程模式紧密衔接,密切匹配。
实验平台的大量实验数据,可以为进一步挖掘和课程评价等提供基础数据。
可见,开发一款Python线上实验平台,不仅仅可以服务计算机类同学对于Python程序设计语言的教学,更重要的是对于非计算机类、交叉学科的程序设计学习具有重要的意义。
3.2. 平台研发的现状
在国外,近年来为程序设计爱好者、特别是青少年的程序设计学习提供的在线编程学习和练习平台越来越多。Codecademy [6]是在2011提供在线交互的编程平台,并且提供了当时绝大多数流行的程序语言编译环境;Code.org是一个鼓励计算机科学爱好者用于计算机普及的一个公共站点,它提供了HTML、CSS等web程序设计语言开发和测试平台;BOSS系统是英国华威大学开发,这个系统可以为学生提供在线程序的评测,并且提供功能相对独立的模块;PCCS系统是美国加利福利亚大学开发的,也是目前最具有影响力的程序评测系统之一,这个系统是JAVA编写的,提供了广泛的机器环境,可以最大程度的提高学生的学习效率与教师在实验指导和考试中的工作效率。
在国内,随着教指委各种竞赛的大力发展,很多高校也相继的建立了自己的交互式编程平台系统。Educode是由国防科技大学创建的开放在线实践平台,提供了600多门的在线教学与实验、实践平台,并提供了简约的程序设计交互界面;PTA是浙大和百腾联合创建的在线实验平台,能够对代码提交有更强的约束性;Leetcode [7]平台为学生提供基础编码的联系,但是对于程序编译和错误处理的效果不是特别好;codecode.net平台适合于计算机专业的学生,专业程度相对较高,初学者不易掌握。
3.3. 在线实验平台的设计
(1) 平台的学生端的设计,选取适当的开发模式和辅助设计来实现前端基本功能的实现。主要包括:为学生提供可以实时登录、处处登录使用的Python在线实验平台、个人信息编辑、实验结果查询、实验结果下载等。
(2) 平台服务器端的设计,后端SpringBoot框架[8],使用MybatisPlus完成持久层设计[9],调用Python3编译器实现核心功能。主要内容包括:实验评分、实验数据记录、公告发布、班级管理、实验编辑、成绩分布、正确率以及所有的数据的存储和记录。
(3) 系统服务器的负载均衡和优化,系统做为非计算机专业的专业选修课和校公选课的统一在线实验平台,必须满足一定的负载要求,例如,从该校当前教学管理安排来看,同一次实验课可以安排两个教学班同时进行,也就是服务器每秒钟要同时负载60台客户机,每分钟内最大负载要达到1000台以上。
(4) 基础实验数据的清理,为实验大纲修定、教学大纲制定、教学方法改革、教学评价提供数据基础保障,如图1所示。
Figure 1. Diagram of the platform research content structure
图1. 平台研究内容结构图
3.4. 平台建设的关键问题
这种在线编译系统的设计与应用必须要解决以下的关键问题,这是平台是否能够满足课程建设需要的决定性因素,也是平台建设的根本问题。
(1) Python在线实验平台的开发
设计并实现一个Python的在线程序编辑平台,界面友好,能够实现教师和学生等不同类型角色的登录使用,为教师提供建立班级、课程等功能,并且能够对学生的实验结果进行统计分析,对学生的使用提供编辑和编译功能,对学生提交的结果提供对比参照和分数合计。
完善在线实验管理平台,实现教师、学生和管理员三种角色的管理、实验内容的管理、学生班级的管理、成绩管理等功能,将实验教学的数据存储为基本信息。
(2) Python实验平台的服务部署和优化问题
平台的服务器端,要对接教师端和学生端提供必要的数据存储和请求处理,选择部署适当的服务器引擎用于程序代码的编译,来解决核心编译问题,评判学生提供的实验源代码,并将结果返回给学生参考和教师记录。解决百人以上同时线上实验的并发处理问题,负载优化,缩短反馈时常,解决兼容性等问题。
(3) 对于实验平台基础数据的使用和管理
平台产生的实验数据作为对实验项目、实验大纲、课程大纲、教学的评价基础数据,为实验项目的选定、制定,实验大纲的制定,教学大纲的调整,课程大纲的实验安排,教学评价、课程成果申报等教学环节的数据分析和判定提供依据和支持。
平台实验数据在进行进一步使用的时候需要进行清洗、筛选等处理,特定数据还将被制作成为数据集使用。
4. 平台实践效果
该平台已在几门非计算机专业的Python课程实验上进行了实践,效果很好,统筹考虑了开课专业、学时、学分、教学安排等课程数据信息、数据量、并发负载、学生计算机熟练程度等,依照教学大纲中对程序设计的要求和实验教学大纲对实验项目的要求,将系统中的实验数据制作成数据集,利用数据分析的方式,挖掘出它们之间的耦合关系,从而为实验教学大纲修改定制、针对不同专业年级进行差别教学、制定灵活高效的考核,以及老师自身反查整改都提供了科学依据,奠定了改革基础,如图2所示。
Figure 2. Diagram of the online platform technology planning
图2. 在线平台技术规划图
5. 结论
Python的在线实验平台建设,对于公选课、专业选修课等不同性质的本科生课程,特别是公选课面对全校十多个学院且不同年级的学生教学,充分发挥了优势,解决了前期基础和学习能力参差不齐的问题,特别是解决了编译系统安装和调试频繁出现的问题,更可贵的是平台可以积累大量的真实、客观的基础数据,可用于筛选、对比分析、处理和加工,为课程建设的进一步优化提供了保障和支持。
基金项目
本文受东北林业大学实验室建设管理与实验技术开发项目“面向非计算机类Python程序设计类课程的在线实验平台研制”(编号:SYSXM202305)资助。