129
计算机教育
Computer Education
第 2 期2018 年 2 月 10 日
中图分类号:G642
文章编号:1672-5913(2018)02-0129-03基于CDIO 模式的Python 程序设计课程教学实践
魏冬梅,王 影,钟世芬,陈红红
(西华大学 计算机与软件工程学院,四川 成都 610039)
摘 要:针对Python 具有开源、简洁、跨平台、易扩展等优势及良好的发展前景,特别适合作为程序设计基础课程教学的特点,分析Python 语言教学的特点和不足,提出在Python 课程教学中结合CDIO 工程教育理念,重点阐述如何优化教学模式与教学框架,如何对教学环节中项目实训、综合评价等方面进行改革与实践。
关键词:
CDIO;Python 教学;项目实训;考核评价0 引 言
Python 是当前非常流行的动态脚本语言,近
年来已经连续被Tiobe 评为互联网时代最有价值的编程工具之一,2017年排名已上升至第四位。随着敏捷开发思想和方法越来越多地被企业级开发团队所采用,涉及网络运维、金融大数据分析、机器学习、深度学习等方向的Python 的应用越来越广泛,基于Python 构建的项目也越来越多。Python 发展如此迅速,逐渐得到高校的重视,很多高校开始将Python 纳入专业必修或选修课程,旨在培养学生编程思维和实际开发能力。然而,由于Python 在国内起步较晚,现有的课程体系及培养模式还存在一些不足,种种现状透射出Python 课程教学应当与时俱进,顺应市场发展需要和大数据发展趋势,制定课程改革方案,及时更新课程体系和框架,以实现更完善、高标准的培养目标。
1 Python教学发展现状
Python 起源于1989年底,由谷歌(Google)的工程师Guido van Rossum 发明,设计该语言的初衷是为了让编程像“ABC 语言”一样简洁明了,事实上,Python 的确具有语法简洁清晰,可以很轻松地调用其他语言(如C 语言或C++)编写的模块(DLL 文件)。Python 以其快速的开发速度,
在计算机编程普及的一些国家被广泛应用,在国际上也得到了足够的认可,但在中国的发展还处于起步阶段。
市场对Python 人才需求陡增,而学校教育培养不能及时满足市场的人才需求,产生该方向专业人才缺口;在国内,Python 的研究资料相较于C 语言或C++要欠缺得多,发展并不理想,很多学生在课后无法到解决问题的方法;Python 是动态语言,俗称胶水语言,相对于其他高级语言,拥有较少的数据类型、结构等语法知识,然而传统程序设计语言的教学都会偏重于对语法的讲解和知识的传授,没有过多地从思考问题、分析问题、解决问题的能力方面培养学生的编程思维,教学方法不科学、不合理。
2 课程体系改革
将Python 课程立足于实际项目需求,采用CDIO 工程教学理念,从课程体系、教学策略、教学框架和教学特等方面对课程进行改革,改革传统的教学方法、教学实施和考核方式,探索一套符合本课程实际的课程教学模式。在课程内容设计方面,突出工程教育的特点;在教学实施环节,强调理论教学与课内外实践相结合,提出分组教学与创新团队教学的模式;改革考核方式,提出让学生参与的综合实践评价体系。
基金项目:重点实验室开放研究基金项目“频谱占用度在线统计方法研究”(szjj2016-043);大学生创
新创业训练计划项目“涉外智能校园攻略系统APP”(05030072);西华大学教育教学改革项目“大数据时代Web 课程改革创新与实践”。
第一作者简介:魏冬梅,女,讲师,研究方向为智能信息处理、数据挖掘,happydon_2080@qq。
2018
130
计算机教育
Computer Education
2.1 结合CDIO 的Python 课程框架
CDIO ,指构思(conceive )、设计(design )、实现(implement )和运作(operate ),是由美国麻省理工学院和瑞典皇家理工学院等4所大学提出的现代高等工程教育理念,它以现代产品的生命周期为蓝本;以重视学生实践能力、学习能力以及系统掌控能力培养为主题,培养学生的工程科学能力、知识能力、终生学习能力、团队协作能力和职业能力。目前,丹麦、芬兰、法国、新加坡等国家的20多所大学加入了CDIO 合作计划。
基于CDIO 和Python 语言特征和发展趋势,对课程进行重新整理和设计,构建新的课程体系。由于Python 语言本身非常精练,应用项目涉及领域非常广泛,因此,将重点放在实践环节和项目演练,课程框架主要由Python 及扩展应用库组成,如图1所示。2.2 Python 课程培养目标
Python 是一种面向对象、直译式的计算机程序设计语言,第一个公开发行版发行于1991年,语法简捷而清晰,具有丰富和强大的类库,是Google 公司的四大开发语言之一。本课程主要以当前最流行的敏捷式脚本开发工具Python 进行教学。通过课程的学习,学生需深刻理解动态语言的特征,区分与C 语言、Java 、C++等语言之间的联系与不同;学生通过学习优秀的编程理念和方法,掌握敏捷式开发以及Python 程序开发相关的知识和技能;通过脚本语言编程方法的学习,提升学生程序逻辑思维、奠定编程基础;学生需掌握Python 的数据结构和语法以及运行和调试的方法,函数式编程技巧;重点培养学生应用Python 解决综合问题的能力,包括数据分析、文本处理、
图形编程和Web 编程等应用;要求学生利用实验教学设备采集数据、实现编程处理,培养学生的自主学习能力、综合应用能力、创新设计能力。
中国在线编程3 基于CDIO的Python课程教学实施
教师在教学中注重与学生交流、注重教学反馈,根据学生的实际情况来设定目标等级,做到分阶梯、分阶段的合理教学。分阶梯指根据学生的个体差异,分层教学,既照顾到大多数同学,又让实践能力
强的同学充分发挥;分阶段指将教学过程分为认知阶段、基本能力培养阶段、创新与实践阶段。如针对基础好的学生,除要求其完成基本的学习任务之外,应当正确引导其进行超前学习,扩展知识的方向,使其获得真实项目体验或参加各类大学生竞赛的信息,扩大知识面。3.1 理论教学与项目实训相结合
根据课程的培养目标和构建的课程体系,理论教学要为项目实训打好基础,项目实训也要为提高工程能力而服务,因此,理论教学与项目实训的比例基本为2:3,这有助于帮助学生梳理知识,明确学习目标,为实践操作搭建一个合理稳固的知识体系。
理论教学的具体实施分3个阶段进行。第一阶段以Python 基础教学为主,重点介绍Python 数据基础及数据结构、基本语法及Python 面向对象编程基础。第二阶段以Python 科学计算领域应用为主,介绍Numpy 库及Scipy 库的基本使用。第三阶段,根据学生的兴趣与特长,引导学生分类选择学习相关的高级应用方向,如擅长Web 方向的同学,引导其朝网络运维和信息采集
图1 Python 课程体系
7`[OVUॣӹࢥ࿘เ༪
7`[OVU ࠖԬ7`[OVU ज़࿘ࡁ7`[OVU জᅢॷ
ྡསॷ႓Ⴐ
W`NHTL
0THNL ັખᄖໃ>LI႓ႰගऔҘࠪ\YSSPI )LH\[PM\S:V\W :JYHW`
+QHUNV
5\TW`:JPW`ගऔࠖԬཧ؛ཨ
第 2 期131
教育与教学研究
方向学习;善于多媒体方向的,引导其学习图形图像处理及Python游戏扩展。
项目驱动是CDIO模式中倡导的主要教学手段,整个课程通过一个完整的案例进行组织,在教学过程中为学生建立真实软件项目开发的工作框架,引导学生“做中学”,提高学生的学习能力和工程实践能力,使学生能够从中得到实战经验。教学过程深入浅出、循序渐进,按照真实项目案例,在每一个知识点提升阶段,以综合实训的方式布置任务,制定基于CDIO项目的实训任务,见表1。
3.2 创新团队与分组教学
在教学过程中,将学生以2~4人分组,分配实训任务,并将任务拆分成若干模块,让组内成员独立完成后再整合,既训练学生的独立解决问题的能力,又培养团队协作精神。任务完成后,教师可从小组中选拔出特别优秀的小组,帮助他们成立创新创业团队,甚至利用自己的技术在校内外承接项目。
3.3 项目考核与综合评价体系
考虑到课程体系内容实践性强、扩展应用层面广,单一考核模式不能客观反映学生的真实水平,因此,考核方式需要打破传统。学生成绩由实训(40%)+项目(50%)+评价(10%)3部分组成,实训部分以平常的知识模块及实训任务为参考;项目任务部分以分组完成的实际项目作为考查与评价的核心;评价部分以小组或团队提交的项目为依据,各组通过答辩对项目进行展示和讲解,教师与同学共同打分,教师点评。
4 结 论
基于CDIO模式的Python课程教学改革的多项措施已应用于日常教学,从教学效果及学生反馈来看,课程改革取得了一定成效,其中分组项目实训和团队组建挖掘出很多有潜力的学生团队,他们已经具备独立承担小型项目和参与中型项目的能力。可以看出,基于CDIO的课程改革能更好地达到教学目标,提高学生成绩、提升实践能力,对学生未来专业发展有极大的促进作用。
表 1 基于CDIO项目的实训任务
项目任务具体任务描述涉及知识内容能力目标
Python基础及应用 任务1:开发文件浏览器涵盖Python第一阶段知识:Python标
准库、os库、sys库
1.掌握Python基础
2.类文件对象标准流操作任务2:设计目录管理器
Python科学计算应用 任务1:鸢尾花数据集训练及分类
涵盖Python第二阶段知识:Numpy库、
Scipy库、CSV库
1.掌握Python在科学计算领域
的应用
2.结构化数据存储
任务2:无结构数据作结构化处理
数据采集与解析任务1:采集指定整个网站
涵盖Python第三阶段知识:urllib库、
urllib2库、BeautifulSoup库
1.个人专业能力与素养
2.网络数据采集能力培养
3.数据分析能力培养
任务2:利用urllib2、BeautifulSoup
采集词条
Web开发任务1:室
涵盖Python第三阶段知识:Django库
1.构思与运作维护能力
2.工程项目开发能力和管理能
力
3.团队协作与沟通能力
任务2:利用Django建造Blog系统
任务3:Flask Web开发FAQ系统
多媒体应用任务1:多图像混合与拼接
涵盖Python第三阶段知识:pygame
库、Image库
1.掌握拓展知识能力
2.图形图像应用开发能力
3.团队协作与沟通能力任务2:图形算法验证
任务3:设计2048游戏
参考文献:
[1] 王硕旺, 洪成文. CDIO: 美国麻省理工学院工程教育的经典模式: 基于对CDIO课程大纲的解读[J]. 理工高教研究, 2009, 28(4):
116-1l9.
[2] 韩智, 张振虹, 李兴娟. 基于CDIO理念的软件工程课程教学改革[J]. 计算机教育, 2010(11): 56-59.
[3] 嵩天, 黄天羽, 礼欣. Python语言: 程序设计课程教学改革的理想选择[J]. 中国大学教学, 2016(2): 42-47.
[4] 姚竞. 面向项目的“Python程序设计”教学实践与研究[J]. 福建电脑, 2009(7): 198-199.
[5] Hetland M L. Python基础教程[M]. 司维, 曾军崴, 谭颖华, 等, 译. 2版. 北京: 人民邮电出版社, 2010.
[6] Chun W J. Python核心编程 [M]. 宋吉广, 译. 2版. 北京: 人民邮电出版社, 2009.
(见习编辑:景贵英)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论