时间:2023-03-23 15:26:05
引言:寻求写作上的突破?我们特意为您精选了12篇计算机程序设计论文范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
2与自身专业相结合
为了提高VisualBasic程序设计的实用性,增强学生学以致用的能力,需要将该门课程与学生所学专业有机的结合在一起,这样能够使学生的学习兴趣更加浓厚,提高学习热情。以交通运输专业为例,课程开展至图形图像的使用时,可以选取红绿灯变换例题作为学生的操作案例,如图2所示。在这个案例中,与交通专业的专业知识也许还有一定的差距,但这样一个简单的实例足以吸引学生的注意力,控件要求也比较简单,代码结构并不复杂,但是需要提醒学生注意的是需要对于Image3控件需要添加具有3个元素的控件数组,来存储红、黄、绿三种颜色。类似的案例教师可以通过网络搜索或图书资料等多种方法搜集,难度不能太大,如果太复杂,反而会影响学生学习的积极性,以上就是对于非专业学生,将案例教学法应用于理论教学中的一些建议。
计算机程序设计算法作为高中信息科技选学模块的内容,是课程改革的一种新的尝试,旨在培养和提高学生的逻辑思维能力,以及分析问题和使用计算机解决问题的能力。在传统的教学模式下,教师的实践活动在很大程度上受到行为主义的影响。教师的教学任务主要是为学生提供一系列刺激和强化,并引导学生作出适当的反应。教学的目标就是为了让学生模仿适当的行为,教师对学生模仿的结果进行判断和修正。在程序设计算法的教学过程中,这种教学模式难以取得理想的教学效果。[1][2][3]作者介绍了建构主义教学理论及其要义,并对利用建构主义教学理论对教学过程进行改革和优化进行了分析与评价。具体应用建构主义教学理论应用在高中程序设计算法的尝试,还没有查到,因此尝试用建构主义方法应用于计算机程序设计教学效果,具有重要的意义。
一、利用建构主义教学法创设学习情境,激发学生学习兴趣
在计算机程序设计算法教学过程中,教师利用建构主义为学生创设一个学习的情境,以激发学生对所学内容的兴趣,将学生的思维引入到学习情境中。创设情境,即在真实世界中建构知识意义、学会解决问题的经验,尽管在传统课堂教学中,我们无法将学生带到知识应用的现场(而计算机程序设计算法中一些抽象性、逻辑性、数理性的知识也难以找到这样的现场),也没有虚拟现实技术的产品去模拟真实世界,但在教学中,教师要学会运用有效的教学策略和各种可行的技术手段,设法让知识“从情景中走出,又最终走入情景”,即从现实情景中提炼问题,又能设计一些将新知应用于现实情景的实例,从而给予学生解决实践问题的机会。也只有跟现实生活紧密联系在一起的教学活动才激发学生的兴趣,引发学生的共鸣,教学中可以向学生提出生活中的实际问题,激发起学生的兴趣,引导学生针对趣味性问题和生活实际问题进行思考、讨论,从而将学生引入教学情境中来。
二、设置学习任务,让学生主动探索知识
计算机程序设计算法的相关概念比较枯燥,理论过于抽象,对学生的能力,尤其是创造性思维能力的要求较高,所以在教学过程中难以把握,也不容易引发学生的兴趣。在算法的教学过程中,利用建构主义教学理论对教学过程进行改革和优化将取得更好的教学效果。
比如,在介绍排序计算机程序设计算法时,如果纯粹地以数字为例进行介绍,给予学生的印象不会太深刻,而且会显得过于抽象,不通俗易懂。所以针对这一现象,可以充分利用学生对排队这一活动的熟悉程度来引出排序算法,加深学生对排序算法的直观印象,促进学生对排序算法的理解。具体可以这样操作,在提出排序算法之前,教师可在班级内随机抽取五名高矮不一的学生随机站立,然后请这五位学生演示以不同的方法从矮到高的排队过程,教师可在一旁指导学生先按照冒泡排序的方法进行排队演示,并记录他们演示过程中的每一次移动。
这样,在计算机程序设计算法教学中通过任务的设计,改变了知识的传输方式,培养了学生的科学探索精神和实践能力,把静态的教学变成学生主动参与的开放式教学。 转贴于
三、利用建构主义教学评价,强化教学目标
高中计算机程序设计算法包含了数学模型建构、逻辑推理等多方面的知识,学生理解和掌握的难度比较大,不同学生理解和掌握的程度也不尽相同,教师在教学过程中应当及时有效地评价学生的学习过程,从而获取有价值的反馈信息,并根据反馈及时调整教学进度和教学策略。同时,学生也可以反思自己的学习过程,调整认知策略,改变思考角度,加深对学习目标的理解和认识。
评价的过程是学生发现自我、提高自我的过程,也是学生与学生、学生与老师情感交流的过程。有效地教学评价,不仅能够真正确立学生在课堂教学中的主体地位,还能够促进学生在课堂上的积极参与,使得学生充分活动,形成良好教学氛围和师生互动关系,也只有在这样的课堂氛围中,学生才能更好地学习,得到更好的发展。有效地教学评价,也可以让老师更多地了解学生优势和不足,监控学生的学习过程,正确评估自己的教学效果。
四、小结
新课程改革要求以学生发展为本,让学生参与,提高学生的学习兴趣;优化教学环境,加强交流与合作;给每位学生以期望和激励,让学生有成功感;利用建构主义教学理论引导学生对知识的意义建构,从根本上改变了老师和学生在知识学习过程中的地位和角色。在计算机程序设计算法教学过程中,通过情境引入、课堂任务设计,学生能够主动参与程序设计算法数学模型的建构、自主探索、合作交流,乐于参与系统知识的学习过程,充分调动学生学习的主动性,同时更利于学生身心的发展。
参考文献:
一、引言
近年来,随着科技的进步,各行业对计算机技术的应用越来越普及,为适应社会对高层次人才的需求,各高校也在非计算机专业加强了计算机知识的教学,在一些理工科专业中开设了计算机公共基础课程,并进一步提升了程序设计课程的重要性。另外,程序设计课程是高职高专院校计算机专业的专业基础课程之一,它不仅可以培养学生的编程能力,增强学生的逻辑思维能力,还是学生学习好后续专业课程的前提和保障。
为了将学生顺利地领进计算机程序设计语言的大门,为了培养和训练学生的逻辑思维能力和编程的实际动手能,为了取得较好的教学效果和提高教学质量。笔者通过近年来的教学经验,对程序设计课程教学中存在的实际问题做个分析、在教学思路与教学方法上提出一些建议。
二、教学中存在的问题
1、学习目标不明确,兴趣不浓,积极性不高
由于高职院校学生的入学成绩相对较低,学习基础和学习能力相对较差,对知识的渴望程度有限,在没有明确的学习目标指引下,很难学好一门课程。免费论文参考网。在教学中本人发现,有很多学生不清楚学习程序设计语言课程的重要性,认为程序语言设计课程与他未来的工作毫无关系;有些学生认为学习程序设计语言太枯燥,不如学习多媒体或网络的一些课程;有些学生是因为学习程序设计需要较强的逻辑思维能力和一定的数学、英语基础,因而在学习程序设计时显得力不从心,不能掌握应用计算机解题的基本思维方式,对计算机程序设计产生畏惧感,知难而退。
2、教学方式呆板,教学内容陈旧
在教学过程中,有许多教师仍在沿用传统的教学方法,偏重知识的传授,忽视能力的培养。课堂上往往只是知识的传授者、灌输者,以教师作为课堂的中心,以广大学生为讲授对象,教师一边讲解教学内容,一边进行演示,课堂气氛沉闷,师生间缺乏互动沟通,课堂上留给学生练习的时间偏少,忽视了学生的认知主体作用,无法激发学生的积极主动性,所有学生被迫按照老师的讲授速度进行学习,不利于培养思维能力与创造能力,多数理论停留在纸上谈兵的阶段。
教材内容陈旧、枯燥,脱离课程教学目的,脱离实际。有些教师往往把很大的精力甚至是主要精力放在程序设计语言的语法规则和语义上,不自觉地把“程序设计”课变成“程序语言”课,在考查方式上也常常是一张试卷决定该课程的成绩,导致了学生学习精力的偏移教材中的例题和习题大都是立足于程序语言本身的语法规则,与现实生活相差太远,致使部分学生觉得学习编程语言是一件枯燥的事。
3、过于注重理论学习而忽略了编程实践能力
在高职院校中,非计算机专业的程序设计语言课程的课时量往往很少,例如我校安排的理论课时和实践课时加起来总课时为64课时。在教学过程中,很多老师由于受到课时的限制,无法按照正常进度讲授完所需的课程知识,或者无法对知识进行详细展开讲解,只好占用上机时间讲授理论知识,导致学生过度重视课本上的理论细节的东西,忽略问题的整体结构,轻视实验课上的上机操作。
三、提高语言程序设计教学质量的几点思考
1、努力培养学生学习兴趣
对于计算机程序设计语言而言,由于许多学生在进入大学以前并未接触过它,所以,他们会认为计算机语言很深奥、很难学,导致对计算机语言的学习缺乏信心。教师应该采取适当的方式激发学生的积极性和自信心。
“兴趣是最好的老师”, 因为高职学生有基础较弱自律性不强的特点,所以在讲授语言程序设计课时更应该优先考虑如何调动学生的积极性,激发学生的学习兴趣,点燃他们的学习热情。所以在上课伊始应该向学生介绍作为 21世纪的大学生在计算机应用方面的要求,以及计算机应用对于他们今后就业的影响以及工作中的用途。另外,在刚进行计算机语言教学时,不易涉及难度大、不易理解的内容,要突出趣味性、易学性,降低学生对新事物的困难感。可在课堂上当场编写一些小程序、小游戏,并进行演示,以调动学生的兴趣和积极性。
2、采用灵活多变的教学方法
1)实例教学法
教师根据本节课的教学目标,确定本节课的教学目的,然后再精选具有一定代表性的、能涵盖本节课要讲的知识点的案例程序,通过对案例程序的简单讲解引出本节课要讲的语法知识,运用语法反过来分析程序的运行结果,根据程序的执行过程分析程序的功能,根据程序的功能反过来分析编程思路,理解了上述编程思路后,运用这种方法结合原程序结构再来完成一系列类似程序的编写。
下面以本人C语言课程中“for 语句”的教学过程为例,详细阐述一下运用实例教学法如何来实施课堂教学。
①根据本节课在教学大纲中的要求:熟练掌握for语句的使用,利用任务驱动的方式为本节课设定任务。(任务:求1-100之间所有的奇数和)
②精心选择案例程序。
③以案例程序引入本节课的for语句的语法知识,介绍for语句的一般形式,讲解for语句的执行过程。
④通过前面两项的讲解,将所学知识运用到案例中去,画出程序执行的实际过程,从而得出程序运行的结果。
⑤针对案例进行编程思路上的分析,让同学们真正地理解各变量及表达式在for语句中所起的作用,以便于他们今后独立编写程序。
2)比较归纳法
程序设计语言中有很多的定义、概念、语法规则,它们的使用灵活,功能强大,但是难以记忆。教师可以通过比较归纳的方法将这些概念、语法归类,使学生获得的零散知识系统化,对知识理解的更深刻,掌握得更牢固。
下面还是以本人C语言课程为例,在讲解完指针这一章后,及时归纳和总结指针的数据类型是至关重要的。学生们普遍反映这样一个问题,前面的章节学得挺明白的,一到了指针这一章就开始糊涂起来。而指针又是C语言的一个重要概念,也是 C语言的一个重要特色,如果不掌握指针就是没有掌握C的精华。免费论文参考网。所以在教学中一定要提醒学生,在学习本章内容时要多思考、多比较、多上机,应用的时候应十分小心。
3、突出上机实践的重要地位,加强操作环节教学指导
为了锻炼学生解决较大型复杂问题的能力,老师在安排实验课内容时,可以布置一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每次实验课要求学生完成其中一个或几个简单的功能模块,这样,每次实验课就好像一条铁链上的一个个铁环,紧密联系。仅以VF语言课程教学中的“学生信息管理系统”为例,把这个系统作为一个长期任务,然后把这个系统划分为若干个小的模块。免费论文参考网。比如输入输出学生信息、添加学生信息、修改学生信息、查询学生信息等模块。这样,当学生完成每一个功能模块后,便发现原来自己实现的是一个复杂的程序。通过这种方法,一方面可以大大降低学生对大型复杂程序的惧怕心理,另一方面也可以培养学生结构化程序设计方法的思想。
四、结束语
程序设计语言课程作为高职院校学生的计算机基础课程,直接影响到学生的后续课程的学习以及未来就业中的实践能力,所以在为高职院校的学生讲授该课程时,一定要从内因和外因两方面进行深入研究学生的状况,合理利用教学环境中的各种教学资源,注重以兴趣为导向设计教学内容,并且采用有效的教学方法,这样就能够使该门课程的教学质量上一个台阶。
参考文献
[1] 谭浩强.C 程序设计[M] .北京:清华大学出版社, 2004.
[2] 杨延广.对高职程序设计课教学方法的研究与探讨.高教论坛,2006(2).
随着计算机软件行业的发展与普及,十几年来计算机软件技术发生了翻天覆地的变化,而高等学校的教学内容、教学模式与教学方法却没有多大的改变,课程教学理念严重滞后于实际需要,教学效果存在相当大的问题。现在的计算机软件专业学生拥有的优势越来越少,就业压力也越来越大。对独立学院的计算机软件专业学生而言,更是如此。比专业理论知识,他们没有一本、二本的学生全面扎实,比实践操作能力,他们又远不及高职学生。那么独立学院应该培养怎样的计算机软件人才呢?学生将来毕业以后,凭借什么在社会上立足呢?这是我们老师一直在思考和探索的问题。
为适应新的形势,我院明确了计算机软件人才的定位:培养应用型软件人才。这个培养目标既是从独立学院学生的自身条件出发,又符合当前社会对计算机软件人才的需求。在这个培养目标的指导下,我们在计算机程序设计课程教学上进行了大胆尝试,修订了教学大纲,增加、删除了部分教学内容,并将新的教学模式与教学方法引入计算机基础教学中,取得了较好的效果。
1存在的问题
已往的教学经验表明,学生在学习程序设计类课程时最难的地方不是掌握某种程序设计语言的语法规范,而是掌握程序设计的基本方法。
程序设计语言的语法规范是死的,并且与任何一种自然语言相比,程序设计语言的语法规范更简单规则。因此,只要学生掌握好了程序设计的基本方法,再花费一定的时间掌握某一种程序设计语言的语法规范,就能用该程序设计语言设计程序,甚至达到精通水平。
具体而言,目前教学中存在的主要问题有:教学内容与教材组织过于陈旧;教学目标没有反映新形势的需要。其典型表现在:程序设计方法强调不够,抽象思维能力培养不足;某些程序设计中重要的概念讲授力度不足,如库与接口、UML建模以及目前流行的软件开发方法等,学生在实际的软件开发中无法满足企业的需要。
2构建程序设计基础培养四阶段课程体系
大多数独立学院的本科计算机软件专业现行的课程设计,与普通的一本、二本院校相比相差无几,没有突出独立学院的特点,也没有明确独立学院的培养目标。因此,对独立学院计算机软件专业课程体系进行改革迫在眉睫。我院以“计算机导论与C语言程序设计”为公共基础的程序逻辑训练、以“高级程序设计技术”为核心的程序设计方法培养、以“数据结构”为支持的数据与程序抽象能力培养、以“C++程序设计”贯穿面向对象程序设计新理念,并在大三大四高年级开设了Java、Linux、UML建模等程序设计类选修课程,形成了“基础训练+方法培养+提高能力+拓展层面+实践应用”的程序设计教学新模式[1],在强化程序设计能力培养过程中发挥了重要的作用。
3提出并实施四层次软件人才培养新模式
我院以课程体系为基础,提出并实施了“基础训练+提高能力+拓展层面+实践运用”的四层次软件人才培养模式。
3.1基础训练
程序设计基础训练课程开设在大学一年级,是大学阶段系统认识计算机、应用计算机的入门课程,通过程序设计的词法、语法及使用方法的学习,要求学生掌握、体会计算机解决问题的基本技能。在基础训练中,通过对计算机导论课程的学习,让学生认识并能熟练运用计算机编写程序;通过对C语言程序设计课程的学习,让学生初步掌握程序设计的方法,训练程序设计中的逻辑思维。
3.2能力提高
程序设计能力提高课程开设在二年级,主要从两个方面提高学生的程序设计能力:一是高级程序设计技术课程,重点学习典型的程序设计方法技术,便于学生系统地学习并掌握程序设计方法技术。二是数据结构课程,通过构造性思维的训练,重点突出数据抽象与程序抽象能力的培养,让学生在基础训练阶段之后能更深入地理解程序设计的概念。
3.3层面拓展
主要以市场需求为基础,包括工具类别与应用环境的拓展,以选修课形式开设在三、四年级。在具有良好C程序设计能力基础上,展开其他程序设计工具层面,如开设Java、VC++、VB等程序设计类选修课程,增强学生掌握新工具,举一反三的能力。随着我国经济发展,国外市场份额不断增加,熟悉和使用Unix环境已成为计算机软件专业应当掌握的重要技术,开设Unix环境编程和Linux程序设计等课程,将拓展应用环境,提高学生适应新环境的程序设计能力。
3.4实践应用
自2006年以来,我院就加大了程序设计课程中的实践课时比例,实践课时占到总学时的1/2或1/3,每门实践课都单独安排了实践课老师,指导学生更好地进行实践。在实践课设计中,我们既重视学生理论知识的巩固,又注重其解决实际问题能力的培养,因此,我们把实验自下而上分为知识层、应用层和综合层3个层次。
知识层注重对知识的理解和掌握,数据结构、数据库原理和Java程序设计等理论课增设了相应的课程设计,课程设计的主要内容是:按软件企业先进的项目管理和开发模式,以“项目驱动”进行软件系统开发的实训。应用层重点在于巩固与应用,学生在校期间参加课外兴趣小组或在毕业论文设计中,大部分学生都能使用VC++做系统级深层次应用。综合层则关注综合与创新,学校鼓励学生参加大型的综合性IT比赛,如ITAT、大学生挑战者杯创业大赛等。
3.5创造性思维能力的强化
计算机程序设计能力,对计算机专业学生的知识结构、技能的提高和智力的开发变得越来越重要,技能培养的重要程度决不亚于知识传授。对程序设计能力的提高来讲,编程序不难,编好程序不易。质的飞跃来自量的积累、艰苦的磨炼,所以良好的专业技能和创造性思维培养的关键在于实践。程序设计是高强度的脑力劳动,是创造性的艺术,只有提高了科学思维,学会了程序设计的真本领,才会将知识与技术变成能力,应用自如。
3.5.1案例驱动教学:兴趣引导
针对独立学院学生思维灵活但学习自觉性较差的特点,我们采用案例教学法,避免了传统填鸭式教学方法的呆板,通过实例演示,让学生对所学知识产生兴趣,有了一定的感性认识之后,再提升到理论高度,循序渐进地掌握知识。经过多次教学的探索,总结出重点讲授解题思路、算法设计及编程构思,突出上机训练,在编写程序过程中让学生自己进行探索性的学习,程序设计中的成果能极大地增加学生的成就感、培养学生程序设计的兴趣,并达到更加牢靠地巩固理论知识的目的。好的程序设计案例所采用的程序设计方法教会学生用适当的语言清晰地表达其思考过程。
3.5.2指导―大运动量实践―反馈训练:加强创造性思维培养
数据结构[2]的学习过程,是进行复杂程序设计的训练过程。技能培养的重要程度不亚于知识传授。难点在于让学生理解,习惯算法构造思维方法。针对数据结构技术性与综合性较突出的特点,我们提出并实施了“指导―大运动量实践―反馈训练”教学法。通过作业练习、课程实习、课程设计3个环节实现实践过程,前者偏重于对课程内容的理解,后者侧重于软件设计综合训练,促进了专业学生逻辑抽象能力和创新能力的培养。
3.5.3项目训练:提高应用能力
通过“项目训练”[3]方法,我们提出课程设计规范要求,突出关键技术要点,贯穿基本技能训练主线,精心设计综合性实验,体现加强实践能力培养的重要思路。数据结构课程设计时进行软件开发综合训练的第一门课,通过选用具有一定实用性的综合题目,采用学生个人进行和小组合作的方式,通过问题分析、总体结构设计、用户界面设计、程序设计基本技能和技术的一系列过程,培养学生动手实践、合作研究、协作开发大型软件项目的能力,培养学生采用软件工程正规方法进行设计与实现,为专业技能训练奠定了基础。“项目训练”方式将学生引入具体的项目研发,使学生有更多的主动学习机会,培养了科研能力。
3.5.4提高学生的兴趣与创新能力
竞赛等多种活动为学生提供了展现程序设计能力的舞台,激发了学生学习的主动性。我们已连续3年开展全校“电脑文化节”、“网页设计大赛”、“Flash竞赛”、“计算机知识竞赛”;学生参加省级、国家级数学建模比赛,6人次获国家级奖励,20人次获得省级奖励;学生在程序设计大赛中取得优异成绩,获得多项奖励,3人次获ITAT国家级奖,多人次获省大学生挑战杯一等奖。
4结语
计算机课程改革势在必行,特别是对于独立学院来说,更是迫在眉睫。改革的成功与否将直接关系到学生以后的就业。在进行计算机课程改革的基础上,我们针对软件人才的培养,提出程序设计教学的新模式和以设计为中心的能力培养新方法。作为一种有益的尝试,新的课程体系通过一种有趣的、面目可亲的方式向学生说明了创造性思维能力在程序设计中起到的重要作用。
参考文献:
[1] 翟玉庆,邓建明. 计算机科学研究型人才培养模式的探讨与实践[J]. 计算机教育,2005(1):31-33.
[2] 耿国华. 数据结构[M]. 北京:高等教育出版社,2007.
[3] 王志英,宁洪,戴葵. 强化计算机专业实践教学[C]//第七届全国计算机系系主任论坛论文集. 北京:高等教育出版社, 2004:37.
Reform of Computer Courses and Training of Software Personnel in Independent Colleges
LIU Ya, TAN Qian-mao, ZHOU Li
[论文摘要]计算机教学旨在使学生掌握信息技术、计算机程序设计及其他相关的基本知识,培养学生利用计算机分析问题、解决问题的能力,提高学生的计算机素质。文章分析了高校非计算机专业计算机课程教学中存在的问题,并就如何通过教学改革,提高大学生的计算机应用能力进行了探讨。
计算机教学主要是为学生提供计算机知识、能力等方面的教育,旨在使学生掌握信息技术、计算机程序设计及其他相关的基本知识,培养学生利用计算机分析问题、解决问题的能力,提高学生的计算机素质。计算机课程是高校非计算机专业大学生计算机教育的必修课程,一般开设“信息技术基础”和“Visual Basic程序设计”或“Visual FoxPro程序设计”两门课程。在计算机课的教学过程中,存在很多问题,因此,有必要对该课程的教学进行改革。
一、非计算机专业计算机课程教学存在的问题
1.教学方法呆板,不能激发学生兴趣。目前,计算机课程教学多采用黑板与投影仪相结合的方式,既可以板书又可用投影仪演示多媒体信息。但这种教学方法仍显得有些呆板。第一,教学方法仍以教师为主导,忽视了学生的主体地位,师生缺少交流,学生只能被动接受,不能很好地调动学生的积极性和主观能动性。第二,有些多媒体课件只是把黑板的内容搬到了大屏幕上,多媒体教学的特点没有真正体现出来。第三,对于非计算机专业的学生来说,计算机课的许多知识大都概念性、理论性强,内容多且抽象,具有严密的逻辑性,因此,学习难度较大。有的学生会产生畏难情绪,学习积极性不高。还有些学生认为,这门课程和自己的专业没多大关系,学习只是为了应付考试,这样就失去了学习的兴趣。
2.课时数偏少,不能完成教学任务。以邢台学院(以下简称“我院”)非计算机专业计算机课的教学为例,我院非计算机专业的“计算机程序设计”课程安排在第二学期,每周3节课(2节理论+1节实验),实际教学周数为每学期15~16周,实际总课时为45~48节。而大多数学生的计算机基础较差,根本没学过编程,在教学过程中,教师有时为了赶教学进度,就简化教学内容。由于课时少,学生没有时间建立一个系统的、完整的开发思想,这样导致学生学完这门课后,只会孤立地做几个小程序,而不会把它们联系起来开发成一个系统。这也导致学生在学习过程中学习被动,只是一味模仿课本上实例,知识点零散,对系统开发认识模糊,这样就大大影响了教学质量。
3.重理论轻实践,教学效果不理想。计算机课程是实践性较强的课程,必须通过上机实践,学生才能真正理解教学内容,掌握所学知识。上机操作实践是形成和提高学生应用能力的重要环节之一。然而,很多高校非计算机专业计算机课的理论教学时数多于实践教学时数,这不利于培养学生的实践操作能力,也不利于学生加深对理论知识的理解,因为,理论知识需要在实践的过程中加以理解、消化。理论课时比实验课时多,比例不合理,造成教学效果不理想。
4.考试形式不合理。我院非计算机专业的“信息技术基础”课采用河北省计算机统一考试,全部都在计算机上进行,其中有30%的选择题,70%的操作题。这样的考核方式对学生能力的测试是合适有效的。但“计算机程序设计”课程只采用笔试的方法,学生往往背几个程序就可以考高分,这种考试方式不利于发挥学生的主观能动性和创造性。
二、非计算机专业计算机课程教学改革建议
1.改进教学模式,采用分级教学。针对非计算机专业学生的计算机知识与能力参差不齐的现状,进行分级教学,即根据学生入学时计算机基础水平的差异,分不同的教学班进行教学。新生入学后,进行“信息技术基础”课的摸底考试,根据考试结果对学生进行分级,甚至部分学生可免修。同时,开设相应的选修课,使免修学生能多学一些新知识,激发学生的求知欲。在分级教学中,可根据教学计划和教学大纲的规定使学生共同达到一定的要求,还可因材施教,使优秀学生在原有的基础上学得更多、更深。
2.改进教学方法,提高教学效果。很多高校计算机课的教学还是采用教师讲、学生听,课后做作业的灌输式教学方式。这种教学方式使学生的个性受到束缚。实际上,每个学生的个性不同,这也导致学生对同一知识的需求不同。这就要求教师在教学中应以学生为主体,根据学生的不同需要进行有差别的教学,这种差别可以体现在教师引导学生学习的启发式、发问式等教学方法中,也可以体现在根据学生的个性布置差异的作业等方面。
以学生为主体并不是降低了教师的作用,而是对教师提出了更高的要求。要求教师在教学中从单纯传授知识转变为指导学生学习;从课堂专制式转变为平等、讨论或对话式;从填鸭注入式转变为启发诱导式;从单向传播式转变为双向感应式;从无视学生个体的差异转变为重视学生的个性,把其个性、特长作为资源加以利用,使学生既学习了知识,又提高了能力和素质。 转贴于
3.采用多种方式教学,提高学生兴趣。教师可以采取换位方式,在教师的引导下让学生主导课堂;对某些问题采取“百家争鸣”的方式进行讨论或研讨;可以在教师的引导下,让学生收集资料,作为课堂学习的补充;可以采取平等对话方式,让学生发表自己的见解,通过互动引导学生分析问题,解决问题。在细节上可以采用发问、启发、引导、存疑等教学方式。总之,利用尽可能多的手段引导、培养学生批评质疑和创新的思想,增强其创新能力。
在进行计算机课的教学时,应与学生所学的专业结合起来,提高学生的学习兴趣。如在教会计专业的“VFP程序设计”时,教师可以要求学生编写一个关于财务收支报表的小型应用系统。在讲课时,把这种小型的应用系统分解成不同的项目,每讲完一部分,就要求学生设计这个子项目。从信息的收集到方案的设计与实施,都由学生具体负责。学生在项目的实施过程中可能会遇到各种各样的问题,就会想方设法解决问题。在解决问题的过程中,学生既学习了新知识,又复习了学过的内容。通过一个个项目的实施,最后完成小型应用系统的开发。这样不仅既能够培养学生用计算机语言的思维来理解程序所能实现的功能,又能够帮助学生理解系统开发的基本架构。同时,这种方法还训练了学生的专业技能,提高了学生的认知水平,也使学生感到这门课程与自己所学专业的紧密关系,从而提高学习兴趣。
4.注重实验教学。计算机课程是实践性很强的课程,其知识的掌握与能力的培养在很大程度上有赖于学生的实践操作。加强实验教学环节有利于培养学生动手操作能力、解决实际问题能力。实验教学是计算机课程教学的一个重要环节,它与理论教学互为依存,对于培养学生的能力,尤其是研究创新能力有着不可替代的作用。计算机课程不仅要注重课堂上的演示操作,更要注重实验教学。可以采用课内上机实验教学、课外多人合作项目,开发小型应用系统。这样不仅可以弥补课时的不足,也可以调动学生学习的积极性。
5.改革考试方法。考试是一种手段而不是目的。应改革传统的死记硬背的考核方法,对于“计算机程序设计”这类课程可以实行开卷考试,让学生个人或几个人完成一个小型应用系统的开发,最大限度地发挥学生在学习过程的主动性、积极性和创造性。成绩评定可以采用学生答辩的方式,锻炼和培养学生的思维能力和表达能力。这样可以避免学生盲目追求高分采取死记硬背的方法学习计算机知识,激励学生追求全面的知识,提高学生的自主创新能力。这样出题既有新意,避免雷同,又能够充分检查学生的掌握情况和应用能力。
综上所述,针对高校非计算机专业计算机教学中普遍存在的问题,应采用科学的授课模式,同时,利用计算机教学中的创造教育的因素,大胆地让学生自由发挥,与自己所学的专业相结合,挖掘其潜在的创造才能,让学生的创造性思维与个性得到发展,从而实现学生素质的全面提高。
[参考文献]
[1]关心.关于高等学校计算机基础教学存在问题的探讨[J].黑龙江教育(高教研究与评估版),2006(3).
一、物理学与计算机的密切关系
电子计算机是因解决物理问题的需要而产生的,二次大战期间为了快速计算弹道,被公认为世界第一台电子计算机ENIAC于1946年研制成功,万维网的出现是因欧洲核物理学家们进行学术交流的需要而设计出来的。由此可见,计算机与物理学的关系是非常密切的,物理学的发展促成了计算机的产生与发展,计算机的出现是二十世纪最伟大的科学技术成就之一,它延伸了人们的思维能力,成功地解决了很多物理、数学等方面的难题,没有计算机就不可能准确计算出火箭和卫星的轨道位置、就没有今天的航天成就,计算机应用跨越各个学科,在工业技术、企业管理、情报信息处理、国民教育等领域引起深刻的变革,在今天几乎没有哪一个学科能够离开计算机的应用。
作为孕育计算机诞生与发展的物理学,如果说早期物理学应用计算机主要解决人们的计算速度、强度的技术问题,那么到了今天,计算机已在更深刻的层次上促进物理学的发展,由于在物理学很多领域中能够找到精确解的理论问题已经不多了,剩下的是大量的复杂的非线性问题,对这些问题的分析、预测和求解离开计算机,人们几乎无能为力了。另外一个方面,在计算机出现之前,人们只能够通过真实的实验来验证物理理论的正确性、工程中也往往需要耗费巨额资金做实验来探测某些数据和验证方案的可行性。而今天很多实验可以通过计算机仿真实验来完成,达到与真实的实验完全相同的效果,成本低廉且安全环保,用计算机来进行科学实验是科学技术史上革命性的变化。
物理学与计算机科学互相促进、共同发展的情况对我们今天的物理教学提出了更新更高的要求,物理学的教学内容、教学手段和教学方法必须与时俱进,适应新形势的要求。
二、物理教学中结合计算机教学的一些思考
大学物理课内容很多,结合不同的专业,在保证教学大纲的基本要求的前提下,内容上作一些必要的取舍,针对计算机科学技术和应用等相关专业,教学内容上适应地向专业倾斜,使基础课更好地为专业课服务,明确基础课的服务目标,让学生明了物理课程对后续专业课程的重要性,提高学习的积极性和主动性,以取得良好的学习效果,具体做法以下几方面进行:
(一)精选典型物理问题用计算机编程求解
大学物理课程一般在大一的下学期和大二的上学期进行,而大多数专业的计算机程序设计课程也恰好在此阶段展开,这就为物理课与计算机程序设计课相结合创造了有利条件。根据物理教学的不同阶段,可以精选一些典型的物理问题用计算机编程进行数值求解。例如在力学部分讲抛物运动时,先按教材讲授忽略空气阻力时的运动方程,求出精确解,然后补上空气阻力二次项,方程就变成非线性的了,让学生体验含有空气阻力时实际问题求解的难度,再介绍计算机数值计算的方法与思路,给出编程示范,作为综合习题让学生完成程序设计与调试,并与计算机程序设计课教师协商,程序调试可利用计算机上机课时间完成,通过这种方式,理论联系实际,既培养锻炼了学生解决实际问题的能力,又提高了学生学习物理课和学习计算机程序设计课双方面的积极性。又例如在振动学章节用计算机演示单摆大角度强迫振动的混沌效应;在热力学章节用计算机模拟二维布朗粒子运动;在电磁学章节用计算机编程求解一般位置的电场和磁场分布情况,像载流圆形线圈,根据毕粤--萨伐尔定律和对称性,教材上只给出了求线圈轴线上点的磁感应强度,但对其它位置的磁场分布情况计算就很难了,因此可在课堂上简单介绍计算机积分法,要求学生在此基础上利用计算机完成求解圆形电流非轴线上点的磁场分布情况,巩固和加深对物理定律及其适用范围的理解与把握,学习和体会计算机编程的方法与技巧。
通过精选少量典型物理习题利用计算机编程进行数值求解,以小论文或综合作业的形式布置练习,具体实施中充分征求计算机相关教师的意见并请求协助和参与实施,加强不同学科、不同课程之间的交流与协作,达到事半功倍的双赢的教学效果,充分体现大学物理课的基础地位与作用,体现计算机对物理学习和研究的重要性,知道这两门课程关系如此密切,学习的认真态度和积极性自然就得到了加强和提高。
(二)部分物理实验利用计算机仿真课件来进行
0 引言
大学的主要任务是培养人才,特别是培养创新人才。培养创新人才的基本途径与方法有课程教学、参与科学研究与项目开发、对外学术交流等。然而传统本科课程教学多注重传授学科的系统理论等专业知识,不重视对知识产生原因、方法的介绍,如忽视思考解决学科基本问题的具体过程等,这会造成课程教学传授知识与科学研究相脱节,导致学生的知识结构产生缺陷,不利于他们将来从事创新等研究工作。为配合计算机图形学课程的教学改革,根据计算机图形学课程的特点,笔者提出一种面向科学思维的教学新方法,它能有效弥补传统本科课程教学的不足。
1 面向科学思维教学方法的基本要求
常见典型的教学方法有:结构主义的教学方法、建构主义的教学方法、问题(任务)驱动教学方法等。这3种方法各有其优缺点,一个好的教学方法最好能全面综合这3种方法的优点。面向科学思维的教学方法要求把思考问题的方法、系统分析与综合的方法、科学研究的工作方法、查找资料与抽象的方法等知识产生的方法引入课程教学中,有效讲解学科专业知识是根据发展需求、通过研究各种问题产生的;专业理论体系或与其学科结构是由多项研究成果形成的,这些知识是科学研究与科学思维产生的结果。
结构主义、建构主义与面向科学思维教学方法的异同点见表1。
2 确立计算机图形学课程的教学内容与教学模式
2.1 传统计算机图形学课程教学改革的原因
2013年以前,国内外传统计算机图形学课程教学以讲授图形标准(显卡驱动与显示图形等子程序的集合)或CAD为主。这种CAD与计算机图形学(即图形标准)学科的划分有问题,它只便于图形标准的硬件实现,却因基本概念不全导致这两者均不能独立讲清三维真实感图形的自动生成原理以及计算机程序设计的基本规律,更不能总结计算机图形学的研发成果与发展规律,不能满足计算机图形学学科建设发展需求。
2.2 用系统分析与综合的方法确立计算机图形学课程的教学内容
2.2.1 系统分析:从理论上确立实现计算机图形学课程目标的发展路线图
本课程目标是用计算机程序自动生成类似人眼观察世界获得的观察图像(亦为学科研究的基本问题,它适合作为建构主义教学方法要求的教学环境需求问题)。为此至少要完成3个子任务:①掌握三维图形的生成原理;②掌握生成三维动画等图形的程序设计;③理顺新课程教学内容与图形标准、CAD的相互关系。
1)第一个任务的实现方法。
照相机生成照片遵循光线传播生成三维图形这一物理原理,计算机生成所有三维图形(包括光线跟踪算法、辐射度算法、投影、多边形填充、纹理映射、阴影算法、图像融合算法与二维直线的生成等)也应遵循该原理。这是本课程知识理论体系的完备性与一致性的基本要求,它决定了计算机图形学的学种性质与教学定位。
2)第二个任务的实现方法。
用辐射度和光线跟踪算法生成的三维真实感图形等程序,是一类典型的显示图形的计算机仿真应用程序。故计算机图形学的编程实现既遵循计算机仿真的基本原理,也遵循计算机程序设计的基本规律。
计算机仿真遵循系统(决定被仿真对象的范围与其行为特性)、建模(用数学模型描述仿真实验对象)、仿真算法(计算机通过执行该仿真算法,进行仿真实验)与评估(检验仿真实验的结果是否与应用需求保持一致)这一基本原理。
计算机程序设计应遵循计算理论可计算性的实现前提对程序设计的规范要求:①待解问题被模型与系统形式化方法所描述;②这种描述要转换成算法;③算法要有合理的复杂度。
这里,形式化描述指用数学符号、逻辑符号与流程图描述并要求保持逻辑上的一致性。系统的概念被本文定义为软件系统:它按解决问题的系统流程要求,编程实现数个模型描述数据与命令的输入、存储管理、运算处理、输出显示4个过程,能直接达到自动运行软件的设定目标并具有完整动态结构的综合程序。软件系统的概念是国内传统计算机核心课程教学缺失的重要概念。
故三维图形学的教学内容,主要用3组数学模型描述可视物体、灯光、照相机物理模型的物理特性(如用几何模型、材质模型与纹理模型描述可视物体;用光线几何模型、颜色模型、照明模型、辐射度算法和光线跟踪算法等描述点光源;根据类照相机的观察参数,用阴影算法、图像融合等算法描述照相机模型;对光线跟踪算法,应重构照相机模型);在物理仿真、数学建模与软件系统概念的指引下,编程构建三维图形软件系统,实现三维图形的自动显示。物体运动与变形、灯光变幻、照相机运动可形成计算机动画。计算机游戏是用人机交互的操作方式并通过实时动画与声音有效描述具有智能行为能力的人(或动物)的多种社会实践活动。
3)第三个任务的实现方法。
计算机动画包含了传统图形标准与CAD的原理,所以在课程最后,可讲解图形标准OpenGL的原理与编程使用方法。同时图形标准是游戏软件的基石,是现代计算机应用不可缺少的基本配置。
2.2.2 系统综合:介绍图形学的基本原理与动画软件的实现方法
这要求教师先查找资料、汇集前人发表解决以上问题的不同论文与教材(解决课程教学问题的先决条件),挑选材料编写课程讲义,详细介绍完成该任务所需的基本原理与实现方法,讲义试用成熟后再编著出版教材。
教材按以下思路组织:用二维图形学构建软件系统概念的教学,用三维图形学构建三维图形数学建模的教学(直接用三维图形构建软件系统概念的教学,会导致课程教学内容的复杂化)。在每章的开头,均提出应思考并解决哪些问题才能达到本章的教学要求,加强训练读者思考问题的习惯。
学完本课程,学生要能胜任计算机动画软件的设计与编程实现等任务。
2.3 归纳计算机图形学的学科结构
以上教学充分展示:由物理模型(化学模型、生物模型、社会发展需求模型等)数学模型(数据模型是数学模型的一种简单特例,其编程操作主要是数据的存储与检索,以实现数据库软件。根据数学模型“曲高和寡”的原理得知,数据库软件是应用软件中应用面最广的一类软件;或用离散数学的方法、判断规则与判据或可编程实现的自然语言与功能等描述解决问题的过程与步骤;或用通信协议描述数据通信过程要遵循的规则、约定等要求,这是网络通信编程的基础)软件的系统功能与结构用算法语言实现程序编码并形成算法软件测试评估等过程所确立程序设计的基本规律。程序设计这一规律,能被雷达的设计与制造过程所佐证,如通过物理实验确立雷达原理用数学模型描述雷达的工作过程设计雷达系统的功能与结构用电子技术制造雷达设备做好的雷达要通过测试评估才能交付使用等。
由此能用理论(物理原理、建模、软件系统、仿真、程序设计)、工具(OpenGL、Direct3D、着色语言、ACIS、WebGL、OpenCL、3D游戏引擎等)与应用(显示图形的应用程序,如3D动画或CAD、地理信息系统(空间复杂性高而时间复杂性低)、游戏与虚拟现实系统(时间复杂性高而空间复杂性低))3个学科形态描述计算机图形学的学科结构。
2.4 用科学研究的工作方法确立计算机图形学课程的教学模式
(1)选题(发现问题):找任务、了解用户需求、检索阅读资料并提出问题。自由选题要确立研究问题的科学性、目标性、创新性和可行性,并找准课题的申报渠道。提出问题是对任务深入思考或科学研究的前提。如计算机图形学的学科属性与教学内容是否成熟,是此前国际计算机图形学教育界多年关注的教学疑难问题。
(2)分析问题:真实照片由照相机、可视物体与灯光3个主要因素决定,由此确立解决问题的方法。
(3)寻找解决问题的方法(提出假说):首先用二维图形建立软件系统的概念;然后建立描述照相机、可视物体、灯光物理模型物理特性所需的数学模型,构建仿真光线在计算机场景与照相机模型中传播,生成三维动画图形。
(4)做实验解决问题(找寻证据支持假说):针对建立的数学模型,选择数据结构,设计算法,编写程序源代码并调试测试程序,构建三维图形软件系统,实现图形的自动显示。
(5)取得新成果(查新验证):改进学科的系统理论与基本方法,发表研究论文,推广该研究成果或论证申报新开发项目,推动学科建设向前发展。当我们解决好计算机图形学的教学问题时,就为撰写本文并申报计算机图形学国家规划教材奠定了基础。
由此构建程序设计教学的完整过程,并把程序设计拓展成科学研究工作方法的一种形式与组成部分。
该教学模式不仅把教学与科学研究两个不同性质的学术过程结合在一起,还说明围绕课程教学思考问题的训练属于科学研究领域思维活动的一种基本形式。
3 在课程教学过程中合理安排思考问题的训练
教师在重点介绍、讲解每个专题前,要考虑如何训练学生根据学科的发展需求思考问题,这些问题是任务驱动教学法中各种问题的来源。
3.1 用二维图形学构建软件系统概念的教学
专题1:线段图形的描述与生成。基本问题:如何用数学的语言与方式(如描述函数)描述各种线段图形的几何形状,以形成各种线段图形的几何模型?如何形成矢量汉字等子图形高效率的描述方法?如何把这种描述函数转换成算法,并根据其描述数据生成这些基本图形?
专题2:实面积图形的描述与生成。基本问题:用什么方法描述实面积图形的几何形状,以形成各种实面积多边形的几何模型?如何利用显示设备的绘图功能生成实面积图形?如何实现直线图形边缘的反走样显示?
专题3:图形的基本运算。基本问题:图形运算的目的是什么?如何用几何变换矩阵的方式描述图形几何模型的几何变换?若用实面积多边形的布尔运算构建新的复杂图形的几何模型,则布尔运算的数学基础是什么?如何实现其布尔运算?
专题4:图形的观察运算。基本问题:如何把输入到计算机中的图形几何模型描述数据,转换成显示设备坐标系中的图形几何模型描述数据?并调用图形的生成算法显示各种图形的几何形状?
专题5:图形数据与命令的输入。基本问题:能用哪些方法把图形模型描述数据与命令高效率地输入到计算机中?如何利用输入设备的数据输入功能与显示设备的图形显示功能,编程实现图形数据的交互输入?如何规划应用程序中的人机交互设计问题?
专题6:图形的数据结构。基本问题:图形数学模型的种类与复杂、复合图形的构建方法,这些对保存图形几何模型的描述数据提出了哪些动态管理上的要求?如何设计相应图形的数据结构,才能有效地保存、管理存储于计算机中的各种图形描述数据(命令)?如何把图形显示区中的图形描述数据编译转换成多种显示设备能识别并运行的显示指令代码,以实现图形的显示?为编程实现各种图形的自动显示,需要确定编程处理图形数据的基本流程和程序的功能与结构,以形成软件系统的概念。
3.2 用三维图形学构建数学建模的教学
专题7:照相机模型的建立与三维几何图形的显示。基本问题:如何用数学模型,特别是用矩阵的方法,描述照相机拍摄(投影显示)三维直线图形的物理过程?
专题8:平面物体几何模型的构建与图形显示。基本问题:如何用直线与平面函数描述平面物体的几何形状?如何记录这种描述所形成的几何模型数据?如何构建形状复杂的平面几何物体?如何显示平面物体的几何形状与表面?
专题9:曲面物体几何模型的构建基础与线框模型图形显示。基本问题:用什么方法描述曲面物体的几何形状并构建其几何模型?如何显示曲面物体的几何形状?
专题10:灯光模型的建立与光照物体的图形显示。基本问题:如何用数学模型的方法描述灯光的物理特性?如何描述在灯光照射条件下几何物体的可视物理特性?如何显示光照效果的曲面物体的表面与几何形状?如何更有效地描述光线传播的物理特性与变化规律?
学生按照这一思路进行选题,可考虑为实现像照片一样自然景观(如白光的薄膜干涉等现象)的图像显示,需研究哪些问题等,并发表其研究成果。课程教学内容成熟完整后,才便于界定计算机图形学的学科内涵。
4 分析计算机专业主要课程的基本特点,提炼计算科学的学科结构
4.1 计算机教学此前无计算科学学科结构概念的原因分析
现有权威资料和维基百科、百度百科表明,此前国内外计算机教学均无计算科学学科结构这一重要概念。以下3点是导致这一现象存在的重要原因。
4.1.1 对计算工具的分类作用认识不足
尽管人们知道计算机是一种计算工具,计算机有广泛的应用,计算机科学有自己的一套理论根据,但仅用“理论、工具与应用”很难全面概括计算科学的研究全貌与多项用途。事实上,计算机的系统工具对总结计算科学的学科结构非常重要。
计算机系统是一个能对编程实现的数学模型与逻辑模型,进行自动解算与推理的通用计算工具。这决定了程序设计在编程使用计算机上的重要性。
操作系统是对计算机的各种硬件资源与软件资源进行程序管理,使计算机正常运行的系统工具软件。同时,它能对用户程序(命令)的输入、存储管理与自动运行提供服务(包括对通信进程进行有效监管控制),并用人机交互与图形界面的方式记载这种用户程序与命令操作的运行结果。
编译系统是用高级语言编程必备的系统工具软件,它可以把用户用高级语言编写的程序源代码、编译转换成计算机能识别并自动执行的机器语言程序代码。
算法语言是用户为编程使用计算机的各种计算功能,用类自然语言的方式与计算机相互交流思想的符号表达工具。
这些计算工具本身没有直接解决数学计算与逻辑推理等应用问题,该任务由编程解决。
这类计算工具是在实际应用过程中总结、提炼的结果,工具本身一般不直接解决最终的应用问题,这是工具的第一个特点。它的第二个特点是工具的制造具有递归性,即可用简单工具制造复杂工具。它的第三个特点是专业复杂工具的制造方法与技术具有封闭性与隐蔽性,但这不影响他人对工具的操作使用;且其隐蔽、封闭性是工具使用方便、高效的主要原因。
软件系统与计算工具等概念的形成,是用抽象的方法(从众多事物中总结提炼出具有共同本质的特征、而舍弃其非本质的特征等内容)处理形成的结果。
4.1.2 传统课程没有讲清计算机仿真的原理与计算机程序设计的基本规律
传统计算科学的核心课程(计算机导论、计算机原理与系统结构、算法语言与数据结构、编译系统与操作系统、软件工程、离散数学、数据库和计算机网络)从未讲清计算机程序设计的基本规律与计算机仿真的基本原理。学生往往通过课后大量的编程训练,积累对计算机程序设计与计算机仿真的认识。这种程序设计经验式教学培养模型,无助于学生总结并提炼计算科学的学科结构。相反,人们在算法语言与数据结构课程的教学上存在一些模糊认识。例如,算法语言是用一组语法规则与功能约定的一种符号标记系统,它让人们掌握语言的符号约定、功能、特性以及用算法语句描述给定的数学计算与数据处理、逻辑判断等――即其教学主要是完成程序的编码训练,由此形成算法;也为研制该语言的编译系统做铺垫。然而部分算法语言的教科书,只有一些算法验证性应用实例,并把它们等同于计算机程序设计教学,这无助于初学者全面正确地掌握计算机程序设计的基本规律,因为学习算法语言后,他们还是没有数据结构的概念。
数据结构是研究用程序编码的方式,在计算机中有效实现多种类型数据的存储组织(形成线性、非线性、网状结构形式以及静态或动态结构形式的数据存储方法)、存储管理、排序检索与编程效率等任务的一门专业基础课程。数据结构课程有很多计算复杂性的案例,是培训人们掌握编程技巧的一种有效方法。因为编写程序所采用的数据结构往往决定了算法的编码实现方法,更重要的是,CPU是根据保存在内存各处程序代码的逻辑次序、通过逐条读取其指令代码来完成用户指定应用程序(或命令)的执行。如何规划、设计、调度与管理内存的使用,这与数据的调度与管理原理类似,是数据结构讨论的问题之一(常在操作系统课程中介绍解决该问题的方法。数据结构问题本质上属计算机内存的动态、合理使用与管理问题)。而该课程中所谓抽象数据类型,是指在指定的数据集上定义对该数据元素进行多种加工等编程操作方法。这个数据集以及对其数据元素的加工方法(数据集与其加工方法均能递归定义),应来源于人们用数学的方法描述解决实际应用问题这一过程,该主次关系不能颠倒。没有这些数据结构与程序编码等基础训练,初学者很难规划好一个软件的系统功能与结构。
由于传统的算法语言与数据结构课程教学无数学建模(它决定了解决多种应用问题算法的来源)与软件系统的概念,故传统的算法语言与数据结构课程没有讲清程序设计的基本规律。
4.1.3 传统计算机课程存在教学问题
首先,传统计算机图形学课程存在教学问题,现已被本教学改革有效化解。
其次,软件工程课程存在教学效果空洞抽象等困惑。若把新的计算机图形学课程作为软件工程课程的教学实习对象,可以有效解决该教学困惑。由于新的计算机图形学课程可以讲清程序设计的基本规律与计算机仿真的基本原理,这使软件工程课程的教学从理论上能达到软件全生命周期设计的教学目的。
第三,计算机导论与计算机基础课程存在教学困惑。计算机导论应对计算学科发展的全貌作整体介绍,并理顺计算学科与其他学科之间的关系,引导读者根据自己的需求有效选择学习不同的计算机专业知识。由于此前计算机课程存在以上问题,导致历次获国家级奖励的计算机教学改革成果以通过有效载体进入课程教学,致使计算机课程教学体系仍然不够成熟。这往往是行业外人士选修计算机课程的迷惑。因为自牛顿时代以来,用数学的语言描述自然科学取得的新进展,是各自然学科之间相互交流学术思想与成果的通用方法;然而目前其他自然科学工作者学习计算机后,却无法顺利地用计算工具的方法来表达其各自学科建设研究成果的数学模型等。这种计算机课程教学不便于计算机教育与其他自然科学教育进行对等有效的学术交流,并导致计算机基础课程教学出现危机。另计算机教学无计算科学学科结构的概念,即人们没有评判计算机导论教材好坏的客观标准。计算机图形学教学改革取得的新成果――发现计算科学学科结构的客观存在,为重构计算机导论与计算机基础课程提供了重要借鉴。
最后,计算机网络课程存在不足。如该课程介绍网络通信协议较多,却较少介绍网络通信工具的构建与编程使用方法,以及计算机网络通信程序的编程实现,这不利于初学者承担计算机网络计算的重任。
4.2 借鉴计算机图形学的教改成果。归纳计算科学的学科结构
传统计算机核心课程缺少一门计算机的综合运用课程,以总结并提炼计算机程序设计的基本规律与计算机仿真的基本原理。计算机图形学课程可以很好地承担这一重任。有了计算工具的概念与计算机图形学课程后,可以重新分类、归纳已知计算机的多种应用。
成熟的计算机图形学与传统计算机核心课程的教学,使计算科学理论(即计算机的系统理论和专业知识。它需回答:什么能被工具有效地进行自动计算,用什么方法研究该命题并形成哪些结论、成熟的理论与发展方向;满足何种条件的实物装置能实现计算功能,计算装置如何构造实现并使其正常运行、操作使用;可计算性的实现前提是什么,如何用该计算装置实现这种自动计算,如何保证计算结果的正确性和计算装置运行的安全稳定,该计算装置有多强大的计算能力;计算理论与计算机专业各课程的关系等)、工具(算法语言、编译系统、操作系统、计算机系统)与应用(数据存储与检索,数据计算、仿真、符号变换与推理,数据网络通信,数据获取、输出表达与控制即多媒体)3个学科形态得到完整展现。它们是形成计算机专业多个发展方向(如杀毒与网络防火墙、网络存储与查询、网页设计开发工具与网站建设、网络浏览器,即时通信、流媒体与播放器、人工智能与专家系统、计算机嵌入式应用、计算机在通信与自动控制系统中的应用等)与综合(如3D网络游戏)或研发计算机硬件(计算机系统结构与CPU设计、计算机工程)的基础。
因互联网的应用,计算机网络计算有网络理论(在通信理论的支持下,如何可靠、快速、方便、安全地实现计算机信息描述数据的通信;网络计算的理论基础与基本规则是什么,如何利用网络资源进行有效的传输与计算)、网络工具(计算机与互联网、路由器与交换机、调制解调器、Java、html语言、浏览器、Socket、遵循HLA标准的分布式实时仿真工具RTI、网络游戏引擎)与网络应用(如计算机数据通信与监管、电子商务、社交网站、网络游戏、云计算、信息技术与信息系统、物联网、大数据的应用等)。
图1显示了计算科学的学科结构。由计算机仿真的基本原理与可计算性的实现前提,可论证程序设计教学与计算机仿真教学的一致性。
故计算作为一门学科(招生专业)的根据是:①它有自己独立的研究领域。即什么能被有效地用工具进行自动计算以及可靠、安全、快速地传输?②产生专业知识的方法。科学研究与科学思维是产生(创造)多种学科新知识的主要方法,这是研究生阶段的主要学习任务。③由此形成的理论体系与其学科结构。这是本科生学习阶段应掌握的专业知识。④传授知识的法定机构与办学条件。⑤广泛的应用基础。
〔论文摘要计算机程序设计课程是中职学校计算机专业的主要课程之一,曾受到各中职学校的高度重视。但程序设计课程教学设计、教学目标及教学方法远远跟不上形势,怎样调动中职学生对程序设计语言的学习兴趣与提高他们的学习效率成为中职计算机教师们的共同关注的焦点。
程序设计课程作为计算机专业的一门基础课程,它有利于提高学生的思维能力,对学生深人学习计算机专业知识有很大的帮助。其目的就是通过学习程序设计语言的基本思想、语法知识和编程方法,提高学生的程序设计能力、分析解决实际问题的能力,并培养形成严密的逻辑思维能力。那么如何根据社会经济发展变化,对程序设计语言课程的教学内容、教学方法、考核方式进行相应的改革,实现培养高等技术应用型和高技能型计算机人才目标,已经成为广大中职教师普遍关注和重点研究的课题。
1程序设计语言教学中存在的问题
1.1教学课时少
目前我校计算机专业的学制2+1的模式,学校开设的程序设计语言课程的课时(包括理论课时和实践课时)较少,这就导致实际教学中存在理论课时和实践课时不够的情况,学生只能掌握最基础的程序设计知识,理解书本上现有的一些设计实例,而不能用该程序设计语言进行实际问题的处理。
1.2学生基础参差不齐,学习程序设计的信心、兴趣不足
因为学习程序设计需要较强的逻辑思维能力和较扎实的数学功底,而中职学校的学生普遍数学基础较薄弱,导致在学习程序设计时显得力不从心。由于缺乏对计算机本身解题的认识和了解,有些基础较差的学生还对计算机程序产生一种莫名其妙的神秘感和畏惧感,人为的给自己学习程序设计语言设置了一道门槛。学生对程序设计课程的学习兴趣不高,课堂教学中反常行为较多,如卜课睡觉、讲话、玩手机、不配合老师、不交作业等。学生普遍反映难学,提不起学习兴趣,感觉学不到知识或学的知识没用。
1.3学校对程序课程的重视程度不高
计算机程序设计课程注重对学生的思维能力的训练,这与图像处理,动画设计等培养学生动手能力的课程不同,不能立竿见影的看到学生的学习成果。这就导致一些领导对这门课程不够重视,从而使部分教师对这类课程的教学参与兴趣不浓厚,甚至有些学校以取消了程序设计语言的课程设置。
1.4教学方法落后
中职程序设计语言课程一般采用的教学方法是教师课上讲授加学生实验的形式,学生在上机实验时仅仅是对书本上现有的一些实例进行编辑调试,一旦调试成功就完成任务。这种教学方法实际上只是让学生掌握了一些程序设计的语法知识和调试技巧,而达不到培养学生利用该程序设计语言从一个实际问题人手分析问题、解决问题的能力。
1.5考核方式较简单不能全面检验学生的学习效果
目前的考试方式以试卷为主,无法全面检验学生的学习效果,对学生的实践能力考查无法体现学生的真正学习效果。
2间题分析
是什么原因造成了以上这些问题那?随着高中教育不断普及,中职生源及综合素质急剧下降。普遍特点是他们基础薄弱,尤其数学和英语,这是学好程序设计的最大障碍。教材不能适应中职教学的要求。现今中职程序设计语言教材存在的普遍问题是实践性教学和实训内容不足,没有体现教材的实用性和职业性,不能保证对学生实践能力的培养,不能体现技术应用型人才的培养要求,缺少中职教育特色。面对这些问题,我们不能望而却步,一味地去埋怨是起不到效果的,要真正想解决问题,最好就要去不断地摸索,寻找解决问题的突破点,探索适合学生发展的教学方法和教学内容,以充分调动他们的学生积极性和主观能动性。
3解决间题的关键在于教育方法的创新
古人云:“知之者不如好之者,好之者不如乐之者。”兴趣对学生的学习有着神奇的内驱动作用,能变无效为有效,化低效为高效。充分激发学生的学习兴趣是当前开展素质教育,优化课堂教学,减负提质的最根本、最有效的途径之一。兴趣的产生来源于兴趣源,兴趣源必须由教师来创造,并贯穿于教师授课全过程的各个环节中。针对程序设计这门课程的特点教师可采用以下一些方法提高学生的对本课程的兴趣。
(1)基于问题的教学。提出问题,以学生独立完成为主,教师只提供必要的辅导,培养学生探索问题和解决问题的能力,更有利于创新能力的培养。
(2)“项目驱动”教学。在理论教学中采用“项目驱动”教学法,整个课程教学围绕一个“工程项目”进行,通过逐步拓展的实训项目和设计,将每一阶段的学习进行小结性的贯穿与能力提高,将知识点都溶化到一个个实训项目的程序编写中。
(3)讨论教学法。在教学过程中,充分发挥学生的积极性与主动性是非常重要的一环。程序设计有一个最大的特点,一题多解。针对这个特点,教师在习题课的教学中,可以采用讨论式教学方法。在此过程中,学生们通过提问、答辩、论证、反驳、判断等激烈的讨论,互相启发、相互协作去分析问题、发现问题、解决问题,总结经验。不仅可以让学生获得课外的知识,同时也利于充分挖掘学生的学习潜力。
(4)归纳教学法编程语言有很多的定义、概念、语法规则,它们使用灵活、难以记忆,也特别容易出错。如果能够引导学生进行归纳,将会起到事半功倍的效果。编程语言的定义、概念、语法规则有许多相似的地方,例如:FOR ……TO……与DO……W HILE等命令,有很多语法规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。
(5)分组教学法。注重培养团队精神,以“竞”求进上机编程实践是学好程序设计语言的关键。但上机实践过程中如果“各自为战”,或在教师的统一“指挥”下以完成不同题型的任务为实践内容,对于中职学生而言很容易失去上机兴趣,也很难达到上机实践之目的。因此,不妨针对中职学生的特点,适当转变上机实践的形式。以组建团队的形式上机实践,事前分配给每个学习小组不同的实践任务。组长负责本组学生利用课余时间去思考、收集资料,上机时各组先分别完成相应任务,然后相互演示成果,评判优劣,最后再进行任务交换,讨论编程心得。在此过程中教师主要充当协调者的角色,对确有疑难的地方可适当加以指导,主要过程可由学生自行解决,则学习能力强的学生自然会成为教师的助手。
VB程序设计是很多高校非计算机专业学生必修的一门计算机基础课程,我们学校也不例外。苏州大学应用技术学院是民办公有本科院校,该学院的非计算机专业理工科学生全部必修VB程序设计,并且要求学生通过江苏省计算机等级考试二级,且与学位挂钩。本人所教授班级学生每年等级考试的通过率均名列全院前茅,受到该院学生和教师的好评。今年在首次实行的由学生选择任课教师过程中,出现了“涨停版”状况,在短短的十分钟内,选我所授VB课程的学生人数爆满,导致后面很多想选修我的VB课程的学生没能选上,事后这些学生私下问我:“如果没选上我的VB课,能不能到我的课堂听课?”这件事情给我的触动很大,学生的认可是最高的奖励!通过多年的研究和探索终于摸索出一套适合民办本科院校的程序设计的教学方法。
1教师的人格魅力是吸引学生学好知识的必要条件
“师者,传道授业解惑者”,教师这个行业是一个非常神圣的职业。它不但给学生传授知识、解答疑问,更重要的是直接影响学生的思想价值观和世界观的形成。老师的一言一行都铭记在学生的心目中,潜移默化地影响着他们的成长。所以教师的责任心和职业道德是非常重要的,在某种程度甚至比他的知识水平还重要。这是我的个人看法。要想做一名好教师,首先要做一个好人:一个有爱心、肯奉献、有责任感和心胸宽阔的人。具备以上特点,再加上渊博的知识,则具备了教师的人格魅力。现在的大多数学生虽然都是独生子、娇生惯养、相对比较自私,但他们很聪明,很活跃,很有正义感,明辨是非的能力也很强。他们当中绝大部分都是积极向上的,有进取心,想很好地完成自己的学业,给家长、朋友、老师以及社会一个完美的答卷。只是自制、自理能力相对较弱,需要老师的监督和帮助。这个时候因为离父母较远,每天接触的长辈除了老师还是老师,老师的作用就体现出来。有很多学生愿意找他们喜欢的老师交流,甚至做知心朋友。学生喜欢的老师一定是有人格魅力的教师,这一点确定无疑。那么,一旦学生喜欢上这个老师,他们就愿意接受这个老师给他们传授的知识,按时完成教师布置的任务,在这种和谐的学习气氛中,学生的学习效果就不言而喻了。现在的学生和老师的关系和多年以前不同,甚至有很大变化:当学生需要老师做长辈的时候,老师就好像他们的父母,给他们关心和爱护;当学生需要老师做他们的知心朋友的时候,老师和学生应该是平等的关系,放下老师的架子,畅所欲言,各抒己见,甚至可以争论的面红耳赤。当学生需要老师做他们的严师,督促他们学习和上进的时候,老师就是一个有威严、神圣不可侵犯的人。只有这样,才能更好地引导学生成为一名会生存、会做人、会获取新知识的人,这也正是当今高等院校培养本科生的目标。
2从社会实际状况出发,让学生明确学习目标
目前我国的教育现状是:从小学甚至幼儿园开始,就强调学习、学习再学习!也就是孩子除了学习之外,不能有其他事情可做,只要学习好,什么都好。所谓的“一俊遮百丑”,却忽略了其他方面的培养和教育,虽然政府也正在努力改变现状,但因为社会竞争激烈以及人口众多,一时还难以改变。正因为如此,家长也是为了孩子今后的生存考虑,不得不督促孩子学习、学习、再学习!其他方面的教育等上了大学再说。这就给高等院校的教育带来了很大的压力,大学生存在的问题很多:首先是为什么要学习?学习目的不是很明确。其次是学生认为在大学里不用刻苦学习。因为在中学阶段学习很辛苦(这是不争的事实),学校为了升学率,学生为了考大学,甚至有中学教师给学生一种误解:上了大学就可以放松了。导致学生上大学后不爱学习,认为没必要再学习了,因为学习毕竟是一件很苦的脑力劳动。
针对当今大学生的现状,我们的高校教师一定要让学生明确自己为什么要学习?也就是学习的目的和意义是什么?结合实际状况,首先一个有价值的人一定是一个知识丰富的人,不管是民营企业家,还是公司里的老板、董事长或者CEO,其次,如果没有丰富的知识,也就谈不上更强的能力,这是一般的道理。每个人都想成为一个有价值、有作为的人,如果没有知识的的储备,没有学习新知识的能力,那他就很难达到目的。最后,学习无止境,学习的内容也是丰富多彩的,不单单是书本上的知识,还有学做人、学做事,学习别人的好经验,等等,就像北京大学学生侯东说的:“学习不单纯是学习知识,更多的是学习合理安排时间,合理调配资源,善于处理一些环境影响并最终找到自己的生活方式和目标”。
3采用适合民办本科院校大学生特点的教学方法
(1) 消除学习计算机程序设计语言的畏难情绪,给足学生一定能学好这门课的信心。
VB程序设计是一门计算机高级程序设计语言,学生在学习这门课程之前,已经掌握了计算机的基本操作和基本概念,也就是学过了“计算机应用基础”这门课,具备一定的计算机基本操作,但计算机语言和计算机的基本操作不一样,而且差别很大,基本操作是固定的动作,通过反复练习就可以熟练掌握,而且效果显著。而计算机语言要通过思考、推理和判断才能给出正确的算法,也就是解决问题的步骤,并用程序设计语言把它正确地表达出来。难度要比操作大得多。很多学生在学习VB程序设计时,最难的就是入门这一关,特别是民办大学生更是如此,他们不习惯采用计算机解题方法,甚至觉得计算机程序设计语言太难学了,简直像天书。他们更习惯于日常生活中的解决问题的思路。针对学生存在的这些问题,一般情况下我们首先要打消学生对学习程序设计语言的畏难情绪,给他们信心和希望,告诉他们计算机程序设计语言没有他们想象得那么难学,任何事情都是一样,只要努力认真用心去做了,都能做好,包括老师本身,也不是天生就会程序设计语言的,也是一点一滴学出来的。例如,在日常生活中,我想把一瓶酱油(简称a)和一瓶醋(简称b)交换一下,交换后,原来装酱油的瓶子,现在装醋;原来装醋的瓶子,现在装酱油,问:我们应该怎么操做才能实现呢?学生会认为这个问题太简单了,很快就给出答案:先拿来一个空瓶子(简称c),再把a瓶子里的酱油倒入空瓶,然后把b瓶中的醋倒入原来装酱油的a瓶中,最后把倒入空瓶中的酱油倒入原来装醋的b瓶中,就完成了酱油瓶和醋瓶互换的任务。这个问题不就是程序设计中的两个变量交换值的道理吗!一个变量a=1(酱油),另一个变量b=2(醋),现在要把a和b的值进行交换,(相当于把酱油和醋互换)则需要引用第三个变量c(相当于空瓶),先用c保留变量a的值(把酱油倒入空瓶),即c=a,再把变量b的值给a(把醋倒入酱油瓶),即a=b,最后把c的值给b(把空瓶中的酱油倒入醋瓶中),即b=c,则完成了a,b两个变量值的交换。在程序设计过程中,有很多内容是和我们现实生活中的内容相似的,很好理解和掌握,相信同学没有学不会的内容。
(2) 由浅入深,循序渐进,逐步引导学生步入正确的程序设计大门
在介绍VB内容的时候,教师不一定完全按照指定教材内容组织的顺序给学生讲解,因为教材本身就是一种参考书,教师可以根据大纲要求,把教材内容经过仔细研究、斟酌、提炼、总结和归纳成由浅入深、循序渐进、通俗易懂、简单明了的知识内容,再结合日常生活中的实例展现给学生。如VB控件部分的内容不必在开始时全部讲解,结合实际情况,用到哪些控件再详细的介绍那些控件。首先把窗体、文本框、命令按钮和标签控件介绍给同学就足够使用了,因为窗体是VB程序设计的基石和容器,所有VB的其他控件都放在窗体中;文本框可以用来作为输入和输出界面;命令按钮用来激活代码的运行;标签用来注释。至于其他控件,如图片框、列表框等等可以在后面介绍到数组的时候,作为数组输出界面时再陆续介绍。总之,介绍的内容以实际应用为主,有应用的需求就介绍,理论联系实际,效果会更佳。
在介绍VB的语句语法时,不要急于求成,遇到问题需要解决时,再介绍相关的语法规则和语句内容,以问题驱动内容的进展。如设计一个加法计算器,用来求出n个数的和。如果n的值较小,如n=2可以直接把两个数相加,但如果n=20或n=50的时候,如何实现这些数相加呢?方法很多,但最好的方法就是用循环语句来实现,引出循环的概念、语句和语法规则。
对同学们容易出现的一般性错误,尽量用通俗易懂的例子说明语句的含义。因为学生出错的原因就是没有真正理解语句的含义。例如,开始使用VB赋值语句的时候,很多同学容易出现的错误就是把赋值和被赋值对象写错位置。如把x的值赋给y,写成x=y,其错误的原因就是学生把赋值号“=”理解成数学里面的等号“=”了;同样的错误还有,把文本框1中的内容赋给变量a,表达成text1=a。针对这种错误,我们就可以通过日常生活中“借钱”这件事情来举例说明,如名字为x的人向某人y借了500元钱,前提是y一定有500元钱(y=500),我们可以用式子x
在讲解程序设计算法的时候,尽量从学生的角度去分析、理解和判断,最后推出正确的解题方法。先用自然语言分析和阐述正确的算法,然后再用VB语句描述出来,要把分析和表达的全部过程展现给学生,和学生一起分析和判断,最后再把初步写出的VB程序放在VB环境中调试和运行,验证算法是否正确。特别强调的是,有时需要故意设一些陷阱,让学生跳进去,也就是程序不要一气呵成,正确无误。故意留出一些关键性的,容易犯的错误,运行结果出来,发现错误时,学生会很惊讶,在分析的过程中,觉得应该不会出错,怎么最后结果不正确呢?这个时候教师也不要急于给出答案,让学生思考几分钟,再慢慢引动学生发现问题,进而想出解决办法,最后教师再给出正确答案。
归根结底,我们在传授知识的同时,最好能够把如何学习新知识的方法传授个学生,这才是我们的教育目的,小之以情,动之以理,由浅入深,循序渐进,慢慢的学生也就走进了VB这个新知识的大门。教师在授课的过程当中适时地出现一些幽默的句子或片断,也会让学生觉得VB程序设计的课堂不是那么枯燥乏味。把学生的情绪调动起来,学习的热情也就随之而来,效果也就可想而知了。
4结束语
民办本科院校的计算机程序设计教学方法的探索与实践是一项复杂和持久的系统工程,无论是在教学理念还是在教学方法上都需要不断的改革和创新。今后我们还要不断的研究和探索,在改进教学方法和教学手段的同时,加强学生实践能力的培养,进一步完善我们的教学机制。
针对上述情况,我在计算机公共基础课中,一开学就启发学生自己进行调查研究、查阅资料,撰写小论文阐述计算机技术在各自专业中的应用,论文成绩作为期末成绩的加分。学生对于这种方式非常欢迎,纷纷到图书馆查阅资料,走访本系学长、教授,有的班还为此举行班级研讨会,请本系教授作报告。
这里,摘录来自清华大学不同院系学生的小论文,以展示在大学一年级学生眼中计算机技术与各专业的关系。
周丹彤:
计算机技术在土木工程领域有着十分广泛的应用,在对图形的处理方面发挥了传统人工绘图无法比拟的优越性。计算机辅助设计(Computer Aided Design,CAD)是随着计算机技术和计算机设备的飞速发展而产生的一门新兴学科,是建立在近代计算机软、硬件技术和工程技术基础之上的交叉学科。
计算机程序设计技术在CAD技术的应用与开发方面均有着不可替代的作用。
ADS(AutoCAD Development System)系统能利用C语言的结构化编程手段,使应用程序以外部可执行文件的方式在AutoCAD环境中运行。ADS实际是一组可以用C语言来编写AutoCAD应用程序的头文件和目标文件。ADS应用程序级可以充分利用AutoCAD本身具有的强大功能,同时有拥有C语言运行函数库的全部功能。而从AutoCADR13.0版开始,AutoCAD提供了更为高级的开发工具ARX(AutoCAD Runtime Extension),它以C++为基本开发语言,充分发挥了面向对象变成的诸多优势,使得应用程序运行速度更快,访问和操作图形数据库更为方便。正如C++语言可以兼容C语言一样,在ADS和ARX之间,AutoCAD提供了成为ADSRX的编程手段和程序库,实现了对ARX和ADS程序的兼容。
而最新出现的ObjectARX在建筑结构等各种交互计算与绘图的应用领域发挥着重要的作用。在AutoCADR14.0以后的版本,用户可以利用ObjectARX编程环境,采用面向对象的C++语言来开发ObjectARX应用程序。
使用ObjectARX对AutoCAD进行二次开发,要求开发者必须具备一些基本编程知识,其中包括C或C++知识、面向对象编程概念、Microsoft Visual C++的使用,以及AutoCAD的基本操作方法等。
陈颖:
C语言比其它的程序设计语言应用范围更广。具体到本专业的应用,在单片机中应用最广,其他还用在DSP程序的开发,以及Matlab程序编写上。
在目前以及可预见的未来,单片机发展的主流在于:单片机的真正单片化、低功耗、电源电压允许宽范围波动。单片机的单片化,使得电路设计越来越简单,同时必然使得单片机型号明显增多,对开发应用人员来说,便会针对不同情况选择不同型号的单片机,C语言则使此项工作简单易行。
聂慧饶:
传统的机械制造周期长,精度低,大批量生产,很显然已经不适合21世纪的需求。传统的生产方式已经制约了机械制造技术的发展。而不幸的是,在我国,大部分地区的制造行业仍然使用的是传统的生产模式,这不仅给我国带来了极其严重的环境污染,还造成了大量的资源浪费,与我国的“可持续发展”战略背道而驰。而作为机械人,我们必须担起祖国的大任。
在21世纪,生产必然要求产品开发周期短,产品的精度高,能够满足各种用户的不同要求(即不需要大批量生产)。这其中的每个过程都与软件技术密不可分。计算机辅助设计在产品的设计与开发中有极大的作用。数值模拟在生产过程中的应用也相当广泛。传统的手工生产也正在被后起之秀“机器人”逐步取代,使用机器人可以有效地解决生产过程中的精度问题。
在这里,我的意思并不是每个机械人都必须同时掌握软件开发技术。毕竟,作为机械人,我们只需要在机械制造领域有所作为就够了。但我们还是要学习计算机语言掌握住适当的编程技术,为以后同软件专业的人才共同开发出自己的软件打好基础。虽然当前机械制造领域内已有许多现成的软件,但它们也并非都相当成熟,而且绝大多数不出自我国之手。市场上,何曾见过完全由我国自主开发的大型软件?所以,发展的空间还是很大的。
21世纪有太多的软件技术等我们去开发,有太多的机械制造技术等我们发展。
侯鉴玻:
我是一名来自精仪系的学生,初步了解,程序设计技术在我们系也应用得非常广泛,根本缺不了。因此,下面我简单介绍一下程序设计技术在我们专业的一些应用。
ActiveX控件在程控仪器控制程序设计中的应用。
......
程序设计在机械设计计算中的应用。
......
程序设计在画法几何中的应用。
......
程序设计在水泵轴类零件强度校核的应用。
......
程序设计在机床PLC故障显示的应用。
......
其实,程序设计技术在我们专业的应用还有很多,也正是它的应用使得我们专业很多领域发展的越来越快。通过这次搜集资料,我学到了好多东西,也进一步认识到了程序设计的重要性。程序设计基础这门课非常必要,学好了它,以后我们才能进一步学习程序设计,才能在专业上有所发展和突破。
潘宁:
汽车被称为“轮子上的计算机”,对一辆汽车的先进程度的评价标准,已经逐渐从看其发电机的功率有多大,转变为主要看其芯片的计算能力有多强、汽车软件的功能有多强。现代汽车是以计算机为中心的高度自动化、集成化的控制系统,该系统随着汽车功能的不断增多而日见完善和复杂。
国外有人预计,将来汽车中90%的创新有赖于电子技术,而创新中的大部分将依靠软件来实现。
陈颖:
程序设计在任何一个工科领域都有广泛的应用,而对于强调信息快速传递处理的工业工程专业更是如此。比如在供应链管理方面,工业工程的专业人员需要做到信息共享,这样能将整个供应链,从供应商、生产商到零售商――整合到一起,更快地响应客户需求,降低库存,提高供应链绩效。为了达到这一目标,就要依赖各种高级管理软件。要想更进一步优化这一信息管理系统,取得效率的最大化,就需要设计新的算法做出新的软件。这是一个没有最好只有更好的方向,更是程序设计在工业工程专业的应用中最具有挑战性的方向。
具体说来,程序设计在工业工程专业中的应用可以分为以下几个方面。
1、生产方向
建模与仿真(Modeling and Simulation)
开发语言:C/C++
应用软件:Flexsim,Promodel, Anylogic, MATLAB
其中Flexsim是一个基于C语言程序设计的软件,工业工程系学生一般在大三上学期会学到
应用举例:奥运园区垃圾回收系统仿真,大型超市排队系统仿真
*制造系统实体建模
应用软件:ProE, AutoCAD
*管理信息系统(MIS)和物流信息系统
MS 的access和borland 公司推出的delphi是数据库管理软件,应用于管理信息系统就是MIS.
应用数据库软件:SQL-server,DB2,MSAccess, Oracle
用户界面开发语言:VB,JAVA
应用举例:企业MRP, ERP系统开发与维护
2、物流方向
*物流网络规划
应用软件:使用LINGO,LINDO, MATLAB等解线性规划问题
应用MATLAB, C/C++, JAVA等实现优化算法:如VRP(车辆路径规划问题),TSP(旅行商问题)等优化的开发
3、人因方向
*实验设计
统计软件:SPSS
实验界面设计:基于VB, JAVA
*虚拟现实
*用户可用性(usability)
从研究内容上看,工业工程关注工程运作的效率、成本、质量等方面问题。
在考虑效率问题时,工业工程涉及到优化,其中包括线性规划、动态规划等等,一般会在运筹学中学到。这些问题如果是小规模的则可以通过手动解决,但大规模的就只能通过算法解决,而算法都是通过程序(一般是通过C++程序设计)实现的。
计算机科学是一种创造性思维活动,其教育必须面向设计。计算机的本质是“程序的机器”, 只有懂得程序设计,才能懂得计算机,真正了解计算机是怎样工作的。培养学生程序设计能力对计算机专业的学生来说不仅是培养职业技能的需要,也是培养大学生创造性思维的重要途径。学习程序设计语言可以培养学生运用算法来解决实际问题的能力,这种解决问题的方式是计算机所独有的,也只有通过对计算机的程序设计语言和程序设计方法的学习才有可能获得这种解决问题的能力。
1 程序设计在计算机学科中的地位
程序设计是利用某种计算机语言,编制完成某一特定功能的程序的过程,是涉及描述、开发及有效实现求解的一系列活动,是利用计算机实现自动化的重要手段。
计算机学科主要是系统地研究信息描述和变换的算法过程,包括它们的理论、分析、设计、效率、实现和应用。可以这样说,一切算法的基本问题是“什么能被自动化”以及“如何有效地自动化”。这个自动化的过程就是程序设计的过程。
程序设计语言是人们学习计算机的最基本的工具,也是人们学习计算机基础与应用知识的基本课程。通过学习,使学生掌握程序设计的基本概念、基本知识和基本方法,养成良好的程序设计风格,得到一定的程序设计训练,具备初步编写程序解决实际问题的能力。程序设计也正是有形表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,是理论、抽象、设计和应用的综合能力培养过程。因此程序设计是计算机学科教学的重要内容之一,对计算机专业人才素质的培养至关重要。
2 程序设计的知识和能力构成
根据循序渐进的原则,与程序设计有关的教学内容主要有:计算机基础知识和操作、程序设计语言和基本的程序设计方法、最基本的数据结构及其基本算法、常用的算法设计方法等。在学习这些知识的同时,必须与能力的训练有机地结合起来。程序设计能力表现在以下几个方面:
1)自然语言能力。要有较强的运用自然语言描述现实事物的能力,只有运用背景知识正确且清晰地陈述问题及其求解目标,才能确定程序的功能。
2)数学描述能力。程序设计是为了告诉计算机做什么和如何做。这就需要利用定义、定理、公式、函数等数学工具把问题形式化,建立数学模型。
3)数据结构设计能力。选择合理的存储结构,在计算机中表示数学模型,是程序设计的一个重要方面。
4)算法构造能力。好的程序由精心构造的、好的算法构成。给出问题求解的离散化计算过程,是程序设计中最具有创造性的工作。
5)程序编码能力。用某种程序设计语言表达算法,尽管这种能力往往被认为技术含量不高,但也需要对程序设计语言的熟练掌握和对算法设计的深刻理解。
6)程序调试能力。程序调试能力是一种专业综合技能,需要对程序设计语言和程序结构有深刻的理解,需要熟练的操作技能,需要会设置测试数据和设置程序断点,这些都有待于学生在实践中逐步积累经验。
可以说,程序设计能力的高低很大程度上反映在驾驭自然语言、数学语言和计算机语言的能力上。这3种语言是人们毕生有用的3种通用智能工具。前两者是后者的基础,良好的英语和数学训练是学好程序设计语言和培养程序设计能力的重要基础。
3 培养程序设计能力的有效策略
知识的价值在于运用,知识的运用需要技能,而技能的形成则依赖训练。程序设计知识的学习和能力的培养需要各方面的知识基础,它是一个系统的教育训练过程,需要多个教学环节的紧密配合才能完成。
1)明确教学要求
程序设计语言课程一般是为应用性教学而设置的,因此,课程的教学不仅仅是传授知识,而且应该强调应用性,应该以培养学生的能力为主。程序设计语言的内容比较丰富,在教学中如果面面俱到,必会耗费较多课时,而且教学效果不一定好。因为过分强调程序设计语言的系统性和完整性就可能会转移学生对课程重点的注意力,关键在于教会学生如何正确运用程序设计语言编写程序,训练实用编程能力。所以必须突出重点,突出应用性,侧重教思想,即把程序设计语言的基本思想、基本环境、基本概念、基本知识和基本方法教给学生,使他们在学习中对硬件、软件环境、程序设计的基本思想和基本技巧,所学程序设计语言的基本概念和使用方法以及编程技术有一个比较全面的感性认识,从而提高解决实际问题的能力。
2)打好数学基础。严格的数学训练是程序设计能力的基础,学习和加强排列与组合、数列、数学归纳法等离散系统的数学方法对提高程序设计能力尤为重要。问题描述和建立数学模型是程序设计的前奏,数学归纳法、穷举法、构造证明法等证明技巧是算法设计方法的基础。
3)强化英语水平。程序设计语言的符号系统以英语为基础,程序设计文档语言首选英语。英文资料是计算机最新和最大的技术资料来源,英语水平是我国软件产业发展和参与国际竞争的制约因素。
4)重视阅读训练。从某种意义上来说,程序设计是用程序设计语言和方法进行的一种写作。可以想象,如果学生没有阅读过一份完整、规范、有实用价值的标准程序,即使记住了有关语言的语法规则,也不可能写出像样的程序。所以,大量阅读、分析、修改和扩充典型的算法和程序,是提高程序写作能力的有效途径。而这个重要学习环节往往未得到应有的重视,缺乏配套的程序设计阅读分析教材。教师应经常指导学生阅读程序,理解程序,提高学生分析程序的能力。
5)注重算法设计,突出数据结构内容。瑞士科学家、PASCAL语言和MODULA-2语言的发明者沃思(Wirth)教授提出了著名的公式:程序=算法+数据结构。这个公式表达了程序的实质,说明对于一个程序设计问题来讲,算法与程序设计是紧密联系的,绝不能脱离数据结构去讲解算法设计。程序设计语言的教学应该结合数据结构的基本内容。对于同一个计算问题,选用不同的数据结构,其算法大不一样,算法的优劣程度也不同。因此,要教会学生对不同的问题选择合适的数据结构。在整个程序设计课程中,必须强调算法设计方法,通过不断的算法设计训练,使学生切实掌握迭代、枚举、递归、分类等常用算法设计方法。
6)更新教学内容。计算机学科是一门综合性学科,而且程序设计语言的应用领域在不断扩大和发展。因此,在教学中应结合专业的特点和教学的要求,将软件工程的思想方法贯穿于整个教学过程,介绍程序设计语言的最新发展和应用,重视面向对象程序设计方法的引入,搞好教材内容的更新。如图形程序设计、下拉式或弹出式菜单、计算机病毒防治等等。这样不仅能把最新的知识和最新发展动态充实到教学上来,大大丰富了教学内容,而且使学生加深对程序设计语言的理解和掌握,保持对信息技术和专业的兴趣,及时跟上信息技术日新月异的发展趋势,在今后工作中保持领先地位。
7)采用先进教学手段。用传统的课堂教学方法讲授动态的算法和数据结构是十分低效的,像排序、递归等抽象动态的内容讲解就常常是费力不讨好。应该根据课程特点,采用先进的现代教学方法,如直观教学方法:利用挂图、教具等讲解,以及计算机辅助教学(CAI)和计算机辅助学习(Computer Aided Learning,简称CAL)进行教学,通常开发利用与课程内容与教学特点相适应的多媒体课件进行教学。它们是讲解算法和进行程序设计训练的最佳教学平台,既能增加学习的趣味性,又可利用图形的直观性帮助抽象和动态过程的理解。
8)加强实践环节,强化创造性思维能力培养。在教学中,常常听到学生提出这样的问题:“程序设计语言有什么用?”,有的学生还反映:“程序设计语言并不难学,就是不知道如何应用?”一些学生学到了一定的科学知识,但上机动手水平低。这种现象与普遍忽视实践环节有关。为了扭转这一局面,在整个教学过程中,必须强调实践环节的重要性,充分安排上机实践时间,加强系统训练和实践能力的培养,强化创造性思维能力培养。根据课程特点,在教学中,采用案例驱动教学,进行兴趣引导;在实践中,可以精心组织一系列由易到难、由浅入深、配套衔接、结合学科学习、有一定设计技巧的程序设计作业,最后再安排一次综合性强、有一定难度的课程设计实践,对学生进行项目训练,提高学生应用能力。通过上机作业和课程设计的完成,使学生独立思考,各显才干,总结经验,培养他们的动手能力和编程能力,以及分析问题和解决问题的能力。
4 结论
总之,培养学生计算机程序设计能力的方法和途径很多,但是编程序不难,编好程序不易。作为教师,必须从培养学生编程思维的角度出发,按照以上策略认真进行编程知识的教学和技能的培养,加强实践,提高学生科学思维的能力,真正学会程序设计的真本领。
参考文献:
[1] ,王楠.浅谈程序设计语言课程教学方法[J].吉林大学学报(信息科学版),2005(S2).
[2] 徐进华.提高学生程序设计能力的几个措施[J].计算机时代,2005(11).
(2)对学生的知识面,掌握知识的深度,运用理论结合实际去处理问题的能力,实验能力,外语水平,计算机运用水平,书面及口头表达能力进行考核.
2.要求
(1)要求一定要有结合实际的某项具体项目的设计或对某具体课题进行有独立见解的论证,并要求技术含量较高.
(2)设计或论文应该在教学计划所规定的时限内完成.
(3)书面材料:框架及字数应符合规定
3.成绩评定
(1)一般采用优秀,良好,及格和不及格四级计分的方法.
(2)评阅人和答辩委员会成员对学生的毕业设计或毕业论文的成绩给予评定.
4.评分标准
优秀:按期圆满完成任务书中规定的项目;能熟练地综合运用所学理论和专业知识; 有结合实际的某项具体项目的设计或对某具体课题进行有独立见解的论证,并有较高技术含量.
立论正确,计算,分析,实验正确,严谨,结论合理,独立工作能力较强,科学作风严谨;毕业设计(论文)有一些独到之处,水平较高.
文字材料条理清楚,通顺,论述充分,符合技术用语要求,符号统一,编号齐全,书写工整.图纸完备,整洁,正确.
答辩时,思路清晰,论点正确,回答问题基本概念清楚,对主要问题回答正确,深入.
(2)良好:按期圆满完成任务书中规定的项目;能较好地运用所学理论和专业知识; 有一定的结合实际的某项具体项目的设计或对某具体课题进行有独立见解的论证,并有一定的技术含量.立论正确,计算,分析,实验正确,结论合理;有一定的独立工作能为,科学作风好;设计〈论文〉有一定的水平.
文字材料条理清楚,通顺,论述正确,符合技术用语要求,书写工整.设计图纸完备,整洁,正确.
答辩时,思路清晰,论点基本正确,能正确地回答主要问题.
(3)及格:在指导教师的具体帮助下,能按期完成任务,独立工作能力较差且有一些小的疏忽和遗漏;能结合实际的某项具体项目的设计或对某具体课题进行有独立见解的论证,但技术含量不高.在运用理论和专业知识中,没有大的原则性错误;论点,论据基本成立,计算,分析,实验基本正确.毕业设计(论文)基本符合要求.
文字材料通顺,但叙述不够恰当和清晰;词句,符号方面的问题较少i图纸质量不高,工作不够认真,个别错误明显.
答辩时,主要问题能答出,或经启发后能答出,回答问题较肤浅.
(5)不及格:任务书规定的项目未按期完成;或基本概念和基本技能未掌握.没有本人结合实际的具体设计内容或独立见解的论证,只是一些文件,资料内容的摘抄.毕业设计(论文)未达到最低要求.
文字材料不通顺,书写潦草,质量很差.图纸不全,或有原则性错误.
答辩时,对毕业设计(论文)的主要内容阐述不清,基本概念糊涂,对主要问题回答有错误,或回答不出.
对毕业设计(论文)质量要求
----论文内容符合任务书要求
1.对管理类论文要求:
·对毕业论文的要求是一定要有结合实际的本人独立论证的内容.
·要求论点明确,立论正确,论证准确,结论确切
·论证内容要求有调查研究,有统计数据,对统计数据要有分析,归纳,总结,
·根据总结得出结论.
·最后有例证说明
管理类论文毕业论文行文的逻辑要领
增强毕业论文行文的逻辑力量,达到概念明确,论证充分,条理分明,思路畅通,是写好毕业论文的关键.提高毕业论文行文的逻辑性,需把握以下几点:
(1)要思路畅通
写毕业论文时,思维必须具有清晰性,连贯性,周密性,条理性和规律性,才能构建起严谨,和谐的逻辑结构.
(2)要层次清晰,有条有理写毕业论文,先说什么,后说什么,一层一层如何衔接,这一点和论文行文的逻辑性很有关系.
(3)要论证充分,以理服人,写毕业论文,最常用的方法是归纳论证,即用对事实的科学分析和叙述来证明观点,或用基本的史实,科学的调查,精确的数字来证明观点.
(4)毕业论文行文要注意思维和论述首尾一贯,明白确切.
(5)文字书写规范,语言准确,简洁.
2.对工程设计性论文要求:
·有设计地域的自然状况说明和介绍
·有原有通信网概况介绍及运行参数的说明
·有设计需求,业务预测
·有具体的设计方案
·有相应性能及参数设计和计算
·有完整的设计图纸
例如: A市本地SDH传输网设计方案
一,A市概况简介
二, A市电信局SDH传输网络现状(或PDH传输网络现状)
1, A市本地网网络结构,交换局数量及位置,传输设备类型及容量
2, 存在的问题及扩大SDH网的必要性(或建设SDH网的必要性)----需求及业务预测
三, A市电信局SDH传输网络结构设计方案
1, 网络拓扑结构设计
2,设备简介
3, 局间中继电路的计算与分配
4, 局间中继距离的计算
四, SDH网络保护方式
1, SDH网络保护的基本原理
2, A市电信局SDH网网络保护方式的选择及具体设计
五, SDH网同步
1, 同步网概念与结构
2, 定时信号的传送方式
3, A市电信局SDH网络同步方式具体设计
六, 方案论证,评估
3.计算机类型题目论文要求:
管理信息系统
·需求分析(含设计目标)
·总体方案设计(总体功能框图,软件平台的选择,运行模式等)
·数据库设计(需求分析,概念库设计,逻辑库设计,物理库设计,E-R图,数据流图,数据字典,数据库表结构及关系),
·模块软件设计(各模块的设计流程),
·系统运行与调试.
·附主要程序清单(与学生设计相关的部分,目的是检测是否是学生自己作的).
校园网,企业网等局域网设计
·功能需求
·对通信量的分析
·网络系统拓扑设计
·设备选型,配置
·软件配置
·子网及VLAN的划分
·IP地址规划
·接入Internet
·网络安全
例如:××人事劳资管理信息系统的开发与设计
1,开发人事劳资管理信息系统的设想
(1)人事劳资管理信息系统简介
(2)人事劳资管理信息系统的用户需求
2,人事劳资管理信息系统的分析设计
(1)系统功能模块设计
(2)数据库设计
—数据库概念结构设计
—数据库逻辑结构设计
(3)系统开发环境简介
3,人事劳资管理信息系统的具体实现
(1)数据库结构的实现
(2)应用程序对象的创建
(3)应用程序的主窗口
(4)菜单结构
(5)数据窗口对象的创建
(6)登录程序设计
(7)输入程序设计
(8)查询程序设计
(9)报表程序设计