论文部分内容阅读
摘要 本文针对高级语言程序设计(C++)课程的教学现状,从教学模式、教学设计方法和教学内容三个层面对该类课程提出改革措施,强调学生的实际应用能力,并融入团队精神和规范编程等软件工程思想。
关键词 C++教学改革 教学模式 教学方法 教学内容
一、引言
“高级语言程序设计(C++)”一直是计算机专业、信息类和电类一年级学生开设的专业基础课程,部分其他理工科专业也将此课程纳入公共基础课范畴。本课程培养学生软件设计逻辑思维和编程能力,特别对于计算机专业的学习。是后续专业课程必不可少的先修课程。目前,课程的建设综合考虑了各专业学生的接受能力和学习条件,事实上,对于计算机学科领域的学生,C++作为他们学习的第一门计算机高级语言,掌握和运用的好坏不仅仅影响了他们对整个学科知识体系的理解,更体现了他们的专业素质和技巧。
通过一段时间的教学,我们发现,目前存在的主要问题是课程学习完毕以后,学生能掌握一定的理论知识,但实际动手能力较差。大部分学生在通过一年的学习后,只会解决书本和试卷中的练习题,但不会处理解决实际问题,不能动手编制较复杂的程序。因此,我们建设更适于计算机相关专业的C++课程,而改革的核心在于实验。
二、教学模式改革
笔者认为,当前高校教学改革的长期目标之一是要改变传统的以教师为中心的教学模式,建构一种既能发挥教师的主导作用又能充分体现学生认知主体作用的新型教学模式。在此基础上逐步实现教学内容、教学手段和教学方法的全面改革。之所以要把教学模式作为此次教改的主要目标,是因为教学模式是指在一定的教育思想、教学理论和学习理论指导下,在一定环境中展开的教学活动进程的稳定结构形式,也就是说,教学模式是指按照什么样的教育思想、教学理论和学习理论来组织教学活动进程。所以教学模式是教育思想、教与学理论的集中体现。教学模式的改变将要引起教学过程的深刻变革,也必将导致教育思想、教学观念、教与学理论的根本变革。
从我们目前的现实情况看,教学模式基本上都是以教师为中心。这种模式的优点是有利于教师主导作用的发挥,便于教师组织、监控整个教学活动进程,便于师生之间的情感交流,因而有利于系统的科学知识的传授,并能充分考虑情感因素在学习过程中的重要作用。其严重弊病则是:几乎完全由教师主宰课堂,很大程度上忽视了学生的认知主体作用,不利于具有创新思维和创新能力的创造型人材的成长(按这种模式培养出的绝大部分是知识型人材而非创造型人材)。
建构主义学习理论和学习环境强调以学生为中心,要求学生由外部刺激的被动接受者和知识的灌输对象转变为信息加工的主体、知识意义的主动建构者,建构主义的教学理论则要求教师要由知识的传授者、灌输者转变为学生主动建构意义的帮助者、促进者;要求教师应当在教学过程中采用全新的教育思想与教学模式(彻底摒弃以教师为中心、强调知识传授、把学生当作知识灌输对象的传统教育思想与教学模式)、全新的教学方法和全新的教学设计。因而很自然地,建构主义的学习理论与教学理论就成为以学生为中心教学模式的主要理论基础。以学生为中心的教学模式注意在学习过程中发挥学生的主动性、积极性,相应的教学设计主要围绕“自主学习策略”和“学习环境”两个方面进行。前者是整个教学设计的核心——通过各种学习策略激发学生去主动建构知识的意义(诱发学习的内因);后者则是为学生主动建构创造必要的环境和条件(提供学习的外因)。
上述兩种教学模式各有其优点和不足,结合我们社会和学校自身的实际情况,我们希望能够实践一种更加符合实际的“主导一主体”的双主教学模式。双主模式介于上述两种总模式之间,它不是以教师为中心,也不完全是以学生为中心,而是既发挥教师的主导作用(而不是像“教师中心模式”中那样发挥“主宰”作用——自始至终主宰课堂,完全由教师唱主角),又要充分体现学生的认知主体作用,即要把“教师中心”和“学生中心”两者的长处吸收过来,而把两者的消极因素加以避免。这就要求在基本保留“传递一接受”教学活动进程(在大班授课情况下,这有利于教师对教学的组织和主导作用的发挥)的条件下,要对这种“进程”加以认真的改造,即在此进程中要利用计算机为核心的技术手段,在建构主义理论指导下通过人机交互让学生更多地去主动思考、主动探索、主动发现,从而形成一种新的教学活动进程的稳定结构形式:在整个进程中,教师有时处于中心地位(以便起主导作用),但并非自始至终;学生有时处于传递一接受学习状态,但更多的时候是在教师帮助下进行主动思考与探索;教学媒体有时作为辅助教的工具,有时作为学生自主学习的认知工具;教材要素也各自有不同的作用,彼此之间有不同的联系,从而形成一种新的教学模式——“双主模式”。这种模式的理论基础既有“传递一接受”教学理论和行为主义学习理论,也有建构主义的教学理论和学习理论。
教学模式的改革必将引起教学策略、教学设计方法和教学内容的变化,因此,我们还要对现有的教学策略和教学内容进行一定的改造,以适应模式的转变。
三、教学设计方法改革
在双主教学模式的背景下,可以采用很多不同的具体的教学设计方法,如支架式教学设计、抛锚式教学设计、随机进入式教学设计等,这些设计方法可以在具体的教学过程中有选择性地采用,在我们新的教学改革方案中,我们也给学生定义了这样的七个学习阶段:
1.选——找到帮助
选包括选老师、选教材、选参考资料、选信息来源、选学习渠道,等等。虽然一部分选择教师负责完成,但教会学生充分利用网络资源、有效利用开发工具,并以此作为他们的良师益友是非常重要的。笔者经常在第一堂课就告诉学生,教师只是一个领路人,他们的良师益友是编译器、是优秀的文献资料、是网络另一端的先行者们。
2.拓——认识程序
给学生们一些简单的例程,给学生们一段操作的步骤,让他们依葫芦画瓢地将程序输入,编译、连接之后运行。这个时候他们多数只知道是连续的点击不同的按钮的操作过程。当出现错误时,只能让他们仔细检查输入的每一个字符是否准确。但是,这将树立他们对于程序的第一印象。他们能迅速地体会到程序“启动”的欣喜和成就,尽管不是自己创作的程序。
以往教学中,习惯于先解释字、词、语句。每完成一部分内容的教学,让学生们尝试用他们已经认识的信息组成的一段代码进行实验。实际上,学生们在知识筹备的时间内,他们对于词法、语法的学习是漫无目标的,不知道什么时候有用,不知道该怎么用;自然而然以一种死记硬背的方式去学习,真正进行实验的时候,一些记忆模糊了,一些已经不记得了,再一次从头来过。
事实上,“拓”的过程中,学生对于语言知道的越少,他对于程序的运行越感兴趣,在后续的学习过程中,更加能够集中精力去研究清楚程序中的每一个组成部分。这其实是在教学的初期阶段给学生建立一个谜题的过程,而解开谜题的过程与科学探讨的过程及其相似。通过目标的创建,不 仅激发学生对于学习目标的兴趣,还可以引导他们像专业人员一样思考。再给学生准备好一些更复杂的源程序,让他们可以直接打开运行,这些都可以吸引他们的注意力。
3.临——改动程序
在原样照搬的基础上,一些变化能够激起学生更多的好奇心。通过让学生在例程上自由的进行一些改动,记录下改动的内容,猜测这样的改动将给程序的运行带来怎样的变化后再次编译运行,来验证他们的想法。运用“差距理论”来调动学生的学习主动性。1994年,卡耐基梅隆大学的行为经济学家Georgy Loewenstein给出了对情境兴趣最全面的解释。他认为,当我们感到在知识上存在差距时就会产生好奇心;Loewenstein认为差距导致痛苦。当我们想知道什么事却无法知道的时候,就像我们身上有个非挠不可的痒痒。为了解除这种痛苦,我们就必须填补这种知识差距。即便看烂电影本身就是一种痛苦,我们也会耐心地坐着,因为不知道解决实在是太痛苦了。差距理论的一个重要含义是在填补差距之前要制造差距。说出事实之前,他们先要认识到他们需要这些事实才行。根据Loewenstein的观点,说服人们相信自己需要我们的信息的诀窍在于首先要强调某种他们所没有的特定知识。我们可以给学生们提出一个就他们的知识而言存在差距的问题,给他们预测结果的挑战。
“改变‘=’左边的内容程序会怎么样?”,“改变‘=’右边的内容程序会怎么样?”不管结果和猜测是否吻合,是否能分析出原因呢?“为什么改变‘=’左边的字符对于运行结果没有任何改变,但是改变右边的字符。运行结果就变了?”“如果把‘=’左右两边的内容交换又会怎样?”解决一个问题往往能引发出更多的问题,让学生在一个自问自答的过程中思考和学习。
4.仿——重写程序
在帮助学生解答问题的过程中,其实已经把语言的基本要素教授给了学生,虽然他们还会拼写错关键字,会不记得运算符的优先级别,但是他们已经知道怎么去运用每一个元素。那些字面上的错误,或者用户手册上清楚列明的问题不需要花费他们太多的时间去解决,也将随着运用次数的增加牢牢地刻在学生脑海之中。
既然他们已经清楚了每一个分词在例程中的作用,他们可以通过改写程序来实现一些类似但不同的功能。刚才他们只能把一个从1累加到10的程序改成从1累加到100的程序,再改成从1累加到n的程序,现在让学生解决一个计算2的n次方,或者n的阶乘的程序,接下来他们可以计算任意复杂的表达式了。
5.脱——创造程序
前面四个阶段是本科生必须在一年级完全经历的学习阶段,后面的三个阶段在本课程的学时内或多或少的会有一些闪现,然后一直贯穿学生专业学习的过程,乃至从事软件开发工作的职业生涯。
当前面积累的例程代码都转变成个人的编程经验,学生们面对问题不再需要摆着例程在面前。他们通过将问题不断分解,直到每个小问题都是一个自己曾经解决过的问题。把积累的那些代码拼装起来,得到新问题的解决方案。
进一步的脱离模板、程序创造,需要学生进行数据结构和算法的学习,这让他们能够组织的问题规模更加庞大,结构更加复杂。每个学生有自己拆分现实世界的角度,也有重新拼装的独特想法。同样的问题,解题的思路丰富了,编写的代码也各不相同。
6.變——创新程序
大作业或者课程设计是检验学生掌握计算机语言,并能灵活运用的好方法。在布置大作业时,让学生自由选题,只对于程序的规模,功能的完整性和知识点在程序中的应用提出。在检查学生们的大作业时,总能出现一些很陌生的代码,需要花上一些时间才能看懂看明白。到这一阶段时。老师对于学生的影响已经很小,尤其是技术的指导,学生基本形成了特有的技术风格,并感受到方法学、模式、结构框架等对于大规模开发的重要作用,软件工程对于团队开发的重要作用。老师引导学生更加关注知识体系的组成、行业的发展趋势、先进技术的产生,帮助他们开拓视野。Mitchell kapor的《软件设计宣言》说道“设计就是脚踏两个世界,即技术的世界和人及其愿望的世界,设计人员努力要做的是把两者结合到一起”。让学生懂得,技术不是全部,技术为人类服务。
四、教学内容改革
目前的教学内容主要依赖于课本,但课本由于编写周期较长,很多内容比较陈旧,而且由于缺乏可视化编程的内容,很多学生在学习完成之后无法编写标准的Windows程序,导致他们学习兴趣骤然降低。我们计划在教学内容上作出如下改进:
1.采用课本+课外书籍+MSDN帮助+网络的多元化教材
课本和相关书籍由于结构清晰、层次清楚,因此很适合学生作为系统的学习材料,但也因其更新速度慢、离今后的实际工作距离较远,导致学生学不到最新的知识,进而导致学生缺乏实际的动手能力。采用多元化的教材,一方面,可以促进学生阅读大量的中英文技术文档,提高其自主学习和研究的能力,另一方面,也可以让学生接触到最新的技术发展趋势。
2.加强可视化编程内容的学习
集成开发环境VC是可视化编程的开发工具。在以往的教学中,只关注语言本身的练习,因此只开发控制台(DOS)程序。但学生的兴趣不高,成就感不强。将可视化开发纳入C++实验课程体系,可以提升学习乐趣,尽早给学生提供实现创新想法的工具。
3.加强编程模式的学习
计算机语言的学习,不仅是语法规则的学习,更重要的是编程模式的学习。在编程特别是面向对象编程方面有很多前人总结的模式和习惯用法,这决定这一个程序设计人员水平的高低。这就好像人人都会下象棋,但真正的高手是需要有一个行棋的模式的。常见的编程模式包括简单工厂模式、工厂方法模式、策略模式、装饰模式、建造模式、单例模式、多例模式、代理模式、适配器模式、桥梁模式、观察者模式等,所有这些内容在现在的教材中都没有得到体现。
4.提倡规范化编程
好习惯从小养起,好的编程习惯也要从初学就开始培养。在实验中应强调和贯彻专业的编程规范,不仅可以减少程序中错误,更是帮助学生树立了良好的专业形象,培养职业道德,为以后的团队合作、软件工程实践奠定基础。
五、总结和展望
高级语言程序设计是计算机和软件专业专业学习必不可少的先修课程,能不能学好就意味着专业知识的基础是否扎实,直接影响到后续学习的效果。笔者认为,在传统的教学内容上,必须融入团队精神和编程规范的思想,以引导学生主动探究的方式开展教学,从而提高学生的应用能力和创新能力。
关键词 C++教学改革 教学模式 教学方法 教学内容
一、引言
“高级语言程序设计(C++)”一直是计算机专业、信息类和电类一年级学生开设的专业基础课程,部分其他理工科专业也将此课程纳入公共基础课范畴。本课程培养学生软件设计逻辑思维和编程能力,特别对于计算机专业的学习。是后续专业课程必不可少的先修课程。目前,课程的建设综合考虑了各专业学生的接受能力和学习条件,事实上,对于计算机学科领域的学生,C++作为他们学习的第一门计算机高级语言,掌握和运用的好坏不仅仅影响了他们对整个学科知识体系的理解,更体现了他们的专业素质和技巧。
通过一段时间的教学,我们发现,目前存在的主要问题是课程学习完毕以后,学生能掌握一定的理论知识,但实际动手能力较差。大部分学生在通过一年的学习后,只会解决书本和试卷中的练习题,但不会处理解决实际问题,不能动手编制较复杂的程序。因此,我们建设更适于计算机相关专业的C++课程,而改革的核心在于实验。
二、教学模式改革
笔者认为,当前高校教学改革的长期目标之一是要改变传统的以教师为中心的教学模式,建构一种既能发挥教师的主导作用又能充分体现学生认知主体作用的新型教学模式。在此基础上逐步实现教学内容、教学手段和教学方法的全面改革。之所以要把教学模式作为此次教改的主要目标,是因为教学模式是指在一定的教育思想、教学理论和学习理论指导下,在一定环境中展开的教学活动进程的稳定结构形式,也就是说,教学模式是指按照什么样的教育思想、教学理论和学习理论来组织教学活动进程。所以教学模式是教育思想、教与学理论的集中体现。教学模式的改变将要引起教学过程的深刻变革,也必将导致教育思想、教学观念、教与学理论的根本变革。
从我们目前的现实情况看,教学模式基本上都是以教师为中心。这种模式的优点是有利于教师主导作用的发挥,便于教师组织、监控整个教学活动进程,便于师生之间的情感交流,因而有利于系统的科学知识的传授,并能充分考虑情感因素在学习过程中的重要作用。其严重弊病则是:几乎完全由教师主宰课堂,很大程度上忽视了学生的认知主体作用,不利于具有创新思维和创新能力的创造型人材的成长(按这种模式培养出的绝大部分是知识型人材而非创造型人材)。
建构主义学习理论和学习环境强调以学生为中心,要求学生由外部刺激的被动接受者和知识的灌输对象转变为信息加工的主体、知识意义的主动建构者,建构主义的教学理论则要求教师要由知识的传授者、灌输者转变为学生主动建构意义的帮助者、促进者;要求教师应当在教学过程中采用全新的教育思想与教学模式(彻底摒弃以教师为中心、强调知识传授、把学生当作知识灌输对象的传统教育思想与教学模式)、全新的教学方法和全新的教学设计。因而很自然地,建构主义的学习理论与教学理论就成为以学生为中心教学模式的主要理论基础。以学生为中心的教学模式注意在学习过程中发挥学生的主动性、积极性,相应的教学设计主要围绕“自主学习策略”和“学习环境”两个方面进行。前者是整个教学设计的核心——通过各种学习策略激发学生去主动建构知识的意义(诱发学习的内因);后者则是为学生主动建构创造必要的环境和条件(提供学习的外因)。
上述兩种教学模式各有其优点和不足,结合我们社会和学校自身的实际情况,我们希望能够实践一种更加符合实际的“主导一主体”的双主教学模式。双主模式介于上述两种总模式之间,它不是以教师为中心,也不完全是以学生为中心,而是既发挥教师的主导作用(而不是像“教师中心模式”中那样发挥“主宰”作用——自始至终主宰课堂,完全由教师唱主角),又要充分体现学生的认知主体作用,即要把“教师中心”和“学生中心”两者的长处吸收过来,而把两者的消极因素加以避免。这就要求在基本保留“传递一接受”教学活动进程(在大班授课情况下,这有利于教师对教学的组织和主导作用的发挥)的条件下,要对这种“进程”加以认真的改造,即在此进程中要利用计算机为核心的技术手段,在建构主义理论指导下通过人机交互让学生更多地去主动思考、主动探索、主动发现,从而形成一种新的教学活动进程的稳定结构形式:在整个进程中,教师有时处于中心地位(以便起主导作用),但并非自始至终;学生有时处于传递一接受学习状态,但更多的时候是在教师帮助下进行主动思考与探索;教学媒体有时作为辅助教的工具,有时作为学生自主学习的认知工具;教材要素也各自有不同的作用,彼此之间有不同的联系,从而形成一种新的教学模式——“双主模式”。这种模式的理论基础既有“传递一接受”教学理论和行为主义学习理论,也有建构主义的教学理论和学习理论。
教学模式的改革必将引起教学策略、教学设计方法和教学内容的变化,因此,我们还要对现有的教学策略和教学内容进行一定的改造,以适应模式的转变。
三、教学设计方法改革
在双主教学模式的背景下,可以采用很多不同的具体的教学设计方法,如支架式教学设计、抛锚式教学设计、随机进入式教学设计等,这些设计方法可以在具体的教学过程中有选择性地采用,在我们新的教学改革方案中,我们也给学生定义了这样的七个学习阶段:
1.选——找到帮助
选包括选老师、选教材、选参考资料、选信息来源、选学习渠道,等等。虽然一部分选择教师负责完成,但教会学生充分利用网络资源、有效利用开发工具,并以此作为他们的良师益友是非常重要的。笔者经常在第一堂课就告诉学生,教师只是一个领路人,他们的良师益友是编译器、是优秀的文献资料、是网络另一端的先行者们。
2.拓——认识程序
给学生们一些简单的例程,给学生们一段操作的步骤,让他们依葫芦画瓢地将程序输入,编译、连接之后运行。这个时候他们多数只知道是连续的点击不同的按钮的操作过程。当出现错误时,只能让他们仔细检查输入的每一个字符是否准确。但是,这将树立他们对于程序的第一印象。他们能迅速地体会到程序“启动”的欣喜和成就,尽管不是自己创作的程序。
以往教学中,习惯于先解释字、词、语句。每完成一部分内容的教学,让学生们尝试用他们已经认识的信息组成的一段代码进行实验。实际上,学生们在知识筹备的时间内,他们对于词法、语法的学习是漫无目标的,不知道什么时候有用,不知道该怎么用;自然而然以一种死记硬背的方式去学习,真正进行实验的时候,一些记忆模糊了,一些已经不记得了,再一次从头来过。
事实上,“拓”的过程中,学生对于语言知道的越少,他对于程序的运行越感兴趣,在后续的学习过程中,更加能够集中精力去研究清楚程序中的每一个组成部分。这其实是在教学的初期阶段给学生建立一个谜题的过程,而解开谜题的过程与科学探讨的过程及其相似。通过目标的创建,不 仅激发学生对于学习目标的兴趣,还可以引导他们像专业人员一样思考。再给学生准备好一些更复杂的源程序,让他们可以直接打开运行,这些都可以吸引他们的注意力。
3.临——改动程序
在原样照搬的基础上,一些变化能够激起学生更多的好奇心。通过让学生在例程上自由的进行一些改动,记录下改动的内容,猜测这样的改动将给程序的运行带来怎样的变化后再次编译运行,来验证他们的想法。运用“差距理论”来调动学生的学习主动性。1994年,卡耐基梅隆大学的行为经济学家Georgy Loewenstein给出了对情境兴趣最全面的解释。他认为,当我们感到在知识上存在差距时就会产生好奇心;Loewenstein认为差距导致痛苦。当我们想知道什么事却无法知道的时候,就像我们身上有个非挠不可的痒痒。为了解除这种痛苦,我们就必须填补这种知识差距。即便看烂电影本身就是一种痛苦,我们也会耐心地坐着,因为不知道解决实在是太痛苦了。差距理论的一个重要含义是在填补差距之前要制造差距。说出事实之前,他们先要认识到他们需要这些事实才行。根据Loewenstein的观点,说服人们相信自己需要我们的信息的诀窍在于首先要强调某种他们所没有的特定知识。我们可以给学生们提出一个就他们的知识而言存在差距的问题,给他们预测结果的挑战。
“改变‘=’左边的内容程序会怎么样?”,“改变‘=’右边的内容程序会怎么样?”不管结果和猜测是否吻合,是否能分析出原因呢?“为什么改变‘=’左边的字符对于运行结果没有任何改变,但是改变右边的字符。运行结果就变了?”“如果把‘=’左右两边的内容交换又会怎样?”解决一个问题往往能引发出更多的问题,让学生在一个自问自答的过程中思考和学习。
4.仿——重写程序
在帮助学生解答问题的过程中,其实已经把语言的基本要素教授给了学生,虽然他们还会拼写错关键字,会不记得运算符的优先级别,但是他们已经知道怎么去运用每一个元素。那些字面上的错误,或者用户手册上清楚列明的问题不需要花费他们太多的时间去解决,也将随着运用次数的增加牢牢地刻在学生脑海之中。
既然他们已经清楚了每一个分词在例程中的作用,他们可以通过改写程序来实现一些类似但不同的功能。刚才他们只能把一个从1累加到10的程序改成从1累加到100的程序,再改成从1累加到n的程序,现在让学生解决一个计算2的n次方,或者n的阶乘的程序,接下来他们可以计算任意复杂的表达式了。
5.脱——创造程序
前面四个阶段是本科生必须在一年级完全经历的学习阶段,后面的三个阶段在本课程的学时内或多或少的会有一些闪现,然后一直贯穿学生专业学习的过程,乃至从事软件开发工作的职业生涯。
当前面积累的例程代码都转变成个人的编程经验,学生们面对问题不再需要摆着例程在面前。他们通过将问题不断分解,直到每个小问题都是一个自己曾经解决过的问题。把积累的那些代码拼装起来,得到新问题的解决方案。
进一步的脱离模板、程序创造,需要学生进行数据结构和算法的学习,这让他们能够组织的问题规模更加庞大,结构更加复杂。每个学生有自己拆分现实世界的角度,也有重新拼装的独特想法。同样的问题,解题的思路丰富了,编写的代码也各不相同。
6.變——创新程序
大作业或者课程设计是检验学生掌握计算机语言,并能灵活运用的好方法。在布置大作业时,让学生自由选题,只对于程序的规模,功能的完整性和知识点在程序中的应用提出。在检查学生们的大作业时,总能出现一些很陌生的代码,需要花上一些时间才能看懂看明白。到这一阶段时。老师对于学生的影响已经很小,尤其是技术的指导,学生基本形成了特有的技术风格,并感受到方法学、模式、结构框架等对于大规模开发的重要作用,软件工程对于团队开发的重要作用。老师引导学生更加关注知识体系的组成、行业的发展趋势、先进技术的产生,帮助他们开拓视野。Mitchell kapor的《软件设计宣言》说道“设计就是脚踏两个世界,即技术的世界和人及其愿望的世界,设计人员努力要做的是把两者结合到一起”。让学生懂得,技术不是全部,技术为人类服务。
四、教学内容改革
目前的教学内容主要依赖于课本,但课本由于编写周期较长,很多内容比较陈旧,而且由于缺乏可视化编程的内容,很多学生在学习完成之后无法编写标准的Windows程序,导致他们学习兴趣骤然降低。我们计划在教学内容上作出如下改进:
1.采用课本+课外书籍+MSDN帮助+网络的多元化教材
课本和相关书籍由于结构清晰、层次清楚,因此很适合学生作为系统的学习材料,但也因其更新速度慢、离今后的实际工作距离较远,导致学生学不到最新的知识,进而导致学生缺乏实际的动手能力。采用多元化的教材,一方面,可以促进学生阅读大量的中英文技术文档,提高其自主学习和研究的能力,另一方面,也可以让学生接触到最新的技术发展趋势。
2.加强可视化编程内容的学习
集成开发环境VC是可视化编程的开发工具。在以往的教学中,只关注语言本身的练习,因此只开发控制台(DOS)程序。但学生的兴趣不高,成就感不强。将可视化开发纳入C++实验课程体系,可以提升学习乐趣,尽早给学生提供实现创新想法的工具。
3.加强编程模式的学习
计算机语言的学习,不仅是语法规则的学习,更重要的是编程模式的学习。在编程特别是面向对象编程方面有很多前人总结的模式和习惯用法,这决定这一个程序设计人员水平的高低。这就好像人人都会下象棋,但真正的高手是需要有一个行棋的模式的。常见的编程模式包括简单工厂模式、工厂方法模式、策略模式、装饰模式、建造模式、单例模式、多例模式、代理模式、适配器模式、桥梁模式、观察者模式等,所有这些内容在现在的教材中都没有得到体现。
4.提倡规范化编程
好习惯从小养起,好的编程习惯也要从初学就开始培养。在实验中应强调和贯彻专业的编程规范,不仅可以减少程序中错误,更是帮助学生树立了良好的专业形象,培养职业道德,为以后的团队合作、软件工程实践奠定基础。
五、总结和展望
高级语言程序设计是计算机和软件专业专业学习必不可少的先修课程,能不能学好就意味着专业知识的基础是否扎实,直接影响到后续学习的效果。笔者认为,在传统的教学内容上,必须融入团队精神和编程规范的思想,以引导学生主动探究的方式开展教学,从而提高学生的应用能力和创新能力。