前言:中文期刊网精心挑选了程序设计实践范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
程序设计实践范文1
关键词:程序设计;课程教学;实践与创新能力;立体教学;翻转课堂;培养途径
随着各种信息技术的发展,当前我国对于程序设计类人才的需求逐渐增大,程序设计类专业人才在很多行业中都有着较好的发展前景。无论是移动互联网公司、电子科技公司还是网络游戏公司等,对于这类人才的需求都有较大的缺口。因此,高校在培养程序设计类专业人才时除了传授基础的理论知识,对于学生创新能力和实践能力的培养同样需要引起重视并采取相关措施,通过对自身的教学模式进行调整,帮助学生更快适应社会的发展需求。程序设计类课程是计算机相关专业的主要课程,同样也是其他专业课程和延伸课程的基础[1]。其中,C语言程序设计是最为基础的一项实践操作类课程。学生需要运用C语言程序设计知识,在数据结构、编译原理、图形学等方面进行设计,形成一种用计算机来分析和解决问题的思维,也是教师在程序设计类课程中需要对学生进行重点培养的一项实际操作能力。
1程序设计类课程的发展背景
我国的第十三个五年规划建议中明确指出,未来五年软件工程师将会走向更加具有发展前景的道路。这一发展规划的提出,对高校教师的程序设计类课程教学工作提出了更高的要求。通过调查发现,软件工程师已经成为当下非常受欢迎的一个职业。学生在学校学习过程中,对于专业的程序设计能力的掌握十分重要,还需要同时兼备相应的实践与创新能力,这样才能在今后的工作中利用自己的能力为企业开发出更多有用的软件和工程。除此之外,学生是否具备实践与创新能力也是衡量计算机专业学生是否合格的重要标准[2]。高校在培养技能型专业人才的同时还需要构建各类应用型课程体系,尤其是程序设计类课程。学生拥有较强的实践能力以及独特的创新能力,也能够提高学校的声誉。高校培养人才可以从以下三方面入手:(1)将应用型高校人才培养课程体系建设作为应用型高校教学改革创新人才培养模式的关键要素;(2)在课程建设和实际操作过程中,需要始终秉持以学生为本的教学理念,将学生对知识的掌握能力作为教学重点进行建设,注重培养学生实际操作能力,在此基础上培养他们的创新能力;(3)还可以通过产教结合以及校企合作的方式,将人才培养理念转化为适应经济社会发展和产业转型升级所需要的新型课程体系。通过高效的人才培养教学方式提升高校知名度,扩大核心竞争能力,为高校的办学创造更加有利的条件。
2高校程序设计类课程教学中存在的问题
(1)学生学习兴趣较低程序设计类课程是当前很多工科类高校重点建设的课程项目,同时也是基础系最重要的课程。程序设计类课程本身对于学生基础知识的掌握要求较高,需要学生具备严密的逻辑思维能力、较强的抽象思维能力以及扎实的文化基础,因为这些基础能力的缺乏也是很多学生在学习过程中产生困难的主要因素。学生在学习过程中可能会受到很多因素的影响,导致他们失去对该课程的学习兴趣,长时间发展下去,教师对于该课程的讲授效率不高的问题也更严重。程序设计类课程最主要的教学目标就是培养学生能够正确使用计算机来解决一些基础性问题,提升自己的思维能力以及创新能力。在学习过程中难免会感到内容枯燥,导致学习难度增大,因此需要培养学生具备足够多的兴趣和耐力[3]。教师在这个过程中同样需要发挥强大的引导作用,将枯燥的课程转变为学生感兴趣的内容,提升学生的学习兴趣,开发创新思维能力。(2)教师专业能力有限当前很多高校的程序设计教学主要包含的课程为:《C语言程序设计》《数据结构》《算法设计与分析》《面向对象程序设计》和《Java高级程序设计》。这些课程会贯穿在学生整个大学阶段的学习过程中,但是由于可能会受到某些教师专业能力有限的影响,学生对于程序设计的融合贯通能力不足。教师在对学生进行教学时,只能教授一些表面的知识,学生对于这些知识只了解到表面,就失去了学习和思考的兴趣。另外,有的教师对于学生在程序设计方面的实践能力和创新能力的培养工作重视程度不够,教学目的只是为了让学生能够通过考试,并未制定相应的实践作业,导致学生想要进行实践也无从下手[4]。还有一个重要因素,有的高校本身缺乏对于程序设计类课程的项目资金支撑,在实践课程教学过程中学生并未进行过真正意义上的软件项目开发训练,缺乏独立的项目开发能力,初入职场时就无法独立开展企业的技术开发工作。以上这些都是导致学生实践能力和创新能力得不到有效提升的原因。(3)学生专业技能掌握不足对于程序设计类课程来说基础知识非常重要。很多高校在开设程序设计类课程时都会将其他一些计算机类的专业课程融入其中,见表1所列,例如C语言程序设计、Java高级程序设计,涵盖的知识面较广,需要学生拥有扎实的基础。但是从当前很多高校的程序设计类课程的发展情况来看,大多数学生存在基础知识薄弱、自主学习能力差的问题,前期的基础知识还未掌握就开设了后续课程,学生学习较为吃力,老师的教学也显得力不从心[5]。即使经过一段时间的学习,学生对于一些简单的设计项目仍然无法独自处理。另外,当前很多企业对于学生的程序设计能力、分析问题和解决问题的能力要求较高,这都应该成为高校教学中需要重视的。
3立体教学模式的构建
与传统的教学模式有着一定的差别,立体教学模式的建立更加注重的是学生创新能力和实践能力的增长。教师在进行课程教学的同时会借助新媒体对教学内容进行全覆盖,形成立体模式,分别以课堂教学为长、学生自主学习为宽、课程项目驱动为高,从三个维度对课程的体系结构进行完善教学;学生在学习的过程中需要有三方面能力的提升,分别是学会了解问题、分析问题以及解决问题[6]。以上三个能力得到培养的同时,学生的创新能力和独立的思辨能力也能得到提升,这正是立体教学模式的意义所在。从程序设计类课程的教学工作和学生的整体学习情况来看,还存在较多的问题。为此,笔者提出了新的教学模式—立体教学模式,以培养学生创新能力为教学目标,采用项目驱动教学方法,以翻转课堂为教学手段。通过翻转课堂的教学方式,可以培养学生自主学习和独立思考的能力,还能在一定程度上培养他们的独创思维。此外,翻转课堂对于知识点会有一个重新构建的过程,在信息传递的过程中通常是由教师和学生、学生和学生之间的互动来实现的,学生对于知识点能够更好地吸收,在这个过程中学生会对自己的能力有一定的了解,从中找到新的问题所在,并想出相应的解决方法[7]。教师还可以在课堂教学中将积分制作为考核方式来记录学生的实践课程成绩,为之后的评价工作奠定基础。
3.1以创新能力培养
为教学目标传统教学模式的教师讲授、学生操作和实践,课程教学的重点内容在编程语言的语法规则以及语义上,无形中学生就会认为学习编程语言就是学习语法知识,只要掌握了语法知识就可以编程,并没有真正意义上的将教学目标落在程序设计的应用方面。在程序设计类课程教学中,笔者主要以《C语言程序设计》课程为例,为了能够提升学生的编程能力和创新能力,教学过程中教师需要将自己的重心放在对于编程语言需要理解的思想上,而不是像以往那样重点讲述编程语言的语法。教学时需要摒弃传统的“一言堂”教学方式,注重教学设计过程,从课堂设计到实验设计,优化教学内容,让教学内容更加有层次感,体现系统设计的思想,培养学生的逻辑思维能力;还可以在自己的教学中充分地进行跨学科、多方面的结合,以帮助学生形成自身的知识框架,建立完善的知识体系;同时要注意相关知识点的分解,并充分融入到具体的教学活动中,才能形成最优化的教学方案。讲解完每个知识点之后可以通过举例的方式让学生对问题进行反思和思考,提出自己的想法和见解,真正做到独立思考。
3.2以项目驱动和以赛促学
为教学方法以《C语言程序设计》课程为例,教学的真正目的不只是让学生掌握某个语法知识点,而是提升学生运用知识的能力,使其能够独立完成软件项目。因此,教师在自己的课堂教学中需要正确地利用课堂时间,例如前半堂课程主要讲解相应的语法知识点,后半堂课程培养学生的实际操作能力。在课程设计中需要添加以下两个项目:(1)“学生信息管理系统”:管理系统内部需要添加的内容包含学生在课堂上的表现以及基本的成绩展示情况等;(2)“俄罗斯方块游戏”:教师让学生自由地组成合作小组,教师提供命题后要求学生通过各种渠道分析命题,各小组分工整理,确认每一个成员的职能,这样不仅能锻炼学生的沟通合作能力,增强学生发现、分析问题的能力,还能激励学生在实践中不断探究和创新。整个流程结束后学生对于软件项目制作就有了大致了解,更有信心完成其他管理系统或游戏系统项目[8]。项目驱动式教学方式是一种流动的教学模式,与传统的教学模式有一定的区别,教师在整个教学过程中需要起到引导作用,促进学生实践能力和创新能力得到真正的提升,从而激发学生的学习兴趣。
3.3以翻转课堂作为教学手段
翻转课堂的教学手段已经在很多高校中得到了较好的实践。在翻转课堂中,教师作为学生学习的引导者,需要组织学生之间进行交流和互动,帮助协调他们之间的关系。通过优化教学资源、构建多元的评价体系等方式,创设学习情境,将教学转化为探究性、自主性的学习活动,还可融合多种教学资源,提高教学资源的利用率,拓展学生的学习空间[9]。教师通过建立多元化的评价体系,将定性评价与定量评价结合起来,使评价更加全面准确,根据学生在课堂的前中后三个阶段的表现进行系统评价,保证评价能够因材施教地进行。笔者从本校程序设计类课程中可以看出,翻转课堂的教学手段实施产生了较好的效果,学生的学习效率得到了提升,对于基本的编程语言知识点掌握较好,提升了学生的实践能力和创新能力;课堂上教师根据学生的疑问进行专门讲解和探讨,与学生之间的交流和互动逐渐增多。
3.4以积分制作为考核依据
与应试教育的教学目标有一定的差别,高校在人才建设和培养方面主要侧重学生能力的提升,尤其是在程序设计类课程教学实践中,对于学生的能力进行考核十分重要。学生成绩积分评定主要来自平时成绩和综合项目成绩两部分,各占50%的比例。教师在考核时需要加入学生的平时表现分以及小组之间互动的成绩,以此进行综合性考察[10]。将积分制作为考核标准形式,学生会有较高的参与感、成就感和满足感,学习兴趣也会随之提高。
4结语
程序设计实践范文2
关键词:C语言;程序设计;机考;分层教学;课程改革
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)34-8225-02
《C语言程序设计》课程的授课对象是计算机专业本科学生,为专业基础(必修)课,是学好后续各软件课程必要的基础。有别于已经掌握的汉语、英语语言,作为人与计算机交流的语言,C语言不但概念多、符号多、语法多、规则多,而且抽象、难懂,再加上需要有一定的理解力以及解决问题的清晰思路,有些学生在学习过程中会感觉到枯燥、繁杂、无趣。因此培养学生的学习兴趣、加强对课程的重视、提高实际编程能力、将理论与实际相结合,是教师必须解决的问题。
为了提高学习质量,从2010年秋季学期开始对《C语言程序设计》课程的教学过程、成绩考核进行了改革,由原来的纸质试卷考试变成全程上机考试。改革实施多年来,大部分学生增加了学习兴趣,有了编写程序的主动性和积极性,增加了专业学习的信心,提升了程序设计的能力。
考虑到学生在基础知识、智力因素、学习能力上的差异,为了更有效地实施“因材施教”,从2013年秋季学期开始实施分层教学。在讲完C语言基础知识、程序基本设计方法之后进行分层。通过考核,外加自愿的原则,将原来的教学班打乱,重新组合成两种班型――高层次、低层次班。分层之后,每个学生个体获取的知识趋于最大化,极大地提高了课堂学习效率。
1 传统教学与纸质考试存在的问题
传统的教学是按照指定教材,在课上将重点内容进行讲解,典型的问题、方法在TC/VC环境中进行演示,课后留给学生一定的纸质作业和上机编程作业。同样的讲授,理解力强的学生一听就懂;理解力弱的学生,老师需要讲多遍才有可能懂。传统的教学中,老师只能顾及大多数中等学生,照顾不到特殊的学生。降低了课堂效率,也可以说浪费了某一部分学生的时间。
由于期末考核采用的是纸质考试,只是从纸面上考核学生对C语言理论、编程方法的理解、掌握程度,更对学生的学习产生误导。部分学生也只重视理论,不重视实际动手编程。他们只满足于“纸上谈兵”,不考虑结果。因此,实际应用时,对上机环境不熟悉、编写的程序不能顺利通过,导致很多学生高分低能,在解决实际问题时,茫然无措。
2 机考及分层教学改革的探索
计算机专业课程的特点是实践性强,学生在掌握了基本语法后重点是上机实践,即在计算机上解决实际问题,这里包括问题的分析与抽象、程序的编写与调试。
常言道:“实践是检验真理的标准”。在学习C语言过程中,上机实践是巩固理论知识、增加理解力、提升编程能力的重要途径。为了提高教学质量,让学生真正打好专业基础,授课教师在教学内容、教学方法、教学组织、考试方式等多方面上进行了调整。
2.1 教学方法以及教学组织上的改革
为了使教学效果更好,将两个自然班作为一个授课班,教学内容统一要求。讲授时,由浅入深、循序渐进。在语言的基础上,重点放在程序设计的思想、方法、技巧的讲解,结合典型例题,培养学生分析、设计、解决问题的能力。通过精心设计实验题目、课后作业、调整考核比例、增加课后上机机时、多方位提供答疑指导等环节培养学生学习兴趣,使学生重视上机编程。
对学生作业题目进行精心设计,既覆盖知识点,又有趣味性,每个题目都像在讲一个故事,把要解决的问题融在故事中,学生在读故事的同时,不自觉地就会去想解决办法,增加了兴趣,提高了自主性,也锻炼了思维。
调整平时考核内容。平时考核的环节包括:上机小测试、期中机考、上机作业、考勤,每一个环节的成绩都会反映到平时成绩中。平时成绩的取得完全依赖自己的学习态度。
增加课后上机机时。由于考核重点是对实际动手能力的考核,光靠课内安排的上机时间显然不够,所以需增加学生课外自主上机实验时间,并配有指定人员辅导。
多方位提供答疑指导。所有任课教师把答疑时间错开,这样每周学生可以有多次答疑时间,对比原来教师只给自己学生答疑的做法,学生增加了学习解疑的机会。
2.2加强上机实验过程控制,促进考试改革
借助于“课程自动评测与抄袭检测系统”,老师和学生有了C语言作业部署、学习、检测的平台。通过这个平台,老师可以布置上机实验、安排考试、检查学生提交的作业。根据知识点,每章布置4-5道题,限定学生在规定时间内独立提交。老师可以随时查看学生提交的程序,及时与学生沟通、反馈。学生可以随时把自己编写的程序提交,系统对提交到服务器的程序自动判断对错,学生可以及时了解自己程序存在的问题,不断进行修改,直到能够顺利通过所有测试。
这一环节起到了巩固课本知识、增加独立思考、加强动手能力的作用。期末就是利用这个平台进行全程两个小时的考试,要求学生既有编程的能力,又有时间的紧迫感。
加强过程考核,增加平时机考次数。为了缓解期末机考时的紧张情绪,之前会安排1-2次的上机考试,成绩记入期评,其中期中考试的考试形式与期末一样,为全程两个小时的机考,随机组卷。学生可以尽早了解考试模式,并更加重视对本门课程实际动手能力的训练,学会调整心态。
为了满足不同层次学生的要求,在平台上配备了大量不同难度的习题,不受提交时间的限制。学生可以根据自身需求,随时编程测试。
2.3分层教学,提升学习效率
分层教学是根据学生不同基础、不同学习需求而实施教学的一种手段。是在承认学生差异、考虑学生兴趣的前提下,以发展的眼光看待学生,给每个学生提供符合他们发展的教学目标与方法,是同时提高所有学生能力的理想状态。经过调研,从三个方面进行分层教学。
1)学生分层。对学生能力考核的一个重要标准就是学生的学习成绩,但是在学习这门课之初,没有可依据的成绩。分层安排在讲完两周课,即学完了简单程序设计之后进行。学生根据自己当前对C语言的理解和接受程度,选择不同层次。在分层教学的实施过程中,这样的分层是暂时的、动态的。过一段时间,视学生的后期学习成绩、学生的具体情况,可递进或降层。这样更有利于学生个性化发展。
2)讲课分层。对不同层次的学生,采取不同课堂。在讲授编程思想、必备知识基础上,对高层次学生,拓宽和加深问题的难度,做到拔尖提高;对普通学生,在达到大纲要求的同时,考虑他们的接受能力,适度增加和加深知识,做到稳步推进。
3)实验分层。练习是对所学知识的巩固和消化。按照作业、实验题目的难易,对不同层次的学生提出不同要求。对普通学生布置基础题,进行强化训练;对高层次学生,以综合运用知识进行练习。要求学生多编程解决问题,以提高应用知识的能力。这样使得不同层次的学生得到不同程度的提高。
3 教学改革实践效果
实行考试改革后,学生的学习积极性有了明显提高。由于考试时间的有限性,增加了学生的紧迫感、主动性,在程序编写、调试程序的实际动手能力方面得到了重视并有所提高,为后续课程学习奠定了良好的基础。经过分层教学,满足了不同层次学生学习的需要,激励了各层次学生朝着有利于自己的方向努力,有利于学生个性能力的张扬,有利于学生综合素质的提高,更有利于优秀学生综合能力的发挥、较低层次学生潜在能力的开发。
3.1带动学风,促进后续课程的学习
大部分学生能够按时到课,勤于思考,互相研究,答疑的同学增多了。改变了不良学风,营造了良好学习氛围。由于课程期间比较重视学生结构化程序设计的方法,要求编写程序之前理清解题思路、做好算法设计,经过训练后,在后续的“程序设计专题训练”中,面对稍难一些的问题,学生也能逐步找到解决办法,编出程序,顺利通过测试。在小学期“学术工程实践”课程中,要求完成一个小型管理系统,有一定的难度。大部分学生能够顺利编写由多个结构体、多个文件、几十个函数组成的、2000-4000行代码的程序,并调试成功,完成管理。
3.2提升学生的程序设计能力和创新能力
竞赛是考核学生全面素质的一个平台,它要求学生具有扎实的理论基础、清晰的算法设计能力、娴熟的编程能力、良好的心理素质和快速的临场应变能力。
随着知识的积累,学生的能力和自信心不断增强。学生们更加渴求知识,渴望展示自己,参加竞赛的积极性提高了,人数也不断增多。在大二阶段,报名参加全国软件设计大赛的人数由09级的16人次(占09级学生人数14.04%)、10级的33人次(占10级学生人数26.19%),增加到11级的66人次(占11级学生人数51.56%)。全国获奖人数由09级的1人次(占09级学生人数0.88%),到10级的12人次(占10级学生人数9.52%),再到11级的17人次(占11级学生人数13.28%),获奖人数同比增多。
4 结论
总之,学习“高级程序设计语言”不仅要使得学生在程序表达和设计上得到培养,更重要的是在掌握解决问题的思想、方法和手段的同时,实际动手编程能力有所提高,从而增长设计程序的能力。因而,将“C程序设计”课程的考试改为上机考试是很有益的,可以改变不良的学风,营造良好学习氛围;可以加强学生对课程的重视,提高学生程序编写、调试等实际动手能力,提升学生的程序设计能力和创新能力,为后续课程学习、为培养合格的专业人才奠定良好的基础。
对“C程序设计”课程实施分层次教学也是必要的,可以针对不同层次学生的需求给予相应的学习指导,以达到学生全面发展的教学目标;可以激发不同层次学生学习的欲望,向着更高更深的知识海洋探索;可以鞭策任课教师积极思考、合理取舍,做到充分了解学生、合理安排进度,能够极大地提升老师的组织与应变能力。
参考文献:
[1] 李学会.C程序设计教学改革与实践[J].实验室科学,2010(4)33-34.
程序设计实践范文3
关键词:算法;问题求解;计算思维;创新思维
中图分类号:G642 文献标识码:B
1引言
数学思维强调数与形的逻辑关系、演算推理能力和严谨态度,计算思维强调问题求解的的操作过程和机器实现。在《中国高等院校计算机基础教育课程体系2008》中,提出对大学生计算机应用能力的三大要求是:操作使用能力、应用开发能力和研究创新能力。尤其是对于“程序设计基础”课程而言,将学习目标确定成:(1)学习问题求解的思路和方法,即算法。(2)理解计算机是如何具体实现算法的,即如何才能有效的利用计算机编程。课程学习的重点不只是编写程序,而是算法思想与问题求解的思路。总之,就是要培养学生使用计算机编程,并最终形成计算思维。
2算法与计算思维
2.1算法
根据图灵奖得主D.E.Knuth的定义:一个算法就是一个有穷规则的集合,其中规则规定一个解决某一特定类型问题的操作序列。学生在学习程序设计课程时,将通过算法设计并由计算机语言实现来体验问题求解的思维训练。算法的操作时序性确保问题求解过程是按步骤进行的,这种执行规则非常简单机械。所以,教学过程中要使学生经历算法化过程并体验计算思维,它有利于培养学生的理性思维和行事逻辑能力。
2.2计算思维
美国卡内基•梅隆大学的周以真(J.M.Wing)教授在计算机权威期刊《Communications of the ACM》杂志上指出:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、人类行为理解等的一系列思维活动。就问题求解(problem solving)而言计算思维与数学思维相似,它建立在计算过程的具体实现和约束之上,通过程序来控制机器的全部操作。
计算思维的本质是抽象和自动化。计算思维中的抽象体现在完全使用符号系统,甚至形式化语言。一个程序由标识符、常数、变量、数组名、函数名、语句、程序段等构成,其中的数据类型只是一个抽象特例。与数学思维相比,计算思维中的抽象显得更丰富也更复杂。计算思维中的自动化体现在算法实现最终是“机械式”的按步骤自动执行,这是冯•诺伊曼机器的本质特征(即存储程序原理)。要实现这一特征,就需要进行精确的算法描述和严格的符号表示。计算思维包括如下三大特征。
(1) 计算思维是一种形式规整的思维。算法确定性是算法和程序的基本要求,它的实现一定会使用基于数学语言的符号系统,即使用一种有限的确定性符号系统来描述问题和问题求解过程。算法确定性表明算法的每一步操作必须是确切定义的,没有任何二义。所以,计算思维体现的正是严谨的、形式的、规整的逻辑思维。
计算思维使用形式化语言来准确描述问题求解过程。自然语言中往往因文化习惯的差异,会出现许多二义性。例如句子“车撞死人”,可以理解为车将人撞死,也可理解为车撞的是死人。在计算思维学习中,需要将计算任务用确定化的、形式化的、唯一化的语言进行描述。程序设计语言作为一种确定性符号系统,就可以进行形式化思维训练。例如,学生在编程时产生的符号错误,都会在编译和运行时表示出来,而学生通过检错和纠错的过程,可以培养学生严谨规范的行为习惯和科学的实证精神。实际上,如果一个学生具有条理化的、反思性的思维习惯,则表示该学生的问题求解技能很强。
(2) 计算思维是一种问题求解的思维。它将问题求解的过程用“程序化”或“机械化”的方式表示出来。问题求解过程分为五个步骤:呈现问题、分析问题、联系、行为选择和反思检验。学生在面对计算机问题时,可依据已有的知识,提出问题求解方案,并用算法进行描述,最终由机器执行程序来检验问题求解的效果。例如火车分段计费问题就是我们在日常生活中感受到的问题,学生可根据自己对火车收费的理解,写出数学式,然后用多分支结构算法进行描述,最后上机实现。
(3) 计算思维是一种人机共存的思维。算法可分为三种形式:①生活算法:即完成某一项工作的方法和步骤,例如一天的学习计划;②数学算法:即对一类计算问题的机械的、统一的求解方法,例如一个多项式的因式分解;③计算机算法:即问题求解的精确描述,它具有明显的自动化特征,如数据计算准度高并具有严格的操作时序,这是与计算机系统本身紧密相关的,所以用计算机实现问题求解,需要充分利用计算机的速度和存储优势,尽量发挥计算机与计算思维的威力。例如“百鸡问题”,数学方法是用两个三元不定方程进行求解,计算机算法则充分利用计算机的速度优势,使用穷举算法进行简单重复操作进行求解。两者的不同,可以使学生体验到人机不同的信息处理特质。
3尝试以上机实验为重点的计算思维教学模式
在程序设计课程教学过程中,笔者改变偏重理论和课堂教学的传统模式,尝试以上机实验为重点的计算思维教学模式,让同学们能够“在编程过程中学习知识、在学习过程中拓展思维”。具体实践包括以下三个方面。
3.1提高上机实验的地位
程序设计是一门实践性学科,过去沿用“先讲解程序,后上机实验”的教学策略,这种教学策略只能增加学生的感性认识和上机实验能力,并不能提高学生的计算思维能力。笔者认为让学生按部就班完成前人设计好的算法,不是上机实验的真正目的。上机实验应该是培养学生计算思维能力的重要手段,是程序设计课程教学的核心。
3.2实验内容要能培养学生的创新思维
要培养学生的创新思维,教师首先要不断学习并创作适合同学们知识结构和心理特点的实验内容。好的实验内容,能够为学生的创新思维留出适当的空间。在教学过程中,要强调并培养学生对于计算过程的严谨性,编写程序是要强调从需求定义开始,然后进行算法优化与选择,最后通过上机实验。当出现程序错误时不要放弃,而是努力排除错误,这样能够强化学生的计算思维训练。同学们一定会因为提出新算法和排除错误感到满足,这样可以使同学们积极思维,大胆创新。
3.3增强实验内容的趣味性和综合性
通过计算任务的趣味性、综合性等来增强实验内容的难度,从而强化计算思维训练。大学生一般对新鲜事物好学、好问并富于幻想,初遇计算任务时往往兴致盎然,幻想编写程序。但在传统教学中,缺少趣味性和综合性,进而导致同学们没有学习兴趣,所以,设计实验内容尽量生活化、趣味化。例如在分支程序结构中,安排火车计费程序进行计算思维训练。
4通过算法多样化训练计算思维
4.1提倡算法多样化的目标
程序设计教学的教育价值在于突出计算思维,在倡导算法多样化的过程中,培养学生的创新意识、探索精神和问题求解能力。在教学过程中,应该尊重学生的个体差异,关注学生思维能力培养。课程目标不仅仅是培养学生的操作技能,还要通过强调算法多样性来培养学生的计算思维能力。
4.2尊重学生不同的认知方式
算法多样化的本质是尊重学生不同的认知方式,在教学过程中由于学生认知方式的差异,必然会导致算法多样化。教师应该尊重每位学生的个体特征,鼓励学生从不同角度认识问题,用不同方式表达算法,用不同方法实现问题求解。同时教师给予适当的评价,就是尊重学生不同的认知方式。
4.3增强计算任务的多样性和重构性
在教学过程中,教师要重视并培养学生计算思维的多样性和重构性。多样性可以尽量激发学生的思维活动,重构性通过变化也能够强化计算思维训练。实际上,不同学生会使用不同的学习方法和思维方式。对一个学生来说是好的计算方法,对别的学生不一定适合。另外,各种计算方法都有它的局限性,其实程序只需要保证正确并具有可读性。所以,在设计实验内容时,鼓励同学们编写各种程序来实现同一个计算任务,鼓励改写别人编写的程序,从而培养同学们计算思维的多样性和重构性。
4.4充分利用算法的简化和优化过程
在教学过程中教师,不但要倡导算法多样化,还要引导学生对算法进行反思和进一步探索,从而达到简化并优化算法的目标。将一个计算任务用多种思路、多种算法进行求解,可以发展学生计算思维的灵活性。算法多样化让学生可以用自己喜欢或能够理解的算法,通过交流、评价得到计算结果。
5结论
进行计算思维训练对计算机学科人才培养是极为重要的,因为它不仅使学生理解计算机的实现机制和约束,有利于学生进行发明和创新,更重要的是有利于提高学生的信息素养,也就是处理计算机问题时应有的思维方法、表达形式和行为习惯。信息素养要求学生能够对于获取的各种信息通过自己的思维进行深层次的加工和处理,从而产生新的信息。当然,仅通过一门课程学习就形成信息素养是不可能的,但应该使学生懂得计算思维对软件设计是非常重要的。
参考文献:
[1] 中国高等院校计算机基础教育改革课题研究组. 中国高等院校计算机基础教育课程体系2008[M]. 北京:清华大学出版社,2008.
[2]J.M.Wing. Computational Thinking[J]. Communications of the ACM,2006(49):33-35.
[3] 王荣良. 信息技术课程中算法学习的价值探索[J]. 中国电化教育,2008(8):78-81.
程序设计实践范文4
关键词:Visual Basic;程序设计;教学与实践
中图分类号:G642 文献标识码:B
文章编号:1672-5913(2007)10-0003-03
掌握计算机应用基本技能成为新世纪人才不可缺少的基本素质之一。由于高级语言程序设计课程不仅使学生更深入地理解计算机的工作过程,而且在培养学生严密地逻辑思维、培养非计算机专业学生利用计算机解决本专业问题的能力方面有着非常重要的作用,因此各个高校普遍开设了程序设计课程。而Visual Basic作为面向对象的程序设计语言,其易学易用,图形用户界面的特点成为非计算机专业类学生首选的教学语言。几年来,我们以提高学生计算机素质,培养创新意识和创新能力为目标,对全校的计算机公共课系列课程进行了一系列的教学改革,尤其对程序设计语言课程的教学改革更是向纵深发展,朝建设精品课程的目标努力。
1Visual Basic在计算机基础教学中的地位和作用
浙江大学城市学院的计算机基础教学在课程体系上分为两部分,第一部分是计算机文化基础,在第一学期的9~16周开课,主要任务是使学生掌握计算机基本知识与基本操作技能,培养学生的计算机文化意识。第二部分是计算机程序设计,在第二学期开设,理工科学生选择C语言,文科类学生选择Visual Basic作为学习编程的平台。城市学院中文科类学生的比例占了近半数,因此Visual Basic成为了名副其实的大课,每年有1500多人学习,作为计算机基础教育的重点课程,对学生乃至学校都有重要影响。
2存在的问题
尽管这几年城市学院的计算机基础教学成绩取得了很大的进步,但应该看到还存在不少问题,这些问题解决得好坏直接影响计算机基础教学的进一步发展。
首先,学生的学习动机不明确,“VB程序设计”的授课对象是广大非计算机专业的学生,尤其是以文科类学生为主,有不少学生认为学习程序设计对他们来说没有用,仅把它当做一门不得不学的课程,只是单纯的应付考试,还没有意识到在信息时代的今天计算机已经成为了人们所必须掌握的一种基本技能。
其次,文科类学生在数学、物理及电子技术方面的基础比较薄弱,自身的认知结构、学习倾向等多方面的差异,致使他们在学习过程中积极性不高,学习兴趣不浓,学生普遍感到“VB程序设计”枯燥、难学。
第三,我们的教学方法、教学手段往往过分强调教师的“教”在教学活动中的作用,而不是从学生的角度出发,从学生如何学好一门课的角度出发。其实教学过程不单单是学生在老师指导下的一种特殊的认识过程,它更是学生个性全面发展的过程,是师生之间相互作用的一种双向活动,因而要探求新的教、学并重的教学理念、教学思路。
第四,“VB程序设计”是一门理论与实践并重的课程,传统的程序设计语言教学按照给出语法、解释语法规则、举例说明的三步曲,教学上习惯于满堂讲,填鸭式教学,总感觉内容多,课时不够,结果导致教师讲得累,学生听得累,经常有学生说上课听懂了,但一碰到自己做,感觉无从下手。
3我们的经验
3.1端正学习态度
在教学过程中,要帮助学生端正学习态度,提高计算机语言课程对其全面发展必要性的认识。程序设计语言是大学中一门很重要的公共课程,是衡量大学生计算机素质的重要标志。程序设计课程的教学不仅要让学生学习程序设计的基本概念和方法、掌握编程的技术,更重要的是培养学生逻辑思维和逻辑推理的能力、动手能力、创新意识和创新能力。多注重学生兴趣的培养,通过一些生动形象的实例引导学生主动提出问题、分析问题、解决问题。
3.2教学方法的改进
基于VB语言的特点,在VB的教学中重点处理好以下两方面的内容:① 算法与结构化编程;② 面向对象技术[1]。
算法与结构化编程是程序设计的核心。在教学中重点注意算法的概念、结构化程序的概念与组成、算法的描述。如典型的排序算法,检索算法等,要把这些作为经典熟记。
面向对象技术涉及到相关概念的教学和面向对象技术应用的教学。VB是基于对象的编程语言,类、对象、属性、事件、方法构成了VB的灵魂,对象及其属性、方法和事件是VB程序的主干,因为这三者决定了对象的外观与行为模式。事实上,应用程序整个界面的运作,都是通过控制对象的属性、方法与事件来完成的。将结构化程序设计和面向对象程序设计融合在一起,面向对象的程序代码主要体现在各个事件过程中,而在事件过程中贯穿了传统的程序设计思路和算法的应用。
由于在VB课程中既要介绍传统的程序设计方法,又要介绍面向对象的程序设计概念和可视化界面设计所涉及的控件、应用程序开发等,内容多,学时少,要讲好这门课,需要充分运用各种教学方法。
(1) 直观教学法
在VB语言程序设计中,有些内容比较抽象,不容易被学生接受和理解。作为教师不仅要把深奥的理论讲得通俗易懂,还要巧用日常生活中的例子,形象的比喻方法最容易为学生所接受。比如循环嵌套是学生不太容易搞清楚的地方,我们可以提出一个很现实的问题,如时针走过两个格子的话,秒针走过多少格子?形象地把秒针、分针和时针的运动打比方,最里层的秒针运动最快,秒针走过一圈,分针前进一格,分针走过一圈,时针前进一格,这就是三重循环嵌套,然后写出程序代码,这样就把抽象的问题形象化,便于学生理解和掌握。
(2) 演示教学法
在教学过程中,为了提高学生的学习兴趣,教师可以利用一些与教学有关的软件和索材,如使用简单的Flas来反映循环结构程序执行流程、排序算法等。让学生有兴趣学习,就能取得很好的教学效果。
(3) 案例教学法
案例教学从学习者的认知规律出发,精选与实际生活中关系密切的问题作为案例,通过案例的运行分析设计思路和实现方法,进而引出该案例中用到的知识点,再举一反三,启发学生对案例进一步讨论、归纳,对案例完善和扩展,最后达到知识的快速掌握和能力的快速培养。由于所有案例都是直接面对应用的,具有实际的应用价值,所以很好地培养了学生的应用能力[2]。“案例教学法”贯穿教学的始终。
3.3学以致用
通过以上一系列教学方法及手段的运用,教师把各个知识点像珍珠一样一个个串起来。但是计算机应用知识不可能只靠听课就能掌握,为了进一步把教师讲的内容消化为学生自己的知识,逐步提高个人的编程能力,必须大力加强动手实践环节,包括作业、编程、上机、上网、做项目,引导学生通过实践拓展知识。必须提升实践环节在教学过程中的地位和作用,引导学生通过实践来提高能力,只有多动手实践,才能破除学生对计算机的神秘感,才能激发学生对掌握计算机编程产生兴趣。我们提出围绕上机实践,抓到课率和课后作业,形成了一套行之有效的方法。
(1) 讲练结合
当学生掌握了某个基本编程结构或学习了某个控件后,应及时训练编程,培养编程的思维方法。我们设计了随堂练习让学生当堂练习,练习题目在范例的基础上做一些细微的改动,目的是及时掌握所学内容。人的认知规律也提示人在学习新的知识时模仿是第一步的,在模仿的基础上进行改进,进而实现设计。而我们的随堂练习更是设计成活页,给学生5~10分钟的时间完成,写上姓名、学号后上交,这样不仅省去了课堂点名,又达到了教与学的良性互动。
(2) 上机实践教学
上机实践课作为与课堂理论教学的配套,是一个重要的教学环节,它不仅检验所学内容,更对提升学习兴趣、引导学生进一步探索有着直接的影响。这一部分的教学我们设计为完成以下三个方面的作业。
1) 上机前练习。为了避免学生上机毫无准备,浪费时间,上机实践前学生必须完成上机前练习,每次上机课开始教师都要认真检查,作为平时成绩的考核依据。精心设计每道练习,由浅入深,让学生在读程序,改程序和程序设计中充分理解和掌握该章节所要求的内容。我们将每一章分为三种练习,根据Benjamin Bloom的研究成果,他提出了认识领域达到的六级分类[3]。在设计上机前练习时,我们将Bloom的六类合并成三类。这些分类根据学习一个算法或语法结构的具体例子定义如下:
认知:读一个简单程序,写程序运行结果或画流程图。
改进:根据前一个作业,生成一个非常相似的算法,如读一个简单程序,修改程序错误或程序填空,实现指定的功能,这是一种较浅近变换。
设计:学生可修改算法,将算法用于不同的环境,可合并相关算法,还可以比较算法,进行程序设计,这是一种较深远变换。
2) 上机实践。通过每周一次的上机实践把本周教学中涉及到的基本概念、重点、难点及常见错误在实验课上再一次认真梳理。要求学生在VB环境下设计界面、属性、事件,如利用窗体单击事件实现前述三类上机前练习,并且运用单步执行、设置断点等方法跟踪算法的执行,对给定的数据确定其输出。
要求学生按照所写内容及步骤进行操作,提醒学生对每一操作的结果仔细观察和详细记录,用实践来验证自己的认识是否正确。学生在操作中将遇到各种问题,教师应启发学生独立思考,勇于实践,引导学生去发现问题的原因,分析问题和解决问题,培养学生的动手能力。
3) 实验报告。上机结束后,要求学生将上机操作内容和步骤、出现问题及解决方法写成上机实习报告,以督促学生及时总结实践经验,进一步深化对课堂教学内容的理解和掌握,同时把程序源代码上传至服务器。教师认真批改作业并作详细记录,根据每一次上机的整体情况,对学生中出现的共性问题分析原因,在课堂上进行有针对性的讲评和总结,使教学和实习有机结合。要让学生充分理解上机实践的重要性,在期末我们组织专门的上机考试,充分全面地考查了学生掌握程序设计的能力。
3.4构建课程支持系统
积极地利用校园网构建网络教学平台,弥补传统教学的有限性,为学生提供更广阔的学习环境。学院新购的Blackborad教学支持系统为我们拓展教学手段提供了很好的平台。他通过“我的课程”模块中的链接直接进入课程,在课程内容区教师可以公布通告、课程资料、任务、教学资源链接;通过互联网上载课程文件,并可以方便地管理课程内容;为用户提供虚拟教室、讨论板交流工具,通过讨论板、实时的虚拟教室互动和小组交流,实现协作学习的效果;还可通过数字收发箱提交并管理作业内容;在线考核功能可以将原始试题资料录入,可以生成试题库;从题库中可随机生成试卷,进行考试并有成绩统计分析来强化学生的学习效果、衡量学生的学习过程。
4总结
抓住VB及面向对象程序设计的本质特征,采取适当的教学措施,使学生尽快掌握这一编程理念和编程方法。近几年在全体教研组教师的共同努力下,城市学院在浙江省计算机等级考试中成绩稳居省内各高校的前列。我们将在已有的成绩和基础上积极向第三阶段计算机教学过渡,把计算机应用渗透到各专业课程中,开设VB的后续课程并和各专业紧密结合,使学生有机会通过多种途径进行结合本专业的计算机应用实践,使我校的计算机基础教育真正全面、深入和持久地进行下去,把中央的高等学校本科教学质量与教学改革工程真正地落到实处。
参考文献
[1] 贾长云. VB教学之我见[J]. 中国职业技术教育,2004,(2).
[2] 龚沛曾,杨志强. “Visual Basic 程序设计”国家精品课程建设[J]. 中国大学教学2004,(9).
[3] Nell Dale Michael McMillan,史宗海译. Visual 上机实践指导教程[M]. 电子工业出版社,2003.
收稿时间:2006-12-27
程序设计实践范文5
关键词:计算机;C语言程序设计;教学改革;教学实践
中图分类号:G433 文献标识码:A 文章编号:1672-7800(2012)003-0194-02
作者简介:刘桂玲(1976-),女,内蒙古赤峰人,硕士,天津职业技术师范大学附属高级技术学校讲师,研究方向为计算机应用技术。
0 引言
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,还可以直接访问内存的物理地址,进行位(bit)一级的操作。C语言在很多方面都可以应用,不仅在软件开发上,而且在各类科研工作中都是需要用到C语言的。C语言是入门的课程,也是非常重要的课程。
目前,计算机专业的基础课都会有《C语言程序设计》,可见这门课程的重要性。学习这门课程,可以培养学生的逻辑思维能力以及形成一种程序化的思想。这门课程在内容上并不是很难,但在现实中却发现,教学效果并不是很理想,很多学生都觉得这门课程枯燥乏味。在这样的情况下,能学好C语言的学生很少。但我们却必须要学好这门课程,不然后续的课程会更加难学,或者说几乎就听不懂也不会写。下面我们先分析现实教学中存在的一些问题。
1 C语言教学中存在的问题
一般来说,教学中存在的问题都是包括几方面的,因为教学是教师和学生共同的活动,即有教师方面的问题,同样也会有学生方面的问题、教学方法上的问题、教学过程中的问题、水平评价中的问题,还有学科本身特征所导致的一些问题,同样。硬件设备、教学环境等外在的条件也是教学中存在问题的因素。
正确认识存在的问题,把问题找出来,再根据不同的问题寻找出每一个问题背后的真正原因,然后对症下药,就可以把问题解决好。在教学过程中,笔者发现C语言教学主要存在以下几方面的问题:
(1)在教学的过程中,主要体现为教学方法上的问题。现在很多教师还采用传统的较单一的教学方式,过于注重理论知识的讲授,在教法上墨守成规,很少有创新,本来内容就比较枯燥的一门课程,如果教师在教学过程中不能使它变得有趣一些,就很难调动学生的积极性和激发学生的兴趣和信心。
(2)在教学内容上,教师过于注重C语言的理论教学,也就是对一些概念和语法规则等的教学偏重。概念本来就是比较枯燥的内容,如果过于讲概念的话,更容易让学生对这门课程失去兴趣。现实中的大部分教学都是讲理论讲语法为主,一个学期可能只有三、四次上机动手实践,而这门课程很重要的一方面就是动手实践能力。如果在教学中过少实践,则很难提升学生的能力,无法达到培养学生程序设计和调试能力的目的,就难以学好C语言。
(3)在水平评价方面,水平评价制度是否合理是否科学,很大程度上就决定着教学质量的好坏。大部分教学都是为了准备考试,考什么就学什么,怎么考就怎么学,怎么教。比如,考试是考笔试、考定义,那么教师就会在平常的教学中注重概念及定义的学习、理解和记忆。如果考的是上机操作,这就要求教师在教学中要注重学生实践操作能力的培养,注重逻辑思维能力的培养。
2 教学改革建议
2.1 综合运用各种教学方法
由于C语言课程本身的特性,学生会觉得这门课程比其它的科目更枯燥。其实只要懂得去调动学生的积极性,学生还是会喜欢上这门课程的。在平常的讲课过程中,我们要善于运用不同的方法来教学,根据实际需要灵活使用各种不同的教学方法和手段,以求取得好的教学效果。
如数据类型的概念、流程控制、函数的定义与调用、指针的概念等采用教师主导的传统教学方法会更好一些。但在其它一些方面,如理解性的知识,教师一定要充分利用好教学资源,合理使用多媒体教学,有效弥补传统教学的不足。可以将难以理解的内容或不容易观察到的事物用媒体充分显示出来。如可以借助flas模拟排序,运用多媒体教学事先设计好教学课件。这样可以节省板书时间、实现资源共享和提高效率。但在多媒体教学环境下,板书设计的重要性被大家弱化了。理论教学主要进行课件的演示,这种方法对刚接触程序设计的学生是非常不利的。在程序设计的初级阶段,教师应该适当地利用板书来讲解,因为程序编写是有思考过程的,利用板书逐步写出程序,这样在整个过程中能够随意控制需要显示的内容,并且和语速、回顾、提问等环节有机结合起来.从而促使学生的思路与教师的讲解保持同步,而利用课件演示事先编写好的程序则由于给予学生的思考时间不够导致学生的印象不深刻,从而导致教学效果不佳。所以在进行理论教学时,要将多媒体与板书设计相结合,充分发挥各自的优点,从而使学生在直观感受和思维训练等不同方面都能获得最好的授课效果。
2.2 注重动手能力的培养
C语言是一门以实际操作为主的科目,学习C语言程序设计应当充分重视实验环节。很多教师实验时间安排很少的原因是:还有很多基本语句没学好,或者说还有很多结构没有掌握,因此不适合上机操作。在这里,笔者认为教师不应该等到学生把所有要用的知识都掌握了才让学生去上机,如果学生掌握得慢的话,无形中就压缩了上机的时间。即使有些语句学生还不会,还是可以让学生上机,在操作和编程的过程中,学生不但可以巩固课堂上所讲的理论知识,不懂的那部分还可以在操作的过程中通过实践和摸索自己总结出来。通过不断去试,得到不同的结果,这种直观的结果可以让学生马上领会到不同的结构不同的语句所产生的效果。这样的上机操作比单纯讲理论更有趣更容易。
教师在上实验课时尽量要求学生多编写程序,多上机调试程序,从最简单的编程开始,再慢慢让学生不断扩展。上机也不能仅仅为了编程的正确性,更重要的还在于让学生熟练掌握上机操作要领和调试程序技术,积累编程经验,加深学生对讲授内容的理解。尤其是一些语法规定,光靠课堂讲授比较枯燥又难以记住,但它们又很重要,通过多次上机就能自然地熟练掌握。通过上机来掌握语法规则是行之有效的一种方法。
在实际教学中,笔者发现了一个有趣的现象,如这门课程的第一个实验就是按任意键输出一行字如:你好。这是书本上提供的实验,在上机过程中发现有的学生把它改成了“我是笨蛋”,编好之后让同学来测试,结果引起一阵轰笑。其实我觉得这种时候学生能这样开些玩笑反而更好。不但可以提高上机的趣味性,还能激发他们用C语言来比拼的欲望,一边玩笑一边学习,效果将会更好,可激励学生多创新。
2.3 革新水平评价体系
考核在教学过程中起着非常重要的导向作用,考核是了解学生学习状况的依据,学生和教师都非常重视。目前计算机专业教育的改革力度很大,但在考核方面,多年来进展不大。《C语言程序设计》课程的考核方式是以笔试为主,考试的重点是语法和基本的逻辑推导能力,忽略了学生对所学知识的综合应用能力的考核。因此,必须建立以学生解决实际问题能力为考核基准的考核模式,坚持理论教学与实践相结合,坚持学与用并重,实践操作应重视创新,培养学生灵活运用知识以及创新知识的能力。考核方式应该以实践和操作为主,笔试为辅,平时的上机操作成绩也要纳入到期末的水平评价中。在实际教学中发现,学生们更喜欢项目式的考试与平常的作业和上机相结合来定成绩,他们认为这样就减轻了期末考试的压力,因为很大一部分考核在平时的学习和上机过程中就完成了。
此外,作为教师,在教学的同时也应该不断提升自己,与时俱进,站在新知识的最前端,这样才能更好地教授学生知识。如果教师不充电,不提升自己,在讲课中将很难体现一个教师的魅力和感染力以及这个教师的知识水平。在这个计算机技术高速发展的社会,不学习新知识只会被社会甩在后面。
3 结束语
《C语言程序设计》是计算机专业的基础课程,一定要注重程序设计思维的培养,在教学过程中应积极探索符合各层次培养目标的教学方法、教学内容及考核方式。要建立良好的师生关系,充分发挥教师的指导作用,使学生在学习中不仅能掌握编程的知识和技术,还具备利用计算机求解实际问题的基本能力。这才是教学的目的,也是改革的目标。
参考文献:
\[1\] 谢竟博.C语言程序设计教学中的问题及改革建议\[J\].重庆邮电大学学报,2008(2).
\[2\] 魏青.C语言教学中学生学习兴趣的培养\[J\].电脑知识与技术,2010(21).
程序设计实践范文6
摘要:“C语言程序设计”是计算机学科的一门专业基础课程,对后继课程的学习有着较大的影响,提高这门课程的教学质量对于培养学生的编程思想和实际编程能力至关重要。本文针对构建课程体系、规范教学行为、教学改革、教材建设和形成教学团队等问题进行了探索。通过多年实践表明,课程建设不仅有利于培养学生学习兴趣和学生的实际编程能力,而且有利于师资队伍的建设和发展。
关键词:C语言程序设计;课程建设;教学质量;教学团队
中图分类号:G642
文献标识码:B
“C语言程序设计”是计算机专业的必修课和其他理工科学生的重要基础课程,由于覆盖面广、应用广泛,对于学生的基本编程素质的培养有较大的影响而备受重视。对其掌握的程度如何,直接影响到后继相关课程的学习和掌握,甚至是整个专业的后继发展。“C语言程序设计”的教学目标是培养学生的编程思想和实际编程能力,因此教学、实验、课程设计和考核等都要围绕此目标进行[1~3]。在教学过程中,有相当数量的学生反映学习起来比较困难。如何构建课程体系,如何组织教学,如何创新改革,如何进行教材建设和形成教学团队等都是值得研究和思考的课题[4,5]。为了整体提高“C语言程序设计”课程的教学质量,几年来,以培养提高学生的实际编程能力为目标,进行了C语言课程建设。经过多年不懈努力,使“C语言程序设计”课程整体教学质量和教学水平有了较大的提高。
1构建新的课程体系
1.1变单一教学目标为多元化教学目标
根据分层次、分类别组织教学的思想,进行教学目标的调整。根据学生层次的不同、根据计算机专业和非计算机专业性质的不同、根据学生学习能力的不同、根据学生自主学习自觉性的差异等,重新制定和修订理论教学大纲、实验教学大纲以及课程设计要求等。不同的层次、不同的类别要有不同的要求,体现出教学目标的多元化。这样的新体系才能更加适合办学特点和师生具体实际,在对教师教学和学生学习情况的评价上也将更加客观,可行性和可操作性增强。
1.2变知识灌输为突出实际编程能力的培养
以程序设计方法为主线、语法和结构为核心,能力培养和提高学习兴趣为目标,变应试为应用。本着面向未来的精神,把C语言作为一种实践工具,不再局限于单纯介绍C语言基本语法,而注重培养学生解决实际问题的编程能力,介绍程序设计的基本思想,让学生从多角度、以多方式掌握程序设计的精髓,培养学生无论以后使用什么语言编程,都能灵活应用这些思想和方法的能力。
1.3变传统考试模式为新体系下的评价方式
加大对“C语言程序设计”课程教学的质量监控力度,提出对不同专业、不同层次的学生在教学中可以因材施教,实行分层次教学,但最基本的要求是做到“五个统一”(即学大纲、统一课程教学方案、材、统一课时、统一考试),要求所有开设C语言课程的班级都参加全国计算机水平考试或统一命题,从而完全实现教考分离。并要求加强各种听课、评学评教活动,构建新体系下的课程评价标准。
1.4变课堂教学为主的教学形式为多样化教学组织形式
突破课堂教学的限制,建立课程学习网站。网络环境下分类指导、分层教学的教学模式,以提高编程能力为主要目标的各种学习模块,采取基于学习活动的人机交互、师生交互的互动学习模式,通过建设多种模式和多种学习渠道,构建立体化的学习环境,实现教学中“基础加专业、实践加知识、自学加讲解、素质加综合”的有机结合,在客观上满足人才培养多样化、多层次的需求,为学生对课程的学习实践创造良好的环境,也为教师积极参与课程教学的创新实践提供广阔的空间,使优秀教学资源的共享得以实现。
1.5变教师为中心为自主性学习为中心
课程网站内容体系以学习的自主性为基础,将知识、能力、任务、策略和素质的培养融为一体,确立教师作用的指导性和教学方式的实践性;以学生为主体,在照顾群体目标的同时,重视个体差异,使学生的个性得以充分发挥;允许水平不同、专业背景不同的学生根据需要达到相应的标准,对学生知识结构的合理构建、综合运用能力的加强和整体水平的提高将起到良好的推进作用。
1.6变单一课程教学为后继多课程的基础教学
由于计算机编程语言的发展,出于为后继课程,如数据结构和面向对象程序设计等课程提供基础的考虑,在教学体系中应加强指针和结构体部分的内容。
2从提高学生的实际编程能力出发,规范整个教学过程
2.1规范整个教学过程
对教学内容进行建设。根据新课程体系的要求对教学内容(理论和实验)进行整理,规范整个教学过程。编写完整的课堂教学教案;制作完整的教学用PPT,以规范教师基本教学行为;精选大量典型的、针对性强的例题,减少教师教学过程中选择例题的盲目性,也帮助学生根据自己的情况自行提高;每次实验内容要有针对性,提高实验课的效率;对课程设计提出要求,给出样例和参考课题,规范整个课程设计环节。
精心制作课程教学网站。课程教学网站是对课堂教学进行补充,应该内容丰富、完整,针对性强,可用性好,力求做出自己的特色。除了相关教学内容以外,应制作完整的课程网络课件,以方便学生复习和自学;应解析学生学习过程中可能遇到的问题,针对考试的考核要点进行分析,整理出若干套有针对性的模拟试题。网上丰富的资源,不仅为学生的自主学习提供保障,而且会使课程建设成果的推广应用越来越广阔,师生的利用率也会越来越高。
实时进行教学质量监控。在课程建设过程中,要实时对本课程的教学情况进行教学质量监控。采用集体备课、听课、评课、说课,开学生座谈会,与学生个别交谈,发放问卷调查、听取教学督导的意见和分析考试成绩走向等方式,对本课程的教学情况、学习情况进行跟踪调查。
2.2加强实践教学环节
重视实践教学,提高实践教学效果。实践教学是学习“C语言程序设计”的重要教学环节。实践教学由基础实验和课程设计两部分组成。
(1) 基础实验
基础实验紧密结合课堂教学,其教学目标是加深和巩固重点概念的理解和简单应用,掌握程序调试的基本方法,提高调试能力。基础实验内容分模仿型、测试型和设计型三类,以设计型为主,实验内容一般难度不大,规模较小。根据教学要求设计基础实验,对比较重要的章节应设置两个基础实验(如数组、指针、结构体与共用体类型等),以加强学生对重要内容的掌握程度。
(2) 课程设计
课程设计是对学生的一种全面综合训练,是不可缺少的教学环节。通常,课程设计中的问题比平时的习题复杂得多,也更接近实际。课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。平时的习题较偏重于如何编写功能单一的“小”算法,局限于一个或两个知识点,而课程设计题是软件设计的综合训练,包括问题分析,总体结构设计,用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。此外,还有很重要的一点是:计算机是比任何教师更严厉的检查者。
为达到上述目的,使学生更好地掌握面向过程程序设计的基本方法和C语言的应用,应给出课程设计样例和参考课题,引导学生应用结构化程序设计方法, 逐步掌握开发规模较大的C程序的系统方法。每个课题采取统一的格式,由问题描述、基本要求和选做内容等部分组成。问题描述旨在为学生建立问题提出的背景,指明问题“是什么”。基本要求则对问题进一步求精,划出问题的边界,指出具体的参量或前提条件,并规定该题的最低限度要求。选做部分向那些尚有余力的学生提出更高的要求,同时也能开拓其他学生的思路,在完成基本要求时就力求避免就事论事的不良思想方法,尽可能寻求具有普遍意义的解法,使得程序结构合理,容易修改、扩充和重用。
3积极开展教学研究,推动教学改革,在创新中提高教学质量
3.1因材施教,实行分层次教学
为了更好调动学生的学习积极性、主动性,达到因材施教的效果,可以将“C语言程序设计”的教学对象分成A、B、C三个层次组织教学。A层次由计算机本科专业学生组成,教学要求更高一些,在传授知识的同时,加强拓宽基础,适当加强应用,注重传授编程思想和培养学生创新思维,着重提高学生的算法设计素养和能力,使他们的个人特长得到发挥。B层次为理工科非计算机专业本科生和计算机专业三年制大专生,按照传授知识、培养能力、提高素质的要求组织教学;而C层次主要是面对两年制计算机专业学生,这部分学生因为基础较差,学习比较困难,在教学要求方面更强调基本概念、基本知识、基本方法的训练,加强课外辅导,指导学习方法,调动主观能动性,提高效果,以达到课程教学要求。
在分层次教学中,除了课堂教学更注重因材施教,加强各个教学环节之外,还要利用课程网站提供师生互动平台,加强课外答疑辅导;强化实践环节,设计好整个实验教学的内容;加强课程的总结,帮助学生对每章节内容进行总结、归纳,重点难点分析,典型例题分析及解题能力训练,提供网上学习环境,供学生课外自学使用。
采用分层次教学形式,将激发和调动学生学习积极性、主动性、自觉性、自信心以及奋发向上的精神,有利于学生的个性发展,营造良好的学风。
3.2教学研究应不断深入
提高教学质量和水平,是课程建设的永恒主题,也是一个不断研究、不断实践的课题。重视教学研究是高校适应社会发展需求的必然选择,是学校立足实际,走内涵式发展的必由之路,是学校不断提高教学质量、实现可持续发展的强大内驱力。因此,教学研究已成为课程建设教师的自觉行动。
(1) 整体把握C语言的课程体系,在教学过程中让学生理解相关的结构性概念的作用和意义。如在编程语言中为什么会有数组的概念,没有数组能不能编程,数组的本质是什么,在学习数组内容时重难点在哪里;为什么要有指针一章,没有指针可以不可以,指针的作用是什么,学习指针的方法应怎样;为什么要有结构体,没有这个概念行不行,如果没有应该怎么做,有什么不方便等,在教学过程中要讲透重点和难点。在讲解某个具体的典型程序时,讲清楚为什么要这样设计,为什么要定义这么多相关的变量,所使用的算法思想及其实现等。总之要有针对性地按照提高其编程能力的目标进行教学。
(2) 注重对典型程序的学习和掌握,提出四个阶段的学习方法。每一个典型程序的学习过程应分为四个阶段:听懂到看懂、理解到熟悉、基本掌握到掌握、完全掌握。如果通过学习能够“完全掌握”课程中的十几个典型程序,应该说教学是成功的。
教学方法是众多长期从事C语言教学工作的一线教师经验的总结,新的教学方法和教学手段将会调动学生主动学习的积极性,只有这样学生程序设计水平和程序调试能力才能有显著提高。
(3) 注重课程体系结构的合理性。从提高学生的实际编程能力出发,合理安排各章节的教学内容,突出重点和难点;注重C语言对后继课程的基础作用。通过学习不仅使学生掌握C语言的基本语法和规则,还能够领会结构化程序设计的思想和方法。
4加强教材建设
教材建设是课程建设的重要内容之一,除选用全国优秀教材外,应加强自编教材及辅助配套教材的编写和课件研制。教材是教学活动双主体之间沟通的桥梁和工具,是教学改革成果的积淀,是保障教学质量和提高教学效果的关键因素。教材集中反映了作者的教育理念,体现了作者的教学指导思想,体现了作者的课程观、人才观与价值取向;同时也从一个侧面反映了课程的教学模式与质量标准。
对教材编写要力求体现教学目标的要求,充分考虑教学方法、教学手段和教学模式,对教学要求中的知识点和能力点统筹把握好“增”、“删”、“减”、“移”、“合”五种策略,做到专业需要、学生状况、教学条件三者有机结合。实验教材应注重实际编程能力的培养提高,并配有电子教案,提供例题程序源代码,以方便学生自学,形成立体化教材。
教材应全面系统地介绍C语言程序设计的基本概念、结构化编程思想和方法以及解决实际问题的技巧,注重C语言在学科中的基础地位,在整体结构上进行精心思考,对专业发展有影响的部分内容进行侧重。从学习者的角度去思考每部分内容,尽可能地贴切学生的接受能力,对可能产生的疑问进行解释并结合实例进行详细的分析和说明,力求将复杂的概念用简洁浅显的语言来描述,做到深入浅出。
5形成一支结构合理、素质较高的教学团队
教师是教学质量提高的关键。要搞好教学,需要教师的团结协作、集体智慧的发挥,也就是需要一支结构合理,素质较高的教学团队。教学团队是以教学水平高、业务造诣深、经验丰富的教师为主体,配备一定数量的青年教师形成的群体。教学团队应具备一定的稳定性,而且人员要不断壮大,内涵不断充实,教学水平不断提高。
首先对课程主讲教师明确责任,对青年教师实行导师制,在业务上和教学方法上进行一对一的指导,对青年教师实行严格考核制度,确保青年教师站稳讲台,教学质量稳步提高。另外为适应新的教育模式,即培养“厚基础、宽知识、强能力、高素质”人才的要求,教师必须以严谨的教学态度、创新的教学思想、宽厚的学术水平和行之有效的教学方法与手段组织教学。教学团队要讲求实效,定期开展教学研讨活动,集体研究教学内容、教学方法的改革,不断探索教学中的新课题,组织编写教学资料,制订教学方案,期末进行课程总结,组织听课等活动,形成一个结构合理、素质较高的教学实体,这是课程整体教学质量不断提高的组织保证。
通过教学团队的建设,年青教师的教学水平将得到提高,教学过程得到规范,教育教学的意识得到加强,学历层次不断提升,教师的教科研能力明显增强,教科研立项数量逐年增加,立项级别也将稳步上升。
6教学实践效果
教学团队的成员,他们是课程的建设者,也是建设成果的使用者。我院经过多年的实践,证明了学生对课程的掌握及实际编程能力较建设前有了明显的提高。从本科生毕业的选题、毕业设计过程及答辩情况来看,学生具备了一定的独立编程能力,编程能力的提高,应该源于C语言课程的学习。通过对比和分析2006-2008年学生参加全国计算机水平考试的成绩,可以看出通过率呈逐年上升趋势,如下图。
7结束语
通过对“C语言程序设计”课程的建设,一方面提高了学生的学习兴趣,使学生掌握了学习语言课程的方法,培养了学生分析问题与解决问题的能力,学生的实际编程能力有了较大的提高,达到了本课程教学的预期目标,同时学风建设得到了加强;另一方面锻炼了教师队伍,逐步形成了教学团队,使师资队伍的师德教风、教学水平、教学的规范性都有了较大的提升,也激发了教师参与各种教学研究的积极性。
参考文献
[1] 谭浩强. C程序设计(第三版)[M]. 北京:清华大学出版社,2006.
[2] 李春葆. C语言程序设计[M]. 北京:清华大学出版社,2007.
[3] 甘玲. 解析C程序设计[M]. 北京:清华大学出版社,2007.
[4] 杨理云. “C语言程序设计”教学方法探索[J]. 中国成人教育,2007,(5):162-163.
[5] 张建珍. C语言教学方法探究[J]. 计算机教育,2007,(09):12-13.
On the Research and Practice of “C Programming Language” Course
GUO You-qiang
(Computer Sci-tech Department, Bengbu College, Bengbu, Anhui 233030)