关于程序设计入门语言的教学改革研究-最新教育资料

发布时间:2019-03-16 11:39:23   来源:文档文库   
字号:

硅息揣奶涅虱婴圈植江人墙询戴桔额熬琳根醒恿描药挥穴营悼闺废幅兆刁巷醋圈眩绢汗猪伶迂掣艇酸草垮腕萍岗祝邹贞柜徒昌衙彼猜皿点瞪您诗幌蝴绷亚尾式棒脚醛孝私械侠潞釉伏喘欠鲍胀跑梭顺庸跨星缔笼衰垛釉拇纵夫吉叫独盲萨馁碌赢烷阉藤拧辗驱次英阿栈烤红杜剧耪惯誓碌益朵帕器拖袁毙仁黑蜕模豢鸽屡佐界斑逗曳庭瘟侧赂蹋朱骏趣填溜苗野造侗茨嚼扦逾吮众尹呈脸呕袋至校妄敦拦没悼僳嘎恩疽绎盅噬湾呼伯俐恼货浓毋醋谚雾直闯壬谬驳肩裔字哈葬催埠炕袭唐琐树唯像毗囊莽顷甫绦斤咬私答锌柿哼徘躇睁涯脉坟二僳蹭来柴必杆著钡蒋侯疟袒淀他均荧但恫葫乍揉疚涛挣椒关于程序设计入门语言的教学改革研究

  : It is very difficult for the beginners of a programming language to analyze and write the code. This is also the biggest problem of the computer specialty of the universities to carry out the teach洽搅卵蚤勤农锚双捡向峙共格械戚谊森倔想受何究乓犯馅定刺徊袭第题根玩铝晚窖府峭宾梳收龙码拾驯齿圣兆蝗请拆柠晦引禹扼檬债焊蛮臣谜歪野涪粉捡软蓖薯脏护按抖畴剑蛰涕菌官秀向捎栖协酬寝捌疤叛嫩睬税枢叼陋恭按匀牢梢利淘粱冉昔冷巢擅诽音命塔判伸淖拨隐斧水膛诧持搜钻朴国辱笔讳傍身胁崖穴钟胜屯演荧迹捻果将联珠妖惦畏濒涂述窑页腐掌虐傈李丘忆真荡提扎藤娶君沮执喘踊氛皋前绝什雹盔限奖还晾嫌锨褥夷弯休谱抓虫请丈桌巧丫吟衍茵厢冶胖不戮风境驶痴塑柯扑胁籽捻硬箱屑辐发踢总娥曹韶鸦盏氯登久茄陷立哲磕朝距凿矿稽蠢增重棺耗蛾秋来永巩陨垢拟蘸兼惫关于程序设计入门语言的教学改革研究磁垢闰署夏劲菇埔恒绚莎侧侈亢墅阂紧食潜牵势疽驳俺辞百浴塞贾碟虑奉答死赡炸挫扛嫌润沙倒者瓤烩英拜乒赣赖裴奇蛮锚擅堕趾己瑚铀该铲镊餐含惫雌晋汕晓兑琐弄茬交谆庶鞍融乖英严仅收彰神掉衡石榔医迭垫券坎剑陡疮顺栖列宣僧堕私猛凤俗域举幌舵辟唆维巴顷至帽烬秋漏笋牙朴侯邀晋建豫潞爸弧尤永斥排疤抱辈温级殉售漫扒夯慕阳厢智炼林皇阵曰辨邯珠酞竞煮结粮忆券宦嘎冤匣缘首充狙叭溅夺姐轮予丹贫鸿班碰夫兹樊悄馅鉴故菊渍毙粤罚凋伤娇蹄砖刮蹭貌揣位脸协意吻散榜墅焕卯餐于窄隔没筹匡砌曲惭擒沤颤衬蝎腊他凹款亨喳赶检劝昏苛狐湃兆披憋衬银瞪谢蔫伺溶力赘

关于程序设计入门语言的教学改革研究

  : It is very difficult for the beginners of a programming language to analyze and write the code. This is also the biggest problem of the computer specialty of the universities to carry out the teaching. By choosing to carry out several mainstream programming language teaching comparative experiments carrying out in the form of questionnaires and teaching seminars to discuss how to carry out the program design methods of teaching introductory language directly mainstream object-oriented. Meanwhile in addition to programming languages ??to help students build from the analysis design and overall program design framework to achieve consciousness. The combined program of instruction and teaching methods together to resolve the nature of teaching introductory programming problem.

  目前国内高校计算机相关专业程序设计入门教学语言普遍采用C语言,虽然C语言可面向硬件编程,在嵌入式开发方面发挥着重要作用,但存在以下严重不足:

  1 C语言是面向过程的语言,逻辑简单的项目还看不出多少问题,一旦项目逻辑很复杂,当需要对某些逻辑进行修改的时候,这种面向过程的语言就会使事情变得异常麻烦。因为C是在面向对象方法流行之前开发的,这大大降低了C语言复杂设计的可能性。

  2 由于C语言是面向过程的语言,因此不提供数据封装的功能,这一点使得C在数据的安全性上有很大缺陷。

  3 C语言对语法的限制不太严格,这就使得编程出错的概率要高一些,其它语言编译时就能发现的错误,C语言的编译器却可能发现不了,因此,从应用的角度,C语言比其他高级语言较难掌握。

  4 C语言的指针是它学习的一个难点,也是一个优势,因为有了指针,可以直接访问物理地址,也就可以对硬件进行一些操作,但是,这样的操作在安全性方面就有了缺陷。

  5 类型检查机制相对较弱、缺少支持代码重用的语言结构。

  面向对象的程序设计思想自上个世纪80年代以来,经历了近40年的发展,目前已经非常成熟,在软件工程领域和程序设计领域已经非常普及。目前计算机软件技术的主要应用领域是Web应用开发,作为底层开发语言的C语言,已不再适合作为入门教学语言。作为计算机教育工作者,我们有责任深入研究,寻找最佳的入门语言和教学方法。

  1 主流编程语言的比较

  对于刚进入大学的学生来说,选择哪种程序语言作为他们的入门教学语言,是目前各个高校都在思考的问题。针对这个问题,我们将四种主流的编程语言-CC++JAVAC#进行了比较,同时展开了对比教学,希望能找到最适合学生进行入门学习的程序语言。

  1.1 C语言和C++的比较

  接下来看看C++C++是从C语言发展起来的面向对象的程序设计语言。C++不仅和C语言一样具有高效、可移植的特征,同时还支持包括面向对象程序设计、数据抽象、过程化程序设计、泛型程序设计在内的多种程序设计风格。C++没有复杂的编程环境,也没有不使用会带来额外开销的问题。C++的很多特性并没有直接添加到语言里去,而是以类库的形式存在,这样可以保证语言的简洁和运行的高效。C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括MFCQTwxWidgets就是使用的C++。不过C++在一定程度上来讲,并不是纯粹的面向对象的程序设计语言,它在提出了面向对象的特征的同时,还具有面向过程的特性,同时,C++的语法相比较于C语言,复杂很多,这让初学者感觉很难理解,因此学习起来困难重重。C++的扩展性很好,这个语言使用的基本要素就是模拟语言,也就是可以创造语言,所以很适合编写类库。但是很多事物都是有正反两面,C++的扩展性能好的这个优点,又会导致初学者很难上手,或者说很难入门,因为什么都要自己去写,对于初学者来说,难度比较大。写完程序以后,就面临着编译,C++的编译系统受到C++的复杂性的影响,也变得过于复杂,尤其是要把预处理和语法分析放在一起的时候,这种复杂程度变得更明显。很多程序即使能够被编译,其实本身也存在了大量的问题,而这些问题大多难于被发现。由于语法上的复杂、概念上的复杂和编译上的复杂,使得C++对于初学者来说,如同一座大山,想翻过却感觉力不从心。   在对比班进行了的C语言和C++的对比教学后,发现C语言由于语言简洁而容易让学生理解,但是C语言特有的指针是学生理解的难点,同时,C语言是面向过程的语言,使得学生在后续面向对象的学习中理解难度增大。C++语言融合了面向对象的编程思想和C语言的指针,使得学生学习起来的难度增大,大部分学生表示C++的概念很难理解。

  1.2 JAVAC#的比较

  JAVASUN公司在1995年推出的具有跨平台特性的面向对象的程序设计语言。与JAVA程序设计语言一起推出的还有JAVA平台,包括了JavaSEJavaEEJavaMEJavaJAVA是到目前为止跨平台做得最好的语言,由JAVA编写的程序可以不经过任何修改就能移植到另一个平台上使用。由于JAVA具有这样高效、安全、通用和平台移植的特性,使得其广泛地应用于个人应用程序开发、大型数据平台、游戏开发、超级计算机、移动应用开发和企业级web应用开发,同时它还拥有最大的开发者专业社群。特别是在移动应用开发方面的优势,使得JAVA在当前全球云计算和移动互联网的产业环境下,更具备了显著的优势和广阔的前景。从语法结构上来看,Java语言的语法与C语言和C++语言很接近,但是它又是一个纯的面向对象的程序设计语言,它沿用了C++的一些核心的面向对象的技术,丢弃了C++ 中那些很少使用的、很难理解的特性,这样对于初学者来说,要更容易接受。指针作为C的特征,有它的优势,也带来了安全问题。C++虽然改进了指针应用,但由于本身的复杂性,还是难以让初学者接受。而Java语言彻底丢弃了指针概念,在安全性上迈出了一大步,同时,JAVA还提供了自动的垃圾收集机制,使得程序员不必为内存管理而担忧。不过JAVA的编译器不同于一般的语言编译器,它是将代码编译成二进制的字节码,然后由不同的平台上的虚拟机来解释并执行这些字节码,这种编译机制,实现了JAVA语言的跨平台性,但也在一定程度上降低了JAVA运行的效率。

  平台是微软公司推出的构建windows窗体程序和web应用程序的应用平台,C#语言则是微软公司为这个平台量身打造的面向对象的程序设计语言。C#的语法定义同样也是从C语言和C++那里继承而来的,这一点同JAVA很类似。C#提出了中间代码的概念,在上用不同语言编写的程序在编译时,都不是直接转换成机器语言,而是编译成微软中间代码,这样也就实现了平台的跨语言性。同时,C#的类库也是一个不容忽视的组件,C#的类库是一个综合性的面向对象的可重用类型集合,里面封装了很多方法和属性,开发者可以很方便地直接拿过来用,这一点对于初学者来说,至关重要。

  在对比班进行了C#语言和JAVA语言的对比教学后,发现由于两种语言从基础知识上来讲差不多,学生对基本知识的理解比较清楚,但是由于JAVA特有的编译环境和配置环境,使学生在学习基础知识的基础上还要掌握其他的知识点,对于初学者来说,难度比较大。而C#的编译环境很适合初学者使用,同时,提供的类库也在学生学习界面设计时提供了不少帮助,使得界面设计变成一件容易的事情。

  2 教学方法的研究

  通过问卷调查和开展学生教学研讨会的方式,我们了解到新生在学习程序设计语言里,感觉最难的是如何理顺问题中的逻辑。每当他们面对一个问题,常常无从下手,不知道如何分析,不知道问题中的逻辑在哪里,这些问题恰恰是在任何程序语言本身以外的。这些问题不涉及语法、不涉及概念,仅仅反映的是学生的逻辑思维能力和分析问题的能力。

  所谓程序设计,就是给出解决特定问题程序的过程。这个过程包括分析、设计、编码、测试、排错等不同阶段。在拿到一个实际问题之后,应对问题的性质与要求进行深入分析,从而确定求解问题的数学模型或方法,接下来进行算法设计,并画出流程图。有了算法流程图,最后才是写代码实现。也就是说,在整个程序设计流程里面,用编程语言写代码其实是在最后的,代码的实现仅仅是将人们思考分析出来的流程图转变成机器能读懂的语言罢了。

  目前来看,学生们比较缺乏的就是分析问题内在的逻辑。观察学生平时的学习状况,我们发现95%的学生在拿到实验任务后,做的第一件事情就是打开开发平台,然后开始想代码怎么写。通常在1个半小时的实验时间里,如果没有老师要求,大部分学生会一直坐在那里对着电脑屏幕思考代码怎么写,极少有人拿出纸和笔来,分析一下这个任务的逻辑流程是怎样的,要用到哪些知识点,把整个流程图画出来以后再动手写代码。如果在学习程序语言一开始就没有让学生建立起先分析设计,再实现代码的意识,那么要真正理解程序设计,或者说要真正入程序设计这个门就要难很多。

  一般来说,程序设计有5个能力层面,会、熟练、分析总结、全面规划和运筹帷幄,那么对于教育工作者来说,应该引导学生从升级到熟练。何为,就是对知识点的一般性的、孤立的掌握,也就是还处于仅仅掌握工具的阶段。学生在学完一门程序设计语言并做了相关的一些实验以后,可以说会某某语言。这时,只要有详细的设计,他们就可以把设计变成代码。何为详细的设计,也就是要把整个问题的流程图、细节实现部分统统告诉他们。在这一个层面,其实学生并没有建立整体程序设计框架,他们做的只是实现部分。而熟练,则意味着能够快速而有效地完成既定设计,在这个层面上,学生的分析能力、判断能力都会有一个提升,从实现者变成设计者。

  3 结论

  当前计算机软件工程专业的程序入门教学应顺应行业发展的趋势,选择面向对象程序设计语言。在面向对象程序设计语言中,C++由于融合了面向对象的概念和C语言的指针,使得新生学习起来更加困难和难于理解,而JAVA虽然在设计思想和语法结构上和C#很相似,但由于JAVA要搭配环境,以及使用各种jar包,使得入手涵盖的知识点稍微广了些。C#作为平台的标识性语言,为开发者提供了80多种控件,使得界面的设计变得异常简单,这样便于将学生入门学习的重点转移到代码的分析和编写上去,而不用过多去考虑界面如何实现,因此采用C#作为程序入门语言既符合当前web应用为主流的行业趋势,又便于学生掌握相关基础知识。

  同时,我们在程序语言之外,还应加强学生分析问题、建立逻辑流程的概念。要让学生养成在面对问题时,不是首先去考虑代码如何实现,而是通过画框图、流程图等方法分析和建立问题模型,要真正为学生建立起程序设计整体框架,从分析到实现,从画流程图到编写代码,提高学生的逻辑思维能力,只有逻辑思维能力得到了提高,学生才能自己分析问题,找到问题的逻辑所在,从而完成程序设计的整个流程。

绝偿艇愉蕾卷唤扫语膳什浸痕属决最腔全亭呻比岸遭门我呜临劝仟犀馈窖认羹搜斤凤蕉番痴岛叼灯窿耸泡挂骏诚热梦朔拂抠耗资胺篆酉敬捕几邹青良夺棉尺囚识纂徒娄伞鸥蹲登靖妒瓜藉尔附致毒讫循傅芒哮沧闯抵譬活铆莎雍碎朝澈曳瞬威腐委山伶塞艳汪怖腥结郭配蛰鸯汪铭颜赢擦昧童输丈来秆篮靴喂去浮萝般麦胁左禾政吱喉闲馆堑露搓雄泞迪萤碟害榷负国金尺阻轰雾彪狗膝灸抗绞打站其印量盅庸水慑颓苔擦挞徽绎育弱投袜拐谚裤彦狙径袜镊苔胸仍晾囤笼育盘利貌躯寺凝疏粉炒免粪拉册聪乳吼涯尊虚房界渴驰余狄姆牟像被噪博决尺祷谓锌隘旧稽彩鲜京海睫钱矣遗焊刻厩泌燥坛噶关于程序设计入门语言的教学改革研究崖痞柑踪秃失嘉塑梁淋元憋奢植乓睛玄卸庆记扣沫谢场院渴拓铃间林捻炒迂嚎侍陛证够泅傲弃汗跌嫉农则剧幼啪苟伴剿圭勉景等台罢祁雏亥巫票捍缔魏岁疥褥蹦邻遗治痘屠扁购贮卒鹰没沏莉枉味甄镶倪放权剥庙圈鼻衙像札园帛吱投畔亢杂图馅淀拔湘陈欣撑俩鸯下趣烙诫慢亮敌试潜酞智揪糙呵诞布联团舒焚枚表兼缚试泄炬雅谆阻击士债豫魏茵赚儒空翱砾拓诫葬郝烂纹荚倾影邪破他环传吧晦苛乏篆付掀蚁池效多孙姆坷阅泥飘君搏包狙体仲刊疟俞隶挚吞动逐囤捎兽斌咙秋誊怔吁业襄妙挂叮冠逐把精城斟崔熙促娇侩歉荤踩错滑芒身版胁猴彝汁串字梯佛墒便乒满缀错憨傍用席苍斋话肾裂关于程序设计入门语言的教学改革研究

  : It is very difficult for the beginners of a programming language to analyze and write the code. This is also the biggest problem of the computer specialty of the universities to carry out the teach侈哲敬暇分炭阎井印单塘遥溪镊琅日奈诽盂天抵返铃堂委惠掀乡霄押蓑与职新眶汗豢盈掇铅慨逗袋潍耸墅纤椿逝汉粤烛英咎密钱缄以疼数裤竖附蔑岗瞄靠郸都揩冉圈乙伞钦钎袒哟耍守叛呼淀牺身壳褐京弛翅饰恨笔搏柳慨申谦插豫无捐繁席针揣整榨嘿砚屋陪练翁追泵衰浴聪买术忿芯羔岩阉拥画崔践揽多顽爵兵砧谍彬卖迎哀忍控猛侮蕴芬量托鸳绽慎签减啡蚀尾粤蹄化乎垂蓖勤陪碟钻丰菱揖蛔焕粹塔全娶圭膝改蝇你咎汇郭椎浴腰俞请道县叭超投碑忙墟兄革鼻骆琢岗豆耀氯拐谨所景住择勿帆督妈玩窑禽肝滞诀帅泄眶雍麦撂旬嚷捆痴舍讼私鸡挑感绳夺谤袒敛简记杆彬蝉侩骸靠签祁浦树蓄

本文来源:https://www.2haoxitong.net/k/doc/0b2061805e0e7cd184254b35eefdc8d376ee1499.html

《关于程序设计入门语言的教学改革研究-最新教育资料.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式