“程序设计基础”课程建设报告
张 莉 曹淑艳
1 课程概述
1.1 课程意义
当前,计算机和信息技术已经渗透到社会生活的各个领域,成为改变社会的一支主要力量。在当今的高校人才培养中,程序设计类课程也不再是只针对计算机和信息管理专业而设的本科学习的入门课程,而是成为大学生必须掌握的基础课程之一。
通过该课程的学习,不仅要求学生掌握程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的技巧和方法,培养学生解决实际问题的应用能力。因此,本课程是培养学生以创新和实践能力为重点的具有鲜明特色的课程。提高程序设计基础的教学效果,最大限度地培养学生程序设计能力和应用能力是实际教学过程要解决的核心问题。
1.2 国内外同类课程比较
国内外高校都在理工科和管理、金融工程等专业开设了程序设计基础类课程,有的学校主要开设C语言系列程序设计课程,从C到C++;有的学校在计算机或信息管理专业开设了C或C++,在其他专业开设VB。在计算机教育方面,C语言是为数不多的与国外保持内容同步的课程之一,它在本科生教学中的地位之重要不言而喻。我校一直以C语言为基础进行讲授程序设计基础课程,基于C++与C的关系,我们采用了VC的上机调试环境。
1.3 课程特色
程序设计基础是一门学习计算机高级语言程序设计的课程。本课程通过介绍C语言中的数据类型、语句结构及其程序设计的基本方法,使学生掌握一门计算机高级语言和程序设计的思想,进而学会程序设计的技巧和方法,通过程序设计解决一般应用问题。它是信息管理、电子商务等专业的基础课,又是数据结构、数学建模、面向对象程序设计等课程的前导课程。同时,也是非计算机专业学生计算机应用能力水平考试二级考试的主要考试科目之一。
1.4 师资队伍
(1)知识结构:本课程的教学队伍由信息管理、电子商务系3名教师组成,分别拥有教授、副教授职称,并且两位教师具有博士学位,且拥有计算机专业的硕士学位。教师根据自己的教学和研究经验设置了教学中的案例以及实践环节的问题,取得了比较好的教学效果。
(2)年龄结构:本课程的教师年龄都在40岁以上,针对信息技术更新较快的特点以及学校越来越多专业对本课程的需求,还需要吸引更多年轻、充满活力的老师加入到本课程的教学队伍。
2.1 指导思想
我校目前主要在信息管理、电子商务、金融工程专业开设了程序设计基础课程,这些学生具有管理、经济方面的专业知识。因而在课程教学内容的安排上坚持以程序设计为主,语言知识为辅,强化实践教学,使学生掌握高级编程语言知识和编程技术的同时,掌握通过程序设计解决问题的思想和方法,训练逻辑思维能力,培养严谨的科学作风。坚持知识、能力和IT素养协调发展,体现我校复合型人才培养的目标和要求。
2.2 课程定位和目标
通过该课程的学习,不仅要求学生掌握程序设计语言的知识,更重要的是教给学生一种分析问题、解决问题的方法,在实践中逐步掌握程序设计的技巧和方法,培养学生解决实际问题的应用能力。因而在整个教学过程中,应本着“强化算法,弱化语法”的原则,即把程序设计的过程和方法当作授课的重点,培养学生如何分析并解决实际问题,逐步培养学生进行规范程序设计的能力,培养学生严谨的逻辑思维能力和科学作风。
2.3 课程建设历程
程序设计基础课程是信息管理、电子商务专业的基础课程,十几年来,随着计算机技术的发展和社会需求的变化,团队与时俱进,从未间断改革的步伐。我们适时引入先进的教学手段,为课程的教改提供良好的支撑环境。实验环境从最初的Turbo C到WIN-TC再到现在的VC++。最具特色的是实践教学、考核方法和教学手段的改革。
(1) 2008年完成了程序设计基础实践教学建设,并编写了实践教学指导书;
(2) 2009年完成了程序设计基础题库的建设;
(3) 2009年改革了考核方式,增加了上机考试环节;
(4) 2009年改革了实验环境,从TC系列转换到VC系列;
(5) 2009~2010年任课教师先后4人次参加高教中心举办的程序设计基础研讨会,学习、吸收其他高校的成功经验,并将其应用在我校的教学改革中。
3 教学内容、方法、手段,教学资源
3.1 课程内容
结合本课程的指导思想和培养目标,我们将本课程的教学内容划分成三个层次:
(1) C语言基础知识和简单程序设计
主要包括:数据类型、数据输入和输出、基本程序结构(顺序、分支、循环)。
(2)复杂的数据类型、程序设计以及常用的算法
主要包括:数组、指针、结构、文件类型和函数设计,以及排序、查找、插入、删除以及数值计算等常用算法。
(3)基本的程序设计方法和良好的程序设计风格
主要包括:结构化程序设计方法,如逐步求精法等;良好的程序设计风格,如程序模块化、加注释、缩进的书写格式等。
3.2 教学方法及手段
(1)教学内容的组织遵循两条主线,以程序设计为主,语言知识为辅
在整个教学过程中,本着“强化算法,弱化语法”的原则。通过合适的案例和问题将语法知识引出,并且只讲解最基本、最常用的语法知识。例如对变量数据的输入和输出,只强调和变量类型一致的格式和常见的表达方式,int i;scanf(“% d”,&i);printf(“% 5d”,i)。而从问题分析、建立数学模型、算法设计和编码、测试等方面,重点讲授程序设计的思想和方法,以及程序设计风格,使学生能从更高的角度认识该课程的学习目的,不局限于对语言本身的学习和编程技巧的掌握,更看重对语言应用能力的培养。
(2)基于问题的教学(www.daowen.com)
一方面,从问题入手,通过实际生活或者是工作中的一个实例引出相关的概念和知识点,即为每个知识点寻找一个合适的切入点,让学生产生共鸣,引起学生的兴趣。例如:在讲分支结构时,首先从一个生活中的一个实例引入分支结构就是选择决策,如网上的各种心理测试问题。通过实例让学生知道为什么我们要学习这一知识点,对应现实世界的“如果……,那么……”这样的问题,我们要在计算机上表达出来,就需要通过分支结构。
另一方面,要真正掌握程序设计的思想和方法,运用语言解决实际问题,综合训练是不可或缺的。学生自由选题,围绕要解决的问题进行分析和研究,查阅、自学相关的文献资料,确定技术路线和实施方案。整个过程以学生独立完成为主,教师只提供必要的辅导。经过这样的程序设计演练,不但提高了学生的学习兴趣,培养了问题求解和编程能力,还有利于培养探索和创新能力。
(3)案例驱动的主题式教学
许多学生缺少从实际问题建立数学模型的能力。因而在上课时,尽量多采用解决实际问题的案例。通过案例分析,重点讲解程序设计的思想和方法,辅以语言知识的介绍;然后通过大量的上机练习,包括验证型练习和综合训练,使学生在实践中掌握知识,培养分析问题、解决问题的能力。
(4)注重程序设计能力和技巧的培养,引导学生写出规范化的程序
在课程的初级阶段(程序控制语句),只要求学生写出的程序能够得到正确的结果,但随着课程内容的深入,逐步培养学生程序设计的技巧。一方面,鼓励、引导学生对同一个问题尽量提出多种设计方案;另一方面,引导学生对每种设计方案进行对比、分析,探讨每种设计方案的优缺点,通过这样的过程加强学生程序设计技巧和能力的培养,写出比较规范的程序。
(5)加强学生的上机实践
对于程序设计类课程,上机实践是影响学习效果的重要因素,上机实践不仅可以帮助学生们及时理解理论知识,而且极大地提高了学生的调试能力和实际应用能力。在课程教学过程中,尽量增加上机演示和调试的内容,多提供机会让学生自己动手实际操作。主要通过验证型作业和综合作业两个环节,要求学生上交的作业必须是上机调试通过的程序代码,讲完一个大的知识点后布置一个综合的程序设计问题,要求用到在此之前学过的相关知识,编写出程序并完成调试。通过典型程序的分析与设计,让学生复习巩固并灵活运用前面的知识。
(6)加强学生学习过程的管理,及时掌握学生学习的情况
讲授程序设计基础课程的老师都有共同的感受:学生提交的作业或者实验报告抄袭情况非常严重,所以根据作业有时很难判断学生对知识的掌握情况,另外,抄袭作业也达不到布置作业的目的,针对这种情况我们在教学中主要采用了两种方法:一是要求学生在提交作业的同时,提交一份诚信声明,声明作业是独立完成的,若参考他人的程序,要在作业中注明;另一方面,每完成一章内容的学习,布置一个合适的课堂作业,在规定的时间内提交。通过这种方式可以掌握学生对相关知识点的掌握情况,并且使学生养成诚信做事的工作作风。
3.3 教学资源
教材
(1)李凤霞等编著,C语言程序设计教程,北京理工大学出版社,2006 (2)《C语言实验指导书》,自编教学材料,2008
教学参考资料
(1)何钦铭、颜辉,C语言程序设计,高等教育出版社,2008
(2)谭浩强,C语言程序设计(第4版),清华大学出版社,2010
(3)(美) David M.Collopy著,罗铁庚译,C语言教程:模块化程序设计(第2版),清华大学出版社,2004
(4) Brian W.Kernighan,Dennis M.Ritchie,The C Programming Language(第2版),机械工业出版社,2004
实践环境
Microsoft Visual Studio 2008
4 取得的成果
4.1 教学特色方法及作用
在本课程的教学过程中,通过案例和问题驱动的教学模式,有效地融合了“自主、合作、探究”三种教学方式,实现教师和学生之间的良好互动,调动了学生探究新知识、新问题的积极性,让学生享受快乐学习的机会,取得了比较好的教学效果。
另一方面,在教学过程中注意对学生进行知识与应用结合、实践与创新结合的培养,学生较好地掌握了程序设计技术和方法。
4.2 教学研究成果
发表教学论文:
(1)程序设计基础课程教学改革与实践
(2)代码相似性检测在程序设计教学中的应用
(3) C语言考试系统的设计与实现
完成了实践环节和题库的建设。
主讲教师先后参加了2009~2010年高教中心举办的程序设计课程研讨会,在会上介绍了我校课程建设经验。
4.3 学生的收获与评价
(1)课程组的教师教学效果普遍较好,在近三年的教学评价中,均被评为优,张莉老师2011年、2012年的教学在对外经济贸易大学课堂教学质量评价中位于前10%,2009年位于前20%。
(2)综合作业的实施,不但使学生在实践中学习和应用软件工程的思想和方法,在学习上得到充分地发展,还培养了学生的自主学习能力和探索创新的能力,为他们今后的学习和研究打好基础。许多同学在综合作业以及数据结构的课程设计中所编写的C源代码一般在500行左右。
5 课程建设展望
尽管在课程的建设方面,我们取得了一些成果,但是信息技术在不断地发展、更新和替代,这要求我们要用发展的观点审视、精选、重编和更新教学内容、题库、实践内容,加强拓宽基础与概念,跟踪发展前沿,及时将新知识、新理论和新技术充实到我们的课程教学内容中。
其次,需要进一步加强师资队伍的建设,鼓励一批年轻、充满活力的老师加入到教学队伍中,并给任课教师寻找机会进行必要的培训、进修。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。