程序设计教学方案设想

程序设计教学方案设想

 

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,使之成为课堂教学的重要补充。在设计课外学习内容时,应充分考虑学生的差异,设计适当的多样性和灵活性,使学生可以根据自身水平和兴趣,选择适合的训练方式、数量和难度,自主安排学习进程,在达到课程基本要求的前提下,使自己得到充分的发展和提高。#p#分页标题#e#   2.3.2实践教学设计   由于课程学习的自身特点,听不会,也看不会,只能练会,只有通过大量的编程练习,才能实现课程的教学目标。因此,精心设计课程的实践教学内容和过程非常重要。实践教学主要包括四个主要内容,即:演示实验、自测作业、主题作业和综合训练。它们构成了一个“阶梯递进”模式的实践教学体系。   1)演示实验。教师应根据教学进度和内容适当安排一些演示实验,由教师在课堂上演示,学生观看。通过演示,使学生能够较快捷地熟悉C编程环境,较轻松地学习程序调试的基本方法和技巧。演示实验可以从两大方面入手,设计一系列的演示实验。A)编程环境演示实验。教师可以从教材中选择1~2个程序作为演示案例,按照运行一个C程序的基本步骤进行完整的演示操作和讲解,达到如下的教学目的。   ■帮助学生较快地熟悉C编程环境,掌握C语言上机实践的基本步骤(编辑、编译、连接、运行)。   ■帮助学生理解相关的概念和术语。例如:源文件、目标文件、可执行文件、程序工作区等。B)程序调试方法和技巧演示实验。培养学生调试程序能力是演示实验教学的重要目标,根据教学进度和内容,共设计了6个程序调试方法和技巧的演示实验(如表1所示),在设计调试案例时,可以设计编译改错题、逻辑改错题两种类型。通过教师的演示和讲解,达到如下的教学目的。   ■帮助学生理解程序调试、编译错误、连接错误、逻辑错误等基本概念。   ■帮助学生认识常见的错误及产生原因,并学会解决方法。   ■帮助学生掌握程序调试的基本方法和技巧。   2)自测作业。学好程序设计,贵在平时练习,学生应该努力多编程,编好程。教师应根据知识点布置一系列简单的自测作业,紧扣课堂教学内容,偏重基本知识和能力,以掌握和巩固课堂教学内容。根据教学大纲设计了11个自测作业,包括:熟悉C编程环境、简单数据处理程序设计、分支结构程序设计、循环结构程序设计、函数程序设计、控制结构综合程序设计、数组程序设计、指针程序设计、结构程序设计、程序结构与递归函数程序设计和文件程序设计。要求学生通过上机实验系统在规定期限自主独立完成,提交实验系统自动批改,给出反馈,并可反复练习,直至掌握为止。教师要精心规划和设计实验项目和实验内容,充分体现“教学做一体化”的分步教学思想(示例→模仿→独立)和举一反三的教学思想,便于学生自主学习。通常设置调试示例、程序改错、阅读完善程序和编程题等多种题型。A)调试示例题:给出有错误的源程序、调试计划和步骤,在演示实验基础上,学生根据调试计划和步骤完成程序调试,学习调试方法和技巧。B)程序改错题:给出有错误的源程序,学生可以模仿调试示例完成程序调试,进一步学习调试方法和技巧。C)阅读完善程序题:给出程序功能描述和不完整的源程序,在程序阅读习题课的基础上,每次实验都让学生自主训练,掌握阅读技巧,提高学生阅读程序的能力。D)编程题:一般设置3种级别(示例编程、模仿编程、独立编程),充分体现“教学做一体化”的分步教学思想(示例→模仿→独立)和举一反三的教学思想。其中:示例编程通常选用教材中精讲过的经典案例并做适当修改,让学生阅读程序,理解设计思路,掌握重要算法,举一反三。模仿编程在示例编程基础上,要求学生做适当修改,实现程序功能要求。独立编程只给出程序功能描述,要求学生在示例编程和模仿编程的基础上,利用所学知识独立完成编程[3]。   3)主题作业。在自测作业的基础上,教师应按照主题布置一些难度稍大的综合作业,学生通过主题作业的训练,能将“语言知识”和“程序设计”串成两条相互呼应的主线,加深对语言的全面理解和掌握,培养综合应用语言的能力和综合分析能力,提高编程水平。根据教学进度和知识结合应用的程度,共设计了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。#p#分页标题#e#   3结语   程序设计是高校重要的计算机基础课程,研究设计一套完整、科学、创新、操作性强的教学方案非常重要,直接关系到课程的教学质量。本方案的创新性在于系统全面地设计了课程教学的各个环节,提供了较全面的方案设计内容,具有较好的科学性、系统性、实用性、可操作性和可移植性等特点,并成功运用于具体的教学实践,具有一定的参考价值。