基于CDIO工程教育模式的C语言课程教学改革
2016-03-16黄丽韶
黄丽韶
摘要:为了提高学生的C语言程序设计思维和编程技巧,文章尝试以CDIO工程教育模式进行教学改革,完整的设计了C语言课程的教学目标,逻辑体系框架,知识要点、能力要点的掌握程度,实施方法及考核方式。
关键词:CDIO工程教育;C语言;教学改革
C语言程序设计是我院计算机科学与技术专业开设的第一门核心专业基础课,是后续专业课程的先修课程,是计算机专业规划里的一门重要课程。学生在学习的过程中基本上能掌握结构化程序设计的基本知识,但缺乏程序设计思维,并不具备掌握工程化思想进行系统开发的能力。文章基于CDIO工程教育模式尝试对C语言课程进行教学改革,旨在以问题驱动的方式,引起学生的学习兴趣,调动学生的学习主动性,让学生按照软件工程的思想从需求分析、系统设计到系统编码,再到系统测试,进行项目的设计与开发。
1 教学目标的设计
学习C语言课程,将为后续其他编程类课程的学习打下一定的基础,并且培养学生在10个方面的CDIO能力,分别是一下内容。
(l)计算机软件开发知识:熟练掌握C语言基础知识。
(2)系统的显现和交互作用:培养学生识别系统所表现的行为和功能特性的能力。培养学生识别系统单元间的重要接口的能力。
(3)解决问题时的妥协、判断和平衡:掌握C语言程序设计中跟踪调试的技巧,在编写程序的过程中及时发现问题并解决,理解程序测试的重要性,能根据测试结果修改程序。
(4)分析问题:运用所学知识解决问题。
(5)验证假设与结论:能够根据需求、设计阶段的假设,通过编程验证得出符合系统的功能。
(6)综合和通用化:能够运用所学知识解决实际问题,在解决过程中学会融会贯通,灵活应用。
(7)发现问题和表述问题:在编写、测试、运行程序的过程中善于发现问题,运用所学知识加以解决。
(8)软件工程知识:掌握主流软件开发过程模型。掌握软件工程的基本原理,进行项目开发。掌握软件开发基本工具的使用方法。
(9)设计过程:分析备选设计方案;选择初始设计方案;综合最终设计。
(10)软件实现过程:将高层组成部分分解为模块设计,讨论算法,描述编程语言,实施底层设计。
2 教学内容的逻辑体系框架
教学内容主要分为3个部分:第1个部分采用30个以上生动活泼的小案例,按照分支结构、循环结构、数组、函数、指针和字符串、结构体与链表、文件、C语言图形函数八大部分知识分类,将C语言全部的语法学习一遍,所有案例既锻炼了学生的逻辑思维能力,又能解决实际问题。第2个部分设计1个实际的大项目,完全按照软件工程的思想从项目的需求分析、系统设计、系统编码、系统测试等环节进行,从而使学生熟悉项目的开发流程,培养学生软件工程的设计思想。第3部分设计1个游戏,目的是提高学生的学习兴趣,扩展学生的知识面。
3 知识要点及掌握程序
教学的知识要点主要按以下8个单元进行阐述。 一单元的知识要点:if else、if else if、switch语法及其灵活运用,掌握程度为运用。二单元的知识要点:while、do while、for语法及其灵活运用,循环的嵌套,枚举法,多重循环,倒推法,掌握程度为运用。三大循环典型结构及逻辑思维能力训练方法总结,掌握程度为理解记忆。三单元的知识要点:数组元素的定义、引用,数组元素的查找,一维数组的应用,二维数组元素的查找,二维数组的应用,掌握程度为运用。一维和二维数组的定义、引用、查找等基本操作及其灵活运用,掌握程度为理解记忆。四单元的知识要点:无参函数的定义、应用,有参有返函数的定义、应用,函数的综合应用,掌握程度为运用。介绍函数的四钟形式及其应用,掌握程度为理解记忆。五单元的知识要点:字符串的应用,指针与字符串的综合应用,掌握程度为语用。指针与字符串的基本概念及其应用,掌握程度为理解记忆。六单元的知识要点:结构体数组的应用,链表的应用,掌握程度为应用。结构体、链表的基本概念和应用,掌握程度为理解记忆。七单元的知识要点:文件的打开和关闭,在文件中读写一个字符串,文件是数据块的读写,文件和链表的综合应用,文件各知识点的综合应用,掌握程度为运用。八单元的知识要点:图形显示的基本原理、画线函数的应用,圆、椭圆等函数的应用,矩形、填充等函数的应用,C语言图形处理函数的综合应用,掌握程度为记忆运用。
4 能力要点和掌握程度
能力要点和掌握程度,如表1所示。
5 教学设计与实施方法
本课程理论为48学时,实践为32学时。为了达到良好的学习效果,还需要学生在课外进行大量的自学,查阅相关的资料。课外学习学时建议达到32学时以上。实施方法主要是边讲边练,项目组研发形式开发模拟实际工作场景的实践教学。教学实施方法主要包括讲授教学法、实验教学法、自主学习法等,具体如下:
(l)本课程以提高学生的编程技巧、培养软件工程思想为主导,主要通过项目训练加强学生动手操作和解决实际问题的能力。
(2)教学过程中,以学生为主体,鼓励学生自主学习,团队协作等,加强工程能力的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学方法,完成课程教学任务。
(3)教学实施过程中,提供丰富的教育资源,如课件、案例、录像、网络资源等等,并辅助以大量的课后训练,提高学生的编程能力。
实践环节设计的主要项目包括单元组项目和课程综合项目,其中单元组项目是上述提到的8个知识单元项目,课程综合项目设计为商品库存管理系统和贪吃蛇游戏。该系统主要实现对中小型商品流通公司商品库存的相关业务进行管理,主要包括商品的入库管理、出库管理、库存信息维护、客户信息维护、供应商信息维护、查询统计及其用户管理等7大功能。主要的项目成果是项目报告,实施方法是实验教学法。贪吃蛇游戏主要是在屏幕上给定的一个区域内进行,玩家通过控制键盘上的上、下、左、右方向键来控制“蛇”的前进方向。屏幕上随机出现“食物”,只要蛇头位置与食物重合,就认为吃到食物,蛇身正常一节,分数也增加。玩家可持续玩,直到蛇碰到周围的墙壁或蛇头撞上蛇身体,游戏结束。项目的成果为项目报告,实施的方法主要是实验教学法。
6 结语
本课程采用百分制,满分100分。实验成绩由平时成绩、答辩和实习报告考核成绩3部分构成。平时成绩占总成绩的60%,分为学生评定和教师评定两个部分,比例为3:7左右。答辩占总成绩的10%。实习报告占总成绩的30%。考核又分为形成性考核和终结性考核。形成性考核占60%,主要有系统分析,系统设计,系统实现,测试与评价。考核的主要内容包括:课堂表现及作业完成情况,系统各功能的代码完成情况,测试结果及组间评价结果。终结性考核占40%,主要是答辩和项目报告。答辩主要是系统各功能模块知识点的掌握情况,项目报告主要是填写是否规范,内容是否正确,代码填写风格是否一致。