1
C语言程序设计
 

课程建设与改革总结报告

 

        《C语言程序设计》是对计算机程序设计技术要求较高的电气信息类各专业的重要的基础核心课,是计算机专业一门重要的专业基础课,其目的是培养学生的程序设计理念、掌握程序设计的基本方法,为后续课程(数据结构、面向对象程序设计、操作系统、编译原理和软件工程等)打下坚实的基础。《C语言程序设计》同时又是一门实践性很强的课程,在对学生进行程序设计基本理论与技术技巧能力训练的同时,突出对学生进行解决实际问题的编程能力的培养,鼓励学生学以致用。
       该课程于20054月被列为计算机系一类建设精品课程,200612月被评为院立项建设精品课程。

1、课程历史沿革

        我校开设《C语言程序设计》课程的历史较悠久,最先开始于原数理科学系的计算机软件专业,目前我院计算机工程学院、电子工程学院、理学院、测绘学院、机械学院以及东港学院等多个本科专业均把《C语言程序设计》作为专业基础必修课或专业选修课程,该课程的建设经历了以下四个阶段:

12000年以前

我校只有专科的计算机专业,《C语言程序设计》课程属数理科学系,当时计算机专业的师资力量比较薄弱,还不足以成立系,教学经验优待提高,教学方法以传统教学方式为主,教学手段开始尝试多媒体投影教学,当时主要采用纸质手写教案和Word文档的电子教案。

220007月~20027

学校成立了计算机科学系,计算机系对《C语言程序设计》课程的教学内容与体系进行了认真的研究和优化,积极开展教材和教学参考资料的建设工作。选用高等教育出版社谭浩强教授编写的《C语言程序设计》教材,课堂教学积极采用多媒体等先进的教学手段授课,研制开发了C语言程序设计》,不仅提高了学生学习计算机课程的兴趣,同时也改善了教学效果。 

320028月~200612

2002年,学校先后与原化工高专实现合并,计算机系也吸收了一批优秀教师,教学队伍得到进一步壮大。为了进一步改进教学方法、提高教学水平,2002年在对《C语言程序设计》进行教学研究与探讨的基础上,将课程学时由以前的48学时调整到64学时,同时增加了为期一周的《C语言程序设计》课程设计。经过课程小组积极努力,该课程于20054月成功申报计算机系一类精品课程,在课程建设上得到了一定的资金支持。课程组教师充分发挥自身技术优势、网络技术和多媒体技术在教学中的辅助作用,架构了一整套功能较为完善的网络教学平台,实现了学生对该课程的学习不受时间、地点的限制,扩大了师生交流平台。

4200612月~至今

200612月,《C语言程序设计》被立项为淮海工学院精品课程建设项目,我们在原先课程小组的基础上,进一步完善师资力量,对课堂教学内容和教学方法进行了更为深入的研究,根据专业人才培养需要与软件技术的发展,我们及时对专业培养目标及教学体系进行了调整。在原有课时的基础上,增加了20学时的课外集中上机辅导,保证学生在按教学计划进行学习的之余,有足够的实践以及与教师交流的机会。课程组还对原先的教学网站资源重新进行整合,设计制作了C语言程序设计》标准教案,对课程教学内容、目标、重点、难点、考点、教学方法、教改方案及实施要点、创新能力培养方法及要点、教学资源、习题、实验项目等进行了统一设计和规定,为课程组教师优质、高效地完成课程教学任务提供了优良的环境。在本科教学评估期间,按照学校的统一部署,完成了网络教学平台向数字化教学平台的迁移。目前《C语言程序设计》已成为院教学平台近百门课程中浏览量最大的一门课程。

2、教学队伍整体结构

20054,《C语言程序设计》课程被列为计算机系一类建设精品课程,为了确保本课程教学质量,打牢学生的专业基础,并保证后期课程的顺利完成,课题组负责人成立了由当时的软件教研室、网络教研室以及实验中心骨干教师组成的教学队伍,课程组绝大部分成员都是长期从事《C语言程序设计》课程的教学与实验指导工作,具有丰富的理论教学经验,同时该课题组还有来自企业一线,长期从事C语言程序开发的工程师,具有丰富的实践经验。200612月,C语言程序设计》被评为院立项建设精品课程,为了有力地保障该课程教学的质量,努力把该课程建设成为精品课程中的精品,该课程组对队伍进行了调整,成立了以伍俊明副教授为课题负责人,有赵启升老师负责日常教学事务的教学团队。与之前的队伍相比,现在的团队学历与职称结构更加合理。本课程组现拥有9名教师(含实验教学与辅导),师生比约为1:26课程组成员平均年龄35岁,绝大多数教师的年龄均在28-43岁之间,分别来自或毕业于国内重点院校的计算机专业。年龄结构、学历及职称结构十分理想。课程组现有副教授2人,高级工程师、工程师各1人,讲师3人,实验师1人,助教1人,其中具有博士(含在读1人)2人,硕士学位(含在读2人)7人。队伍学历与职称结构合理,如下表所示:

类别

高级职称

中级职称

初级职称

博士(含在读)

硕士(含在读)

人数

3

5

1

1+2

4+2

比例

33%

50%

17%

33%

67%

 

3、课程教学改革与教学研究

淮海工学院是江苏省为加快苏北发展于1985年在连云港市创办的一所省属普通本科院校,以培养应用性复合型人才为主,为了实现“上手快、后劲足”的办学目标,近几年来,课程组教师发扬不怕吃苦、甘为人先的优良作风,积极投身课程教学改革与探索,并逐渐摸索出一条较为科学的课程建设经验。在该课程的建设过程中,我们主要做了以下几个方面的工作:

31 明确建设思路,确定建设方案

在课程建设初期,课题组全体教师从学科和专业建设的总体规划出发,充分研究计算机专业的培养方案,分析《C语言程序设计》课程在整个专业培养体系中的地位和作用,经过充分调研与讨论,课题组成员充分认识到《C语言程序设计》不仅是对计算机程序设计技术要求较高的电气信息类各专业的重要的基础核心课,更是计算机专业一门最核心的专业基础课。它对培养学生的专业兴趣及整个专业培养目标的实现具有战略地位。为此,我们进一步理清了本课程与整个专业培养体系中其它课程(群)之间的关系,让所有课程组成员明确《C语言程序设计》精品课程建设必须克服单门课程建设的片面性,避免单一课程内容膨胀或存在疏漏,努力做到理论与实践并重。课题组教师以此共识为出发点,经反复研究,确定了以《C语言程序设计》为基础,结合《Visual C++程序设计》进行综合建设的建设方案。

确定方案后,我们与系专业建设小组进行了充分的沟通,对原先的专业培养方案及教学大纲进行了调整,新编了《C语言程序设计实验教学大纲》,将《C语言程序设计》由原先的48学时调整为64学时,同时增加了为期一周的《C语言课程设计》,并将《C语言程序设计》的姐妹课程《Visual C++程序设计》由32学时增加为48学时,使得课内学时更加合理,以便学生通过本门课程的学习,能够掌握C语言的基本语法规范与编程技巧与程序设计理念,掌握软件设计的基本原理、步骤与方法,通过后续的《VC++程序设计》学习,让学生进一步明确吃透结构化程序设计与面向对象的区别以及掌握windows应用程序设计的基本方法,从而实现我们的专业培养目标。

32 分工明确,通力合作

    在确定了《C语言程序设计》课程建设方案后,课程组负责人召集课程组成员,就课程建设分工进行讨论。在分工的过程中,我们充分考虑到各成员的优势,让职称高的老师总体负责课程建设规划,让具有丰富教学与实践经验的老师担任主讲教师,让具有很强动手能力的老师承担实验辅导及网络教学资源建设。经过协商,课程组分工如下:

姓 名

职 称

承 担 任 务

伍俊明

副教授

课程建设总体规划

施珺

高级工程师

课程建设总体规划、网络教学平台、

网络考试组织与策划

顾秀梅

副教授

课程建设、教案编写、主讲

赵启升

工程师

课程建设、教案编写、主讲

马常霞

讲师

主讲、课件制作、试题库建设

王久明

讲师

主讲、课件制作、试题库建设

田扬启

讲师

资料整理、教学网站制作

杨寿海

实验师

上机辅导与答疑

兰义华

助教

资料整理、网上答疑

33 明确理论知识模块顺序及对应的学时

    根据修订后的培养方案及教学大纲,我们就开始着手教材建设、整理理论教学知识模块划分顺序及教学内容,做到学生学习的内容前后连贯,具有很强的逻辑性。为此我们在教材的选择上,启用由清华大学出版社出版、李春葆教授编著的《C程序设计教程》(基于  Visual C++平台),该教材以       Visual C++ 6 为环境,强调动手实验能力的提高,便于进一步学习面向对象程序设计,为掌握用       Visual C++进行软件开发打下基础。该书系统性、实用性强,内容组织上层次分明,结构清晰,并强调用软件工程思想指导程序开发,以培养学生编写“大程序”的能力每章后均有小结,附有相当数量的练习题和上机实验题。在实践教学过程中,我们也真实感受到该书具有鲜明的特点。该课程知识模块及学时(含实验学时)分配如下:

模块

内容

知识点

学时

1

C语言概述

C语言的特点、基本结构、        C程序的运行过程、  C程序的语法规则、C程序的开发过程

2

2

数据类型及其运算

标识符的定义、C语言的数据类型、  C语言的基本数据类型、各种修饰符与基本数据类型的组合方式、各种数据类型表示的数值范围以及数据所占内存空间的大小、常量、变量、运算符与表达式、算术表达式中数据间的混合运算与类型转换、数据类型的隐含转换和强制转换、 赋值运算符与赋值表达式、条件运算符和条件表达式

8

3

程序设计结构

程序的三种基本控制结构、顺序执行语句、表达式语句、函数调用语句、复合语句和空语句、格式化输出函数printf()的使用方法、格式化输入函数scanf()的使用方法、单字符输入函数getchar()和输出函数putchar()的使用方法、关系运算符及其优先次序、逻辑运算及其优先次序、if语句的各种格式、if语句的嵌套使用、switch语句的使用方法、break语句在switch语句中的应用、while语句的使用格式和注意事项、do-while语句的使用格式和注意事项、for语句的使用格式和注意事项、breakcontinue语句在循环语句中的应用、循环结构的嵌套、使用goto语句实现循环结构、穷举法程序设计方法、迭代程序设计方法

8

4

数组

一维数组的定义、引用和初始化、一维数组的应用:查找方法(顺序查找、二分查找)和排序方法(冒泡排序、直接插入排序和直接选择排序)、二维数组的定义、引用和初始化、字符数组的定义、引用和初始化、字符串数组的定义、引用、初始化和赋值操作

8

5

函数

函数的定义与调用方法、函数的返回值与函数类型、被调函数的声明方法、外部函数和内部函数的概念和定义方法、内部变量和外部变量、内部变量的存储类型(自动内部变量、寄存器内部变量、静态内部变量)、外部变量的存储类型(静态外部变量和非静态外部变量)、函数的数据传递(传值调用、传址调用和通过外部变量传递数据)、数组作为函数参数、递归函数运行过程和设计方法

10

6

指针

指针变量的定义、指针运算符(取地址运算符“&”和取内容运算符“*”)、指针变量的初始化、指针变量的各种运算、指针变量与一维数组、指向多维数组元素和指向分数组的指针、字符串指针变量、字符串的表示和引用、指针数组的定义和使用、多级指针变量的使用方法、指针型函数设计方法、指向函数的指针变量的应用、命令行参数的应用方法

8

7

编译预处理

无参宏定义方法、带参宏定义方法、条件编译的使用、文件包含的使用

2

8

结构体

结构体类型声明、结构体变量的定义、引用和初始化、结构体变量作为函数参数、结构体数组的定义和引用、结构体指针变量的定义和使用、结构体数组指针的定义和使用、结构体指针变量作为函数参数、结构体数组作为函数参数、单链表的概念、建立和各种运算的实现过程、用户定义类型typedef

10

9

文件

文件的概念、文件的分类、文件缓冲区、流和文件指针、文件打开和关闭函数、文件的顺序读写函数(fgetc()fputc()fgets()fputs()fscanf()fprintf())、文件的随机读写函数(ffread()fwrite())、文件定位操作函数(ftell()fseek()rewind())、文件检测函数(feof()

6

10

软件开发过程

了解软件工程的基本概念、了解软件开发步骤

2

 

34 实践教学的设计思想与效果

C语言程序设计》是计算机工程学院学生的一门专业基础课,同时又是一门理论和实践并重的课程。实践性教学的设计实现主要考虑到二个方面:一方面是基本技能和基本理论的训练,要求同学必须熟练掌握C语言程序设计》的基本语法、基本概念和基本技能,另一方面是课程设计,目的是锻炼同学独立分析、独立解决问题能力,同时促进同学进一步深化基本理论、基本概念的认识,拓宽学生的编程应用领域。另外,鼓励同学自己提出问题,分析问题和解决问题。

(1) C语言程序设计》实验

实验配合《C语言程序设计》课程教学进行,目的是让同学完成《C语言程序设计》的基本语法、基本概念和基本技能训练,养成良好的设计能力,完成《C语言程序设计》的基本工程训练。这些基本训练的内容主要包括以下:

上机实习:Visual C++编程环境实习、程序流程控制、数组表示和实现、函数的应用、指针的定义和实现、结构体及链表应用、以及综合应用程序设计。这些训练都要求同学必须独立、按时完成,并按照规范完成实验报告。我们在每次实验前,都会提前在网络平台上公布实验具体内容,并对实验中可能会遇到的关键性问题进行适当的提示,以便学生能更好的完成实验任务。

(2) 课程设计

由于《C语言程序设计》课程以基本理论和基本训练为主,但是作为综合运用《C语言程序设计》理论和方法的课程设计同样是有必要的。其目的是进一步开发同学独立分析、独立思考、独立完成和解决实际应用中问题能力,综合运用所学的理论知识,做到融会贯通,加深同学对编程基本理论的认识和理解。

在课程设计上,我们首先为学生设计了相当数量即能得到锻炼效果又能拓展学生视野的设计课题,如:通讯录管理系统、学生成绩管理系统、小型计算器设计、运动会管理系统等,并允许同学结合现实问题自选题目,但一定要征求教师同意,在教师指导下进行。在课程设计中,我们坚决执行小班制,即一名指导教师只能指导一个班级,并严格执行考勤制度,最后根据验收实际情况,综合设计报告等给出成绩。通过进2年的实践,同学们普遍反映收获很大,一开始根本不知道怎么样处理实际问题,如何下手。通过实践,加深了对《C语言程序设计》基本理论的认识和理解,强化了分析问题和解决问题的能力。对于将理论和实际如何结合,如何将现有的所学的知识运用、推广、和提高是大有帮助的。

(3) 积极开展开放性实验

在完成培养方案及教学大纲规定的教学任务外,我们根据大一新生计算机操作能力不齐的现状,在课外积极开展《C语言程序设计》开放性实验,免费为大家提供20学时的上机时间,并保证开放课上有课程组的老师进行答疑,让学生能有更多的机会解决理论及实践过程中遇到的问题。

(4) 鼓励学生融入创新性应用研究,进一步提高分析问题、解决问题的能力。

鼓励学生主动应用C语言解决实际应用中遇到的问题,鼓励学生参加课题研究。如在我院具有很高知名度的大学生机器人实验室,所有成员都是在学习C语言之后加入进来的。通过参与、负责这些问题的解决,极大地锻炼了同学解决实际问题的能力,对于培养学生的创新意识、拓宽学生的思路是大有好处。

3.5 课程的重点、难点及解决办法

C语言程序设计》课程教学过程中,一方面要求学生掌握C程序设计的基本语法规范,养成程序设计的基本技巧与良好风格,并提高运用C语言解决实际问题的能力。针对上述特点,我们采取了一系列行之有效的方法和措施:

1)充分运用多样化的教学手段(板书、幻灯片、多媒体课件、网络课件等)。在C语言程序设计》教学过程中,课堂教学使用多媒体课件进行辅助,把难以理解的内容如递归、链表等内容通过动画演示出来,变抽象课件为具体,化枯燥乏味为生动形象,激发了学生的学习兴趣,改善了教学效果。

2)保证学时,增加一定比例的习题课。为了保证教学质量,课程组总学时由原来的48学时增加到64学时,外加一周课程设计及20学时的开放实验,并增加了习题课的时数。通过习题课,对实例重点分析,并将习题答案上网,使学生在完成习题的同时逐步感悟,从而学会编程。

3)加强实践环节,通过编程上机加深理解。C语言程序设计》实践性恒强,教学过程中,一方面在理论教学中加强实践操作演示和讲解,理论和实践相结合;另一方面,通过编写高质量的实验指导书,按排教师全程指导,确保实验网成的质量,切实解决学生“上课听得懂,下课不会做”的难题。

4)重点突破。学生在学习C语言程序设计》中最困难的地方就是指针与函数那部分,为此,我们在讲课时在前面的数组部分就开始提前引入指针的概念,让学生早做联系早准备,有效得解决了指针难题。

5)充分利用课程教学网站以及其它网络资源,确保学生可以随时随地进行学习。C语言程序设计》课程组建立了比较完善的课程教学网站,网站中不仅积累了丰富的C语言程序设计教学资源,而且开辟了实验项目与实验环境、留言板等。安排教师及时回答学生的提问,及时解决每节课每次作业中的疑问是提高本门课程教学效果的最有效解决办法。

 

4 改进教学方法与教学手段

在教学方法和教学手段的研究及改进过程中,始终围绕“厚基础、宽应用、重创新”的课程教学目标,不断研究和引进新的教学方法和先进教学手段,注重并着力加大学生的“理论基础、动手能力和创新意识”的培养,保证了教学效果和教学质量的不断提高。在不断研究教学方法和改进教学手段的同时,注重在调动和发挥学生学习的自觉性、积极性和主动性的基础上,加强教师为指导和服务作用,实施以学生为主体的启发式、讨论式、并具有应用能力和创新意识培养的一整套教学方法。具体方法如下:

1实施开课前的学习“动员机制”:C语言程序设计作为计算机专业本科教育一门必修的核心基础课程,其开设的目的、意义和作用十分清楚,关系到学生专业基础理论建立、知识体系的形成、应用和创新能力的培养,学生未来发展的走向等一系列全局性问题。这些必须在开课前给学生做一简要的学习动员,让每位学生都应该清楚, C语言将是关系学生未来成功与否的关键,同时让学生明确C是一门实践性很强的软件开发工具,非常实用,必须在平时多下功夫进行实践。

2坚持启发式讨论式教学:“启发式和讨论式”教学方法是实践证明行之有效的教学方法。课程组在教学实践过程中,始终把“启发式和讨论式”教学方法贯穿于实际教学工作中,突出学生在学习过程中的主体和主人地位,充分发挥学生的主观能动性,而老师作为指导者和服务者,保证学生在学习过程中的创造思维和创新意识不受任何约束,将教、学与创造融为一体。

3鼓励学生参与教学、大胆尝试学生上讲台:实践证明,学生上讲台是培养学生自主学习方法和锻炼学生各种综合能力的有效方法和途径,应大力提倡和推行。学生上讲台更重要的是学生之间、师生之间的集中交流和探讨,往往会迸发出很有价值的思想和学术火花。

4拓展课堂授课内容,扩大学生知识面,激发学生学习热情:课程组在授课过程中,除了按照大纲讲授规定的教材内容之外,力争把与本课程相关的其它专业知识群、边缘学科等介绍给学生,以开阔他们的知识视野,激发他们的学习兴趣和意志。

5把科研成果展现给学生,把科技创新思想渗透进教学过程。在授课的过程中,经常性地将自己的科研成果或科技发展的重大成果以及科研思维方式和创新发明方法介绍给学生,使他们在学习专业课程的同时学会怎样关注科学发展、怎样关注科学研究和发明创造等,这些潜移默化和熏陶对于学生今后的成才是至关重要的。

6改革考试方式:“应试”教育带来的弊病是考什么老师教什么,考什么学生学什么,把考试过关和分数视为最终学习结果和教学质量的评定。这既给教师教学和学生学习带来了很严重的负面影响,又严重地限制和阻碍了教与学过程的创新和进步,是目前教育创新的瓶颈,必须坚持改革。在本课程的教学过程中,根据其特点研究和提出了“厚基础、宽应用、重创新”的考试模式,从理论水平、实验操作能力、创新应用能力等各个方面综合考察学生的成绩,使考试的导向与提高教学质量、培养高素质人才直接挂钩。

7)不断改进教学方法,积极采用现代教学技术:在编写教案和教学过程中,教师们充分考虑到《C语言程序设计》课程的课程特点,在教学过程中充分利用网络和多媒体技术,制作了所有章节的教学课件,将抽象深奥的原理、知识用形象直观的动画展示出来,使得所将内容学生容易接受和理解。同时,还建设了精品课程的网站,将所有教学文件、教学课件、实验项目以及课后习题参考答案通过网络发布,利用网络进行作业的发布与批改,进行网上交流和辅导,为学生的个性化学生创造了有利的条件。

8)课程组教师相互交流,取长补短。我们在平时教学过程中,经常组织课程内教师相互听课,鼓励实验教师与主讲教师保持同步,并让年轻教师作为主讲教师的助教,一方面加速了年轻教师的成长,另方面也很好的壮大了团队。

 

5 教学效果

1) 校内同事举证评价

该课程教学方法与教学手段先进,教学中能灵活运用多种先进的教学方法,建设有功能完备的网上教学平台。在教学过程中能充分利用CAI课件、多媒体教学网和大屏幕投影、视听教室等有效地调动学生的学习积极性,促进学生的积极思考,激发学生的潜能,教学效果优良。课程组十分注重实践环节教学,通过设置课程设计等教学环节,有效促进教学质量的提高。

2)专家评价及有关声誉的说明

C语言程序设计》课程是计算机专业一门必修的核心基础课,本课程组提出并实施“厚基础、宽应用、重创新”作为创新教学目标是科学可行的,并具有一定的前瞻性和先进性;按照精品课程建设高标准、高质量严格要求,对课程内容、实施计划、教学大纲、教学方法等重要环节进行及时改革和调整,使得教学内容、教学方法、教学效果、教学质量始终反映国内外C语言程序设计课程的最新进展,并走在同行先进行列。

3)近三年学生的评价结果

学生对课程组教师的教学水平C语言程序设计》课程的教学效果评价优良,主讲教师每一年的学生评教得分均在90分以上。学生反映课程组教师备课认真、教学内容更新及时,教学方法和手段灵活多样,辅导学生上机实验耐心细致,敬业意识强。特别是C语言程序设计》教学网站开通后,受到学生广泛欢迎与好评,对帮助学生巩固掌握课堂所学知识,加深理解算法思想起到了很好的辅助教学作用,现已高据校内精品课程网站浏览量排行榜首位。

 

6. 建设存在的不足

 

本课程是计算机等相关专业学生的专业入门课。C语言是学生学习的第一种程序设计语言,学生一旦入门并掌握,会对专业特别感兴趣,并钻研下去,对其专业发展影响极大。多年来,课程组十分重视现代教学方法的研究和现代教学环境的建设,课程组立足于国内外最新的变化和进展,不断引进国内外一流大学的最新的教材和相关教学资料,将最新的成果传授给同学。在此基础上,我们拟编写和出版适合我校特点的实验指导用手册,保证本课程教学与时俱进、不断创新。但同时我们也清醒认识到,由于所处地理位置及专业办学年限的限制,我们还有很多不足,主要表现为:

1 创新型人才培养模式的研究有待进一步实践和提高;

2 与本课程有关的课程群建设,尤其与后期专业课程的衔接和知识整合还有待于系统化、模式化和系列化;

3适合我校办学特点的创新人才培养机制还有待于建立和完善;

4师资队伍还需要进一步壮大;

5)符合自身特色教材建设滞后,尚未能提供全程教学录象资源。


电话:0518-5895383 传真:0518-5895386 电子邮件:sj_lfg@hotmail.com
凌风科技版权所有studying.com.cn All rights reserved
友情提醒:未经许可禁止复制或建立镜像