时间:2023-05-31 09:09:28
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇c语言课程设计,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
高等职业教育的目标及侧重点不同于普通高等教育,其培养的学生在毕业后应能直接上岗,具有熟练的实践操作技能。教育部《关于以就业为导向深化高等职业教育改革的若干意见》中指出,高职教育应“坚持培养面向生产、建设、管理、服务第一线需要的‘下得去、留得住、用得上’,实践能力强、具有良好职业道德的高技能人才”。
因此,加强实践性课程教学,对保证人才培养质量显得尤为重要。我院为贯彻《关于全面提高高等职业教育教学质量的若干意见》(教高[2006]16号文件)精神,针对区域经济发展的要求,灵活调整和设置专业课程,以就业为导向,加快专业课程对应的课程设计改革。目前,我院按照由浅入深、不断深化的教学规律,构建了实践教学三层次四环节的实践课程体系(图1)。实践教学三层次包括基本技能、专业拓展、综合创新,四环节包括实验、实习实训、设计和课外实践。“C语言课程设计”是我院信息类专业的必修专业基础课程设计,在“C语言程序设计”课程教学结束后的下一学期进行,历时2周,40学时。课程开设的目的在于培养学生分析问题和解决问题的能力,为学生提供一个动手、动脑、独立实践的机会。
2项目教学法的简单介绍
2.1项目教学法“项目教学法”是基于建构主义教学理论的一种教和学的模式。著名的瑞士心理学家皮亚杰认为,知识不是通过教师传授得到的,而是学生在一定的情境下,借助他人的帮助,利用必要的学习资料,通过意义建构的方式而获得的。美国项目管理专家约翰·宾认为:“项目是要在一定时间里,在预算规定范围内需达到预定质量水平的一项一次性任务。”
“项目教学法”是通过实施一个完整的项目而进行的教学活动,旨在把学生融入有意义的任务完成的过程中,让学生积极地学习,自主地进行知识的建构,在课堂教学中把理论与实践教学有机地结合起来,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。因此,在教学活动中,教师将需要解决的问题或需要完成的任务以项目的形式交给学生,在教师的指导下,以小组工作方式,由学生自己按照实际工作的完整程序,共同制定计划,共同或分工完成整个项目。
在项目教学中,学习过程成为一个人人参与的创造实践活动,注重的不是最终的结果,而是完成项目的过程。在高等职业技术教育中,项目是指以生产或制作一样具体的、具有实际应用价值的产品的工作任务。在技术领域,很多小产品或一些复杂产品的模型都可以作为项目,如:在信息类专业,可以开展微机组装、网站建设、信息管理系统开发、局域网构建、单片机制作、多媒体课件制作等项目;在电子类专业,可以开展报警器、LED、门铃、家电组装等项目;在商业、财会和服务行业,所有具有整体特性并有可见成果的工作也都可以作为项目,如商品展示、产品广告设计、营销策划等。
2.2项目教学法的基本特征项目教学法与传统的教学法相比,有很大的区别,主要表现在改变了传统的3个中心:以教师为中心转变为以学生为中心;以课本为中心转变为以“项目”为中心;以课堂为中心转变为以实际经验为中心。项目教学法具有以下特点:(1)实践性。项目“源”于企业,项目的主题与真实世界密切联系,由浅入深,选择的项目具有典型性、实用性。(2)自主性。提供学生根据自己的兴趣选择内容和展示形式的决策机会,让学生能够自主地进行学习,从而有效地促进学生创造能力的发展。(3)发展性。长期项目与阶段项目相结合,构成了实现教学目标的认知过程。(4)评价特殊性。项目型教学的评价注重学生在项目活动中能力发展的过程,测评内容包括学生参与活动各环节的表现及作业质量,避免了传统的一张试卷定成绩的弊端。测评可以采用自评、小组评、教师综合评等方法。教师只有明确并抓住项目化教学特点,才能更好地完成教学目标。
3项目教学法在“C语言课程设计”中的实施
3.1教学内容为了更好地开展课程设计教学,经过多次实践和摸索,总结出学生在具体实施项目中一般存在2个方面的知识不足:第一,在教学内容上,由于前导课程在教学上受学时影响,很多教师对指针、结构体、共用体和文件基本操作的知识介绍不甚完善、系统,更难谈上辅以实例加以消化。对此,针对学生在这些知识点上的掌握程度,利用4~6个学时,实施区别式的、辅导性的、实例化教学。第二,学生对项目管理知识知之甚少,针对此情况,采用2个阶段实施有别于常规教学的补课行动。第1阶段为项目准备阶段,利用2~4个学时,安排曾经做过项目且做得比较好的学生,现身介绍项目的准备工作(包括如何选题、如何查找资料、如何复习C语言知识)、项目实施过程要完成的工作(包括如何做市场调查、如何做需求规格分析说明书、如何做概要设计说明书、如何做详细设计说明书、如何选择使用代码编码器代码编写注意事项)、项目验收及作业提交的工作(包括程序测试事项、如何写课程设计报告)等。在学生介绍中,教师穿插讲解,辅以点评。第2阶段为项目实施阶段,教师应针对学生发生的问题,及时给予指导,直到学生弄懂为止。
3.2教学要求切实保证教学质量和教学效果,本着“学以致用”的原则,要求学生做到以下3点:第一要做到“学有三备”,即:在项目实施前做好知识储备,在项目实施中做好安全防备,项目结束时做好被评准备。第二要写好“三书一报告”。“三书”即每个项目组要做需求规格说明书、概要设计说明书、详细设计说明书,“一报告”即人人都要做课程设计报告。第三要做“四自”参与者。“一自”即自律,要求学生自觉履行学生守则和项目实施有关规则,不迟到、不早退、不缺席,实施点名制度,若无特殊原因,有5次旷课者自愿以重修论处;“二自”即自尊,要求学生尊重知识、尊重学习规律、尊重项目组成员、尊重教师、尊重自己;“三自”即自信,要求学生相信自己能够按时、按量、按质完成工作内容,遇到困难时,沉着、冷静,理性地寻找问题解决的办法;“四自”即自强,要求学生不满足自己已有的成绩和以往与课题项目组共同取得的成绩,用创新和超越的思想,做出比以前哪怕是前进一小步的事情。同时也要求教师做好相应的工作,如做好项目整体规划、精心准备、努力激发学生参与行为、为人师表、表扬为主、批评为辅、多分析、精点评等。
3.3项目实施进程项目教学法是一种生动、灵活、多样化的教学方法。在项目实施过程中,既不能生搬硬套地利用一个时间标准,又不能影响项目实施的整体进程,因此对时间的灵活处理是非常关键的,也是值得商榷的。
【关键词】C语言;理论教学;实践教学;课程设计
目前各个高等学校尤其是三本工科院校中,所选用的编程教学语言,由以前的面向过程化的语言Pascal语言向C语言过渡,这个也正是C语言广泛使用的一个例证,C语言作为一个对底层有较强控制能力的语言,对于初学者来说,还是不容易掌握。为了编程语言的教学,各个学校都在探索适合自己学生的教学方式。本文针对电子类的嵌入式方向专业的特殊性,采用了将理论和实践分开进行的方式,这样做,可以让学生对程序设计语言由浅入深地接受,在这个过程中,很自然地有纯粹的理论过度到实践编程的环节。
一、程序设计语言的教学思路
嵌入式方向C语言的教学,偏向于嵌入式底层的应用,在课程的安排上,结合三本院校学生的特点,将理论和实践分别安排的两个学期完成,第一个学期,主要是针对理论学习,第二个学期,开设课程设计的实践环节。在理论教学环节中,侧重点是理论的讲解,可以不必太在乎细微的语法细节,而将主要精力放在程序设计语言的思想上。作为教师在讲授C语言理论知识时,只要将过程化C语言的重点思想交代清楚了就可以了,在教学内容的安排上,一定要将结构体,指针和文件的相关知识进行讲解,这也决定了在理论学时的环节中,无法对个别函数的细节进行展开的原因,而这些理论环节的教学,学时可以控制在45~48之间。
二、C语言课程设计教学内容的设计
在教学内容上,由于实践课程的特殊性结合程序设计的特点,实践环节可以用两种方式完成,以便和前面的理论学时的知识进行衔接,这两个环节分别是单个知识点的联系和综合的课程设计的独立完成。
1. 单个知识点的实践
就单个知识点而言,都以专题练习的方式进行,在讲授的过程中,结合工程中的使用,每个专题,可以设计出独立的实践报告内容,程序设计语言的教学,除了掌握基本的语法规则之外,最重要的是同时要会调试程序,也就是要掌握调试程序的技巧。所以,课堂实践环节的内容的设计,不但包括了能够写出程序代码,而且还要会应用调试工具对程序进行调试,下面就是本人在进行数组,指针和结构体的综合专题中进行的课堂任务的设计:
任务描述:从键盘录入N个学生的信息(包括姓名,学号,成绩),统计出平均分,并将成绩最低分,最高分的学生的信息输出。
该课堂实践内容设计的思路,主要是要学生掌握结构体的定义方法,理解数组的元素可以是结构体变量,同时要牢固掌握指针的本质就是内存地址,通过指针可以方便地操作用户空间的任何数据。
通过上面的实践内容,结合笔者的实际操作,学生在记录了指针地址的变化过程之后,不但掌握了查看内存的调试方法,而且对指针的本质有了感性的认识。
2. 综合课程设计
可以选取有一定规模的小系统让学生完成,在笔者的教学中,几年来了均采用了学生信息教学管理系统进行授课,随着经验的增加,这个小系统对于学生而言,有很好的锻炼价值。
这个环节的实践,可以不占用教学计划学时,而留给学生课后组队或者独立调试完成,这是因为,学生通过前面分散的专项知识点的练习,已经学会了怎样调试程序,而且,各个知识点通过练习之后,已经掌握得差不多了,这个综合任务,就是为了他们能够融汇以前所学的各个知识点。所以布置给学生之后,就可以在适当的时候进行答辩考核了。
三、C语言课程教学课堂组织形式的比较
作为实践课程,其教学有特殊性,笔者通过三个学期的探索,分别采用了两种课时组织方式,现在对两种方式的优缺点分别进行比对:
分散课时方式:就是按照理论课的安排,周学时2-4个学时进行安排。
周末集中方式:每个周末安排16个学时,进行集中训练。
对于分散授课的方式,学生的出勤率低于集中的方式,对于实践性质的课程,这种集中的方式进行授课,学生的出勤率会高于普通的方式。就学生课堂任务的完成情况而言,两者基本上都能按照要求完成要求的85%以上的内容。就课程衔进行考量,根据实际操作来看,集中方式明显优于分散的方式,这个记忆的遗忘兴致相符合。从考核结果来看,分散方式所参与的三届学生中,要优于集中方式,这个结果的出现,有部分原因是由于考核时间和上课时间之间的空隙拉的太长了。下次的安排,将会安排在课程结束之后的一周时间进行,这留出来的一周时间,就是让学生来独立完成自己的任务。
本文对三本学校中开展C课程设计的思路进行探讨和实践,提出了将C语言的教学分为理论部分和实践部分的思路,并把实践部分的练习分为专题知识练习和综合独立完成的任务两个部分,在课堂的实践中有较好的效果。最后论文还对课程设计的学时组织方式进行不同方式的实践尝试,为找到适合三本学生C语言教学的方法提供了一定的参考对象。
参考文献:
[1] 郭有强. C语言程序设计实验指导与课程设计[M].北京:清华大学.2009
vb课程设计心得体会一
我们组这次设计的程序是考勤管理系统,主要用于企事业单位的考勤,便于统计员工的出勤情况。
1.通过这一次的程序设计,使我能够进一步掌握用程序设计语言解决实际问题的方法,在操作当中把所学到的用于实际的编程里面去。
2.通过这一次的程序设计,使我能够提高分析问题、查阅资料、吸收新知识的能力,在分析解决问题时比以前有了很大的进步,一些常用的知识和一些常规的错误都能够解决。
3.通过这一次的程序设计和指导教师姜瑶老师的指导使我能够进一步对vb有了熟练的操作,并且在分析,编程方面比以前有了更大的提高。
4.我认为实践周的程序设计是给我们学习的一个大好机会,使我们在这样的机会里学到了一定的知识,毕竟理论要通过实践来锻炼,也只有自己参与了这样的一个锻炼,才能更好的发现自己的不足并加以改进和完善!
在这次的设计过程中,我学到的不仅是知识,我还认识到许多事情。这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。由于这次设计涉及到数据库,我也学到了不少数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。最后,在这里我要衷心的感谢我们的指导老师谢谢她的耐心指导和热心帮助。由于我水平有限,加之时间短暂,故学习数据库系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。
vb课程设计心得体会二
在前两周中我们进行的VB课程设计中,我获得了一些心得体会。
这是我第一次系统与完整的接触软件设计。我们组的题目是关于“俄罗斯方块游戏”的设计。我在组内主要负责(1)游戏界面的设计(2)俄罗斯方块的造型(3)游戏级别的自由选择(4)游戏速度的自由选择(5)游戏的背景音乐。在这次课程设计中,我的能力得到了锻炼,自己也有许多体会。这次的课程设计是自己第一次全面接触软件的制作过程。以前仅仅是对软件的开发有一个大体的印象,通过这次的课程设计,我对软件的开发有了切身的体会。软件并不像我原来所想的那样十分神秘,而是有着一个相对固定的模式和流程。我们只要按照这个模式和流程,就能够比较规范的完成一个软件的制作。软件的制作是一个系统的工程,需要我们掌握多方面的知识。在这次课程设计中,我觉得自己的知识面依然有所欠缺。因此我需要在以后的学习中加以注意,要不断的提高自己的知识面与知识层次。
我在这次课程设计中主要负责(1)游戏界面的设计(2)俄罗斯方块的造型(3)游戏级别的自由选择(4)游戏速度的自由选择(5)游戏的背景音乐。在这次课程设计之前,我对VB的编程不是特别的熟悉,这次的课程设计,我是一边学习,一边总结,一边进步。在编程的过程中,我体会到其实各种计算机语言是有相通之处的。在以前的 学习中,我只接触过C语言,这次在VB课程设计中,我发现C语言中的许多知识可以应用到VB中,两者具有相通的数据结构。所以我认为现在对计算机语言的学习,不要贪多,而应耐心的学好一门主要的计算机语言,在这个基础上,去学习其他的语言,这样会使学习效率大大提高。
在编程的过程中,我体会到编程是十分辛苦的。在课程设计这一段时间里,我每天的生活基本是在不断的调试程序和修改代码中完成的。有时,这种生活令人感到乏味和疲倦,但是在这种近似枯燥的生活中,我的编程水平有了一定程度的提高,这是课程设计中我最大的收获。以前学习计算机语言,总是静不下心来,不能认真的看书。这次课程设计,为了顺利的完成编程工作,我认真的学习了VB语言,并有了一定的心得体会。所以在以后的学习中,自己全身心的投入,这样学习才会有效率,才会有效果。
这次的课程设计是按小组进行的,我们的小组由两名同学组成。软件的设计本来就是一个团体的智慧结晶。这次课程设计也给了我们一次体验团体合作的机会。在课程设计中,我深深的体会到集体的智慧于力量是个人所无法比拟的。在课程设计中,我们的小组成员互相帮助,有问题两个人一起讨论解决,大大节省了时间。互相都提出了很好的建议,使我们的课程设计得以较好的完成。
课程设计已经结束了,但在课程设计的这些体会要应用到今后的日常学习中去。在新的学期,我觉得自己要在以下几个方面加以注意:
首先,在学习专业课的时候要注意理论联系实际。注意将课本上的知识应用到日常的操作中,真正做到学以致用。只有这样,才能做到目的明确,才能有足够的学习动力。
其次,在学习过程中要经常与同学进行交流,讨论所遇到的问题,并一起解决。在讨论中解决问题,会节约很多时间,并且在交流的过程中,我们也可以学到更多的东西。
课程设计已经已经完美解暑,这次课程设计给我打来了很多新的体会,在以后的学习中要不断总结,不断改进,使自己的成绩有新的提高。只有不断努力,才会使自己变得更加优秀。
vb课程设计心得体会三
经过近一个月的设计与制作,我们组的《20xx世界杯观战指南》终于完成了,现将过程中遇到的问题、获得的体会记录如下。
这次数据库课程设计中我主要负责用户登录、注册及数据库维护方面的设计。
1.Delphi是一款功能很强大的软件,其控件之多超出了我的想象,因此在运用时要借助很多资料。要学会查找和利用现有资料来解决问题
2.在设计中用到了很多SQL语句,因此对SQL及程序语句地掌握也是必不可少的。
3.后期的软件制作都是以前期的工作为基础的,因此在前期的需求分析及数据库设计阶段要认真、细致。
4.我们是三个人的小组,在设计过程要互相协调,合作。这样才能充分发挥每个人的作用。
vb课程设计心得体会四
数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。
首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学.net),我接触到microsoft 公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称.net是用于创建下一代应用程序的理想而又现实的开发工具,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍()。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。
通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。
来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。
其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。
开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用ado.net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。
关键词 实验教学体系 电信与计算机分中心 信息工程 教学改革
中图分类号:G424 文献标识码:A DOI:10.16400/ki.kjdks.2016.10.047
Abstract Theoretical teaching and experimental teaching is for colleges to train two essential link, for information engineering and other related majors, experimental teaching is particularly important, key steps of application type talents training. With the continuous development of information technology, traditional experimental teaching content and teaching method has and social demand can not adapts with my school experiment teaching center of telecommunications and computer center specific experiment teaching pattern and system, describes the various problems encountered by the information engineering specialty in experimental teaching and solutions, in order to deepen teaching reform and improve the quality of experimental teaching play an important role, but also for future application key provincial experimental teaching demonstration center provides a basic guarantee.
Keywords experimental teaching system; telecommunications and computer sub center; information engineering; teaching reform
我校信息工程学院所开设的四个专业分别为电子信息工程、通信工程、物联网工程、计算机科学与技术,其80%以上的实验课是在电信与计算机分中心的实验室开设。这四个专业的共同特点就是实验课比例要多于理论课,而且,随着信息技术的不断发展,实验课程的教学模式和实验内容如果一成不变,则会极大地影响人才培养效果,如何让实验课程和社会接轨是目前电信与计算机分中心亟需解决的问题。
1实验教学体系主要研究内容
1.1 实验课程结构
(1)基础类、专业类、综合设计性以及创新性实验课程的比例不够合理,基础类实验所占比例过大;(2)大一可以开设和学科专业特点相近的基础性实验;大二可以以各种竞赛为导向、把硬件故障诊断的实例融入实验教学中去;大三可以把企业中实际的项目和大学生科技创新活动等渗透到平时的实验教学中去。
1.2 实验教师结构
(1)学历结构;(2)年龄结构;(3)职称结构;(4)双师型教师比例。
1.3 实验教学大纲
因为电信、通信、物联网技术发现迅速,需要及时更新实验内容,陈旧的设备和技术手段不能满足社会发展趋势。相对应的实验教学大纲最少三年要更新一次。
1.4 实验教学质量评价
(1)对实验教师的评价主要包括实验讲授方法、以及能否及时处理实验中遇到的各种问题,因为理论课中描述的都是在理想的环境中得出的规律和现象,而在实际进行的实验过程中会有各种不可预知的问题出现,需要教师能逐一分析并解决问题;(2)对学生的评价主要包括实验现象和数据的分析,遇到故障的处理方法等。
2 我校信息工程学院各专业实验课教学体系结构
2.1 电子信息工程专业实验课程体系
(1)专业基础实验课:大学物理实验、C语言程序设计、电信工程导论、数字逻辑电路实验、模拟电子线路实验、电工基础实验、电路分析基础实验、数据结构;(2)专业实验:通信原理实验、数字信号处理实验、高频电子线路实验、信号系统实验、单片机技术应用实验、计算机网络实验、嵌入式与多核技术实验、数字图像处理实验、移动通信系统实验、汽车电子实验;(3)项目综合实训:电子电路实训、电子工艺实训、C语言程序课程设计、模拟电路课程设计、单片机技术课程设计、实用电源实训、FPGA课程设计、嵌入式应用实训。
2.2 通信工程专业实验课程体系
(1)专业基础实验课:大学物理实验、C语言程序设计、通信工程导论、数据结构、JAVA程序设计、电工基础实验、电路分析基础实验、数字逻辑电路实验、模拟电子线路实验;
(2)专业实验:信号系统实验、单片机技术应用实验、通信原理实验、高频电子线路实验、计算机网络实验、数字信号处理实验、嵌入式与多核技术实验、数字图像处理实验、移动通信技术实验、现代交换技术实验、光纤通信技术;
(3)项目综合实训:电子电路实训、电子工艺实训、C语言程序课程设计、模拟电路课程设计、单片机技术课程设计、嵌入式与多核课程设计、传感器技术实训、安卓技术开发、通信系统综合实训。
2.3 物联网工程专业实验课程体系
(1)专业基础实验课:物联网工程专业导论、大学物理实验、数据结构、电路与电子技术实验、计算机概论、计算机组成原理、JAVA程序设计、计算机网络、C语言程序设计;
(2)专业实验:数据库原理、传感器原理实验、操作系统、RFID原理实验、物联网通信技术实验、嵌入式系统设计、JAVA WEB开发技术、单片机原理实验、无线网络技术实验、网络互连技术、CC2530原理、软件工程;
(3)项目综合实训:C语言程序课程设计、数据结构课程设计、语言类综合实训、关系数据库课程设计、嵌入式课程设计、Zigbee应用课程设计、网络通信课程设计、物联网应用项目实训、智能家居模拟实训、移动应用开发实训;
2.4 计算机科学与技术专业实验课程体系
(1)专业基础实验课:数据结构实验、面向对象程序实验、计算机组成原理;
(2)专业实验:JAVA程序设计、操作系统、网页设计、计算机网络、数据库原理、JAVA WEB、计算机系统、软件工程、单片机原理实验、网络管理、XML技术、多媒体技术;
(3)项目综合实训:嵌入式课程设计、JAVA WEB课程设计、数据结构课程设计、单片机技术课程设计、JAVA课程设计、软件测试课程设计、Android系统课程设计、网络工程课程设计、Linux C课程设计。
3 目前实验教学面临的问题和解决方案
3.1 实验课时分配不合理
单片机课程设计、模拟电路课程设计、数字电路课程设计等综合设计类实验为16学时,而通信原理以验证性为主的实验课则安排有34学时,明显设置不合理,今后更新培养方案可重新分配学时。
3.2 实验内容陈旧
(1)电子工艺实训仍使用potel99的最老版本,而目前经过升级后已有最新的potel2008版本;(2)嵌入式系统仍使用的是2006年流行的arm9的操作系统,而目前使用的主流操作系统应该是arm11;(3)移动通信仍使用的是3G技术,而目前4G移动技术已经非常成熟,且有部分高校向5G扩展;(4)单片机技术仍使用的是51系列单片机芯片,而目前应用较多的是STM32系列的单片机,相比处理速度更快,内存更大。(5)计算机网络实验仍是以有线网络教学为主,而目前应用较多的是无线网络技术。
根据以上问题,可在培养方案中注明要求必须使用某种软件或实验方法,实验教学中心适时的淘汰过时的硬件或者软件设备。
3.3 单个教师承担一门课程的局限性
部分课程设计类实验涉及的知识点较多,单个教师不能完全承担整门课程,这相当于做一个项目,项目组成员对于各个知识点进行分工协作才能更顺利完成教学任务。例如:某学生做一个无线电能传输装置的课程设计,就需要掌握单片机技术,开关电源技术,无线网络,高频等多个知识点,而几乎没有一个教师能同时精通这所有知识,这就需要在排课的时候能同时安排几个相关教师授课。
3.4 各专业实验课的专业性不强
电子信息工程专业可不开设移动通信实验、数字图像处理,可增开设自动控制原理实验,微波技术等实验课程;通信工程专业可不开设电子工艺实训、FPGA技术,可增开设射频技术,光纤通信等实验课程;物联网工程可不开设计算机组成原理;计算机科学与技术专业可增开部分专业基础实验课。
3.5 大部分实训课程未能和生产实际紧密结合
例如软件类实验相互抄袭、网上拷贝较多,学生毕业后不能胜任项目开发工作,因为真实的项目开发不同于普通按部就班的实验课教学,其整个过程中会遇到各种不可预知的困难,为了让学生学会分析处理各种问题,应把企业中实际的项目融入平时的实验教学中,让学生真实体验项目开发整个过程,这样学生踏上工作岗位后就能直接进入企业第一线工作。
4 结语
实验教学体系改革是一个长期的过程,要根据社会发展趋势,学科专业特点随时改进,而信息工程专业实验发展尤为迅速,这就要求实验教师长期不断地学习,经常深入企业掌握先进的技术和方法,实验教学中心也要适时更新硬件和软件设备,保障实验教学体系的实用性、先进性、创新性和完整性。
参考文献
[1] 柴文妍,王皖贞.电子信息工程专业“综合课程设计”教学实践与探讨[J].北华航天工业学院学报,2011.21(3).
[2] 王青云,宗慧.电子信息工程专业的“课题式”教学改革研究[J].中国科教创新导刊,2011.34.
关键词 思维模式 计算思维 程序设计 教学改革
中图分类号:G424 文献标识码:A
0 引言
随着计算机在各个行业的广泛应用,计算机基础教育成为每个入学大学生的必修课,而C语言程序设计又是计算机基础教育里面的一门非常重要的课程。需要学习C语言程序设计的原因有:(1)C语言语法结构很简洁精妙,可以写出高效程序,大多数程序员愿意使用C语言去描述算法本身;(2)C语言深入到系统底层;(3)很多新型的语言都是衍生自C语言,掌握了C语言,再经过简单的学习,就可以掌握和使用新型语言去开发了,例如Java。第三个原因也从另一个侧面证明C语言是程序设计的重要基础。
C语言作为入门来讲是比较合适的语言,用处广泛,可以学会优秀的程序风格。想学会C语言,有初中数学和英语的基础就够了,但是如果想深入学好C语言程序设计,必须要有好的抽象的思维能力,这种抽象的能力就是计算思维。众所周知,计算机是一个应用工具,如何将这个工具应用好,是学生在学习时代乃至进入到社会必须熟练掌握的。要灵活使用计算机进行程序设计,基于计算思维的C语言程序设计教学方法发挥着重要作用。
1 计算思维概念
2006年3月,卡内基·梅隆大学周以真教授阐述了计算思维:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。对于计算机专业的学生来说,理解这一概念并非易事,而对于非计算机专业的学生来说,很难让他们理解计算思维。因此,仅仅知道计算思维这个概念是远远不够的,关键在于,将一些日常生活中常见的实例,用C语言程序来实现,而在这个实现过程中,就用到了计算思维理念。要想初步认识计算思维理论,就要借助于现实生活的例子,通过这些简单的例子,更深入地理解计算思维这一思维模式,在实践中,用计算思维来指导学生编程,这样一来,学生编程的出发点更高,考虑问题更全局化,编出来的程序更健壮、更通用、更科学。
要理解计算思维,首先要从科学思维来入手。科学是指反映现实世界各种现象的本质与规律的分科的知识体系。科学思维(简称思维)一般指的是理性认识及其过程,也即经过感性阶段获得的大量材料,通过整理和改造,形成概念、判断和推理,以反映事物的本质和规律。科学思维主要分为理论思维、实验思维和计算思维三大类。
理论思维经常碰到,例如公理。实验思维的先驱应当首推意大利著名的物理学家、天文学家和数学家伽利略,他开创了以实验为基础具有严密逻辑理论体系的近代科学。计算思维则是人类求解问题的一条途径,但决非要使人类像计算机那样思考。计算思维的本质是抽象和自动化。如同所有人都具备“读、写、算”能力一样,计算思维是必须具备的思维能力。
计算思维概括起来有以下三个特点:(1)计算思维吸取了问题求解所用的一般数学思维方式,颠覆了现实世界中巨大复杂系统设计与评估的一般工程思维方法和理解心理及人类行为的一般科学思维方法。(2)计算思维建立在计算过程的能力和限制之上,由人和机器执行;计算方法和模型可以处理那些原本无法由个人独立完成的问题和系统设计。(3)计算思维最根本的内容是抽象;计算思维中的抽象完全超越物理的时空观,以致完全用符号来表示;与数学的与物理的抽象相比,计算思维的抽象更为丰富,也更为复杂。
2 基于计算思维的课程教学方法
正是由于计算思维的抽象能力有助于复杂系统的问题求解,所以应该结合计算思维在C语言程序设计中的应用,为学生开设一门“怎么像计算机科学家们一样去思维”的课程,让学生们一开始就喜欢上编程,因为计算思维不仅仅属于计算机科学家,而是属于每个学生的基本技能。
以前,非计算机专业学生在学习C语言程序设计的教学过程中,教会学生C语言语法,告诉学生怎么编程,这种教学方法和模式对学生深刻学习C语言程序设计是很片面的。根据我们的教学实践,我们发现,需要一种思维模式来指导大学生学习C语言程序设计,不是为了编程而编程,而应该把编程当作是一种有趣学习,这种思维模式就是计算思维,它对学生们理解C语言乃至动手熟练编程起着非常重要的作用。因此,在教学的过程中,首先需要给学生们讲解计算和计算思维。当然,首先要从经常会碰到的生活中的简单的例子开始的,例如“求1+2+3+……+100”,让学生对计算思维概念有一个初步认识与理解,这样才容易让学生们拥有计算思维的思想,学生们也可以从一个更高的角度来全面理解和应用C语言编程,这对于非计算机专业的学生学习C语言程序设计无疑是一个好思路。
将计算思维融入到C语言程序设计,需要将C语言程序设计课程进行相应的整合,如何将计算思维巧妙地应用到C语言程序设计课程中,提高学生应用计算机知识抽象和分解问题的能力,对于非计算机专业的学生学习C语言程序设计和老师讲解此课程都是一个不小的挑战。在讲授此课程的过程中,我们对学生计算思维能力的培养做了系列的尝试和探索,面向非计算机专业的C语言程序设计,其计算思维的思想主要体现在如下几个方面,如图1所示。
(1)实例教学法。在C语言程序设计的教学过程中,需要讲授C语言的顺序、选择及循环三种基本结构,因为这三种结构贯穿着整个编程过程。对于数组、函数和指针等几部分内容,为了在教学过程中加强学生的计算思维能力培养,教学过程中选取几个例子进行深度剖析,这些例子不仅要有代表性,并且要以学生容易理解为前提,更贴近学生的现实生活。
(2)交互式教学法。讲练互动的交互式教学方法始终贯穿讲课过程中,“先讲后练”、“先练后讲”、“边讲边练”,老师在整个讲授的过程中,不再是演独角戏,而是边讲边同学生进行问题探讨的探索者,引导学生更深刻地理解问题,直至用多种方法灵活地解决问题,当学生的学习思路打开了,很难的问题也就不是问题了。
(3)课程设计方法。课程设计本来是为计算机专业的学生开设的课程,目的是让学生有更好更多的锻炼机会,加深对课程的理解。而作为公共课的C语言程序设计,一直以来,没有开设课程设计,事实上,公共课的C语言程序设计课程设计其实是非常有必要设置的。
计算思维在课程中的体现不是凭空存在的,而是要自己去体会和思考的。我们可以在课程设计中,给学生很贴近生活的例子,例如开发图书管理系统和学籍管理系统,在整个课程设计的过程中,将学习内容分解到各个阶段的设计,从而掌握计算思维能力在解决实际问题的具体应用。课程设计中的系统演示、项目答辩和系统说明书,这三者之间是有密切关系的,首先分团队合作设计系统,系统中的子函数分到每个成员解决,将主函数调用子函数,实现系统的总体功能;然后,在每个小组中选择代表答辩,在答辩的过程中,我们可以相互提出问题,探讨解决方案;最后书写详细的系统说明书,这三个阶段必不可少,成为一个设计整体,让学生们充分体会和享受整个编程过程,从而对C语言程序设计更加有兴趣和信心。
3 结论
需要将计算思维理念融入到课堂教学中,因此基于计算思维的C语言程序设计课程在整个课程设置过程中得到了反复强化,最终目标是将计算思维能力转化成学生的思想,使他们具有独立学习和研究的能力,这对大学生们在大学阶段后续的学习是大有裨益的,这也是一种值得推广的C语言程序设计教学方法。计算思维是能够在抽象的多个层次上的思维,而不仅仅是计算机编程。编程实现的是计算思维中的一个内容,但它还包含有抽象与建模、算法选择、资源选择与调度、优化与评估、模拟与仿真等诸多的内容。计算思维的引入有效地帮助学生进行研究性学习和自主学习,可以得到比以前单纯的讲授为主的教学模式更好的教学效果。与此同时,学生可以将计算思维能力应用到其他课程中,逐步提高各方面的能力,这对培养学生发现问题、解决问题及进行独立思考都有很重要的作用。计算思维能力的培养要面对所有的人,它的应用也是无处不在的。
L芑鹣钅浚何浜嚎萍即笱Ы萄а芯肯钅浚ㄏ钅勘嗪牛?012X46)
参考文献
[1] 九校联盟(C9)计算机基础教学发展战略联合声明[J].中国大学教育,2010(9).
[2] 陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1).
vb课程设计心得体会范文一
经过近一个月的设计与制作,我们组的《20xx世界杯观战指南》终于完成了,现将过程中遇到的问题、获得的体会记录如下。
这次数据库课程设计中我主要负责用户登录、注册及数据库维护方面的设计。
1.Delphi是一款功能很强大的软件,其控件之多超出了我的想象,因此在运用时要借助很多资料。要学会查找和利用现有资料来解决问题
2.在设计中用到了很多SQL语句,因此对SQL及程序语句地掌握也是必不可少的。
3.后期的软件制作都是以前期的工作为基础的,因此在前期的需求分析及数据库设计阶段要认真、细致。
4.我们是三个人的小组,在设计过程要互相协调,合作。这样才能充分发挥每个人的作用。
vb课程设计心得体会范文二
数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。
首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学.net),我接触到microsoft 公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称.net是用于创建下一代应用程序的理想而又现实的开发工具,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍()。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。
通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。
来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。
其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。
开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。
与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.net的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!
我很庆幸我参加了这次数据库大赛,让我确实打开了眼界。
vb课程设计心得体会范文三
VB课程是计算机科学与技术本科专业的专业骨干课。本课程主要通过VB论述了面向对象程序设计和组建编程的机理,涉及到控制台界面程序、Windows窗体程序、图形界面编程、数据库、网络应用系统等多方面的内容。内容量大,程序设计复杂、同时VB程序调试是在VS环境下进行,在编程过程中环境会自动为用户生成一些必要代码,以降低编程难度,降低学生的编程负担,但这也带来了一些问题,如:学生对VB的程序结构把握和了解不全面,对编程机理了解不透彻,学生容易盲目照搬书上代码,不求甚解,似是而非。为了解决这个问题,我们采取了课程设计的方法来加深学生对知识的理解,将书本知识迁移到新的问题解决中,提高学生分析问题和解决问题的能力。
要求学生在学习该课程中,应用每个相对独立的、完整的单元知识解决一个实际项目,设计编写一个小作品;学完整个课程后,完成一个综合性比较强的编程项目,使学生对整个课程内容进行全面的总结、梳理,以项目完成为手段,全面锻炼学生分析问题和解决问题的能力。
一. 目的
1. 为使学生掌握VB编程、面向对象程序设计思想和组建编程的知识实际技能,除了系统地讲授必要的VB知识,上机练习,做作业外,还应该对学生作较全面的编程技能和分析问题解决问题的能力训练,即作课程设计,以达到如下目的:具体应用和巩固本课程及有关先修课的基础理论和专业知识,了解面向对象程序设计思想,掌握应用编程和组建编程程序设计方法,培养学生初步的项目设计能力。
2. 独立地根据一定的项目要求,查阅资料,写出项目开发目标,分析开发过程中所用到的课程知识,提出解决方案,编码并上机调试完成系统,培养学生分析问题和解决问题的能力。课程设计是教学过程中的一个重要环节,必须认真对待。
二. 要求
在课程设计中要求学生注意培养认真负责,踏实细致的工作作风和保质保量,按时完成任务的习惯。在设计过程中必须做到:
1. 在某个教学单元结束后,完成一个教师布置的、或学生自己拟定的、知识覆盖整个章节的,有一定综合性和难度的项目,要求学生描述出要达到的目标、围绕目标,收集资料和素材,复习所需的课程知识,描述问题解决方案、编写程序上机调试,直到项目的完成。最后的成果要有完成的作品和相应的文档。
2. 在课程结束后,完成一个大的编程项目,其要求与课程单元的项目差不多,只是综合性更强、难度更大、知识覆盖面更广,工作量更大,以全面促进学生复习和梳理学科教学内容,提升学生分析问题、解决问题和文档的书写和编制。
三、采取的措施
为了保证课程设计能够按照预定的目标和计划进行,我们还采取了以下措施来加强对学生监督和管理。
1.首先讲清楚课程设计的意义,让学生能够自觉积极主动地进行课程设计,发挥学生的主观能动性;
2.在课程设计过程中,教师随时巡视和监督,了解把握和控制课程设计的进展;
3.将学生的作品集中展示、评价、打分,可以让学生在展示的过程中获得成就感、自豪感,学生之间可以相互学习、取长补短,同时在此过程中可以明确标准,自觉地按照标准来调整自己地学习;
4.将课程设计作为学期成绩的一部分记载,大约占10%,必须完成课程设计后才能参加考试,课程设计不过关,即使考得再好,也不能过。
关键词:单片机课程设计;软件仿真;硬件电路联调
在开发单片机嵌入式系统时,使用最多的软件就是Keilc51软件,此软件是由Keil公司研发出来的,软件以uVision2为开发平台,具有的功能包括项目管理、编码、程序生成器等。Keilc51的优点在于:其界面的友好性较高、操作便捷,支持对汇编语言、C语言及混合语言的编程、编译和调试工作,可以在很大程度上缩短设计周期,在对程序进行修改时也是很方便的。与此同时,Keilc51还能够加载Proteus软件的VSM仿真器,加载之后就可以和Proteus软件进行联机调试。
一、课程设计流程
1.编写相关指导文件
在对课程设计着手之前,需要对课程设计的流程进行文档编写,为扎实掌握单片机技术打下基础。相关指导文件包括:单片机项目开发的相关教程和例程材料,Keilc51和Proteus软件的教程和例程材料,单片机课程设计完成程度的标准,课程设计大纲等。
2.选择题目
在制作课程计划时,需要根据每个章节内容的不同和课程进展程度对学生的实际学习情况进行考量,通过对学生掌握情况的判断再对课程设计进行拟题。课程设计的题目包括针对各章内容的,也包括针对综合应用的:关于MSC-51与A/D转换方面的课程设计题目,关于MCS-51串口方面的课程设计题目,关于定时器与中断方面的课程设计题目,关于I/O接口方面的课程设计题目,关于MCS-51的综合使用方面的题目等。除此之外,还要列出详细的元件表,供学生选择和参考,并对课程设计题目的实现提出相应的具体要求。
3.使用仿真软件和实现电路功能
在课程设计实现中,教师可指导学生分组进行,根据学生所选题目对学生如何在软件和硬件等方面进行设计给予指导,以完成设计的初步内容。在对学生进行指导时,可按照以下步骤进行:
(1)绘制程序流程图,可以使用Visio或Word进行绘制。学生在绘制程序流程图时,不但要依据所选题目的设计要求,还要结合教师的指导内容进行绘制,为接下来的程序设计做铺垫。
(2)设计硬件电路,可以使用Proteus软件进行设计。在这一步骤中,首先要对Proteus软件进行学习,在掌握基本应用原理和方法的基础上,再依据设计要求设计电路。在学习Proteus软件的基础上,由教师组织学生先进行软件的实际操作学习,需要学生掌握的内容有:建立工程文件、选取和使用元件、连接电路和进行调试运行等。
(3)编写程序和编译调试,根据上一步骤得到的硬件电路使用汇编语言编写源程序,再在Keilc51软件中进行编译和调试。教师要指导学生,让他们依据课程设计要求把编写好的汇编代码导入到Keilc51软件中,进行编译调试。
(4)联合调试,对Proteus软件和Keilc51软件进行联合调试。将在Proteus中画好的原理图在ISIS上打开,在Proteus软件里的DEBUG菜单中选择use remote debug monitor选项,并对联机仿真参数进行设置。将在第三步中编译好的Keilc51工程文件打开,并设置相关参数:在Keilc51的project菜单中点击进入option for target“工程名”,在DEBUG选项的右上方下拉菜单中选择Proteus VSM Monitor-51 Driver,并设置联机仿真参数。
4.面包机设计和电路功能的实现
在这一阶段,教师要先组织学生对集成芯片的用途和管脚功能进行学习,之后再在面包板上建电路,电路连接无误后,使用编程器将程序烧写到单片机的CPU上,最终使电路功能得以实现。
5.实行课程设计考核答辩制
教师采用答辩制的形式对学生的课程设计进行考核,在答辩中真正判断出学生对课程设计的体悟到底有多深。
二、成果总结
本课程设计将软件和硬件的使用集合了起来,完成了对单片机的开发设计,在实践过程中取得了良好的结果,让学生对软件电路、硬件电路以及软硬件联调设计和面包板设计都有了更加深入的了解。
1.理论与实践结合
在教学中,不仅要将学生的实际情况与学习内容结合起来,还要单片机学习中各个章节的内容和实际动手操作结合起来。在本课程设计中,拟定了MSC-51与A/D转换、MCS-51串口、定时器与中断、I/O接口、MCS-51的综合使用等方面的数十个设计题目,并对课程设计提出了具体要求。
2.让学生告别“眼高手低”
仿真联调的结果虽然不能完全代表在实际情况中的结果,但是在很大程度上已经实现了电路设计的功能在虚拟情景中的实现,为判断抉择提供依据。根据仿真联调的结果,我们可以在硬件操作中实际运行,通过这种方式,可以对仿真结果的正确性和准确程度进行校正。在学生进行实践之前,要让学生对集成芯片的芯片用途和管脚功能有所了解,之后在面包板上建电路,然后将程序通过编程器烧写到单片机的CPU上,这样就可以完成对电路功能的实现了。在课程设计的一系列环节中,学生既可以学习到各环节所需工具的相关知识,又可以提高学生的动手能力,增强学生的学习积极性。
3.对能力的培养
在实践课程设计的过程中,通过绘制流程图、画电路图和编程等,可以锻炼学生有步骤地实现目标的能力;通过要求学生对程序进行标注,可以有效锻炼和提高学生的编程能力,增强他们独立思考的能力。
先进和完善的软件能够使硬件的运行达到更好的效果。在单片机课程设计中引入软件,可以使学生在了解和掌握单片机的设计流程的基础上,熟悉联调的技巧与方法。与一般的单片机仿真软件不同,在课程设计中所使用的仿真软件除了能仿真单片机CPU的实际情形,还能仿真单片机周边电力和未参加工作的电路情况。此仿真实验能够很好地将实验和工程衔接起来,仿真结果的无误将为电路的实际实现提供重要依据。同时这样的课程实训也是工程师的最基本实践内容,这也为学生今后的学习和工作奠定了基础。
参考文献:
[1]乔建华.李临生.Proteus在单片机教学中的应用分析[J].电气电子教学学报,2009,2(6):24-25.
[2]陈淑芳.基于51单片机的教学实验系统的设计与开发[D]青岛:中国海洋大学,2011.
[3]吴慧芳,陆茵.“单片机原理及应用”课程设计引入Proteus软件的实践[J].中国电力教育,2010,5(9):123-124.
关键词:计算思维;程序设计;课程改革
计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的系列思维活动。在信息社会中,计算思维是人类进行问题求解的有效工具,是每个人都应该掌握并学会使用的。近年来,由于计算机教育在中学阶段的普及,高校新生的计算机操作水平和计算机应用能力普遍提高,“大学计算机基础”课程教育的核心由原先的以计算机应用能力培养为核心转为以计算思维的培养为核心。
在大学计算机通识教育阶段,我们对计算思维的培养应当有效地融入每一堂课之中,即在大学阶段计算机基础课程学习的过程中,逐步培养非计算机专业学生在计算机环境下进行问题求解的思路、方法,使学生能用计算机学科独特的思想、方法来解决专业领域和实际生活中碰到的各种问题,并为将来创新性地解决专业问题奠定基础。
“C/C++程序设计”是大学生入校第一学年所学的计算机类基础课程,课程内容能够较好地体现语言级问题的求解方法,因此这门课也是学生最容易理解计算机求解问题的特点与方法的课程。如何在这门课程中培养学生的计算思维能力,是非计算机专业学生计算思维培养的重要内容,目前已经引起了众多教育者的关注,并进行了有意义的探索。在本次教学改革中,围绕计算思维培养这个核心,我们明确了“建立计算思维的概念,掌握计算思维的方法,培养计算思维的能力”的教学目标,有意识地将计算思维的培养融入教学的各个环节,使一系列的教学活动上升到了一个新的高度。
1.建立计算思维的概念
刚刚入学不久的新生在一年级下学期时,对程序设计还是陌生的。作为初学者,他们在学习中往往容易走人误区,将全部的注意力放在程序设计语言本身,而忽略了学习程序设计课程最应该关注的,也是最能让自己受益的事情:大脑的思考过程,即如何利用已知的信息解决问题的过程。
针对上述情况,在开学的第一次课上,我们并不涉及C/C++程序设计语言本身,而是从计算思维讲起。通过介绍什么是计算思维,计算思维的主要特点以及培养计算思维的重要意义等方面,引导学生建立起计算思维的概念。通过百元买百鸡、割园法求圆周率等经典问题的展示,引导学生感受和领悟计算机分析问题和求解问题的过程、思维模式和基本方法,从而让学生在学习程序设计之初,就在主观上明确程序设计课程的学习目标不仅仅是学习程序设计语言本身,更重要的是学习计算机分析和解决问题的基本过程和思路,即学会如何把实际的问题转化为计算机可以解决的问题,如何用计算机的方法求解问题,从而在以后学习的过程中,主观上积极主动地注重计算思维的培养。
2.掌握计算思维的方法
掌握计算机求解问题的各类方法,是培养学生计算思维的关键。以计算思维培养为核心的程序设计课程的重要任务之一,就是要在学习的过程中教会学生程序设计的方法和各类问题求解的算法,让学生更加深刻地理解计算机解决问题的思路和方法,提升计算思维的能力。C/C++程序设计课程中涉及的程序设计方法和算法如表1所示。
1)教学上以程序设计方法为主导,结合C/C++语言,把程序设计方法学中成熟的理论和方法,如结构化程序设计方法、基于功能抽象的程序设计方法(自顶向下逐步求精的程序设计方法、自底向上程序设计方法)、递归程序设计、面向对象程序设计方法等用通俗易懂的语言描述出来。
2)将程序设计中常用到的算法进行了归类,即枚举类、排序类、查找类、字符串处理类、字符图形打印类、数值计算类、递归算法等。在教学过程的不同阶段,分别引入这些算法。
3)注重通过算法的多样性使学生深入理解到计算机求解同一问题可用不同的方法,不同的方法适用于不同的情况。例如对数据排序的算法,我们会将选择排序、冒泡排序、插人排序、合并排序都介绍给学生,并让学生体会这些算法的不同之处。
3.围绕计算思维能力培养的教学实践
在程序设计课程的教学活动中,与计算思维培养相符合的教学方法,如案例教学法、问题驱动教学法等一直在被无意识地使用。在提出了计算思维的背景下,我们对理论教学和实践教学的各个环节进行了改革,并在教学活动中,主动地、有意识地培养学生的计算思维能力,取得了良好的效果。
3.1理论教学
在理论教学上,我们进行了两个方面的改革。
1)从计算思维的角度出发,按照问题求解的一般步骤重组经典案例。问题求解的一般步骤为:
问题抽象化的描述,问题表示(如何建立模型);
寻找解决方案,问题求解(如何设计算法);
计算机实现过程,效率(如何有效地求解);
现实问题的延伸。
将问题求解提升到计算思维的高度,使学生在求解问题的过程中,更加深刻地理解计算思维的本质,即抽象化和自动化。
2)将程序设计的语言与问题求解的过程分开。在讲解案例时,我们先提出具体问题,后引导学生去体会为了解决问题而产生的大脑思考过程:已知哪些信息,这些信息怎样转化为计算机可以理解的形式,要求的结果是什么,怎样通过已知的信息来求解,并将求解问题的方法,即算法作为教学的重点,让学生通过算法来理解计算机求解问题的思路。算法的描述可以用自然语言、伪代码或者流程图等。学生理解了算法的基本思想后,再引入程序设计语言来实现这一算法,编写代码并调试执行。这一方法加强和促进了算法的构建,训练了学生的程序设计水平,从而简化了对程序语言的复杂性的理解。
3.2实践教学
实践教学以学生自我学习为主,教师提供辅导和答疑。在实践教学内容的设计上,我们将每一章的教学内容分为程序调试、模仿写程序和问题求解3个层次,逐步提升学生的问题求解能力。
1)程序调试的案例中,根据以往的教学经验,将学生容易忽略的细节和易犯的错误预设在程序中。通过对预设的语法和逻辑错误的查找与修正,使学生更为深刻地理解程序设计语言的特点,夯实学生的语言基础。由于理论教学中,对语言细节的讲解不再作为重点,程序调试得尤为重要。
2)模仿写程序要求学生对老师已经讲解过的算法,能用相同的思想解决类似的问题,从而加深学生对知识的理解。例如讲解了用枚举法解决百元买百鸡的问题后,要求学生用枚举法解决学生课表排课、水仙花数求解等问题。实践课上,要求学生在上机之前先将算法以流程图的形式写在本子上,然后将算法转成程序代码,上机时只做代码的调试。这一方法能迫使学生思考,逐步理解计算机求解问题的方法和思路。
3)问题求解则要求学生能灵活运用所学知识,求解新的问题。例如在学习完数组和函数后,问题求解的题目为“编程求解农夫过河问题的解决方案”,要求学生按照问题求解的一般步骤,即问题的表示、求解的算法、代码编写与调试来操作。通过问题求解,不仅提高了学生的学习兴趣,巩固了所学知识,更重要的是提升了学生的分析问题和解决问题的能力。
3.3课程设计
为提升课程的教学质量,我们增加了课程设计环节,引入了应用程序开发,要求学生将数组、结构、链表和文件操作有机地结合起来,完成一个应用型、综合性强的大作业。
在课程临近结束时,学生用一个月的时间完成课程设计,任课教师会给出若干题目供学生选择,例如本学期课程设计的题目有八数码游戏、模拟手机通讯录管理系统、飞机票订票退票系统、日历打印与日期查询系统等12个题目。学生也可根据自己的专业和兴趣自己指定题目。例如今年同济大学交通专业的学生自我选择的题目为停车库车辆管理与查询系统。该题目设计的过程要求学生按照软件开发的步骤进行功能设计、数据结构设计、模块设计、代码编写、代码测试,并完成设计报告。
在课程设计环节中,学生不仅要将一个学期所学的内容融会贯通,编写一个完整的系统,还要考虑程序的正确性、容错性、算法的效率、对用户的友好性等,这样有助于引导学生探究问题求解的思路和方法,提高学生的计算机素质。
3.4考核
我们对考核进行了改革,在学习的不同阶段实施不同形式的考核,考核内容中增加了对问题求解能力的考核。具体做法是保留原来的期中和期末考试,考试内容为基本概念、程序调试和小程序的编写,考核学生对基本知识的掌握情况。在课程设计结束时,增加了综合编程考试,要求学生在规定的时间内,编程解决给定的问题,考核学生的问题求解能力。学生最后的成绩由3次考试成绩、课程设计成绩和实践作业成绩综合评定给出,使得学生成绩能更客观地反映学生的学习过程和学习效果。
值得一提的是,尽管在教学过程中我们弱化了语言细节的讲解,将讲解的重点转向了程序设计的方法和各类算法,但学生通过大量调试程序的练习,同样很好地掌握了语言本身的特点,能够正确地编写程序,在考核中取得的成绩不亚于往年。而通过课程设计,学生的分析问题、解决问题的能力也大大提高了,考核结果令人满意。
关键词:C语言;课程评价;原则;模型
发达国家对课程评价的起步较早,研究时间长,评价条件较为成熟。在中国,课程评价起步较晚,上世纪80年代末90年代初,课程评价才逐渐成为人们关注的领域[1-2]。近年来,国内学者通过大量的研究以及借鉴国外的课程评价模式,创造性地提出了符合我国具体情况的发展性课程评价理论,在课程的目的、功能、范围、过程、原则、主体等方面进行了深入的研究,取得了较大的成绩。但是课程评价的研究广度及深度有限,只涉及了课程评价的一些基本问题,而且对于适合高职院校的课程评价研究较少。C语言课程是高职院校计算机及相关专业的专业必修课程,目的在于使学生养成良好的编程习惯、锻炼学生的编程思维,培养学生的编程能力。学习好该课程,对后续课程的学习,以及对计算机专业等的学习至关重要。因而分析高职院校C语言课程评价现状,讨论C语言课程评价原则,构建C语言课程评价模型,提高高院校人才培养质量,这已成为当前高职院校的重要任务之一。
一、C语言课程评价现状
通过对资料文献的搜集整理以及对高职院校师生的问卷调查、访谈等方式以及课题组成员的教学经验,得出高职院校C语言课程评价现状为:在课程的开发与设计阶段,由C语言课程的任课教师或者教研室主任组织本教研室的同事进行讨论,根据教师在教学实践中的经验,并借鉴兄弟院校的经验,制定或修订C语言课程的课程标准,在学生学习C语言课程之前,任课教师根据C语言课程标准选定一本教材作为教师授课及学生学习C语言课程的教材。在学期初,教师根据C语言课程标准按教材内容制定授课计划。在课程的实施阶段,严格地按照授课计划规定的进度、知识及技能要求进行授课。在授课过程中,通常会有一到两次单元测试。授课结束后对C语言课程进行期末考试。教师以期末考试成绩的70%,平时成绩(平时的考勤、作业、单元测试等)的30%计算出一个分数,即学生C语言课程学习的最终成绩。有的学校则以C语言等级考试的分数作为期末测试的分数。在课程开发与设计阶段仅仅是凭着几个教师的经验来制定课程标准,没有考虑学生将来就业后的职业岗位能力需求。在课程实施过程中,教师只是按照计划进行授课,没有根据学生的实际情况采取有效的方式进行调整,以适应在授课过程中出现的超计划的情况变化以及不同学生群体的个性化需求。在授课过程中,对学生的表现、参与度、编程习惯的养成、编程思维的培养、编程能力的提高很少关注,仅以学期末终结性考试分数作为C语言课程评价的主要依据。而且在评价课程时仅仅以任课教师为评价主体,很少引入学生自评、互评,企业用人专家及课程设计专家等人的评价。当前C语言课程评价的这种方式,不利于学生职业能力的培养及综合素质的提高,且容易滋生学生厌学、考前突击复习、考试过程中作弊等不良行为。
二、C语言课程评价原则
C语言是一门编程课程,实践性非常强,要求学生通过C语言的学习,养成良好的编程习惯、具备良好的编程思维、具有较强的编程能力,为后续课程的学习及专业学习打下良好的基础。C语言课程评价对C语言课程的教学改革及课程改革有很大的促进及导向作用,对学生的学习发展、学习效果的提高起着关键作用。C语言课程评价标准也应该根据高职院校学生的特点及当前高职院校C语言课程教学中存在的问题重新制订,以便促进学生提高C语言课程的学习兴趣,掌握C语言编程技能,培养学生计算机专业职业岗位能力,提高学生的团队协作能力、沟通能力、语言表达能力、信息获取能力、可持续发展能力等综合素质,为社会培养高素质高技能型人才。综合课程评价理论以及国内外专家在课程评价方面的研究,结合课题组成员的教学经验,笔者认为C语言课程评价需要遵循以下原则:
1.满足学生情感及个性发展需求
高职学生大都高考分数较低,学习基础较差,因为成绩较差经常受到老师及家长的批评,对考试的评价缺乏自信,少部分学生甚至有厌学情绪,无论老师、家长怎么说他们都不想学习,上课只是混日子。当然,高职学生中也有少部分学生学习基础较好,因为高考没考好而进入了高职院校学习,这部分学生也容易因为高考的失利而情绪低落,进入高职学习后不思进取。另外,高职生源还分两种情况:一部分学生是普高入读高职,没有学习过专业知识,但文化知识基础较好;另一部分学生是通过中专升入高职,系统地学习过专业课,有一定的专业基础,但文化成绩不如普高生。因而C语言课程评价需要考虑到高职学生的特点,采用定量判断与定性判断相结合的多层次评价[3]。既要对学生C语言知识与技能掌握的学习结果进行评价,又要对学习C语言知识及运用C语言知识解决实际应用问题的学习过程进行评价;既要关注学生的编程思维及编程能力,又要关注他们的情感态度;既要让学生正确地认识自我,又要使其不断地完善自我。让学生在这种充满温情的评价中找到自信,满足他们的情感需求又符合他们的个性发展。
2.充分挖掘学生潜能
根据美国教育学家霍华德・加德纳的多元智能理论,每个人都至少具备语言智力、数理逻辑智力、音乐智力、空间智力、身体智力、人际交往智力和自我认知智力等七种以上的智能[4]。而这些智力具有同等重要的作用,不同的智力组合使得人类能力具有多样性。高职学生虽然学习基础差,不具备学习高深理论知识的能力,但他们对技术及操作比较感兴趣。因而C语言课程评价需充分考虑到学生的特点及他们的潜能挖掘,要通过评价发现、发展学生的潜能,使之转化成C语言学习过程中分析及解决问题的能力,提高学生学习C语言的兴趣,提高学习效果,使其具备较强的编程能力,促进其身心健康发展。
3.科学性和导向性
科学性是指C语言课程评价中的评价内容、评价指标、评价方式等都必须是经过科学论证,每一个指标都有科学依据,都需要有企业高级技术人员及管理人员的认可,对评价标准要进行量化,避免主观随意。导向性是指C语言课程评价必须以培养目标为基础,评价标准中的各项指标是课程改革及建设的方向,能够达到以评促建、评建结合的效果。C语言课程评价的重点必须与C语言课程改革的重点保持一致。C语言课程中所使用的项目标准是教学自我检验的标准,C语言课程评价指标体系要突出反映高等职业教育区域性和职业性的特色[5-6]。
三、C语言课程评价模型
根据以上对高职院校C语言课程评价现状分析,依据C语言课程评价原则,制定了以下的适合高职院校的C语言课程评价模型,如图1所示。
在图1的C语言课程评价模型中,C语言课程评价分为C语言课程方案评价、C语言课程实施评价及评价反馈。评价的目的是通过评价发现C语言课程在开发设计与实施阶段的问题,根据评价结果及反馈信息,促进C语言课程建设与改革,为社会培养出高素质高技能型的人才,最终达到提高人才培养质量的目的。C语言课程开发方案评价包括课程目标、课程内容、课程设计、课程资源四个部分,由课程设计专家、企业专家、教师作为评价主体。其中课程目标是课程的教育目的,它具有整体性、阶段性、持续性、层次性和递进性,课程的目标决定了课程内容与课程设计等。课程目标的设计必须充分考虑到职业教育的职业性及C语言课程在专业中的地位。课程内容与课程设计要紧紧围绕课程目标的实现。课程资料包括教学团队、实训实验条件、校企合作条件、可供使用的教学资料、网络资料等。C语言课程实施阶段的评价包括教学内容、教学方法、教学手段、学生实际情况等的评价,由课程专家、企业专家、教师、学生、社会人士作为评价主体。教学内容、教学方法、教学手段决定了课程实施的效果,课程教学的最终效果体现在学生学习的实际情况中。对于学生实际情况的评价包括对C语言应知、应会内容、情感态度目标的考核,职业岗位能力的适应度等。C语言应知内容由教师进行评价,应会内容由学生自评,学生互评,教师、企业专家、课程专家、社会人士进行评价。情感态度可由教师在平时的授课过程中建立档案袋,将学生的考勤、课堂参与度、回答问题的质量、学习习惯、作业质量以及课堂作业的完成情况、小组作业的参与度、团队合作能力、获取知识能力、沟通表达能力等记录下来作为考核依据。职业岗位适应度可由教师、企业专家、社会人士进行评价。
四、结 语
随着社会经济的发展,社会对人才要求不断提高,高职院校的人才培养目标是培养高素质高技能型的社会主义建设者。而课程评价能够促进课程改革,提高人才培养质量。本文以C语言课程为例,结合高职院校C语言课程评价现状及课程评价原则,构建C语言课程评价模型,旨在促进C语言课程教学。同时,该模型同样适应于高职院校其他课程的评价,能够促进高职院校课程教学,提高高职院校人才培养质量。
参考文献:
[1] 于彦华.高等职业学校课程评价研究[D].吉林农业大学
硕士学位论文,2008.
[3] 梅婷.高等职业教育实践课程评价研究[D].浙江工业大
学硕士学位论文,2008.
[3] 黄成,李太君.层次分析模型在网络课程评价系统中的
应用研究[J].海南师范大学学报(自然科学版),2010,
23(3):351-354.
[4] 陈志旗.多元评价视角下的教学评价改革[J].教学与管
理,2011,28(35):26-28.
[5] 景凌凌.高职教育多元课程评价视野下学生职业能力培
养机制探究[J].职教论坛,2013,29(14):79-80.
摘要:本文从“程序设计基础”课程的教学环节、上机实验环节和课程设计环节三个方面提出了新的教学模式改革思想。
关键词:程序设计;C++;课程设计
中图分类号:G642
文献标识码:B
为了更有效地提高“程序设计基础”课程的教学质量和教学效果,我们通过多年的教学实践经验,总结出需要在教学环节、上机实验环节、课程设计环节三个方面进行改善,下面分别详细阐述。
1教学环节
1.1增加程序设计语言入门之前相关知识的介绍
在正式开始讲解程序设计语言之前,应该先讲授与编程相关的计算机基础知识,让学生对计算机运行机制产生一个初步的认识,此举对那些在开设“程序设计基础”课程之前没有开设过“计算机文化基础”课程的院校是极其必要的。
例如,计算机基本组成部分、计算机程序运行的基本原理、各种数据在计算机内存中的存储形式、各种数值进制之间的换算方法等,这些都属于基本的计算机文化知识,理解了这些相关知识,对于学生以后理解程序设计语言的语法和基本概念以及各种实现机制都会起到事半功倍的效果。例如程序设计中的自动变量、静态变量、动态内存开辟和撤销、结构体、共用体、类、指针等知识点的讲解都离不来内存空间的概念。
1.2学生兴趣的引导
由于本课程的教学一般安排在第一学年,新生来自不同地方、不同学校,每个人对计算机基础知识的掌握程度也大相径庭;同时,C++语言牵涉到的概念复杂、规则繁多、使用灵活且容易出错,加上本科教育不同于高中教育,因此相当一部分学生感到教师授课速度快、听不懂、收效欠佳。针对这个问题,首先要培养学生对这门课的兴趣,课上可利用多媒体演示往届学生的学习成果和一些辅助教学的经典程序。在讲解每一个新的知识体系前也是如此,根据所学知识设计一些有趣的题目,现场用C++语言编写源程序上机运行,向学生们演示,让学生看到努力的方向和可达到的目标,消除学生的畏难情绪,增强学习的信心,启发大家的思维。
例如,在讲解递归函数时,可以给学生演示用C++编写的汉诺塔例子,尤其是结合图形函数用动感的图形实例来使学生产生感性认识,达到兴趣驱动学习的目的。
1.3教学内容的组织
课堂教学应当以学生为主体,教师只起导引作用,当问题提出以后,应引导学生如何去分析问题,解决问题。
C++程序设计内容十分丰富,若讲课时面面俱到,必然会使重点难以突出,学生印象不深,约束学生创造思维的发挥,同时使内容与学时之间的矛盾难以解决,因此必须精选课堂内容,提高教学效果。这需要教师对教材内容进行很好地把握,区分主要内容和次要内容,做到难易知识点分明,在遵循本课程教学大纲的前题下,对讲授的内容进行一定调整。
在程序设计中的细节问题上,应具体问题具体分析。有些知识点教师可以进行删减,让学生在课下自学,培养大学生的自学能力。同时让学生带着问题通过上机实验加以验证,从而能更牢固地掌握所学内容;对于该课程的重点和难点,教师要做详细地讲解,要通过大量的例题验证,使学生在充分理解教学内容的基础上,独立思考各种解题方法,开拓解题思路。讲程序设计时不能孤立地讲语法规则,要把它结合到程序应用实例中,通过阅读和编写程序自然地理解和记住有关规则。在课程学习的初期,教师要注重学生阅读程序的能力;到后期,教师要注重学生的编程能力,使学生在整个学习阶段从易到难,由读到写,完成一个循序渐进的学习和掌握的过程。
1.4教学应具有启发性
任何一个问题都不是只有唯一的解法,教师要启发学生通过自己程序设计的实践分析对比不同的算法,提高自己的实践能力。
对同一例题的讲解,教师应根据所学到的知识点,用不同的实现方法来进行讲解。采用此方式既可以开阔学生的解题思路,又可以让学生对所学知识进行分析比较,更好地理解所学内容。例如,对于多个字符串的排序,我们可以利用字符数组、字符指针、指向字符数组的指针、指针数组、二级指针以及运用字符串类对象等多种方式来实现;再如,比较经典的例题──Josephus问题,它的设计可以利用数组、结构体数组或链表这种面向过程的程序设计方法解决,也可以通过设计一个Josephus类这种面向对象的程序设计方法来完成。各种算法的分析思路、解题难度和程序运行效率都是不同的,通过比较它们各自的优缺点,使学生能够对不同知识点印象深刻,并且更有利于学生理解和掌握所运用的知识点。
2上机实验环节
在教学过程中,要注重实验内容与教学内容的配套,对重点知识要加强训练,要求学生按一定的规范完成上机实验。具体要求为“明确实验目的,完成实验内容”。学生应根据实验给定的题目编好程序,进行自查并分析可能出现的问题,同时设计好测试数据。做实验时学生编辑程序、上机调试,直到程序运行成功。学生只有通过反复上机操作,才能更好地掌握编程技能。
学生的编程能力是一个循序渐进、日积月累的过程,面对学生在刚开始编程时遇到的问题,教师要耐心指导,和学生进行交流,和学生一起分析,指出本质性的错误,帮助他们提高分析、编程、调试的能力。在指导过程中,教师和指导学生会针对学生提出的程序问题进行相关讲解,保证学生知道问题出在哪,为什么出错,应该怎样修改,以保证学生彻底理解。教师在上机过程中也可以对学生知识掌握的情况进行抽查,对学生的学习情况即时掌握,更好地帮助授课。
在上机过程中,应该帮助学生提高程序调试能力。学生在编写程序时,总会出现一些算法错误、语法错误等。语法错误可以根据编译的提示信息进行修改,算法错误有时非常隐蔽,只能通过运行程序来检查。因此,在课程教学进行到一定深度时,应该教给学生调试程序的能力,学会使用debug工具来进行调试,这对今后开发较大的程序或者课程设计都有一定的帮助。
通过上机实践可以引导学生进行协作学习,培养团队合作精神。可以布置一个大作业,让学生组成合作小团体(4、5个人)来协作完成。开始时,专员要进行任务分工,最后进行功能聚合,对衔接部分或疑问部分进行讨论,最终完成整个任务。
还有很重要的一点是,除了上机实践过程中的实时指导外,教师还应该及时对上机情况进行总结,对学生上机中普遍存在的问题进行归纳总结,并且在理论课上进行强调,因为这些问题是在学生学习过程中普遍忽视或出错的问题。
3课程设计环节
在课程教学结束后,专门安排一周或更长时间进行课程设计,培养和检验学生对本课程的综合掌握能力、具体编程能力以及创新能力。
组织进行课程设计的一种方式是,在设计前教师把设计题目列表发给学生,让学生从列表中选择其一进行设计。这种方式的好处是:在题目中包含了所学课程的重要知识点,有利于学生对总体课程的把握。缺点是:不能避免选择相同题目的学生在设计过程中的拷贝。
组织进行课程设计另一种方式是,在设计中教师应把主动权交给学生,让学生根据自身特点、爱好及对课程的掌握程度自由地选取题目,让他们按照科研工作的步骤,自主决定研究内容,教师只需负责审查,帮助学生解决疑难问题,做好启发引导工作,使课程设计真正以学生为主、以教师为辅,这样无论基础好的学生还是基础差的学生都能切实地获得相对满意的训练效果。缺点是:学生自选题目往往覆盖的知识面比较窄,不利于教师对学生所学知识进行全面考察。
此外,在课程设计中,教师要严格审核每个学生的设计方案,让学生从整体上把握程序设计的思想,有意识地加强对课程重点、难点的理解和运用。对学习基础差的学生加强辅导及检查,对学习能力强的适当提高要求,充分挖掘潜力,使学生掌握良好的学习、思考和创新方法,为以后其他专业课程的学习、参加各类程序设计大赛以至毕业设计打下良好的基础。对编程能力强和创新能力强的学生可以多加引导,从而进行精英教育。
参考文献
[1] 刘惠青. C++程序设计课程的教学法探讨[J]. 山西广播电视大学学报,2001,(6).
[2] 景雪琴. C++语言程序设计课程教学探讨J]. 高等教育研究学报,2005,(6).
(一《)C语言程序设计》的教学目标
社会对于人才的需要,并不是要求他们只要学会理论知识就可以,各个单位对人才的要求更看重于他们的实践能力,要求他们能够把所学习过的知识转化为动手能力与实际解决问题的能力。因此,对于学生的《C语言程序设计》课程的教学只是进行理论知识的教育是远远不够的,还有提升学生的综合能力。学生要达到的认知类目标包括:掌握C语言程序设计课程相关的基本概念;理解解决问题的基本技巧;理解标记控制循环与计数控制循环;把握程序性的知识,并学会如何应用。学生要达到的能力类的目标包括:掌握C语言程序设计的基本技能,进行程序计算;熟练运用与、或、否命题,以此来解决实际中的程序问题;熟练运用一些基本的逻辑运算符;能够使用break和continue程序控制语句;学会编写基本字符模式下的简单程序;另外还有培养学生动手实践能力和与他人合作的能力。除此之外,还有培养学生学习C语言程序设计的兴趣,养成学习工作中严谨、务真求实的良好态度,培养解决程序问题的开放性思维。
(二《)C语言程序设计》教学策略设计
对学生进行C语言程序设计的教育,其最终目的就是要让学生掌握这门课程,并且运用到实际工作中,而教学策略的设计,就是为了在最短的时间内,让学生掌握更多的知识,并且将其转化为自身的实践能力。(1《)C语言程序设计》的教学方法教学方法多种多样,其中讲授法、谈话法、演示法、实践法等最为常见。教师在选择教学方法的时候,要充分考虑教学大纲的要求和教材中的内容,还要考虑学生的学习情况与学习能力,以及现有的教学条件,从而选择最适合教学工作的一种方法。同样的教学方法,对于某一个班级的学生合适,对于另外一个班级也许就不适用,因为每个班的学习氛围不同,同理,对于某一位学生教学方法很恰当,而对另外一个学生来说,可能就是阻碍学习的因素。因此,教师在教学过程中要对各个方面影响教学效果的因素进行充分的考虑。对学生的教学工作,可以采取分组教学的形式,这种方法不但可以让教师能够更大程度上关注到每一位学生的学习情况,还能够通过小组间学生相互帮助,分享交流学习经验,从而获得更多提高成绩的机会。另外,学生之间的交流要比学生与教师之间的交流更为顺利,学生之间相互学习更容易发现自身的优势与不足之处,从而把自己的学习经验分享给其他人,同时向其他同学学习自己没有掌握的知识。小组教学还能够增强学生的交流能力,加强学生之间的人际关系,培养学生的团队合作能力,从而提升学生的综合素质。(2《)C语言程序设计》的学习组织形式学习组织能力是指学生在学习的过程中,师生的共同活动在程序、人员、时空关系上的组合形式。运用适合学生的学习组织形式,有助于学生提高C语言程序设计学习的效率,同时,还可以将一些高效率的学习方法、学习敬仰在学习组织形式中进行运用,由于《C语言程序设计》教学分为基础知识与课程设计两种基本形式,我们把以问题为导向的《C语言程序设计》教学模式下的学习组织形式也分为两种类型。一种是课堂小组合作学习。在《C语言程序设计》所有课时中,基础知识的课程占据了绝大多数,教学地点可以选为网络机房,以问题为导向的《C语言程序设计》有利于学生培养团队合作精神,提高彼此之间的交流能力,鼓励学生在学习的过程中勇敢地提出问题回答问题,为学生营造一种良好的学习氛围。教师充分发挥自身的引导与辅助的作用,帮助学生发现问题,解决问题。另一种类型是课程设计探究学习。课程设计的时间一般比较短,在此期间,教师要通过合理的课程设计来为学生创造一个和谐的学习氛围,师生之间、学生之间进行交流,分享学习经验与解决问题的方法,一方面可以增加学生彼此学习的机会,另一方面也可以监督学生完成自己的学习任务。(3)网络环境下的问题导向教学模式网络环境下的以问题为导向的《C语言程序设计》课程教学模式,则是利用网络科技来辅助教师的教学活动,在这个教学过程中,教师是教学活动中的引导者与辅助者,而学生才是学习的主体。教师为学生设计好学习任务,明确每一位学生所要解决的问题,再对学生进行合理的分组,让学生充分利用网络资源,收集对自己有利的信息,并且对信息进行有效的筛选与整合。学生在寻求解决问题的过程中,能够充分利用网络环境的优势,推动以问题为导向的教学模式的实施,实现学生的自主学习、互动合作、自觉约束自己的学习活动。这样,学生在整个学习过程中,不仅解决了教师提出的问题,还掌握了搜集、处理信息的能力,收获成功之后的成就感,增强与他人之间的交流,提高自身的创造能力,真正做到增强自身的综合素质。
2以问题为导向的《C语言程序设计》的实践
在《C语言程序设计》课程教学过程中,教师的教学工作与学生的学习活动总是会暴露一些问题,如教师讲解不到位,学生不能理解理论知识,教师讲课难以吸引学生的学习兴趣,学生学习效率低下等问题。而以问题为导向的《C语言程序设计》教学模式,要如何进行具体的实施,才能够帮助学生掌握解决问题的技巧,加深对理论知识的理解呢?
(一)以问题为导向的教学模式中的课程设计
在《C语言程序设计》教学过程中,使用以问题为导向的教学模式,要明确本次课程的教学目标是什么,所有的课程设计的大方向要以教学目标为准则,教学中要以人为本,以学生为中心,站在学生的立场上,充分考虑到学生的接受知识的能力与完成任务的可能性。另外还有考虑哪些教学设备可以供学生使用,做到最大程度利用现有的资源,帮助学生掌握更多的知识。同时,对于学生的要求要合理,要求过高,学生难以完成目标,将会打击学生的参与教学的积极性与信心,要求过低,将会浪费时间,学生的实际能力达不到质的飞跃。因此,课程的设计要实事求是,一切从实际出发。
(二)以问题为导向的教学模式实施的原则
1.遵循现代社会教育事业的发展规律,尊重学生的认知规律,鼓励学生运用自己的优势进行创新性的学习。2.坚持以学生为主体、以学生为中心的原则,让学生出于教学中的主体地位。营造轻松的学习氛围,让每一位学生都积极大胆地参与到其中,敢于提出自己的疑问,敢于回答教师与其他学生提出的问题,积极参与具有挑战性的任务。3.教师发挥自身的引导与辅助的作用,引导学生进行有利于提高自身能力的学习活动,帮助学生解决难度较大的问题,并且监督学生对问题作出总结,从完成任务的过程中学到更多的知识。
(三)以问题为导向的教学模式应当注意的问题
关键词:教学改革;C++程序设计;工程实训;应用型人才
计算机专业是我国近年最热门的专业之一。随着高校大规模扩招,计算机专业教育面临巨大的挑战。突出表现在两个方面:一方面毕业人数剧增,就业率逐年下降;另一方面,社会对计算机人才需求数量增加,而学校人才培养质量下降。如何改变这一现状,提高学生的就业率成了各高校研究的热点。
根据各方调研结果的总结和用人单位的反馈,缺乏工程实践能力是目前大学毕业生就业困难的主要原因之一。因此,如何提高学生的工程实践能力既是社会关注的焦点,也是国内高等教育教学改革的热点。作者根据自己多年的工程项目经验和课程教学经验,提出一种以工程实训为基础的“C++程序设计”课程教学改革方案,从基础阶段提高学生实践动手能力,进而提高学生的工程实践能力[1]。
1面向工程实训改革的两个前提
要进行面向工程实训的课程改革,首先需要做两个方面的准备。
(1) 修改教学大纲。在“C++程序设计”课程的传统大纲中,实践环节所占比重少,课堂教学内容规定死板,讲授哪些知识点,每个知识点讲授多少课时都有规定,严重限制了教师的主观能动性,不能根据学生的具体情况进行授课。在新修订的大纲中,实践环节所占比重大大增加。课堂教学内容规定比较柔性,将理论学时分为两部分,一部分用于讲授“C++程序设计”课程的基本知识;另一部分用于讲授“C++程序设计”课程的扩展知识。扩展部分内容不具体规定,可以讲授C++的最新发展、最新应用、工程案例等,根据学生具体情况决定。新大纲可以充分发挥教师的主观能动性和学生的学习积极性,主讲教师可以加强与学生沟通,随时根据学生需要调整教学内容,更好地为学生提供辅导。
(2) 革新教学方法。改变以教师为中心的传统教学理念,建立以学生为中心的现代教育理念。利用多媒体课件辅助教学,采用任务驱动式、合作式学习、自主式学习、工程训练等多种教学方法。这些方法创造出一种工程实践的教学氛围,让学生由被动的学习者变为主动的参与者,激发学生的学习兴趣、工程实践和科研兴趣,调动其探求知识的积极性。通过“方案”的讨论,能锻炼学生的语言表达能力和思辨能力。以工程训练项目本身的魅力吸引学生自主学习,培养其创新精神、创造性思维和创造性个人品质,从而提高学生的综合素质,拓宽他们获取知识的渠道[2]。 2改革方案
“C++程序设计”课程的工程实训改革按照“点―线―面”三位一体的模式进行,即课程实验(点)、课程设计(线)、工程训练(面)相结合的方式进行。
2.1课程实验
课程实验是对课程各个特定知识点的练习,是对知识“点”的训练。课程实验一般分为验证性实验、设计性实验和综合性实验。“C++程序设计”课程共设有8个实验,其中7个为设计性实验,1个为综合性实验。为了使课程实验取得更好的效果,要制定多层次的课程实验指导书。这是因为不同学生的能力水平存在有较大的差异,统一的实验指导书不能适应多层次能力水平学生的需要。在进行课程实验时,鼓励学生根据自己的实际情况选择合适的实验指导书进行设计。通过课程实验,学生能够加强对课程知识点的理解,达到熟练掌握课程知识点的目的[3]。
2.2课程设计[1]
课程设计是锻炼学生实践能力的主要途径,在面向实训的教学改革中,课程设计是对知识“线”的训练。当前课程设计教学环节一般存在以下问题。
(1) 学生重视程度不够。一般情况下,课程设计环节学生的考核通过率较高,这就使得部分学生不认真去完成设计。
(2) 基础知识不扎实。课程设计是根据一门甚至多门专业课程所学的知识,解决特定的实际问题。如果基础课程知识不掌握,自然无法完成设计。
(3) 课程设计自身难度大。课程设计要解决实际问题,这需要在理解知识的基础上,有一定的设计和创造,对有些学生来说有一定的难度。
(4) 实施方法不当。课程设计实施中,教师占据主动地位,布置任务、检查结果,学生很少有自己的主动性。有的老师下达的任务单调、单一,有的甚至多年任务不变。考核方案的合理性、学生兴趣等问题没有合理解决方案。
(5) 学校对课程设计教学环节监管不利。学校对理论教学环节有很好的监管制度,而对于实践教学环节则没有进行有效的监管。这也引起教师和学生对实践教学环节的轻视。
在面向实训的课程改革中,我们充分认识到了课程设计环节的重要性,提出了面向实训的课程设计实施方案,提高课程设计的教学效果和学生学习的积极性。具体实施方法有以下几点。
(1) 制定多层次的课程设计指导书。同课程实验一样,不同学生的能力水平有较大的差异,统一的课程设计指导书不能适应多层次能力水平学生的需要。因此,根据学生的实际情况编写多层次的课程设计指导书,以适应不同层次学生的需要。在进行课程设计时,鼓励学生根据自己的实际情况选择合适的实验指导书进行设计。由于指导书是适合该学生的,学生需要进行一定的思考、设计,又能够取得一定的成绩,有成就感,可以提高学生的积极性,锻炼学生分析问题、解决问题的能力。
(2) 选择趣味性、多样化的题目作为课程设计的任务。所有学生针对同一个论题设计,学生没有发挥的余地,设计方案易雷同,很难避免相互抄袭和应付差事的现象。因此,在课程设计任务的时候,课题组查阅了大量资料,与学生进行深入交流,设计了数十个符合当前技术发展需要,符合学生兴趣的课程设计任务,供学生进行课程设计选做,并且设计题目每年都进行一定数量的更新。对一些特别优秀和个性独特的学生,允许他们自行选择题目,并且帮助学生分析自选的任务,如果合适,应该鼓励学生去完成。如果不合适,帮助学生分析为什么不合适,鼓励他们重新选择。以更好地锻炼这些学生的创新能力[4]。
(3) 提前布置题目,让学生有足够的时间进行思考。最好是在相应课程开课的时候下达,这样学生可在学习课程的时候考虑课程设计的任务。有了长时间的思考,而且是在课程学习的时候就进行了思考,学生就可以做出比较理想的设计结果。
(4) 在课程设计实施过程中,加强教师的指导力度和提高教师的指导方法。在当前课程设计实施中,大多教师的指导力度不够,一般教师下达任务后让学生自行进行设计,指导的很少。有的教师虽然进行了指导,但是指导的方法不恰当,没有达到指导的目的。
(5) 制定了合理的评价制度。以前对课程设计结果的检查,只是教师简单看一下学生的设计结果,凭感觉给一个分数。这样给出的成绩当然存在和实际情况不符合的地方,这就会伤害一些同学的感情,也会使一些同学心存侥幸。课题组制定了“学生自荐―学生推荐―学生评审―教师评审”的课程设计评价制度,主要由学生自己对设计结果进行评价,辅以教师参与评价。另外,每次设计教师再随即抽取一定比例的学生设计结果进行评价,以监督学生评价的结果。
总之,在课程设计教学环节中,可以采用各种措施激发学生对课程设计的兴趣,使学生由被动执行转变为主动创造,进而锻炼学生理论联系实际的能力。实现对课程知识“线”的训练。
2.3工程实训
工程实训是应用型人才培养的基本组成部分,是锻炼学生利用所学知识解决复杂实际问题的基本途径,是对知识“面”的训练。课题组组织有工程经验的教师从实际工程项目改编、抽象获得一批工程项目案例,并联系一些社会企业,供学生进行工程训。“C++程序设计”课程的工程训练分成3类,分别介绍如下。
2.3.1自主工程训练
为满足学生课外自主学习的需求,我们提供学生大量的工程案例作为自主训练的实例。每个实例包括核心部分(功能需求、实现目标、关键技术)和辅助部分(实现提示、核心代码等)。辅助部分给出不同层次水平的提示,供不同层次的学生自主学习参考。同时,构建了相应的自主学习辅导体系,比如定期举行相关知识领域的讲座、项目辅导等,为学生自主学习提供保障。
2.3.2实践创新训练
实践创新训练采用自愿、公开、公平原则,以自主工程训练为平台,选拔创新训练核心学生。根据自主、自愿原则由核心学生辅以其他学生组成创新训练小组。以“大学生研究训练计划”、“ITAT程序设计大赛”、“ACM程序设计大赛”、“挑战杯”等竞赛为平台,进行创新活动。
2.3.3产学研综合训练
人才的培养是为了社会服务,因此需要重视社会、企业在人才培养中的作用。在充分利用学校实习基地的基础上,我们还联合其他一些社会企业,鼓励学生进行“产学研综合训练”,发挥企业在人才培养中的作用。
工程训练环节通过大量的实际工程案例,训练学生解决复杂实际问题的能力,实现对课程知识“面”的训练。在该环节中,学生可以选择多样化的训练模式,选择适合自己兴趣的训练题目,最终实现人才培养的目标。
3结语
通过近两年的教学实践,我院面向工程实训的“C++程序设计”课程改革取得了一定的成果,该教学改革的创新性主要有以下几个方面。
(1) 改变传统教学模式,由传统的理论讲授为主,实践为辅的教学模式转换为以工程实训为主,理论教学为辅的新模式。
(2) 提供丰富的工程案例,以实训本身的魅力吸引学生自主学习。以实际工程项目为原型,抽象出适合学生难度的实训题目,吸引学生自主投入到工程实训中,提高学习的效果。
(3) 改变传统课程考核方法,以实训情况作为学习效果评价的主要评价因素。避免传统考核出现“高分低能”的现象,培养的学生具有较强的工程实践能力。
但是,改革中还存在不足的地方需要进一步完善。比如还需要更多的教师加入到工程项目案例开发行列;课程考核中虽然引入工程因素,但具体方法还没有制定;学生自主学习的辅导体系还没有完善等。这些将是我们进一步研究和实践的内容。
参考文献:
[1] 张明川,吴庆涛,黎蔚,等. 一种软件类课程设计实施方案研究[J]. 福建电脑,2009(6):2-3.
[2] 陈杰华. 教练式沟通在Visual C++课程教学中的实践[J]. 计算机教育,2008(20):15-16.
[3] 张本成,龚伟. 面向对象程序设计教学改革探讨[J]. 内蒙古师范大学学报:教育科学版,2008(1):134-136.
[4] 张顺利,田俊华,李卫斌. VC++程序设计课程教学改革研究[J]. 咸阳师范学院学报,2007(8):82-84.
Study and Practice of “C++ Programming” Teaching Reform Based on Engineering Training
ZHANG Ming-chuan, SUN Shi-bao, WU Qing-tao, ZHENG Rui-juan, WEI Wang-yang
(Electronic & Information Engineering College, Henan University of Science and Technology, Luoyang471003, China)