《程序设计语言强化课程设计》教学大纲(通用12篇)
课程名称:高级语言程序设计课程设计
课程总学时:32 适用专业:广播电视工程、电子信息工程、电子科学与技术
课程类别:必修
一、课程设计任务与目的
《高级语言程序设计》课程是一门实践性较强的课程,课程设计环节是课程学习的重要组成,是课程教学的必经步骤。目的是培养学生实际操作技能和解决实际问题的能力。要求学生掌握C语言设计、调试、运行方法,获得用C语言解题的实际体会,加深对C语言的理解,得到C程序设计方法和技巧的训练,掌握C程序设计的全过程。通过课程设计的教学,使学生巩固和深化已学的理论知识,加强综合应用能力,训练学生掌握分析问题、解决问题的方法,培养较强的动手能力和一定的设计和调试能力。
二、课程设计基本内容与要求
鉴于课程设计的性质、要求和具体内容,对课程设计提出如下要求;
1、关于课题及选题
在课程设计任务书中列出了多个设计课题,每个课题都有相应的要求或说明。参加课程设计的学生首先要了解设计的任务,仔细思考各题的设计要求,然后根据自已的基础和能力情况从中选择一题。一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为原则。
若学生对任务书中课题以外的相关课题较感兴趣,希望选作课程设计的课题时,应征得指导教师的认可,并写出明确的设计要求和说明。
2、关于设计的总要求
在设计时,要严格按照题意要求独立进行设计,不能随意更改。若确因条件所限,必须要改变课题要求时,应在征得指导教师同意的前提下进行。
3、验收
在课程设计完成后应由指导教师当场运行、验收,只有在验收合格后才能算设计部分的结束。
4、设计报告
课程设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。设计报告一般要以固定规格的纸张书写并装订,字迹及图形要清楚、工整(电子文档尤佳)。内容及要求如下:
(1)设计任务、要求及所用软件环境或工具。
(2)问题模型化描述以及求解算法的简要描述。
(3)设计的模块构成、各模块的简要说明、流程图、调用关系表。
(4)所设计软件的组成(程序文件和数据文件)及使用说明。
(5)设计总结和体会。
(6)验收情况。
三、课程设计设备与材料
计算机;Visual C++6.0或C-Free3.5或Turbo C++3.0软件。
四、考核方式与评分办法
1、学生按照实习计划和大纲完成实习教学任务,考试合格取得相应学分。
2、学生实习考核内容与成绩比例:实习态度与实习纪律占20%、业务能力与水平占40%、答辩与验收情况占20%,实习报告占20%。
3、无故不参加实习或实习全过程缺勤在三分之一及以上者,实习成绩视为不及格。
4、学生实习成绩按优秀、良好、中等、及格和不及格五级评定,原则上呈正态分布,严格控制优秀比例,一般优秀率不大于20%。
五、课程设计参考书
1、潭浩强.C语言程序设计.清华大学出版社.2000
2、廖湖声等.C语言程序设计案例教程.人民邮电出版社.2003
3、张仁杰 王风茂.《C语言程序设计实训教程》中国电力出版社.2004
执笔人:裘姝平
一、创新思想, 激发学生学习兴趣
据研究表明, 小学生的年龄是人生中学习知识的最佳时期, 同时也是接受新事物的黄金时期, 这个时期对于孩子的学习习惯、学习方法以及个性兴趣的形成是非常关键的。所以, 要加强小学生的教育, 为他们在以后的学习道路上打下良好基础。小学生对美术的学习是非常必要的, 美术可以提供他们最基础的审美观念, 提高其欣赏水平和道德情操, 但是传统的教学模式在教授美术课程时太过于保守, 只是以老师为中心的教授而不是以学生为重点的学习, 这就会导致学生对美术课程失去兴趣、厌学等现象。
因此, 美术课程的教学改革刻不容缓, 注重美术教学中活动的设计, 设计活动的目的是为了创新教学思想, 因势利导、因材施教, 激发学生的学习兴趣, 只要有兴趣, 学习什么课程都是手到擒来、行云流水。老师在教学过程中要改变以前的思想, 学生才是教学的主体, 老师只不过是学生漫长学习路上的引路人, 可以让他们的走的道路更顺利、平坦些, 而不能取代学生, 着重的把教育思想放在如何教会学生上, 还要让学生对学习产生兴趣, 进而可把以前被动式的学习转换为主动的求学, 学生才能在改革的教学模式中受益无穷。例如在进行“贺卡”教学时, 老师要注重学生对贺卡的理解, 在设计贺卡教学活动时, 一定要以学生为主进行设计, 激发学生对贺卡方面知识的学习, 可以在以后的生活中亲自制作贺卡。
二、转变方法, 培养学生审美能力
学习方法的好坏是一个人成功与否的关键所在, 对于学生的学习也不例外, 会应用方法、技巧学习要远远优于死记硬背式的学习, 同样的老师教学方法的好坏严重关系着同学们学习知识的难易程度, 老师在教学中讲究方法、技巧, 那么学生在学习中自然也会照葫芦画瓢, 也就在无形中学会了学习的技巧、方法, 从而可以对知识进行理解性的学习。显然, 美术被纳入小学教学课程, 其目的只是在为学生以后的教育打基础, 为他们在审美能力方面打基础, 所以我们要在小学美术教学中注意关注学生的审美能力, 培养并提高学生关于审美方面的能力, 让他们拥有高尚的节操和自己的道德思想, 审美方面要有自己独特的眼光和观点。
要远离以前在课堂中只有老师的独角戏表演, 努力使学生参与到课堂学习中来。老师在美术教学中, 进行美术活动设计时可以让学生自己对一副美术作品进行赏析, 然后将自己的观点、见解在课堂上发表出来, 学生处理事情会有自己独到的见解、独特的视角, 当然对于学生欠缺的部分老师要进行补充, 并告诉学生考虑东西要全面、细心, 这样对于学生以后在美术方面的学习会大有帮助, 同时学生通过对美术作品进行赏析, 自身的审美水平也会相应提高。在“诱人的瓜果”讲授时, 老师要让学生把自己心目中的瓜果的形象表达出来, 对于瓜果的形状、大小、外貌等进行描述或者实际绘画, 学生心目中瓜果的样子也是学生对美的一种诠释, 也是学生审美能的一种体现。
三、创设情境, 增强学生创新能力
在学习中情境的设计非常重要, 它会给学生一种身临其境的感觉, 仿佛置身于创设的情境之中, 可以激发学生更多创作方面的灵感, 对学生创新能力的培养和提高也是很有效的方法。在美术课程教学过程中, 老师要注意美术活动的设计, 在改革的教学方法之上, 对美术活动设计进行关注, 通过创设情境的方式带给学生一种新的感觉, 进而增强学生的创新能力。
例如在“瓜果的想象”这节课程中, 利用这节课来检验学生的对美的诠释是再恰当不过的, 不仅可以提高学生的审美水平, 更重要的是可以培养并提高学生的创新能力, 在教学中进行美术活动设计时, 主要体现学生的主体作用, 可以通过“你画我猜”活动进行设计, 希望通过对瓜果的各种想象以及各种情境的创设, 达到增强学生创新能力的目的。
结束语
【关键词】中职学校、程序设计语言、教学质量、教学方法、教学模式、教学手段
【中图分类号】THl26-4 【文献标识码】A 【文章编号】1672-5158(2013)04-0334-01
程序设计语言课程教学是一门培养综合能力的教学,他在要求学生掌握好课程本身内容的同时,也培养和提高了学生分析、推理、归纳的逻辑思维能力。在多年的程序设计语言课程的教学中笔者深刻体会到程序设计语言课程在中职学校中是一门有一定难度的学科,因为它除了课程本身内容外还涉及到数学、数据结构、计算机硬件系统等众多学科。以至于很多学生在学习了很长一段时间后仍不得其发,无从下手。究其原因认识如下:
一、当前中职学校学生的基本状况
近年来,由于人们对职业教育的认识问题,加之高校的不断扩招,上大学,上名牌、重点大学已成为了家长和学生的唯一追求。而职业学校毕业生国家不再包分配,职业教育受到了冷落。致使职业学校生源严重不足,一般的学校只能完成招生人数的50%~70%。无奈之下学校只好降低招生标准,结果招上来的很多是基础差、学习能力弱的学生。因此他们共同存在以下特点:
1.信心不足:因为缺乏对计算机本身解题的认识和了解,对计算机程序产生一种莫名其妙的神秘感,不能正确的认识到自己经过短期的学习是可以进行程序设计,并能基本驾驭计算机解决本专业领域的问题。再加上进人了职业学校,产生自卑情绪,自然就散失了学习程序设计课程的信心和决心。
2.力不从心:分析众多的中职学生不难看出数学、外语等课程是他们最为薄弱的学科,而学习程序设计需要较强的逻辑思维能力、扎实的数学功底。因此在学习程序设计语言课程时更多的显得力不从心。
3.学法不当:针对中职学生成绩较差的另一个重要原因是他们在前期的学习过程中很少自我审视,自我评价,自我学习,学习方法和技巧上存在着一定的问题,使得他们在学习诸如此类的综合性、实践性较强的学科时就会感到手足无措。
二、传统教学模式的局限性
在传统的教学模式中,板书教学无论是黑板还是白板都是过去、现在、乃至于将来很长时间内课堂教学所采用的一种重要形式,其优越性如:能充分体现教学目标、教学计划等,都无不让我们在平时教学中得到了深刻地体会。但是,就程序设计语言这门课程而言,却存在着众多的局限性,如教师在黑板上板书,学生在下面记笔记,对程序设计语言的理解,学生无直观感,始终在被动地接受程序知识,老师讲多少,学生学多少,完全的忽略了让学生主动学习程序设计语言来培养学生的创新探索的精神。
针对现行的教学模式,我认为在平时的教学过程中应充分利用教学资源和多媒体网络等教学手段,在此基础上再结合老师的讲解,充分调动学生自有潜在的主动学习意识,有意识的让学生参与到程序教学中来,使原先的被动接受转为主动探索,留给他们自己一个发展的空间。最终让学生在这种交互式的学习环境中相互沟通、相互协调,共同完成课程中的教学任务。
三、钻研课程理论,提高程序设计语言课程的教学质量
程序设计语言课程针对不同的教学对象应有着不同的教学目标。在高等学校中,我们可能更多的重点是通过程序设计语言教学,使学生能灵活的使用该语言进行程序设计,掌握程序设计语言的本质、基本结构、基本成分、各种语言的共性特点等。而在中职学校,我们应该将教学的目标放在语言的组成,包括程序的结构,各种语句的功能,使用方法和各种数据类型上,最终让学生再掌握了程序设计的方法和基本技巧上具备有初步的阅读、分析和设计能力。
1.精讲语言的基本要数
程序的设计犹如写文章,要想写出一篇好的文章,首先就要掌握字、词、句的用法,所以我们很难想象一个语言贫乏,不能正确理解和使用字、词的人能写出一手好的作品。编成同样如此,如果连编写程序的基本元素都不清楚,是根本不可能写出好的程序来的。因此我们在讲授这些元素时务必要讲清讲透,并且尽可能结合大量的,有针对性的例题,同时结合多媒体等教学手段,让学生分析、思考程序的结构,随之你可以对程序结构稍加变动,比如在讲到循环结构时,我们可以在同一个例题中分别采用不同的循环语句,从中让学生自己去体会、研究和发现他们的相同和不同点,从而摸索出各语句的功能和特点。
2.在坚持程序设计和程序设计语言相互并重的原则基础上注重学生阅读程序能力的培养
在讲授程序设计语言课程中始终要坚持讲授语言和讲授程序设计并重的原则。如果我们一味的以语言为中心,偏重语言的讲授,而忽略程序设计的培养,那么在学生学完课程之后并不能很好地进行程序设计来解决实际问题。反之以程序设计为重心,淡化语言的教学,则学生便会不自觉的轻视语言特点、结构的学习,结果仍会导致学生对语言中概念模糊不清,对语句中的各成份理解不深,同样使学生在进行程序设计时感到手足无措。所以我认为在平时的教学过程中必须要坚持两者并重,相互结合的原则。
要想快速提高学生的编程能力,还有一个值得我们注重的问题,就是要先培养学生的阅读程序的能力。
在我们要求学生勤于“练”题的同时,还要要求学生勤于“看”题。这样可以不断总结、借鉴别人的编程经验、技巧和方法来提高对程序的理解。在阅读过程中,我们还应不断强调学生对每一条语句的执行,程序的状态是如何变化的,最后得出一个怎样的结果,只有这样不断地去挖掘、探究,才能更有效的使学生在阅读程序的同时提高自己的编程能力。
四、注重学生能力的培养努力提高适应可质量
程序设计是一门实践性较强的学科,学生只听不练是无法达到学习该课程的目的的。只有通过上机实践体会各种指令的功能,分析程序的运行过程,及时验证与反馈运行结果,才会容易使学生在学习的过程中产生一种成就感,更大的激发了学生的求知欲望,逐步形成一个感知心智活动的良性循环,从而才能培养出学生的勇于进取、独立探索的自学能力。可遗憾的是在我们长期的实验课的教学中一直是以教师为中心,学生通常都是在统一的时间,统一的模式,按照实验指导书中的内容,甚至就按照教材中给出的例题,按步骤的做着相同的实验,这样的实验教学对学生来说完全是被动的,接受的,并且也严重地束缚了学生动脑、动手能力的锻炼和提高。所以我认为我们不妨做到以下几点:
1.课前我们要通过精心的课程设计,让学生在明确本节实习课的实习目标、任务同时将实验课题交给学生,至于问题解决的思路、方案则可由学生自行设计。
2.在实验课中,教师仅仅是一位指导者和咨询者,始终让学生出于主体位置,让他们在实践的过程中不断思考、摸索。
3.实验课程的结束,我们可以通过多种角度和方式给出试验评价,让全体学生从中掌握住本节实验课中科学的实验方法和结果。最终达到共同学习,共同发展的目标。
五、结束语
课程编号:
适用专业:机械制造、数控、焊接 专业责任教学单位:机电工程系 总学时:36学时 考核形式:闭卷 笔试 课程类型:专业基础课 选读方式:必修课 教学目的:
我们的时代是一个离不开计算机的时代,对于机械制造、数控、焊接专业学生,程序设计是学生必备的技能之一。C语言是一种广泛使用的结构化程序设计语言,它既具有高级语言的特点,又具有低级语言的特点,它的通用性与灵活性使得它比一般的程序设计语言更加通俗易懂。
本课程从介绍C语言的基础知识入手,引入“模块化程序设计”思想,强调实例教学,并结合大量的上机实践,要求学生在模仿、实践中逐步学会编写程序,提高阅读程序的能力及实际操作能力和技能,为以后更好的理解程序,学习程序,开发软件打好基础。
主要教学内容及要求:
第一部分 进入C语言程序世界(2学时)
1、要求:了解C语言的特点,掌握C程序的结构组成,算法的概念及其表示方法,熟悉VC编程环境使用。
2、内容:
1.1 了解C语言程序的结构 1.2 设计简单的C语言程序 1.3 C程序的调试与运行 1.4 计算机语言的发展
3、重点:C程序的结构、VC编程环境、算法的概念及其表示、编写最简单的C程序。难点:编写简单的C程序。
第二部分 编制C程序设计的基础知识(2学时)
1、要求:熟练掌握C语言基本数据类型和表达式,掌握并熟练运用常用的I/O函数。
2、内容: 2.1 常量与变量
2.2 C语言的基本数据类型 2.3 C语言的常用运算符与表达式
3、重点:C语言基本类型、C语言常用表达式。难点:C语言表达式运算符优先级的判断。第三部分 顺序结构程序设计(2学时)
1、要求:了解三种结构程序设计的思想,掌握顺序化结构程序设计的方法。
2、内容:
3.1 结构化程序设计的三种基本结构 3.2 数据的输入与输出 3.3顺序结构程序设计举例
3、重点:顺序结构程序设计,printf与scanf函数的使用。难点:printf与scanf函数的使用。
4、实验:
实验
一、输入/输出函数编程实训 实验
二、顺序程序结构设计
第四部分 选择结构程序设计(2学时)
1、要求:掌握选择结构程序设计的方法,if语句,switch语句的应用。
2、内容:
4.1 选择结构程序设计简介 4.2 if语句的典型应用形式 4.3条件运算符和条件表达式 4.4 switch语句的应用 4.5 选择结构程序设计应用
3、重点:选择结构程序设计,if语句与switch语句的应用。难点:if语句与switch语句的使用。
4、实验:
实验
三、选择结构程序设计
第五部分 循环结构程序设计(4学时)
1、要求:掌握循环结构程序设计的思路,while语句、do—while语句和 for语句的使用,循环语句嵌套,break和continue语句。
2、内容:
5.1 为什么使用循环
5.2 while语句与do...while语句 5.3 for语句实现循环 5.4 几种循环的比较 5.5 多重循环(嵌套循环)5.6 break和continue语句 5.7 循环结构程序设计举例
3、重点: while语句、do—while语句和 for语句的使用,循环语句嵌套,break语句。难点:循环语句的嵌套。
4、实验:
实验
四、循环结构程序设计
第六部分 应用数组设计程序(4学时)
1、要求:掌握数组的定义、引用和初始化,熟练运用数组解决同类型的多个变量问题。
2、内容: 6.1 数组的引入 6.2 一维数组 6.3 二维数组 6.4 字符数组 6.5 数组的应用
3、重点:一维数组、二维数组和字符数组的定义和应用。难点:二维数组、字符数组的应用。
4、实验:
实验五、一维数组的使用 实验
六、字符数组的使用
第七部分 应用函数设计程序(4学时)
1、要求:掌握函数的定义及调用规则,理解实参和形参数据的传递方式,熟练运用函数实现模块化程序设计,理解函数的嵌套调用和递归调用,内部函数与外部函数,理解变量的作
用范围和存储类别
2、内容: 7.1 函数的引入 7.2 函数的定义与调用 7.3 函数的嵌套调用和递归调用 7.4 函数应用实例
7.5 局部变量、全局变量及其存储 7.6 内部函数和外部函数
3、重点:函数的定义与调用、递归和嵌套函数、变量的存储类别和作用范围。难点:函数的调用、递归函数的使用。
4、实验:
实验
七、函数的使用 第八部分 应用指针编制程序
1、要求:了解指针的概念及定义,掌握指针的使用方法,掌握指针和一维数组以及指针和二维数组的应用。掌握几种特殊类型的指针。
2、内容: 8.1 指针概述 8.2 指针变量 8.3 指针与数组 8.4 指针与函数 8.5 指针数组 8.6 指向指针的指针
3、重点:指针变量的定义和使用、指针与变量、数组、函数指向应用。难点:指针变量作为函数参数、指针指向数组、函数的应用。
4、实验:
实验
八、指针的简单使用 实验
九、指针的高级使用
第九部分 结构体、共用体和枚举类型的应用(4学时)
1、要求:理解并掌握结构体的基本概念和用法,掌握共用体和枚举类型的基本概念及一般使用方法,了解用户自定义类型。
2、内容:
9.1 结构体类型与结构体变量的定义 9.2 结构体变量的引用 9.3 结构体数组 9.4 结构体与指针 9.5 结构体与函数 9.6 结构体应用—链表 9.7 共同体 9.8 枚举类型
9.9 用typedef定义类型
3、重点:结构体、共用体和枚举类型的定义、引用和初始化 难点:结构体的概念和使用
4、实验:
实验
十、结构体和共用体的应用 第十部分 文件(2学时)
1、要求:理解文件的结构类型、文件指针的相关概念,掌握文件的打开、关闭、读写、定位等文件操作
2、内容: 10.1 文件概述 10.2 文件的常用操作 10.3 文件的应用举例
3、重点:文件的打开与关闭,文件的读写 难点:文件类型指针的概念,文件的读写
4、实验:
实验
十一、文件的使用
第十一部分 C语言程序设计应用实例(4学时)
1、要求:成功完成“实现通讯录的管理程序”与“贪吃蛇游戏编程实例”训练。
2、内容:
11.1 实现通讯录的管理程序 11.2 学生成绩管理程序
11.3 图形与游戏编程实例
3、重点:强化多种C语句、规则的混合使用,理解结构化程序设计的思路。难点:C语句规则的熟练使用,图形库函数的使用。本课程与其它课程的联系与分工:
先修课程:《计算机应用基础》、《高等数学》、《线性代数》
编写者签名:
****年**月**日 系部审核:
教务处批准:
年
月
****年**月**日
作者简介:刘在英(1977.-),男,山东人,硕士,副教授,研究方向:图像与大数据处理。张丽晓(1979.-),女,河北人,博士研究生,讲师,研究方向:数据挖掘。
摘要:本文提出了《C语言程序设计》课程教学中存在的一些问题,并针对性的给出了课程教学改革的实施方案,主要包括编制详细的教学设计方案,改变传统的教学方式,建立严格的学生考核机制,加强教学方法的改革,建立新型的实验教学模式等。关键词:C语言程序设计;教学方法;考核机制;
中图分类号:TP31文献标志码:A文章编号:2095-9214(2015)08-0096-02
一、引言
《C语言程序设计》是计算机相关专业的一门基础课程,是培养学生计算思维能力、程序设计与实现能力的入门课程,同时也是《数据结构与算法分析》等课程的先导课程;C语言也是IT企业中常用的编程语言。因此,该课程的教学对学生后续课程的学习和今后的工作都会产生重要的影响。对于初学者而言,因为逻辑思维能力较弱,所以在学习过程中积极性不高,学习效率低下,难以提高其编程语言解决实际问题的能力。经过多年的授课,笔者对《C语言程序设计》的课程教学进行了一些探讨和实践
二、教学中存在的问题 1.教学主体以教师为主
在传统的教学中,教学主体往往以教师为主,高等院校对教师的考核注重“科研”,因此很多教师容易忽视“教学”的重要性。在《C语言程序设计》的教学中教师方面的问题主要包括:①课程的知识点较多,存在教学内容与教学时数之间的矛盾;②教师的教学方法、方式陈旧,难以激发学生主动学习的兴趣;③教师在教学中大多重课堂教学,轻实验教学;④任课教师往往没有工程实践经历,其综合业务水平有待提高。2.教学中没有充分调动学生学习的积极性
《C语言程序设计》的课程学习是在新生入学的第一学期,这对课程的教学也带来一定的消极影响,主要体现在:①学生学习目的不明,动力不足,很多学生以为进入了大学主要是锻炼社会交往能力;②学生的逻辑思维能力较弱,想象空间较窄,遇到挫折容易产生厌学情绪;③由于受传统应试教育的影响,学生大多重教轻学,重理论轻实践,考试能力强,编程能力弱,不能用计算思维解决实际问题。
三、教学改进的举措
针对上述问题,笔者摒弃以单向性知识传授为主的教学模式,主张讲课教师应以课程的内容和学生的知识积累为基础,积极引导学生创造性地运用知识和能力,自主地发现、分析和解决问题,学生在研讨中学习知识、培养能力和提高素质。具体的教学实施方案包括: 1.编制详细的教学设计方案
为帮助学生提高自主学习和创新的能力,需要制定详细的教学设计方案,该方案是课程教学具体实施的主线,它相当于一场晚会的节目演出单,讲课教师是导演和主持人,而学生是主角和演员。教学设计方案主要包括:教学日期和时数、教学内容和主题、实验内容、教学方法、教学手段和作业安排等。2.优化教学内容
该课程存在教学内容较多而教学时数受限,全面而细致的讲解所有的内容已不合时宜。教学内容的优化应满足教学目标的要求,满足学生的学习需要,激发学生的学习兴趣[1]。因此,我们按照“少而精、宽而新,突出核心的知识点”的原则优化教学内容,体现教学内容的先进性、实用性。按照学习进度,给学生安排相应阶段的学习任务,有些内容要求学生自主完成。3.改变传统的教学方式
传统的“填鸭式”教学方式效果并不好[2],因此,我们在教学引入并主要采用了“讨论式”教学,以充分调动学生学习的积极性,具体的做法包括:①每次授课结束前,布置预习思考题,要求学生在课下充分预习,课上围绕思考题展开讨论,每次课分组讨论1-3次,每次2-5分钟;学生课堂讨论、发言或回答问题的时间约占总学时的20%;②随机抽查回答问题与各组指派同学回答问题相结合,回答问题不以正确性为唯一依据,也注重表达过程的清晰度和逻辑性,尤其鼓励问题回答者阐述自己的观点或提出问题。统计表明,学生回答问题次数平均水平有6-8次;③将学生在课堂教学过程中的表现按评分标准将其分值记入到平时成绩档案中。
4.加强教学方法的改革
在教学中应以学生为中心,引导学生走向知识,通过合理施压,注重师生的互动交流,培养学生善于总结、发现问题和主动学习的能力[3-4]。在《C语言程序设计》的课程教学中,我们对教学方法做了如下改革:①“案例教学法”贯穿教学全过程,“学生信息管理系统”贯穿了该课程的全部章节,是学生在学习过程中的“长期任务”;②“任务驱动法”引导学生学习,“长期任务”可以分解为多个对应于知识点的“短期任务”,有助于学生逐步提高编程能力;③用“负反馈教学法”解决学生学习中问题,有效的提高学生的学习效率;④弱化语法,以“算法为先”实现实际问题的求解;⑤并用“多媒体”教案扩大课堂信息量,精心制作与教材配套的CAI课件和习题。5.建立新型的实验教学模式
为了激发学生学习的积极性,我们通过建立新型的实验教学模式[5],包括:①为增强学生学习的体验感,减少了基础验证型实验比例,增加综合型实验和设计性实验的比例;②建立以小组为单位的实验完成机制,培养学生的团队合作能力;③加强实验报告的规范,增强学生的职业岗位意识;④建立定期的课外讨论机制,教师定期发布讨论主题,学生以小组为单位进行准备,然后通过专题讨论和点评,并将学生的表现记入平时成绩档案;⑤鼓励实验动手能力的较强的同学自己设计实验项目,并依据结果给予其一定的平时成绩奖励。6.健全严格的学生考核机制
传统的考核以笔试为主,学生为了应对考试采取死记硬背的方式,为此我们建立严格全面的考核机制,包括:①建立学生学习小组,分组原则是小组内部异质化,小组之间同质化;②建立每个学生平时学习成绩档案,学生的平时表现与分值相对应;③制定公平合理的成绩评定方案:学期总评成绩=平时成绩×60% +期末考试成绩×40%,平时成绩=小组成绩*小组人数*组员在项目组的贡献百分比(组员的贡献百分比是在教师给出小组成绩之前,经过该小组的全体成员一致同意后提交给任课教师),这种考核方式可以促进学生的团队协作精神和竞争意识;而期末考试侧重于通过编程以解决实际问题,从而促使学生平时多思考、多上机实践,有助于提高他们的逻辑思维和编程能力。7.积极开展第二课堂教学
四、结束语
以上是我们在《C语言程序设计》课程教学方面所做的探索和尝试,学生的逻辑思维和实践编程能力得到了较明显的提升:①在全国和上海市的计算机二级C语言考试中,本专业学生的通过率逐年提高;②学生参加上海市和全国的C语言程序设计大赛获得良好的成绩;③近年来学生对本课程教学反应和评价良好,本课程被评为学校的重点课程。(作者单位:上海杉达学院信息科学与技术学院)
学中的应用
针对目前高职高专院校C语言程序设计课程的教学目的及教学中存在的问题进行分析,提出采用“项目驱动模式”进行教学。阐述“项目驱动模式”的原理及特点,结合C语言程序设计课程教学项目阐明如何在“项目驱动”模式指导下开展教学,以更好地提高教学质量,改善教学效果。
DOI10.11907/rjdk.143825
基金项目甘肃省教育厅科研项目(0719B-03)
李文娟(1984-),女,甘肃定西人,定西师范高等专科学校计算机系讲师,研究方向为计算机程序设计语言类课程教学及算法。
0 引言
《C语言程序设计》是目前各高等院校开课率很高的一门课程,它既是软件技术等专业的专业基础课程,又是数据结构、程序开发及其它程序设计语言的先导课程。因此,本课程的教学宗旨是将C语言从应试课程转变为一种实践工具,主要目的不再局限于使学生单纯地了解和掌握C语言的基本语法规范,而是致力于培养学生运用C语言解决实际问题的编程能力,以及培养学生无论将来在学习、工作中使用
第 1 页 什么语言编程,都能灵活应用这些思想和方法的能力。
《C语言程序设计》课程教学现状
目前,在高职高专院校开设的《C语言程序设计》课程教学中普遍存在以下3方面问题①传统教学方法过于注重教师角色,在课堂上以教师讲、学生听为主,无法调动学生的思考积极性;②不重视实践教学环节,造成理论与实践脱节,教师在课堂上过于重视语法和程序本身,而忽略了学生动手能力的培养,不利于培养学生独立解决问题的能力;③教学内容及教材选择不当,内容衔接不连贯,教师讲得费劲,学生学得吃力,不但影响了学习效果,也让学生失去了学习兴趣。为了改变这一现状,提出采用“项目驱动模式”进行C语言课程教学,让学生在学中做、做中学,从而做到学以致用,理论联系实际。项目驱动模式原理与特点
所谓“项目驱动模式”,是指在教学过程中以完整应用程序项目为依托,采用“任务驱动”的方式,把所有零散的知识点难易适当、循序渐进、合理地分配、贯穿到项目各个环节中,层层推进项目,通过对问题的深化或功能扩充,拓宽知识的广度和深度,让学生在有限时间内,既能完成既定任务,又能激发学生学习兴趣的一种实践活动。
第 2 页
项目驱动模式最根本的特点是将一个完整项目划分成若干个相对独立的子任务,以任务为主线、教师为主导、学生为主体,变被动学习为主动探究,充分调动学生的学习积极性,是一种让学生主动参与、自主协作、探索创新的一种新型教学模式。项目教学模式在教学过程中的应用
3.1 项目提出
在《C语言程序设计》课程中,使用项目驱动教学模式,最关键的是要选择一个适合自己教学内容、突出所学知识的项目。在选择项目时要注意以下几个问题
(1)充分考虑授课对象的层次和特征,了解学生已有知识和能力水平,从而选择适合他们的项目。
(2)充分考虑课程内容,根据课程内容的重点、难点,将项目设计成一个个相对独立的子任务,以便于任务实现和项目完成。
(3)充分考虑项目的来源,要根据学生的特点和兴趣,选择学生熟悉的项目[3]。
基于以上考虑,选择“学生成绩管理系统”作为教学项目。遵循“实用为主,必须和够用为度”以及高职学生认知循序渐进的原则,在教学过程中,按照“阶梯递进”的达
第 3 页 标要求,将成绩管理系统分为简易成绩管理系统和高级成绩管理系统两步完成。在简易成绩管理系统中,要求学生完成成绩的输入、存储、显示和计算平均成绩、求最高分、最低分以及计算不及格率等功能;在高级成绩管理系统中,要求学生完成对含有学生信息和课程信息的成绩记录的输入、输出、写入文件和从文件中读取成绩记录,以及插入、删除成绩记录和基于现有成绩记录的排序、查找等功能。
3.2 任务分解
在以完整项目为主线的教学过程中,可将项目划分成阶梯递进的任务链,形成任务阶梯。任务阶梯指按项目要求设计的任务中包括几个小任务,这几个小任务不是完全独立的,前一个任务的完成应为后一个任务的展开做好铺垫,而且任务由简到繁,由易到难,再由高级任务涵盖初级任务,这些大大小小的任务共同完成教学实践项目,使教学呈现阶梯式层层递进的体系[2]。因此,可将C语言中的各种零散知识点融入任务链中,以任务驱动教学。
例如在简易成绩管理系统中,可划分为以下4个子任务①显示菜单,要求在屏幕上显示简易成绩管理信息系统的主菜单,相关知识点包括数据类型、常量、符号常量以及printf函数最简单的用法等;②选择菜单项,要求根据屏幕
第 4 页 显示的菜单项,输入菜单项所对应的序号,在屏幕上显示所选菜单项,相关知识点包括数据存储的本质、变量、格式输入与输出函数、if语句和switch语句、while语句和do-while语句、逻辑运算符与逻辑表达式、关系运算符与关系表达式以及字符输入与输出函数等;③菜单实现架构,要求根据屏幕显示的菜单项,输入菜单项所对应的序号,调用相应函数在屏幕上显示所选菜单项,相关知识点包括函数定义和函数调用、函数参数和返回值以及被调函数的声明等;④简易成绩管理系统,要求根据屏幕显示的菜单项,输入菜单项所对应的序号,调用相应函数实现成绩管理的基本功能,相关知识点包括算术运算符与算术表达式、赋值运算符与赋值表达式、数据类型转换、磁盘文件的读写、for语句、break语句以及continue 语句等。
在完成简易成绩管理系统的程序设计后,可将项目递进为高级成绩管理系统,并将其分为上、下两部分。在高级成绩管理系统的上半部分,可将任务再次分解为4个子任务①含有学生信息和课程信息成绩记录的输入和输出,要求在屏幕上显示高级成绩管理系统的主菜单,完成从健盘输入含有学生信息和课程信息的成绩记录、向屏幕输出成绩记录、将成绩记录保存到文件和从文件中读取成绩记录等功能。相关知识点包括数组的定义及引用、结构体的定义及引用、字符串处理函数等;②学生成绩记录的排序,要求在任务一的基础上完成对含有学
第 5 页 生信息和课程信息的成绩记录进行排序的功能。相关知识点包括冒泡排序与简单选择排序法;③学生成绩记录的查找,要求在任务二的基础上完成对含有学生信息和课程信息的成绩记录进行查找,相关知识点包括顺序查找与折半查找法、递归函数与递归调用;④学生成绩记录的插入和删除,要求在任务三基础上完成在原有学生成绩记录基础上进行插入和删除的功能,相关知识点包括数据中元素的插入与删除操作。
在高级成绩管理系统的下半部分,任务划分与上半部分相同,主要知识点包括指针和指针变量的概念、定义及引用、动态存储分配、链表的基本概念及应用。要求学生在熟悉高级成绩管理系统的基本功能之后,能够用指针方法实现相同的功能和操作。
3.3 任务执行
针对项目驱动教学模式的特点,将学生分成若干个项目小组,在教师完成相关知识点讲授之后,小组内成员可以通过交流、协作等方式完成项目内的子任务,并在小组之间进行讨论。随着项目驱动教学模式的逐渐实施,在任务执行过程中采用基于模块的过程性考核评价方式,让学生每次将编写的程序上传到教师服务器中,直至本组项目完成。这种方式很好地锻炼了学生的程序设计能力,为今后能较快地参
第 6 页 与实际软件项目开发奠定了坚实基础[3]。
3.4 实践总结
教师对学生实践过程中遇到的问题要及时指导,并对学生们完成任务的情况进行归纳、总结,进一步提高其编程能力。
教师提出的“学生成绩管理系统”应用程序项目贯穿整个学期,与理论教学进度一致。在整体项目背景下,又以一个个相对独立的子任务驱动教学,将课程中相关知识点融入任务中,每个任务的确立都根据学生现有知识状况和教学内容统筹安排。在任务驱动下,学生边学习边实践,可充分发挥学习的主动性和创造性,提高解决问题的能力,并体验到任务完成后的成就感,从而进一步激发学生学习兴趣。
结语
通过分析《C语言程序设计》课程与高职学生的特点,采用“项目驱动”和“任务驱动”模式开展教学,能够充分调动学生的学习兴趣和积极性。教学实践表明,该教学方式有效避免了教与学、学与做的脱节,实现了理论学习与实际应用的“零距离”,从而有效提高了学生C语言综合应用开发能力。
现在高等学校, 一般也都根据不同的需要选用不同的程序设计入门课程。其中C语言作为一门程序语言基础课, 由于其功能强、使用灵活等优点受到广泛的欢迎, 也就是说C语言已经成为了学习程序设计语言的一个必要的基础。在学时相对较少的情况下, 学生要学好这门课有一定的难度.但依然要提高教学的质量和效果是广大教学工作者正在思考和探索的问题.
2、教学过程中的改进
2.1 教学方法的改进
C语言作为DOS时代的一种主流程序设计语言, 已逐渐演变成为一种程序设计的入门级语言——重在使学生熟悉计算机处理事务的过程, 掌握程序设计的思想, 完成学生从中学生到大学生学习思想的转变。因而C语言程序设计课程这门课大多高校开设在一年级的第一学期, 要从只要求计算机基本操作的中学时代迅速转换到大学时代的程序设计员, 对于学生是一个逐步转变、逐步学习的过程。而对于我们教育者来说, 如何去改进现有的教学方法, 正确的引导学生学习思路、学习方法的转变, 以提高课堂教学的质量.笔者在以下几方面进行了尝试:
2.1.1 教师角色的转变
中学时代的教学多以升学为基本任务和目标, 所以中学教师的教学多以灌输式为主, 在教学过程中教师始终是主体, 而学生总是被动的接受和消化。而大学时代的教学是以培养学生的基本素养和能力为目标, 因而要求教学的过程要以学生为主体, 教师要做正确的引路人, 而不是知识的灌输者。因而教师角色的转变实际上更多的还是在学生心目中中学教师角色到大学教师角色的转变, 要在教学的第一堂课向学生宣布这个事情, 使学生从教师角色的转变到学生自己明白他们已经跨入了人生的有一个新的阶段:自己的学习、思想都要有更大的转变, 从以前被动的接受学习, 到大学时期的主动自觉的学习, 从而培养和更大的提高他们的学习能力和其他方面的能力。
2.1.2 课堂实施的转变
C语言作为一门程序设计语言自然有它自身的特点, 但是作为一门言语课, 他又脱不开与学生很熟悉语文、英语这些语言课学习的共同之处。根据笔者的学习和教学经验:得知更多的学生在学习C语言的过程中, 甚至在学习完这门课后也不知道C语言的作用是什么, 它学习的重点内容是什么。所以C语言教学的课堂实施的转变更是教学的重中之重:要使学生从中学时期纯粹的数理化的学习转变到大学时期专业能力和自身适应能力的学习。根据笔者多年的教学, 我们引用用了一个全新的教学方法—“3W1H”教学法。在讲C语言前和所讲的每一节课都要使学生明白正门课或者所讲的每个知识点是什么 (WHAT) , 在哪里能用 (W HERE) , 为什么要这样用 (WHY) 和怎么去用 (HOW) 。从总体的结构:程序设计语言的3W1H到没一点的3W1H, 我们在每一节课的过程中都要去给学生分析、实践。另外我们又结合语言课的特点教会学生从C语言的字 (字符) 、词 (数据类型、变量常量) 、句 (语句) 和章 (函数、程序) 入手去总结, 打乱教材的原有章节, 去分析总结, 从而大大提高了学生学习的效率。
2.1.3 选择合适的软件
在我们学习任何一门程序语言之前, 都要先安装好它所匹配的软件:一个开发环境, 例如turboC2.0。这个软件曾经占据了D OS时代开发程序的大半个江山, 但对于现在的Windows时代, 用turboC有时感觉力不从心, 编辑程序很吃力, 没有函数变量自动感应功能, 查询参考资料也不方便。建议使用Visual C++, 这个东西虽然比较大块头, 但是一旦安装好了, 用起来很方便。一般在学习完C语言之后都会学习一下C++的, 因为C++是针对于windows的可以运行C程序的软件。
2.1.4 采用传统教学和多媒体教学相结合的方式
C语言的课堂教学改掉了过去纯粹的黑板教学, 而采用了黑板教学加多媒体教学进行。首先, 考虑到该课程基本概念多, 同时需要分析大量的例题, 我们把一些典型的例题在讲课时先有老师进行剖析设计算法, 并和学生分析要解决这一问题用C语言编程所需要的本节课或者以前学过的知识点, 然后在黑板上和学生一块去画出流程图, 最后和学生一块去写出程序。这样不仅帮助学生学会了分析问题和解决问题的思路和方法, 同时也让学学生熟悉了计算机解决问题的过程:从实际问题分析描述, 到计算机的实现, 是学生明白要写一个程序重要的是解决问题的过程—算法, 而程序只是最后在计算机对这个算法的描述而已, 从而使学生更加注重对程序设计思想的学习和锻炼, 这对一个成员的学习十指关重要的。其次合理使用教师配套的多媒体教学设备, 对于这些典型的基本概念和例题我们又预先输入计算机做成课件 (CAI) , 在课堂上和学生完成后去分析程序的运行情况。把典型的例题直接在C语言集成开发环境中输入运行, 真实形象, 可以达到事半功倍的效果.例如讲到过程时, 学生往往对过程中参数传递的两种方式 (按值传递和按地址传递) 很难理解, 而这又是该课程的重点和难点, 确实比较抽象, 在讲解过程中笔者把这两种传递方式结合例题来讲:
函数Swap1中的形参是两个一般的整型变量, 说明调用Swap函数时实参a, b和形参p1、p2间为按值传递, 而函数Swap2中的形参是两个指针类型的变量, 说明调用Swa p函数时实参a, b和形参p1、p2间为按址传递, 要学生回答命令按扭Command1单击后窗体上输出的值, 大多数学生可能回答不正确, 这时可把程序粘贴到C++集成开发环境中运行输出结果.仅这样学生还会觉得难理解, 于是笔者又在课件中做了说明, 如图1所示。
调用子过程Swap1时, 给形参x、y分配临时内存单元, 将实参a和b的值复制给x和y, 在被调子过程Swap1中x、y通过第三变量t实现交换, 调用结束时形参x、y的临时内存单元将释放, 实参a和b仍保留原值. (如图1、图2)
调用子过程Swap2时, 形参x、y分别和实参a、b共用存储单元, 因此, 在被调子过程Swap2中x、y通过第三变量t实现交换后, 实参a和b的值也同样发生交换.
同时在C++集成开发环境中逐语句运行程序, 分别观察在Swap1和Swap2调用前、调用中和调用后实参a、b和虚参x、y的变化, 加深学生的理解.再次, 因为程序设计课程要求培养学生的逻辑思维能力, 程序的分析、算法的产生一开始不宜全盘托出, 而应启发式地边讲解、边书写, 以此引导学生步步深入, 此时实物投影仪或粉笔就是比较合适的媒体.因此, 在C语言课堂教学中我们将课件 (CAI) 、C++集成开发环境、实物投影仪或粉笔三者结合, 收到了良好的教学效果。
2.2 强化实验环节中教师的责任意识, 注重学生能力的培养
C语言程序设计是一门实践性很强的课程, 在学习C语言过程中, 仅书面理解往往是不够全面的.通过上机实践, 学生才能真正理解消化课堂上的教学内容, 纠正原来理解上的偏差, 加深对C语言的了解。但是仅靠上机课上学生自己的上机练习往往是达不到目的的, 特别是我们的高职类的学生, 他们本身学习的能力就较差, 如果不加引导在上机练习时大多数情况是把理论课上的例题敲进计算机, 然后一运行看一下结果正确是否就完了。根本就没去思考, 更不要说去进一步的去验证理论课上的知识点了。所以我们针对于学生的情况, 强化实验课中教师的责任意识, 加大辅导的力度:要求老师去正确的引导学生上机课应该怎样去做, 而不是纯粹的计算机录入课。上机课上老师既是知识点总结的引导者, 又是学生上机练习的辅导者, 特别要强化老师对学生所出现的共性问题的讲解和总结, 从而使学生能到同一案例能举一反三, 真正达到验证消化理论所学, 提高能力的目的。
3、结语
C语言具有诸多的优点, 是使用性很强的程序设计语言之一, 自推出以来就受到了人们的普遍欢迎.但是, 对于非计算机专业的学生来说, C语言又是一门较难学的课程 (特别是对于那些没有编程基础的学生) .在C语言程序设计教学过程中, 采用传统教学和多种媒体的教学相结合方式, 以提高课堂教学的质量和效率, 通过实践提高学生利用C语言进行程序设计的能力, 抓住C语言重点内容和环节, 把程序设计思想贯穿于整个教学过程, 使C语言成为学习程序设计的敲门砖, 为他们后期的学习打下坚实的基础。
摘要:分析了C语言程序设计课程的特点, 对该课程教学手段、教学方法的改进, 及教学内容的完善等方面作了一些探索和实践.
关键词:C语言程序设计,教学方法,算法,教学研究
参考文献
[1]谭浩强, 张基温.C语言程序设计教程[M].北京:高等教育出版社, 1998.
【关键词】C语言;教学方式;评价系统
1.引言
现阶段,我们国家的很多高职院校都将C语言看做是比较重要的课程,并且是计算机专业学习的基础,但是,经过相关调查显示,在学校任职的教师在对C语言进行教学的过程中,比较普遍的反映就是比较难教,并且在教学的过程中教师基本上比较注重基本的专业知识的培养,而学生在学习C语言的过程中基本上的反应都是比较难学,所以说在C语言的教学过程中无论教师还是学生都极为不满意。
经过笔者深入的调查研究发现,在实施C语言程序设计的教学过程中主要存在以下几个问题:第一,在教学的过程中教师处于主体地位,学生基本上只是负责接收教师教的基本理论知识,不能有效的和老师进行互动,不能积极的发表自己的观点。第二,在教学过程之中,对学生细微意识的培养还远远不够。第三,对于学生成绩的好坏进行的评价基本上都是以考试成绩进行评价的,这样的评价方式明显是不合理的。第四,对于学生独立思考的培养不够,虽然在教学结束之后学生能够进行简单的编程,但是其综合素质方面是十分不完善的。
2.问题一,转变教学观念和教学模式
在教学过程中要不断的重视学生自主能力的培养,在学习过程之中要不断引导学生积极主动的学习,进而使得他们在学习方式上有所转变。对于在教学的过程中教师的教学地位进行重新的定义,经过研究之后教师在教学的过程中其地位主要在下面几个方面体现:(1)负责对课程进行设计。在教学的过程中,教师对于案例进行合理的分析,然后在此基础上进行教学,主要的目的是对学生的思维能力进行培养,为学生架构比较完善的知识体系结构。(2)在学生之间组织共同学习。在C语言的教学过程中分成不同的小组,然后让小组之间经常进行交流,那么一定程度上能够培养学生独立思考的能力。在教学的过程中最为主要的是要让学生了解为什么要学些C语言,不然在学生不知道为什么学习的情况下进行学习,那么他的学习就会存在一定的盲目性。(3)教师在学生学习过程中还要扮演一个合作者的角色。在教学的过程中要对学生的优点进行肯定,对于不同的学习要采取适合他们的教学方法,培养学生的兴趣,对于不同学习程度的学生设计不同的学习目标。(4)在教学过程中要及时的进行反思。主要是对教学过程中的教育方式、态度以及教学的重点进行反思,在此基础上对教学的过程进行总结,使得教学水平有效的提高。
3.问题二,协同学习与合作研究方式
由于信息技术的快速发展,使得个人获得知识的渠道有限。在教学的过程中可以根据学生的学习水平以及性格等各个方面,将能够互相学习的小组放在一个小组,这样在学习的过程中这些学生能够自主的进行学习。在学习的过程中,为了更好的掌握所学的知识就会更加及时的进行交流,久而久之也就形成了合作研究的学习方式。
4.问题三,编写符合学生思维规律的讲义
在C语言教学的过程中,之前对于语法一直都比较看重,教科书在编写的过程中比较的难懂,处于学习阶段的学生对此根本不能完全理解。在这样的教学模式之下,就使得学生即使能听懂C语言课程,但是却不能妥善的进行应用。在这样的背景之下,在编写C语言的教程的时候,需要按照学生的思维方式进行编写,这样使学生更加容易理解,并且在理解的基础上能够投入实用。教学过程中要注意培养学生的综合素质,不要使得培养的学生只能进行理论研究,却不能够将学习到的知识投入实用。
5.问题四,注重研究带动教学
随着教学改革的实施,现阶段属于一种创新性的教学模式,现代社会的发展最需要的就是创新型人才,要想培养这样的人才就需要运用创新型的教学模式。在创新性教学模式中,教学的主体是学生,教学的过程主体也是学生,因此在教学过程中一定要注重学生、教师间及时的交流沟通,同时强调在教学过程中教师、学生共同参与的重要性,最大限度的使学生创新思维的能力得到有效培养。
6.问题五,丰富教学方法和教学手段
在教学过程中,一定要充分考虑学生要求,然后根据学生可以接受的学习方式来进行教学,改变传统老师教、学生听的教学模式,对比较受学生欢迎的教师组织学习观摩,使得教学成功的案例被有效的推广。随着现如今互联网的快速发展,可以依靠互联网带动教学发展,并把传统教学模式融入到互联网教学中,进而大幅度提高教学小龙。对于那些难以理解的部分,增加动画演示。在教学的过程中要注意引导学生自主进行编程。请比较优秀的学生传授起学习的经验,培养学生合作的精神。
7.总结
经过一段时间的实践之后发现,现阶段我们所使用的教学方法是比较合理的,因为已经取得了非常显著的研究成果。在运用该教学方法之后学生自主编程的能力得到有效的提高,并且学生之间懂得了如何进行团队协作,学生对于为什么学习C语言也有了一个较为全面的认识。对于C语言的教学模式进行改革不是短时间内就能完成的,接下来还需要做很多的研究。
【参考文献】
[1]任正云.课程建设的探索实践与研究——以《C语言程序设计》为例[J].电脑知识与技术,2016(19)
[2]赵震伟.应用型高校《C语言程序设计》课程教学改革[J].黑龙江科技信息,2016(24)
[3]陶荷芳.浅谈如何在C语言教学中培养学生的合作能力[J].读与写(教育教学刊),2014(02)
[4]陈效兰,张岩.师生互动式研究型教学对创新型人才培养的探索[J].教育探索,2008(10):35-36
1.设计的目的和任务
(1)目的:课程设计是本科教学全过程中重要环节。其目的是培养计算机专业学生运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生汇编语言综合编程能力,程序调试技能。
(2)任务:能够按照设计题目完成相应设计;撰写设计报告。
2.设计要求
完成设计任务,撰写设计报告,上交源程序和可执行程序,源程序加注释
3.设计地点
学院计算机实验室或自己的计算机
4.主要仪器设备(实验用的软硬件环境)
普通微机一台;汇编语言环境(基于DOS环境:EDIT、MASM、LINK、DEBUG;基于Windows环境)
5.设计内容
5.2 汇编程序设计的内容 题目自拟(每人单独一题),但必须有一定的难度和一定的设计工作量,可参考课本内容和设计辅导书内容,也可参考其它参考书。
6.问题讨论与分析
根据自己设计和调试过程出现的问题进行分析的讨论,并进行小结。
参考文献
1、詹仕华等编.《汇编语言程序设计》.北京:中国电力出版社.2008.2
2、詹仕华等编.《汇编语言程序设计习题解答及课程实验、设计辅导》.北京:中国电力出版社.2008.2
3、王爽编.《汇编语言》.北京:清华大学出版社,2003.5
4、曹加恒等编.《新一代汇编语言课程设计》.北京:高等教育出版社,2003.6
5、杨路明等编.《汇编语言程序设计》.长沙:中南大学出版社,2005.8
实验室观看设计结果时间和上交设计报告时间:6月24日,地点:学院机房。
附课程设计大纲
《汇编语言》课程设计
课程名称(中文):汇编语言
课程名称(英文):Assembly Language
总周数:1周学分数:1分
1.目的及任务
(1)目的:课程设计是本科教学全过程中重要环节。其目的是培养电子信息专业学生运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生汇编语言综合编程能力,程序调试技能。
(2)任务:能够按照设计题目完成相应设计;撰写设计报告。2.要求
完成设计任务,撰写设计报告,上交源程序和可执行程序,源程序加注释。3.面对专业
电子信息工程、计算机科学与技术 4.成绩评定
设计过程和结果自述占50%,课程设计报告占50%。5.主要仪器设备、工具书、参考文献资料 主要仪器设备:通用PC机
工具书:课程教材
参考文献资料:
沈美明、温冬蝉编著,《IBM-PC汇编语言程序设计》清华大学出版社;
1.实验题目:职员信息管理系统
2.数据结构:整型int,字符型char,长整型long,结构体及结构体数组 3.源代码 :
#include“stdio.h” #include“string.h” #define N 20
/*符号常量的定义*/ struct employee
/*定义结构体类型employee*/ {
char name[15];char sex;long num;
/*职工工号可能较长,定义为长整型*/ char debt[15];int salary;char office[15];char tel[15];}emp[N];
/*定义结构体数组,并将其作为全局变量*/ void menu(){
int i;printf(“请选择您的操作:n”);printf(“tt1.增加职工信息n”);printf(“tt2.查找职工信息n”);printf(“tt3.显示所有职工信息n”);printf(“tt4.删除职工信息n”);printf(“tt0.退出n”);printf(“请选择按键!(0-4):n”);scanf(“%d”,&i);
/*从键盘输入数据并将其值赋给i*/
void input();void search();
void show();void omit();
/*被调函数定义出现在主调函数之后,应对其进行原型说明*/ switch(i)
/*使用switch语句,根据i的数值,进入相应的操作环境*/ {
case 1:input();break;
case 2:search();break;
/*在switch语句中掌握对break的使用*/ case 3:show();break;case 4:omit();break;
/*实现函数的调用*/
case 0:
{ printf(“tt-----n”);printf(“tt谢谢您对本公司职工信息管理程序的使用n”);
printf(“tt-----n”);}break;
default:printf(“您输入的数据有误,请确认后重新输入!n”);menu();} } void fun(int i)
/*search()函数和omit()函数都对此函数进行调用,输出相应职工信息*/ {
printf(“职工信息找到!!信息如下:n”);printf(“姓名t工号t性别t部门t工资t职位t电话n”);printf(“%st%ldt%ct%st%dt%st%sn”,emp[i].name,emp[i].num,emp[i].sex,emp[i].debt,emp[i].salary,emp[i].office,emp[i].tel);} void input()
/*定义input()函数,实现职工信息的录入功能*/ {
int i,j,k,a;for(i=0;i /*使用条件语句,防止原有的职工信息被覆盖*/ { printf(“增加职工信息时:n”);printf(“请输入职工姓名:”);fflush(stdin); /*刷新缓冲区,下同*/ gets(emp[i].name); /*使用gets()函数实现字符串的输入,下同*/ do { printf(“请输入职工号:”);scanf(“%d”,&a);for(k=0;k if(k /*判断所输入工号是否已存在*/ printf(“该工号已存在,请重新输入!n”);}while(k /*do-while语句控制本层循环*/ emp[i].num=a;printf(“请输入职工性别,男(M)女(F):”);fflush(stdin);emp[i].sex=getchar(); /*使用getchar()函数实现字符的输入*/ printf(“请输入职工部门:”);fflush(stdin);gets(emp[i].debt);printf(“请输入职工工资:”);scanf(“%d”,&emp[i].salary);printf(“请输入职工职位:”);fflush(stdin);gets(emp[i].office);printf(“请输入职工联系电话:”);fflush(stdin); gets(emp[i].tel);printf(“职工添加成功!!n”);printf(“还继续增加吗?继续请输入1否则输入0:n”);scanf(“%d”,&j);if(j==0)break; /*使用break语句,在条件成立时跳出for循环*/ } menu(); /*不再添加职工信息时,返回到目录函数menu()*/ } void search() /*定义search()函数,实现职工信息的查找功能*/ { int i,j,number;printf(“请输入要查找的职工号:”); scanf(“%d”,&number);for(i=0;number!=emp[i].num&&i /*i /*函数的递归调用*/ else menu(); /*不再查找职工信息时,返回到目录函数menu()*/ } void show() /*定义show()函数,实现职工信息的显示功能*/ { printf(“%st%ldt%ct%st%dt%st%sn”,emp[i].name,emp[i].num,emp[i].sex,emp[i].debt,emp[i].salary,emp[i].office,emp[i].tel);menu(); /*输出所有信息后,返回到目录函数menu()*/ } void omit() /*定义omit()函数,实现职工信息的删除功能*/ { int i;printf(“所有职工信息如下:n”);printf(“姓名t工号t性别t部门t工资t职位t电话n”);for(i=0;i /*利用for循环输出所有职工信息*/ int i,j,a,number;printf(“请输入要删除的职员号:”);scanf(“%d”,&number);for(i=0;number!=emp[i].num&&i /*i scanf(“%d”,&a);if(a==1){ strcpy(emp[i].name,“"); /*确定删除后,还原结构体成员*/ } emp[i].num=0;emp[i].sex=;strcpy(emp[i].debt,”“);emp[i].salary=0;strcpy(emp[i].office,”“);strcpy(emp[i].tel,”“);printf(”删除成功!!n“);} else printf(”无对应信息,请重新查找!!n“);printf(”还继续删除吗?继续请输入1否则输入0:n“);scanf(”%d“,&j);if(j==1)omit(); /*函数的递归调用*/ else { printf(”删除成功后“);show(); /*调用show()函数,输出删除成功后所有职工信息*/ } } void main() /*程序由主函数开始运行*/ { int i;for(i=0;i /*利用for循环语句对结构体数组赋初值*/ emp[i].num=0;emp[i].sex=;strcpy(emp[i].debt,”“);emp[i].salary=0;strcpy(emp[i].office,”“);strcpy(emp[i].tel,”“);} printf(”tt----------------------------n“);printf(”tt欢迎进入公司职工信息管理程序n“); printf(”tt----------------------------n"); menu();} 4.每种情况下的运行结果截图 1.判断输入数据是否有误的运行结果截图 2.增加职工信息并确保工号不重复时的运行结果截图 3.查找职工信息时的运行结果截图 4.显示所有职工信息时的运行结果截图 5.删除职工信息,并通过显示所有职工信息验证该信息是否确实被删除时的运行结果截图 6.继续添加职工信息时的运行结果截图 7.显示最后的所有职工信息时的运行结果截图 8.退出该系统时的运行结果截图 5.学习心得体会: 关键词:Visual Basic语言程序设计 教学改革 项目驱动教学 1 概述 “Visual Basic语言程序设计”(简称VB)是非计算机专业所开设的三门主要的计算机课程之一,也是我校农林类专业主要开设的计算机课程,该课程旨在培养学生能综合运用计算机技术解决农林相关领域的问题。但是,由于该课程主要采用传统的教学方法,即按章节的先后实施,知识的呈现没有很好针对学生所学专业的不同而有所区别,学习目标不明确,学生很茫然,不知道为什么要学这门课程,所以导致该课程的教学效果不理想。 2 基于项目驱动的教学方案设计 项目驱动教学法是德国职业教育大力推行的一种“行为引导式的教学形式”,这种以项目为主体的教学方法是在教师的帮助下,学生紧紧围绕一个共同的项目,在问题动机的驱动下,通过对学习资源的主动应用,进行自主探索和互动协作学习,在学生完成既定项目分工的同时,引导学生产生一种学习实践活动,使学生带着真实的项目在探索中学习,真正体会到“学以致用”的快乐。纵观国内外,项目驱动教学法在很多课程教学中都已经取得了很好的效果,所以,笔者尝试在我校农林植保专业班级的VB课程教学中采用项目驱动式教学方法。引入项目驱动教学方法,对于原来的教学方案要重新设计,整个教学过程围绕项目进行,如图1所示。 2.1 精选项目 通过对植保专业的实际情况的分析,在植保领域,现在有很多的专家系统、咨询系统等应用软件,考虑到专家系统的开发,对于VB初学者很难上手,因为需要很多计算机的理论基础,如假言推理、产生式规则等;所以,我们选择了植物保护咨询系统,此类系统可以提供植物保护方面的咨询,对植物病虫草害的危害症状进行诊断、判别、并给出其防治方法、发生规律及每个部位的危害症状。其开发过程不需要太多的计算机专业基础,同时基本涵盖了VB课程的主要知识内容。 2.2 调整教学内容 根据项目开发的需要,同时考虑我们的课时有限,适当地增删一些教学内容,如VB的语言基础以及基本的函数我们讲授的比较快,一些可能按正常进度讲授不到的内容,如图形控件、数据库编程等“高级内容”,我们需要花费比较多的时间向同学们讲解,因为在项目中要用到这些。 2.3 变换讲授方式 讲授方式也由传统的按章节循序渐进地进行变为根据项目的开发环节来确定先讲哪部分内容,再讲哪部分内容;授课方式更加灵活,当然,学生也要花更多的时间去自学上课过程中没有细讲的内容,主要是让学生带着问题去寻找答案。 2.4 注重评价 改用项目驱动教学方式以后,学习中更加强调项目的实现,提高的动手能力,但是对于课本上那些需要记忆的东西淡化了,这样带来的直接问题是如果仍然采用传统的考试手段,动手能力强的同学成绩不一定理想,所以,我们采用综合考虑考试成绩以及项目测评得分来作为学生的最终成绩,侧重于项目的完成情况,对于那些实在是对计算机不感兴趣的同学,就只有着重考虑他的考试成绩。 3 结论 在植保专业中采用项目驱动式教学方法取得了比较好的教学效果:①充分调动了学生的自主性,以探索性学习为基础,顺应学生参与实际项目开发的渴望,提高了学习积极性,从而也提高了学习效率。②通过“项目驱动”式教学模式,找到了VB课程与实际应用的结合点,使学生充分认识到了实践的重要性,学生已经能够初步应用已学的VB课程知识去解决一些实际问题。③通过“项目驱动”式教学模式,将实际项目按所涉及的技术分类分解,根据学生的不同特点,分配任务,进行分类指导,实现个性化培养目标,实现了不同层次的成才需求。④通过“项目驱动”式教学模式,训练了学生的团队协作能力。总之,在VB课程教学中引入项目驱动教学模式,克服了以往存在的教与学的盲目性,在教学设计过程中,做到了将该课程与专业紧密联系,选取与专业相关的应用项目,让学生体会到了学以致用,同时化被动学为主动学,学习的积极性提高了,成绩也更理想了,以后可以进一步尝试在其他专业开展此方法。 参考文献: [1]李光泉,吴燕,杨珺,等.“由面到点”的教学方法在农林高校VB课程教学中的运用[J].价值工程,2010(5):199. [2]李政洋.中职VB程序设计课程项目教学法的实践研究与改进[J].新课程(教研),2011(4):103-104. [3]刘霞,刘志明,罗江琴.高级语言程序设计课程教学改革的研究[J].软件,2012(02). 基金来源: 江西省高等学校教学改革研究课题(项目编号:JXJG-13-3- 22)。 作者簡介: 随着计算机技术的迅速发展和日益普及,越来越多的高校毕业生涌入计算机技术及应用产业,这些人中不仅有计算机专业的毕业生,也有非计算机专业的毕业生。计算机技术已深入到社会生活的各个角落,任何专业的学生,都必须具备计算机的基础知识和应用能力,近年来,许多高等学校已经把C语言程序设计作为一门重要的公共基础课程,不仅在计算机专业开设了C语言课程,而且在非计算机专业也开设了C语言课程,我校在某些理工类专业也开设了该课程。这门课程的教学目标是使学生较全面、系统地理解和掌握程序设计的基本概念和方法,具备运用程序设计语言、数据结构和算法进行基本的结构化程序设计的能力,它是高等学校全面素质教育中极为重要的一部分。 2. 课堂教学中存在的问题 笔者在C语言的教学中发现了一些问题,主要有以下两方面: 2.1 学生对课程的认识不足 有的同学觉得C语言很难,因为它是学生进校后接触的第一门计算机语言课,涉及的概念复杂、规则繁多,不容易入门,使得学生对计算机程序产生一种畏惧心理,从而丧失了学习的信心和兴趣;近年来,随着一些面向对象的程序设计语言的广泛推广,有的学生认为面向过程的C语言已经过时了,觉得没什么用,在学习过程中缺乏主动意识,只是被动地接受老师所讲授的知识,依赖性强。 2.2 教学与实践结合差 C语言通常在大一的第二学期或者是大二的第一学期开设,学生仅仅学习了计算机文化基础这门课,缺乏对于计算机其他专业课程的了解,因此,在学习C语言的过程,涉及到和计算机硬件尤其是和内存结合很紧密的一些概念,大部分学生基本上很难理解和掌握。另外,大多数的学生可能仍未摆脱高中时的应试教育的影响,已经适应了记概念、背知识点、应付书面考试的学习模式,在学习过程中重理论,轻实践,在碰到实际问题时往往不知道从何入手,如何分析问题和设计程序,记得的规则也就没有用武之地,这样就增加了教学难度。 3. 问题的解决方法 3.1 教学方式、方法的改进 (1)传统教学与多媒体教学的有机结合 近年来,大多数高校都采用多媒体进行教学,跟传统黑板教学相比,该教学方法信息量大、方便快捷,但这里边仍然存在着一定的问题。如果课件里只是教材内容的简单堆砌,就很容易分散学生的注意力,不再认真听讲,影响教学质量。笔者认为应该将传统教学方式和多媒体教学方式结合起来,比如一些不太深奥的基本概念、定义等内容,例如:C语言的数据类型、运算符、程序的基本结构等,可以采用多媒体教学方式,而对于实际案例的解析、算法设计、程序编制,可以采用传统教学方式,鼓励学生相互讨论,板书求解过程,层层讲解、逐步深入求解出正确答案。另外,采用多媒体教学时,课件尽量做到图文并茂、形象生动,这样可以增强课堂教学的趣味性,显得不再枯燥无味,还能调动学生学习的积极性。 (2)启发式教学 采用启发式教学,结合一些直观形象,易于引起学生联想的具体事例来激发学生的思维,使他们学会举一反三和独立思考。在授课过程中,不只是讲解C语言的基本规则、语法,更要注重培养学生的逻辑思维能力,重点探讨分析问题和算法设计的思维过程,碰到每个具体的问题要从算法的设计入手,先画出算法的流程图,然后根据流程图来编写具体的代码。在讲解过程中,加入一些师生间的互动活动,教师要适时适当的提出问题,让学生自由发言和讨论,这样既能活跃课堂气氛,又能调动学生的积极性。得当地运用启发式教学方法,可以培养学生独立分析问题、解决问题的能力,通过问题的求解过程,激发学生的自主学习热情,提高学习兴趣,而且通过对解决问题的方法的探索,可以充分挖掘学习潜能,培养创新能力。 (3)因材施教 由于学生存在个体差异,每个学生的兴趣、基础、能力的不同,所以该课程必须从学生的实际情况、个别差异出发,有的放矢地进行有差别的教学,对于基础扎实、自学能力强的学生,可以引导他们超前学习,适当的深入剖析问题;对于基础薄弱的学生,则注重基本知识的巩固练习,允许他们的学习进度稍慢;对于大多数学生而言,应该按教学的正常进度,有规律的学习,让他们学好基本功,掌握程序设计的方法。这样可以使每个学生都能扬长避短,获得最佳学习效果。 (4)课后作业的督促 每次课后布置一些代表性的作业,让学生在完成作业的过程中,巩固当堂课所学知识,老师通过批改作业,了解学生的学习效果及思维误区。在每次上新课之前,对作业中的典型错误进行纠正,对一些新思想、新方法加以讲解,鼓励学生创新,极大的发挥个人潜能。 3.2 教学内容的组织改进 由于《C语言程序设计》课程涉及的概念复杂、规则繁多,所以教学内容的组织是否得当对教学质量至关重要。要充分考虑C语言的基础性、应用性、专业性的特点,以及该课程与其他课程的关联,针对学生的知识缺陷,在授课过程中适时地补充些计算机专业基础的知识,比如原码、反码、补码的知识,和计算机的组成原理和结构等知识,有利于后续学习。其次对于不同专业的学生,根据教学大纲,要对教材内容和侧重点上进行适当的调整。例如对于计算机专业的学生,要求必须熟练掌握和应用每个知识点,深入学习程序设计的思路和方法,为以后学习其它编程语言打下基础;而对于非计算机专业的学生,可以根据专业需要,学习相关的知识点,会应用C语言解决实际问题。 C语言有32个关键字、9种控制语句、34种运算符,对于枯燥的语法知识,通过例题进行概括性的介绍,引出新的知识点,在逐步解析例题中,教给学生应用知识分析求解问题,进行程序设计的基本方法、步骤和过程,使学生循序渐进地掌握C语言。在授课过程中对重点、难点问题进行归纳总结,加深学生对这一类问题的理解,从而使学生举一反三、触类旁通,再碰到该类问题时有一个清晰的思路。鼓励学生发散思维,通过多种不同的方法求解同一问题,拓宽解题思路,培养学生从多个角度思考问题的能力。 3.3 课程考核方式的改进 《C语言程序设计》是一门实践性很强的课程,不仅仅要强调理论知识的掌握,更重要的要掌握程序设计的方法。该课程的考核环节,应该以检验学生的程序设计和调试能力为主。传统考试一般以标准化的笔试题为主,偏重于考察课程的基本概念和理论知识,这种考试方式无法有效检测学生程序设计的能力。所以该课程应采用综合考核方式来对学生成绩进行评定,不仅要有理论知识为主的笔试成绩,还应有实验成绩。实验主要检测学生理论联系实际,用C语言解决实际问题的能力,可以参照每次实验课成绩。学生的最终成绩以卷面成绩、实验成绩及平时成绩,三者按一定的比例权衡得出综合成绩。 4. 实验教学环节的改革 C语言不是理论,它只是程序设计的一种工具,要熟练地掌握它,实践环节是非常重要的。《C语言程序设计》的教学重点在于在上机实践中巩固所学知识,体验C语言的运行机制,培养学生的实际动手能力,所以要精心设计上机课的教学内容。 4.1 实验的准备工作 要求学生上机前做好准备工作,认真看书和课件,书写实验报告的部分内容,明确实验要求和实验目的,写好上机练习的源程序。实验课中,随时抽查学生的实验情况,让学生当场调试、运行自己的程序,逐行讲解程序的功能,并针对一些知识点提问,以检验学生的学习情况。在学生遇到问题时,不直接给出正确答案,而是与学生共同探讨或给予指点,引导学生认真分析系统的信息提示,分析判断错误出现的地方和出现错误的原因。这样,学生的学习从原来的"老师要我学",变成了"我自己要学",极大程度的调动了学习的主观能动性。实验完毕后,要求学生记录、分析运行结果及调试过程中出现的问题,并思考改进方法。 4.2 实验内容的安排 (1)编译环境的熟练应用。首先是教会学生使用C语言的编译器,可以独立调试程序,能读懂各种信息提示。教材所介绍的C语言的运行环境几乎都是Turb C,而国家计算机等级考试二级C等的考试环境已经使用VC运行环境,所以我校顺应形势,在机房里既安装了Turb C,又安装了VC,上机时学生可根据个人情况任意选择运行环境。 (2)实验内容的进度安排。在内容组织上,需要分门别类的进行实践,做到重点突出、难点分散、语言形象生动、较好理解,实验内容不仅要涵盖《C语言程序设计》这门课程的各个知识点,而且实验内容要由浅入深,由一些简单程序的练习,引导学生入门,激起他们的学习兴趣,对C语言不再惧怕,逐步调动他们学习的积极性和能动性。每次的实验内容要有的放矢,针对课堂上所讲的知识点,逐一练习。前期的实验主要是基本规则、结构的使用练习,可以进行课本上源代码的输入练习,试着运行和调试;再逐步加入相关章节的综合实验,启发学生发散思维,运用多个知识点求解问题;最后进行综合实验,让学生针对实际问题,设计出问题的算法,画出程序流程图,自主完成代码的编写,经过运行和调试程序,启发学生的的创造思维,加深对理论知识的理解,学会应用C语言解决实际问题,并在分析问题和解决问题的能力上得到培养和锻炼。 5. 结束语 实践证明,课堂教学与实验教学是计算机教学不可或缺的教学方法。上述教学改革是根据笔者实际教学过程中学生存在的问题提出的,经过实践,取得了一些成效,由于各个学校的教学情况和教学水平的差异,还需要继续努力探索,希望本文能对C语言教学有一定的借鉴作用,使《C语言程序设计》这门课程的教学日趋完善。 摘要:《C语言程序设计》是许多高校公共基础课程的重要课程之一, 也是一门实践操作性很强的课程, 要学好C语言程序设计不仅要掌握好理论知识, 实验教学也不容忽视。本文结合笔者的教学经验和C语言的特点, 分析了C语言在教与学的过程中存在的问题, 并针对一些关键问题提出了自己的看法和做法。 关键词:C语言,程序设计,教学改革 参考文献 [1]柳文清.C语言课程教学改革与实践[J].中国科技信息.2008 (2) :238-239 [2]田青.关于C语言程序设计教学的一些思考[J].科技创新导报.2009 (12) :136 [3]谭浩强.C程序设计[M].第3版.北京:清华大学出版社.2005 【《程序设计语言强化课程设计》教学大纲】推荐阅读: 《C程序设计》课程教学大纲10-19 C语言程序设计教学改革总结报告01-21 非计算机专业程序设计语言的教学探讨01-03 启发式在《程序设计》课程教学中的实践11-02 c语言设计程序11-11 c语言程序设计实验11-19 java语言程序设计一01-14 汇编语言程序设计习题02-06《程序设计语言强化课程设计》教学大纲 篇11
《C语言程序设计》课程教学探讨 篇12