计算机程序设计类教学探索

时间:2022-06-03 03:18:12

计算机程序设计类教学探索

1计算机程序设计类课程教学现状及存在的问题

1)计算机程序设计类课程体系设置不够合理

目前,不少高校计算机专业程序设计类课程的设置,大一新生一进校,第一学期就开设C语言程序设计,或者C++程序设计,其理由是认为学生在中学阶段进行过信息技术教育和简单的程序设计基础训练。而结果呢,由于中学阶段的信息技术教育在很多地区特别是农村地区得不到重视,或者没有全面的开展实施,学生刚入大学时对计算机的认识和理解不够深入,就进入了C语言或者C++语言程序设计的学习,其教学效果很不理想。因此,学生对后续课程如《数据结构》、《Java程序设计》等课程的学习也将受到很大影响,显得很吃力,而且学习效果也比较差。

2)教育理念和教学方式不够恰当

程序设计类课程的教学,如C语言程序设计或者C++程序设计,很多教师注重基本概念和语言的语法规则的教学,在相应的课程实验中也只是对基本语法的训练,而忽略了对学生分析问题的方法、思想的培养,学生的创新能力不强。因此,学生在学完一门程序设计类课程后,往往感觉到能阅读程序,能读懂程序,能理解别人写的程序,可让自己动手来编写一个稍微复杂一点的程序,却显得很茫然,无从下手。

3)教学内容的组织和安排不够符合学生的认知规律

学生对程序设计类课程的学习,很大一部分同学是:翻开教材,课本中的程序个个都会,能看明白;闭上书,自己来重写一下这些程序,错误百出。其原因还是由于教师在教学过程中没有把握住学生的认知规律,学生对课程知识理解不够牢固[2-3]。如《C语言程序设计》课程的教学过程中,指针这一部分知识是安排在教学内容的靠后章节讲授,学时短,应用少,但指针却是这门课程的重点,后续课程中的应用很多,学生对这一知识掌握不好,势必影响后续《数据结构》等课程的学习效果。

4)教材建设缺乏针对性,系统性

目前,很多普通高校计算机专业都还没有编写适合自己学生的教材,基本上都是使用高校计算机专业规划系列教材,而程序设计类课程的教材很多,每本教材都有作者自己的内容安排和章节设计方案,而且教材的选用也不固定,不同的授课教师常会选用不同的教材,这样往往会有在程序设计类课程群的教材使用中,出现知识点和讲授内容的重复、教材的难度与学生的知识水平不符等问题,教材建设针对性和系统性差。

2计算机程序设计类课程教学改革方法及措施

1)调整计算机程序设计类课程体系

针对在现行的课程体系中,学生由于C语言或者C++程序设计的学习效果不理想,而导致对后续课程的学习受到很大的影响,应将计算机专业程序设计类课程教学体系和课程设置进行调整。在大一第一学期开设《计算机导论》课程,目的是让学生对计算机学科和计算机领域的研究内容有初步的认识,了解并掌握如数据在计算机中的存储与表示、计算机工作原理、计算机基础知识,计算机硬件系统,计算机软件系统,多媒体技术基础,通信与网络基础等方面的知识。[4]在此基础之上,大一第二学期开设《程序设计基础》课程,讲授内容可以是C语言程序设计或C++程序设计,目的是进行程序逻辑训练,让学生掌握程序的基本结构和程序调试基本技能。在学生掌握了基本的程序设计基础之后,再开设《高级程序设计技术》课程,重在培养学生程序设计方法和思想,其教学内容是程序设计中的一些高级处理技术,如数据类型、指针的高级应用,文件的操作,图形界面与动画设计,键盘与鼠标操作,以及一些典型算法应用。在学生掌握了程序设计能力和程序设计思想方法基础上,再先后开设《数据结构》、《Java程序设计》课程。《数据结构》课程是培养学生根据实际问题的要求有效地组织、存储、处理数据的能力;《Java程序设计》贯穿面向对象程序设计新理念,让学生掌握面向对象程序设计思想和技术。在高年级,针对不同的专业方向,还可开设VC++、C#、LINX等程序设计类选修课程,提高学生的编程水平和实践能力,以满足社会对软件人才的不同需求。这样,就形成了“基础训练+方法培养+提高能力+拓展层面+实践应用”的程序设计教学新模式和程序设计类课程新体系。

2)改革教育理念和教育教学方式

程序设计类课程的课堂理论教学中,采用案例教学法可以取得较好的教学效果,可将一个较复杂的项目分解到各章节去讲授介绍。如在《程序设计基础》课程教学过程中,我们使用了一个学生成绩管理程序项目案例,在讲授数组这一部分知识时,就可以将这个案例引入进来,介绍为什么要使用数组来存储多个学生的成绩,要对学生成绩排序应该怎么办;当课程进行到函数这一章时,引入了案例中的模块设计思路,介绍为什么要将项目分解为成绩录入、成绩排序、成绩查找、成绩统计等多个模块,模块之间如何去调用;当课程继续进行到结构体这一章时,让学生分析理解案例中,学生的信息不仅包含成绩,还包含姓名、学号时应该怎样处理;讲授到文件这一章时,让学生理解要将案例中的学生成绩等信息存储到一个文件中去,怎样去实现。这样,通过这一个完整的案例贯穿到整个课程的学习,不仅能使学生掌握课程中的基本知识,也能让学生直观的感受到一个复杂项目的设计过程。

3)改善教学内容的组织和安排

在程序设计类课程的教学过程中,我们将教学内容进行了调整和重新组织。在《程序设计基础》课程的教学过程中,将指针这一部分知识分散到各个章节去讲授,在讲到变量定义时,就引入地址和指针的概念,讲到数组和函数部分时,将指针的应用也同时在案例中进行讲授,这样,同学们也很容易接受和消化理解。在《高级程序设计技术》课程教学中,不讲授语言的基本知识,只讲授指针、文件、图形界面、动画、键盘、鼠标等的高级应用操作和设计。《数据结构》课程中,讲授各种抽象数据类型的定义,及相应的算法设计。在《Java程序设计》课程教学中,重在培养学生面向对象程序设计思想和编程技术,对教材中的基础知识部分如常量、变量、数据类型、数组等进行略讲或不讲,只是在应用中进行简单介绍该注意的问题,这样,就可以将更多地学时放在对学生面向对象编程思想的培养上。

4)加强课程和教材建设

在程序设计类课程群教材建设方面,应该有区别的选取具有系统性的、适合自己学生水平的高质量教材,或者课程群相关教师合作编写出版教材或讲义,这不仅使课程群中的课程教学内容具有系统性,也适合自己学生的认知水平,具有较强的针对性,同时,授课教师也能熟练驾驭教材和授课内容。近年来,我校计算机专业程序设计类课程群教师编写出版了《程序设计基础》、《数据结构》教材和相配套的习题册,教学效果有了明显提高。

3结束语

程序设计类课程的教学重在培养学生的程序设计思想和创造性思维能力,课程体系设置应该合理,课程群间课程的教学内容安排应该相互协调、补充,教学方式应多以项目式案例教学为主,让学生在案例中学会程序设计思想和对基本知识的理解,应加强课程和教材建设,以保障知识讲授的针对性和系统性,这样,才能在教学中取得较好的教学效果。

作者:林勇工作单位:陕西理工学院数学与计算机科学学院