应用型本科《C语言程序设计》实践教学方案设计与应用

2016-10-13 11:58肖捷刘景轩
东莞理工学院学报 2016年3期
关键词:C语言程序设计C语言程序设计

肖捷  刘景轩

(1.东莞理工学院 计算机学院,广东东莞 523808;2. 浙江大学 计算机学院,杭州 310007)



应用型本科《C语言程序设计》实践教学方案设计与应用

肖捷1刘景轩2

(1.东莞理工学院计算机学院,广东东莞523808;2. 浙江大学计算机学院,杭州310007)

《C语言程序设计》是本校计算机类专业的核心基础课,也是重要的公共基础课。根据应用型本科计算机专业培养目标,设计基于“阶梯递进”模式《C语言程序设计》实践教学方案,包括课程目标、“阶梯递进”模式研究、实践教学设计、课程资源建设和考核评价。实践证明,方案具有较好的科学性、系统性、实用性、针对性和可操作性,较大地提高了《C语言程序设计》课程的教学质量。

应用型本科;“阶梯递进”模式;《C语言程序设计》;实践教学方案

随着专业技术和应用发展的需要,C语言编程成为应用型本科院校电子、通信、机械等工科专业本科生必备的能力,机器人控制、通信、电子产品、仪器仪表设计都涉及到大量的编程工作。编程更是计算机类专业基本专业能力,《C语言程序设计》培养学生基本编程能力,训练编程思想,是学习其他专业课程必备的基础。对于计算机专业,将该课程定位为“技术扎根”型实践类课程,其重要性甚至高于核心基础课程。实践教学对该课程至关重要,其教学质量直接影响专业人才培养目标,因此,革新课程教学方案,消除多年来学生对编程的恐惧心理,改变学生回避编程的态度,提高教学效果,是应用型人才培养的重要一环。

1 《C语言程序设计》实践教学方案设计

1.1课程目标

作为应用型本科计算机专业的核心基础课程,《C语言程序设计》是以C语言为平台,课程教学目标不但要使学生掌握C语言的知识内容、编程技术和基本算法,更重要的是掌握程序设计的思想和方法,具备高级语言程序设计的基本能力,能灵活利用计算机求解实际问题,为后续专业课程的学习打好基础[1]。结合专业培养目标,提出本课程要达到的具体目标。

A 知识目标:掌握C语言的知识内容、编程技术和基本算法,掌握结构化程序设计的基本思想和方法。

B 能力目标:加强学生逻辑思维能力、分析解决问题能力、程序设计能力和调试程序能力的全方位的培养,为后续课程学习打好基础。

C 素质目标:培养工程技术人员必须具备的坚持不懈的学习精神,严谨治学的科学态度和积极向上的价值观,树立在学习和工作中善于思考和勇于动手的信心。

1.2改革传统模式,研究适合应用型本科新模式

“理论教学+课程实验”构成传统模式的课程教学体系,理论教学一般都是围绕语言本身的体系内容展开,以讲解语言知识为主,特别是语法知识,辅助介绍一些编程案例和技巧,很多学生把主要精力放在语法学习之上,不利于培养学生的程序设计能力和语言应用能力。课程实验一般都是独立编程题,对基础薄弱的学生显得难度过大。这种教学模式不利于学生自主学习和分层教学,不能全方位地培养学生程序设计能力,导致学生综合编程能力弱,难以达到《C语言程序设计》课程的教学目标。

针对应用型本科院校的生源特征,必须改革传统模式,研究适合应用型本科新模式。“阶梯递进”模式将实践教学分成逻辑上相互关联的三个环节(演示实验+自主实验+主题实验),以循序渐进方式,全方位地培养程序设计能力(包括:程序调试、程序阅读、程序模仿、独立编程、综合应用)。

A 演示实验:程序调试能力差是大部分学生都存在的问题,演示实验侧重调试程序基本功的训练,围绕基本调试方法设计实验项目,实验项目的内容从简单到复杂,呈“阶梯递进”关系,包括演示案例、模仿练习、提高习题三项内容,通过“演示—模仿—提高”的教学过程,教师完成演示案例,学生完成模仿练习与提高习题,提交实验系统自动批改[2]。通过演示实验,使学生较快捷地熟悉编程环境,较轻松地学习程序调试基本方法和技巧。

B 自主实验:自主实验主要是根据知识点设置一系列验证性实验,紧扣课堂教学内容,偏重基本知识和能力,掌握和巩固课堂教学内容[3]。学生必须在规定期限自主独立完成,提交实验系统自动批改。实验内容充分体现“阶梯递进”模式思想,实验题型一般设置阅读程序题和独立编程题,分成3个级别(示例编程(阅读题)、模仿编程(阅读题)、独立编程),充分体现“教学做一体化”的分步教学思想(示例→模仿→独立),便于学生自主学习和分层教学。通过自主实验,一方面,掌握程序设计语言的知识内容、编程技术和基本算法;另一方面,培养学生程序阅读、程序模仿改写和独立编程能力。

C 主题实验:在自主实验基础上,根据教学进度和知识结合应用的紧密程度,划分若干个主题,每个主题精心设计一个难度稍大的阶段性综合实验项目,实验项目充分体现“阶梯递进”模式思想,每个实验项目包括“案例分析”和“应用设计”两部分,“案例分析”给出一个引导示例,详细介绍综合案例求解的基本步骤和方法,教师讲解,学生阅读理解,起示范作用。“应用设计”给出一个综合题目,要求学生在理解“案例分析”基础上,自主完成。学生可以根据自身情况,部分选做,实现分层教学[2]。通过主题实验的训练,将“语言知识”和“程序设计”串成两条相互呼应的主线,加深对语言的全面理解和掌握,培养综合应用语言的能力和综合分析能力,提高综合编程水平,为课程设计做准备。

1.3实践教学设计

由于《C语言程序设计》课程学习的自身特点,听不会,也看不会,只能练会,只有通过大量的编程练习,才能将编程思想、算法设计思想培养出来,将编程能力训练出来。因此,精心设计课程的实践教学非常重要,根据“阶梯递进”模式思想,《C语言程序设计》实践教学设计包括演示实验、自主实验、主题实验三个方面,它们构成“阶递递进”模式的实践教学体系[3]。

1)演示实验。培养学生程序调试能力是实践教学的重要方面,演示实验侧重调试程序基本功的训练,围绕基本调试方法设计若干实验项目(根据教学进度和内容,演示实验项目如表1所示),实验项目充分体现“阶梯递进”模式思想,实验项目的内容从简单到复杂,包括演示案例、模仿练习、提高习题三项内容,教师精讲演示案例,学生完成模仿练习与提高习题。通过演示实验,一方面,帮助学生理解程序调试、编译错误、连接错误、逻辑错误等基本概念;另一方面,帮助学生认识常见错误及产生原因,学会解决方法,进而掌握程序调试的基本方法和技巧。

2)自主实验。学好程序设计,贵在平时练习,学生应该做到功夫化在平时,努力多编程,编好程。自主实验侧重基本知识和能力,紧扣课堂教学内容,通过“示例编程—模仿编程—独立编程”的实践教学过程,循序渐进地掌握程序设计基本知识、典型算法,进而理解和掌握程序设计思想、方法和技巧[4]。根据教学大纲设计一系列自主实验项目(11个自主实验项目),包括熟悉C编程环境、C简单程序设计、分支结构程序设计、循环结构程序设计、函数程序设计、数组程序设计、指针程序设计、结构程序设计、链表程序设计、共用体和枚举程序设计、文件程序设计。学生通过上机实验系统在规定期限自主独立完成,提交实验系统自动批改,给出反馈,并可反复练习,直至掌握为止。自主实验必须精心规划和设计,每个实验项目的实验内容应充分体现“教学做一体化”的分步教学思想(示例编程→模仿编程→独立编程),便于学生自主学习和分层教学。通过自主实验,一方面,掌握C语言的知识内容、编程技术和基本算法;另一方面,培养学生程序阅读、程序模仿改写和独立编程能力。

表1 演示实验项目

A示例编程:通常选用教材中精讲过的经典案例并做适当修改,给出程序功能描述、解题思路和不完整的源程序清单,特别对解题思路作详细描述,引导学生认真阅读,理解设计思路,学习阅读方法和技巧,熟悉程序结构框架,掌握重要算法,进而学习解题步骤和方法。在此基础上,给出填充完整的源程序清单方便学生参考,最后要求学生上机调试通过。

B模仿编程:通常对示例编程的功能做适当的修改或选用与示例编程相似的题目,给出程序功能描述、不完整的程序清单和解题提示,要求学生在示例编程基础上,模仿示例编写程序,实现程序功能要求。学生应完成的具体项目内容包括:解题思路、完整程序清单、调试运行程序。目的是进一步掌握阅读程序的方法和技巧,掌握解题步骤和方法,提高学生分析问题的能力,进而提高编程能力。

C独立编程:通常设计较示例编程和模仿编程难度稍大的独立编程题,只给出程序功能描述和做题思路提示,要求学生在示例编程和模仿编程的基础上,利用所学知识独立完成编程。学生应完成的具体项目内容包括:解题思路、完整程序清单、调试运行程序。目的是进一步掌握做题的步骤和方法,提高学生分析问题、解决问题和独立编程能力。

3)主题实验。在自主实验基础上,根据教学进度和知识结合应用的紧密程度,划分若干个主题(主题实验项目如表2所示),每个主题精心设计一个难度稍大的阶段性综合实验项目,实验项目充分体现“阶梯递进”模式思想,每个实验项目包括“案例分析”和“应用设计”两部分。通过主题实验,加深对语言的全面理解和掌握,培养综合应用语言的能力和综合分析能力,提高综合编程水平,为课程设计做准备。

表2 主题实验项目

A 案例分析:给出一个引导示例,详细介绍综合案例求解的基本步骤和方法,教师讲解,学生阅读理解,起示范作用。

B 应用设计:给出一个综合题目,学生在理解案例分析的基础上,运用所学知识自主完成。进一步掌握综合习题求解的基本步骤和方法,加强综合编程能力的培养。

1.4课程资源建设

建立配套的教学资源是课程建设的重要内容,也是教学取得成功的重要保证。根据应用型本科院校的生源特征,结合多年教学实践,在课程资源建设方面主要做了以下几项工作。

A教材建设:主讲教材思想是以“程序设计”为主线,以编程应用为驱动,通过案例和问题引入内容,重点讲解程序设计的思想和方法,并穿插介绍相关的语言知识,为程序设计主线服务,语言知识力求讲解清楚,详略适当[5]。实验教材思想基于“阶梯递进”模式,从“演示实验+自主实验+主题实验”三个方面构建课程实践教学体系,以循序渐进方式,全方位地培养程序设计能力(包括:程序调试、程序阅读、程序模仿、独立编程)和综合应用能力。

B建设课程网站,开发课程资源:有机整合“面对面”的课堂学习(Face to Face)和在线学习(E-Learning)两种典型教学形式,开展“混合式”教学。已经建成的课程资源包括:PPT课件、视频课件、习题库、实验题库、试题库、实验系统、测试系统等。

1.5教学实践与考核评价

通过几年的改革实践,“阶梯递进”模式《C语言程序设计》实践教学方案已在我校推广应用,取得了较好的教学效果,从公共课和专业课两个方面总结如下。

1)公共课《C语言程序设计》。自2011级开始,我校公共《C语言程序设计》试点“阶梯递进”模式,经过两年改革试点并取得成功,从2013级开始,在全校推广,效果显著。课程考核情况如下:

考核方式:采用“校内统考”与“全国统考”相结合,命题计划突出“程序设计”主线。校内统考采用笔试, 80 %为程序设计,20 %为基本概念,主要考查程序阅读与程序设计能力。全国统考采用机试,80 %为程序设计,20 %为基本概念,主要考查程序阅读、程序设计与程序调试能力,二者结合,全方位考核程序设计能力。表3统计我校近几年全国统考情况,汇总结果反映我校公共《C语言程序设计》课程的教学质量稳步提高,通过率居全省同类院校领先水平。

表3 我校近几年全国高等学校计算机水平考试通过率汇总表(C语言) %

2)专业课《C语言程序设计》。自2014级开始,我校计算机科学与技术专业《C语言程序设计》试点“阶梯递进”模式,并改革课程考核方式:期中考试+期末笔试+期末机试,期中考试为笔试(题型综合:选择题(20)+程序填空(30)+程序分析(30)+独立编程(20)),期末笔试选用难度适中的程序阅读题,期末机试选用难度不一的独立编程题,突出考核编程能力,难度超出以往各届。课程考核情况如下:

A期中考试:同份试卷,2014计科、2014机械卓越、2014电子成绩对比情况如表4。

B期末笔试:时长2小时,闭卷,24个程序阅读题,考查学生分析、阅读程序能力。卷面成绩频度分析如下:平均分78,优31 %,良26 %,中18 %,合格5 %,不合格20 %。

C期末机试:时长3 h,闭卷,6个独立编程题,考查学生程序设计与程序调试能力。卷面成绩频度分析如下:平均分77,优42 %,良11 %,中13 %,合格14 %,不合格20 %。

从课程考核结果看出,计算机专业大部分学生具备较强的程序调试、分析、阅读和独立编程能力,教学效果明显优于非计算机专业,达到课程学习目标。我校计算机学院决定从2015级开始,在计算机类专业全面推广。

表4 我校2014级计科、机械、电子《C语言程序设计》期中考试成绩对照表

2 结语

《C语言程序设计》是应用型本科计算机类专业的核心基础课程,也是机械、电子、通信等工科专业必备的公共基础课,研究设计一套完整、科学、创新、操作性强的教学方案非常重要,直接关系到课程的教学质量。本方案的创新性在于以“阶梯递进”模式构建课程实践教学方案,以循序渐进方式,全方位地培养程序设计能力(包括:程序调试、程序阅读、程序模仿、独立编程)和综合应用能力。实践证明,方案具有较好的科学性、系统性、实用性和可操作性,已成功应用到我校教学实践,对应用型本科院校具有较大的推广价值。

[1]肖捷,侯家利. C语言程序设计[M]. 北京:中国铁道出版社,2015.

[2]肖捷,陈雪芳. C语言程序设计实训教程与水平考试[M]. 北京:中国铁道出版社,2015.

[3]肖捷. 程序设计课程教学方案的研究与设计[J]. 东莞理工学院学报, 2012,19(3):104-107.

[4]肖捷. 基于“阶梯递进”模式《C语言程序设计》实验教材的设计[J]. 东莞理工学院学报, 2014,21(1):99-102.

[5]肖捷. 基于“阶梯递进”模式《C语言程序设计》主讲教材的设计[J]. 东莞理工学院学报, 2014,21(5):101-106.

Design and Application of Practical Teaching Plan of Applied Undergraduate Course C-Language Programming

XIAO Jie1LIU Jingxuan2

(1.Computer College, Dongguan University of Technology, Dongguan 523808, China;2. Computer School with Zhejiang University, Hangzhou 310007, China)

C-LanguageProgrammingis a core basic course of the computer majors in Dongguan University of Technology and also an important public basic course in the university. According to the education goal of applied undergraduate computer major, the plan is based on the “Ladder Rising” model used in the practical teaching ofC-LanguageProgramming, including its curriculum goal, “Ladder Rising” model research, practical teaching design, resource construction and testing assessment. The practice proves that the plan greatly improves the teaching quality of the curriculumC-LanguageProgrammingin the university with its scientific, systematic, practical, purposeful and operable characteristics.

applied undergraduate course; “Ladder Rising” model; C-LanguageProgramming; practice teaching plan

2016-01-05

2012年度广东省高等学校教学质量与教学改革工程本科类立项建设项目(粤教高函[2012]204号)。

肖捷(1966—),男,湖南邵东人,副教授,主要从事网络与数据库技术、企业信息化研究。

TP312

A

1009-0312(2016)03-0106-05

猜你喜欢
C语言程序设计C语言程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践
PLC梯形图程序设计技巧及应用
论子函数在C语言数据格式输出中的应用