程序设计课程教学方案的研究与设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计课程教学方案的研究与设计
肖捷;肖海容
【摘要】The programming is an important course of Computer Foundation Education in colleges and universities. Accord- ing to the teaching purposes of the course, and combining characteristics of the programming language and reform experiences of the author in teaching practice, this paper has designed a teaching scheme of programming course. The scheme includes teaching links, teaching material select, teaching design, evaluating system and study method instruction etc, and has better characteristics, such as science, system, practicality and maneuverability, etc., and can be used directly for the teaching of programming course.%程序设计是高校重要的计算机基础课程,根据课程教学目标,结合程序设计语言的特点和作者多年教学改革实践,设计了一套程序设计课程的教学方案。
该方案包括教学环节、教材选择、教学设计、评价体系和学习方法指导等,具有较好的科学性、系统性、实用性、可操作性等特点,可直接用于程序设计课程的教学。
【期刊名称】《东莞理工学院学报》
【年(卷),期】2012(019)003
【总页数】5页(P103-107)
【关键词】计算机基础教育;程序设计;教学方案
【作者】肖捷;肖海容
【作者单位】东莞理工学院计算机学院,广东东莞523808;东莞理工学院图书馆,广东东莞523808
【正文语种】中文
【中图分类】G642
1 课程目标
程序设计是高校重要的计算机基础课程,它以高级程序设计语言为平台 (本文以C 语言为平台),介绍程序设计的思想和方法。
通过学习,使学生不但掌握高级程序设计语言的知识、编程技术和基本算法,更重要的是掌握程序设计的思想和方法,具备初步的高级语言程序设计能力,能灵活利用计算机求解实际问题,为后续专业课程的学习打好基础,具体目标包括:
1)素质目标:培养学生学习和编写计算机程序的兴趣和爱好,树立在学习和工作中善于思考和勇于动手的信心,从而进一步提高学生的信息素养。
2)知识目标:掌握C程序设计语言的知识内容,掌握结构化程序设计的基本思想和方法,具有初步的程序设计能力。
3)能力目标:加强学生逻辑思维能力、分析解决问题能力、程序设计能力和调试程序能力的全方位的培养。
2 教学方案设计
C语言程序设计课程教学由理论教学和实践教学两部分组成,根据课程教学大纲、教学目标和课程特点,设计了课程的教学方案,该方案由教学环节、教材选择、教学设计、评价体系和学习方法指导等内容组成。
2.1 教学环节设计
C语言程序设计课程教学由理论教学和实践教学两部分组成,课程教学环节包括课
堂教学、课外自学、上机实践、答疑讨论和考核,各环节相辅相成,形成一个有机的整体。
1)课堂教学:以“程序设计”为主线,将课堂教学分成若干主题,以编程应用为驱动,通过案例和问题引入内容,重点讲解程序设计的思想和方法,并穿插介绍相关的语言知识,让学生自始至终感受到“程序设计”这条主线。
2)课外自学:充分利用校园网平台,在校园网上建立课程教学网站,将大量的教学
资源放在教学网站上,并设计开发多个应用系统,包括:视频教学、答疑系统、作
业系统、实验系统、测试系统等辅助教学系统,教师通过教学网站随时随地开展多种形式的课程辅助教学,学生根据自己的实际情况,自主学习不同层次的学习资料,随时消化和掌握老师的讲课内容。
3)上机实践:培养学生的实践编程能力是教学重点,学生必须完成大量的上机练习,包括基本训练和综合训练,从而达到在实践中掌握知识,培养程序设计能力的目的。
基本训练使用实验系统,该系统具有教师出题、学生训练和自动评判功能。
4)答疑讨论:提供课堂和网络两种答疑讨论方式,以网络方式为主,适当辅以课堂
方式。
利用答疑系统,在网上开辟留言板和讨论区,学生在网上向老师提问,老师在网上为学生答疑,同时老师也可以在网上发布相关材料,让同学展开讨论。
5)考核:通过期末考试 (笔试)和实验考核 (机试)考查学生的知识掌握程度和实践能力,二者比例为1∶1,如果学生没有通过实验考核,课程成绩直接记录为不及格。
实验考核采用平时训练和上机考试相结合的方式,包括基本训练和上机考试,基本训练使用实验系统,该系统具有教师出题、学生训练和自动评判功能,上机考试使用测试系统,该系统具有组卷、考试和自动评判功能。
实验考核成绩按照基本训练占40%(其中:基本训练包括自主实验和主题实验,自主实验占70%,主题实验占30%)、上机考试占60%的比例进行综合评定。
综合训练 (即课程设计)一般另外作为一门课程单独考核。
2.2 教材选择
C语言的教材很多,但比较适合程序设计入门课程教学要求的书并不多,许多教材一般都是围绕语言本身的体系展开内容,以讲解语言知识为主,特别是语法知识,辅以一些编程技巧的介绍,不利于培养学生的程序设计能力和语言应用能力。
因此,教材的选择非常重要,由何钦铭教授和颜晖教授主编的普通高等教育“十一五”国家级规划教材《C语言程序设计》(国家精品课程主讲教材)和《C语言程序设计实
验指导》(配套用书),通过比较分析,该教材具有如下特点:
1)主讲教材以程序设计为主线,以编程应用为驱动,通过案例和问题引入内容,重点讲解程序设计的思想和方法,并穿插介绍相关的语言知识。
在教材结构的设计上,强调实践,使学生从第1周起就练习编程,并贯穿始终,从学习编写简单程序,
培养学习兴趣开始,逐步深入讲解程序设计的思想和方法以及应用语言解决问题[1]。
2)实验指导书:C语言程序设计是一门实践性很强的课程,作为主讲教材的配套用书,突显了课程的教学特点,强调了学生动手能力的培养。
该书由12个实验组成,提供了20个实验项目,每个实验包括精心设计的编程示例和调试示例,以及实验题 (改错题、阅读完善程序题、编程题)。
读者可以先模仿示例操作,然后再做实验题,通过“模仿—改写—编写”的上机实践过程,在循序渐进的引导中逐步熟悉
编程环境,理解和掌握程序设计的思想、方法和技巧,并掌握基本的程序调试方法[2]。
2.3 教学设计
C语言程序设计课程的教学包括理论教学和实践教学两大部分。
课堂教学是理论教学的主要形式,实践教学通过课程实验来开展。
因此,教学设计包括课堂教学设计和实践教学设计两方面。
2.3.1 课堂教学设计
课程教学内容包括“程序设计”和“语言知识”两部分,课堂教学应以“程序设计”教学为主线,以编程应用为驱动,通过案例和问题引入内容,重点讲解程序设计的思想和方法,并穿插介绍相关的语言知识,让学生始终感受到“程序设计”这条主线。
这就给教师提出了较高的要求,必须对课程的教学方法进行研究,采用好的教学方法开展课堂教学。
因此,在设计课堂教学时,考虑从以下5个方面入手:
1)将课堂教学分为若干主题,围绕“程序设计”主线,精选教学案例,精心设计教学过程,重点讲解程序设计的思想和方法,穿插介绍“语言知识”。
2)采用合适的教学方法:实践证明分步教学法 (示例→模仿→独立)、举一反三法、
比较教学法等都是程序设计课程较好的教学方法。
3)借助习题课,精讲程序阅读方法,培养学生程序阅读能力。
4)借助课堂演示实验教学,加强学生调试程序能力的培养。
5)课外自学:在课堂教学基础上,积极引入E-Learning,使之成为课堂教学的重
要补充。
在设计课外学习内容时,应充分考虑学生的差异,设计适当的多样性和灵活性,使学生可以根据自身水平和兴趣,选择适合的训练方式、数量和难度,自主安排学习进程,在达到课程基本要求的前提下,使自己得到充分的发展和提高。
2.3.2 实践教学设计
由于课程学习的自身特点,听不会,也看不会,只能练会,只有通过大量的编程练习,才能实现课程的教学目标。
因此,精心设计课程的实践教学内容和过程非常重要。
实践教学主要包括四个主要内容,即:演示实验、自测作业、主题作业和综合
训练。
它们构成了一个“阶梯递进”模式的实践教学体系。
1)演示实验。
教师应根据教学进度和内容适当安排一些演示实验,由教师在课堂上演示,学生观看。
通过演示,使学生能够较快捷地熟悉C编程环境,较轻松地学
习程序调试的基本方法和技巧。
演示实验可以从两大方面入手,设计一系列的演示实验。
A)编程环境演示实验。
教师可以从教材中选择1~2个程序作为演示案例,按照运行一个C程序的基本步骤进行完整的演示操作和讲解,达到如下的教学目的。
■ 帮助学生较快地熟悉C编程环境,掌握C语言上机实践的基本步骤 (编辑、编译、连接、运行)。
■ 帮助学生理解相关的概念和术语。
例如:源文件、目标文件、可执行文件、程序
工作区等。
B)程序调试方法和技巧演示实验。
培养学生调试程序能力是演示实验教学的重要目标,根据教学进度和内容,共设计了6个程序调试方法和技巧的演示实验 (如表1所示),在设计调试案例时,可以设计编译改错题、逻辑改错题两种类型。
通过教
师的演示和讲解,达到如下的教学目的。
■ 帮助学生理解程序调试、编译错误、连接错误、逻辑错误等基本概念。
■ 帮助学生认识常见的错误及产生原因,并学会解决方法。
■ 帮助学生掌握程序调试的基本方法和技巧。
表1 程序调试方法和技巧演示实验实验名称实验题型出题思路目的实验一简单
的程序查错方法演示编译改错题在程序案例中设置一些经常出现的简单编译错误,包括拼写错误 (例如:将main拼写成mian,将stdio.h拼写成stdoi.h)、语句末尾丢失分号错误、变量未定义错误、scanf和printf函数格式错误等,演示查错、纠错方法。
1)帮助学生理解程序调试、编译错误、连接错误、逻辑错误等基本概念。
2)帮助学生认识常见的编译错误,学习解决办法。
1)帮助学生进一步学习常见编译错误的,学习解决办法。
2)帮助学生认识调试工具条、变量窗口和观察窗口,学习简单的单步调试程序方法和技巧。
实验三运行到光标位置的调试方法演示实验二
简单的单步调试程序方法演示编译改错题逻辑改错题1)编译改错题:在案例程序中
设置一些编译错误,进一步演示编译错误的查错、纠错方法。
2)逻辑改错题:在案
例程序中设置一些简单的逻辑错误,演示简单的单步调试程序的方法和技巧。
逻辑
改错题在案例程序中设置一些简单的逻辑错误,演示运行到光标位置的调试方法。
在单步调试基础上,帮助学生进一步学习调试方法和技巧。
实验四断点调试程序
的方法演示实验五单步调试进入函数和跳出函数的方法演示逻辑改错题逻辑改错
题选择分支结构和循环结构的程序案例,设置一些逻辑错误,介绍断点调试程序的简单使用。
选择函数调用程序案例,设置一些逻辑错误,进一步介绍单步调试在进入函数和跳出函数的使用方法。
帮助学生理解断点的作用,进一步学习设置断点、取消断点和断点调试的方法和技巧。
帮助学生进一步学习单步调试方法和技巧。
实验六程序调试方法的综合演示逻辑改错题选择较复杂的程序案例,设置一些逻辑
错误,将单步调试、断点调试、单步调试进入函数和跳出函数等方法结合起来,介绍程序调试方法的综合应用。
帮助学生学习各种调试方法和技巧的综合应用。
2)自测作业。
学好程序设计,贵在平时练习,学生应该努力多编程,编好程。
教师应根据知识点布置一系列简单的自测作业,紧扣课堂教学内容,偏重基本知识和能力,以掌握和巩固课堂教学内容。
根据教学大纲设计了11个自测作业,包括:熟悉C编程环境、简单数据处理程序设计、分支结构程序设计、循环结构程序设计、函数程序设计、控制结构综合程序设计、数组程序设计、指针程序设计、结构程序设计、程序结构与递归函数程序设计和文件程序设计。
要求学生通过上机实验系统在规定期限自主独立完成,提交实验系统自动批改,给出反馈,并可反复练习,直至掌握为止。
教师要精心规划和设计实验项目和实验内容,充分体现“教学做一体化”的分步教学思想 (示例→模仿→独立)和举一反三的教学思想,便于学生自主学习。
通常设置调试示例、程序改错、阅读完善程序和编程题等多种题型。
A)调试示例题:给出有错误的源程序、调试计划和步骤,在演示实验基础上,学生
根据调试计划和步骤完成程序调试,学习调试方法和技巧。
B)程序改错题:给出有错误的源程序,学生可以模仿调试示例完成程序调试,进一
步学习调试方法和技巧。
C)阅读完善程序题:给出程序功能描述和不完整的源程序,在程序阅读习题课的基
础上,每次实验都让学生自主训练,掌握阅读技巧,提高学生阅读程序的能力。
D)编程题:一般设置3种级别 (示例编程、模仿编程、独立编程),充分体现“教学
做一体化”的分步教学思想 (示例→模仿→独立)和举一反三的教学思想。
其中:示
例编程通常选用教材中精讲过的经典案例并做适当修改,让学生阅读程序,理解设计思路,掌握重要算法,举一反三。
模仿编程在示例编程基础上,要求学生做适当修改,实现程序功能要求。
独立编程只给出程序功能描述,要求学生在示例编程和模仿编程的基础上,利用所学知识独立完成编程[3]。
3)主题作业。
在自测作业的基础上,教师应按照主题布置一些难度稍大的综合作业,学生通过主题作业的训练,能将“语言知识”和“程序设计”串成两条相互呼应的主线,加深对语言的全面理解和掌握,培养综合应用语言的能力和综合分析能力,提高编程水平。
根据教学进度和知识结合应用的程度,共设计了5次主题作业 (如表2所示),题型一般只设置编程题,主题作业的难度稍大,学生可以部分选作,
在规定的期限内通过上机实验系统完成或交给老师批改。
这就要求教师应综合考虑教学进度和知识结合应用的程度,精心规划和设计实验项目和实验内容,组织有一定难度的编程题,教师只给出做题思路提示,让学生独立完成,以提高编程水平,为综合训练做准备。
表2 主题作业一览表序号实验名称目的1 实验一三种控制结构的综合应用 1)进一步学习一些常用算术。
2)综合三种控制结构,编写程序完成较复杂的数据处理。
1)进一步学习一些常用算术。
2)综合循环、数组和函数知识,编写由多函数构成的程序完成较复杂的数据处理。
3 实验三结构体、数组和函数的综合应用综合结构体、数组和函数知识,编写由多函数构成的较复杂程序。
4 实验四结构体、指针和函数的综合应用综合结构体、指针和函数知识,编写由多函数构成的较复杂程序。
5
实验五结构体、文件和函数的综合应用综合结构体、文件和函数知识,编写由多
函数构成的较复杂程序。
2 实验二循环、数组和函数的综合应用
4)综合训练。
要真正掌握程序设计的思想和方法,运用语言解决实际问题,综合实训 (即课程设计,时间一般为1周)是不可或缺的。
综合实训要求应用软件工程的
思想和方法编写较大型程序,解决实际问题。
在综合实训中采用基于问题的教学方法,学生以组为单位 (2~3人一组),自由选题,然后围绕要解决的问题,进行分
析和研究,查阅、自学相关的文献资料,确定技术路线和实施方案,组内分工,合作完成,编写文档,最后分组答辩评分[4]。
整个过程以分组独立完成为主,教师只提供必要的辅导。
这就要求教师要精心规划训练项目 (9~10个可选题目),包括:项目问题描述、设计及实现要点、供参考的相关文献资料、文档组织要求、答
辩要求和评价标准等。
A)项目问题描述:主要从功能要求方面做出描述,包括基本功能和高级 (扩展)功能
两个方面。
B)设计及实现要点:可以从难点分析、程序总体结构、主要数据结构提示、菜单组
织结构、主要算法提示等方面给出一些参考思想。
C)相关参考文献:列出一些要求学生学习的参考资料和网站。
D)文档组织要求:给出课程设计文档的组织格式和要求。
E)答辩要求、评分标准。
经过严密的“阶递递进”模式的实践教学体系训练,学生的编程能力得到了系统的锻炼,提高了实际编程能力;特别是经过综合训练中模拟实际软件开发的演练,不
但能提高学习兴趣,培养问题求解和编程能力,还有利于培养探索和创新能力。
2.4 评价体系设计
课程评价体系可以从期末考试 (笔试)和实验考核 (机试)两方面进行综合考核,以考查学生的知识掌握程度和实践能力,二者比例为1∶1,如果学生没有通过实验考核,课程成绩直接记录为不及格。
实验考核采用平时训练和上机考试相结合的方式,
包括基本训练和上机考试,基本训练使用实验系统,该系统具有教师出题、学生训练和自动评判功能,上机考试使用测试系统,该系统具有组卷、考试和自动评判功能。
实验考核成绩按照基本训练占40%(其中:基本训练包括自主作业和主题作业,自主作业占70%,主题作业占30%)、上机考试占60%的比例进行综合评定。
综
合训练 (即课程设计)一般另外作为一门课程单独考核,从设计文档、系统实现、答辩和平时考勤等方面设计评价体系,比例可以考虑设置为3∶4∶2∶1。
3 结语
程序设计是高校重要的计算机基础课程,研究设计一套完整、科学、创新、操作性强的教学方案非常重要,直接关系到课程的教学质量。
本方案的创新性在于系统全面地设计了课程教学的各个环节,提供了较全面的方案设计内容,具有较好的科学性、系统性、实用性、可操作性和可移植性等特点,并成功运用于具体的教学实践,具有一定的参考价值。
参考文献
[1]何钦铭,颜晖.C语言程序设计[M].北京:高等教育出版社,2008.
[2]颜晖.C语言程序设计实验指导[M].3版.北京:高教出版社,2008.
[3]牛欣源.程序设计实践方案的研究与实施[J].计算机教育,2010(10):132-136.
[4]胡建荣,罗杰红.高职C语言程序设计课程实践教学体系的设计[J].计算机教育,2010(10):150-152.。