1. 引言
随着信息技术的飞速发展,人工智能、大数据、云计算等前沿技术正在深刻改变社会的生产和生活方式。为应对这一新科技革命和产业变革的挑战,教育部自2017年起陆续发布了一系列文件,如《关于开展新工科研究与实践的通知》[1]、《高等学校人工智能创新行动计划》[2]等,明确提出要推进教育教学改革,培养具备创新能力和实践能力的复合型人才。在这一背景下,Python语言,凭借其简洁、高效、易学的特点,已广泛应用于数据分析、人工智能、Web开发等应用场景及金融、医疗等多个领域[3]-[6],成为新工科教育中的一门重要核心课程。
当前传统的Python程序设计课程多以语法讲解和零散的小练习为主,缺乏系统性、实践性和社会服务导向,导致学生在学习过程中缺乏对完整项目开发流程的深入理解,且难以将所学知识转化为解决实际问题的能力[7]。这使得学生在毕业后难以适应社会对高技能型人才的需求,尤其是在面对复杂的工程问题时,缺乏足够的实践经验,主要表现在以下几个方面[7] [8]:
(1) 教学内容碎片化。多数Python课程以语法知识点为单位组织教学,学生虽能够完成孤立的小练习,但缺乏对完整项目开发流程的认知,难以将所学知识系统地应用于实际项目中,这种碎片化的教学方式使得学生对如何将编程技能整合成一个完整的工程项目感到迷茫;
(2) 实践载体缺失。尽管有些课程尝试引入案例教学,但大多数案例往往过于简化,如计算器、小游戏等,且这些案例通常与工程需求脱节,难以激发其解决实际问题的兴趣;
(3) 能力培养单一化。传统教学模式侧重编程语法训练,忽视了全流程培养(如需求分析、系统设计、测试部署等),导致学生在项目开发过程中,由于缺乏实际的工程经验,解决工程问题能力较弱;
(4) 评价方式片面化。课程评价多依赖于笔试和独立作业,无法全面评估学生的综合能力,尤其是项目协作、创新设计和解决实际问题方面的能力。
国内外教育界已经意识到这些问题,并积极探索改革路径,杨颖辉等提出根据学习阶段的递进引入小型、中型企业实战案例,通过教学内容重构、教学模式融合、线上线下联动、考核方式多元、以赛促学的教改设计路径,促进学生专业素养和任务素养并重、职业素养和社会素养共进[9]。张懿[10]探索了人工智能与Python语言课程改革的可行性,并基于人工智能与不同专业课之间的耦合,定制化分支课程,从人才培养机制、课程模式改革和专业课应用路径等方面提出面向电气类专业学生的基于Python语言的人工智能素质培养对策。黄晓辉[11]将Python融入《数字信号处理》这门课程的理论讲授、实验操作和课程设计三个环节,构建以Python为基础多位一体的综合教学模式。章蓬伟[12]等通过游戏案例设计和情景在线的数据处理,激发学生学习编程的兴趣,提高学习主动性。
项目式教学作为一种新颖且动态的教学模式,师生通过一个共同的项目任务开展教学活动,在解决具有挑战性的问题过程中实现知识构建和能力发展,对深化知识理解和应用具有重要意义[13]。然而,目前大多数改革仍聚焦于技术密集型项目(如人工智能、大数据分析)以及小型案例教学设计,且课程设置的案例之间缺少逻辑关联,较少涉及公共服务类软件的开发。尽管Python在许多社会问题的解决中具有巨大潜力,但如何有效地将基础编程知识逐步转化为完整系统的开发能力,仍然是一个亟待解决的教学难题。
本文采用项目式教学方法,提出以“公共服务”为导向,最终目标是开发一个“资料共享平台”,通过16周的分阶段任务链设计,将传统的零散代码练习整合为一个完整的项目开发流程,达到将Python教学从“零散练习”升级为“项目式学习”,并以“公共服务”为导向,能极大地提升课程的教学效果和育人价值。
2. Python课程体系项目化建设意义
本教学改革旨在解决Python课程中“重语法轻实践”“学用脱节”的问题,通过项目化学习,帮助学生从被动接受知识转向主动构建解决方案,提高其问题分析与解决能力;培养学生的工程实践能力、系统思维和团队协作精神,符合新工科“创新性、实践性、交叉性”的人才培养目标。项目化建设的意义体现在以下方面:
(1) 对学生而言实现从“知识学习者”到“价值创造者”的转变
项目驱动模式将原本割裂的Python语法、文件操作、数据库、Web框架等知识点,有机地串联起来,学生在解决真实问题的过程中,能深刻理解各项技术如何协同工作,从而构建起坚实而系统的知识体系。学生不再是被动地完成孤立的编程题目,而是作为“开发者”亲身参与一个具有社会价值的项目,从需求分析、系统设计到编码实现、测试部署,学生能直观看到自己的代码如何汇聚成一个有实际功能的平台,从而获得强烈的成就感,激发内在学习动力。
此外,一个完整的项目开发流程要求学生注重代码规范、用户体验和文档撰写,这有助于培养其软件工程的“工匠精神”,项目中的模块化分工也能初步锻炼学生在技术团队中的沟通与协作能力。
(2) 对课程教学而言实现从“理论传授”到“能力赋能”的革新
本文是对传统“语法–例题–练习”教学模式的深刻革新,提出一种“在做中学”、以学生为中心的沉浸式学习体验,显著提高了教学的吸引力和有效性。针对本科生教学普遍分为32学时,16周完成教学任务的现状,所设计的“16周分阶段任务链”为广大Python课程教师提供了一个极具操作性的项目式教学范例,具有重要的借鉴和推广价值,能够助力于整体编程教育水平的提升。
(3) 对社会与公共服务而言实现从“技能教育”到“素养教育”的升华
本文提出以“公共服务”作为项目内核,引导学生在学习技术之初就思考技术如何服务于人、造福社会,这不仅是技能的传授,更是一次深刻的数字素养与科技向善价值观的教育,有助于培养有社会责任感的未来开发者。课程结束时,每个学生小组都可能产出一个可运行的、为解决特定校园或社区公共问题(如图书漂流、学习资料共享、志愿活动信息发布等)的原型系统,这些成果本身即具备一定的社会服务潜能。
3. 课程体系的构建内容与实施方案
主要围绕课程体系的重构、项目化教学设计、案例库建设及评价体系创新4个方面展开,确保课程内容的创新性、实践性和应用性。
3.1. 课程体系建设内容
(1) 课程体系重构
课程体系采用“三阶段递进式”架构,分为基础阶段、进阶阶段和综合阶段,旨在通过层层递进的学习过程,帮助学生逐步掌握从编程基础到完整项目开发的全过程。
基础阶段。主要学习Python的基础语法,搭建学生的编程基础;掌握文件操作模块,实现平台用户交互功能(如资源上传与下载);运用列表、字典等数据结构管理数据,打下扎实的数据处理基础。可通过课件、视频教程和编程练习平台,将基础语法和数据处理模块提供给学生,并安排每周一次的小型项目任务,以验证学习效果。
进阶阶段。运用面向对象方法设计平台的用户管理系统,提高学生的抽象设计能力;通过异常处理机制增强程序的稳定性和健壮性;学习类继承的应用,掌握多级权限控制,实现更高层次的系统设计。可加强面向对象编程、异常处理机制及类继承等方面的课程,配合模块化的编程练习,进行实际的系统设计和编码实践。
综合阶段。使用wxPython、PyQt等开发图形用户界面(GUI),提升学生的界面设计能力;集成SQLite数据库,实现数据存储和管理,增强数据库操作能力;使用matplotlib实现数据可视化,帮助学生学习如何将数据以直观的图表展示。在进行GUI设计和数据库应用时,结合实际项目要求进行案例实操。通过项目指导教师和行业导师的辅导,确保学生能够掌握完整的开发流程。
(2) 项目化教学设计
为了提高学生的工程实践能力,本文提出通过“项目化”教学改革,将教学内容与实际项目相结合。课程将以资料共享平台的开发为主线,依托该平台的核心功能模块(如用户管理、文件存储、权限控制等),开展实际项目开发与应用的教学。每个学习阶段围绕一个具体功能模块(如用户管理、权限控制、文件存储等)开展小型项目,并以最终的“资料共享平台”作为最终综合项目;采用分层任务设计,针对学生基础差异,设计差异化任务,其中基础层学生负责核心模块的具体实现,核心层学生担任模块负责人,进行设计与整合,进阶层学生负责技术选型、架构搭建与难点攻关,确保全员参与。教学模式为“学做一体”模式:理论与实践相结合,每个阶段的学习任务都与实际开发需求紧密对接,通过“学–做”循环不断深化学生的编程能力和项目开发经验,结合课堂教学与实践任务,强化学生的实践能力,并定期进行项目进度检查;通过学术导师、企业导师和学长导师的共同辅导,保证课程内容与实际工程需求的高度契合。
(3) 开发“需求–代码–产品”一体化的阶梯式教学案例库
为了增强学生的工程实践能力,提出构建一个面向公共服务场景的Python项目化教学案例库。每个案例将按照“应用场景–技术方案–代码实现–产品集成”的四维架构进行系统设计,涵盖从技术实现到系统集成的全流程。希望通过这套完整的教学案例,学生能够深入理解从需求分析到产品开发的全过程,帮助学生掌握完整的技术实现流程和解决方案,确保教学内容贴近实际应用。
以开发面向公共服务的项目案例库为例,将项目分为多个子模块,包括用户认证、数据存储、图表展示等,学生可以通过逐步的代码实现,理解项目的设计思想和技术方案。通过教学案例库,学生能够全面了解项目从需求分析到产品实现的过程。
(4) 评价体系创新
为了全面评价学生的学习成果并激发其创新思维,构建一个以“公共服务”为导向的多维的评价指标体系,综合评价学生的表现,促进学生的全面发展,评价内容涵盖代码质量、项目进度、团队协作、创新应用、公共服务价值等五个维度。具体评价体系如表1所示。
Table 1. Evaluation system table
表1. 评价体系表
评价维度 |
评价内容 |
权重 |
代码质量 |
规范性/可读性 |
30% |
项目进度 |
里程碑达成 |
25% |
团队协作 |
沟通贡献度 |
15% |
创新应用 |
新技术运用 |
10% |
公共服务价值 |
用户需求分析与项目社会意义 |
20% |
各维度评分均按照优(90~100分)、良(75~89分)、中(60~74分)、差(0~59分)来进行评价,为每个评价维度定制一个评分细则。例如针对代码质量评价维度,代码结构清晰,模块化程度高,遵循PEP 8等规范,异常处理机制完善,程序运行稳定可靠则为优;代码结构较为清晰,基本遵循编码规范,命名和注释基本恰当,可读性良好,有基本的异常处理,程序大部分场景下运行稳定等则为良。
针对团队协作的评价,在学期末,每位成员需根据任务难度、完成质量、协作精神等指标,对自身及其他所有成员进行匿名评分(占总贡献评分的50%);利用版本控制系统(如Git)的提交记录,统计成员的代码提交量、有效代码行数、解决的问题数量等作为客观参考(约占30%);教师和助教根据平时观察、小组记录、阶段性汇报表现等,对成员的贡献进行评定(约占20%);结合上述数据,共同评议并确认每位成员的最终贡献度系数,确保评估的公平公正。
3.2. 课程体系建设具体执行方法
课程体系建设主要从课程设计与开发、教学资源建设和资料共享平台的开发与部署3方面展开。
(1) 课程设计与开发
模块化教学。根据教学大纲的具体授课内容,如图1所示,将课程内容按照基础、进阶和综合三个阶段进行划分,主要包括Python基础语法、面向对象设计、Web开发、数据库操作等,每个阶段都以一个独立的小项目为中心,确保学生在逐步掌握基础知识后,能够在项目开发中进行实践。
Figure 1. Schematic diagram of course design phases
图1. 课程设计阶段划分示意图
案例驱动。每个教学模块都与具体功能相关联,学生通过完成与资料共享平台相关的子任务(如用户管理、文件上传下载、权限控制等)积累项目开发经验。
项目化教学。结合实际案例,采用“需求分析–技术方案–代码实现–产品集成”的四维架构,在教学中引导学生完成资料共享平台的开发。
(2) 教学资源建设
教学案例库。构建一个包含完整技术实现的教学案例库,涵盖从代码实现到产品集成的各个环节。
模块化代码示例与API文档。为学生提供每个模块的代码示例,并附上详细的API文档与部署指南。
实战项目与评估。通过小组项目和个人任务,鼓励学生在实践中解决实际问题,并通过项目评估学生的工程能力。
(3) 平台开发与部署
在教学过程中,学生将逐步开发出一个具备完整功能的资料共享平台,涵盖用户认证、文件上传下载、数据存储、图形界面、数据可视化等功能。最终,平台将进行容器化部署,确保学生能够掌握现代开发与部署的技术。
通过前期的顶层设计,操作路径如表2所示,包含模块化教学、项目驱动学习、小组合作学习、多维反馈机制等,最终通过实际开发项目,让学生参与实际的开发任务,将理论学习与项目实战相结合,提升学生的编程能力与工程实践能力。
Table 2. Operating path and design features
表2. 具体操作路径与设计特征
序号 |
操作路径 |
设计特征 |
设计目标 |
1 |
模块化教学(三阶段划分) |
(1) 基础:语法/文件操作。(2) 进阶:OOP/异常处理。(3) 综合:GUI/数据库。 |
技能树递进式生长 |
2 |
项目驱动学习(以资料共享平台为锚点) |
用户管理、文件操作、权限控制、可视化展示、容器化部署 |
真实项目全流程覆盖 |
3 |
小组合作学习3~5人小组采用Scrum模式 |
每周讨论、迭代开发、贡献度量化评估 |
敏捷开发实践 |
4 |
多维反馈机制 |
教师点评、同学互评 |
360˚立体反馈网络 |
为系统验证本课程体系建设的成效,对参与试点的教学班进行了为期一学期的教学实践,班级人数32人,以每组4人将教学班分为8组,每组中2人负责核心模块的实现,1人担任模块负责人,进行设计与整合,1人负责技术选型、架构搭建与难点攻关。通过分析最终的项目作品与多维评价数据,得出如下评估结果。
(1) 项目完成度达到100%。项目小组均成功交付了可运行的“资料共享平台”,100%完成了课程定义的核心功能(用户管理、文件上传下载、评论互动)。
(2) 代码质量与工程规范较往届明显提升。所有小组均采用Git进行版本控制,并实现了模块化开发,项目平均代码规范得分从上届的75分提升至80分。
(3) 技术应用与架构选择呈现多样化。在Web框架选型上,5组采用Django,3组采用Flask,表明阶梯式教学案例库有效支撑了学生的技术迁移与方案设计能力。
(4) 团队协作与个人贡献评估机制运行良好。基于量化数据与自评、互评、师评的贡献度评估方法,有效保障了“分层任务设计”的公平性,激发了全员参与。
(5) 公共服务价值导向成效显著。所有项目均在其设计文档中阐述了社会应用场景,证明以“公共服务”为导向的改革理念已成功融入项目实践,有效培养了学生的系统思维与社会责任感。
4. 小结
本文针对传统Python程序设计课程中存在的教学内容碎片化、实践载体缺失、学用脱节等问题,提出以“公共服务”为导向、以“资料共享平台”完整项目为驱动的教学改革方案。该方案构建了“基础–进阶–综合”的课程体系,实现技能树的递进式生长;实施了贯穿16周的“分阶串联式”项目化学习设计,将零散知识点融入完整的项目开发流程;提出建设“需求–代码–产品”一体化的阶梯式教学案例库,为学生提供全流程支持;创新了涵盖代码质量、项目进度、团队协作与创新应用的多维评价体系,以全面评估学生的工程实践能力。
通过项目化的教学重构,激发学生的学习动力,提升学生系统思维、项目开发、团队协作及技术创新能力。该模式不仅有助于将基础编程知识转化为完整的系统开发能力,为新工科编程类课程改革提供了可借鉴的课程体系构建与实施范式,更有助于培养学生技术服务于社会的责任意识。
基金项目
本文受浙江理工大学2025校级一般项目廉洁教育专项资助(项目号:jgybljzx202501)。