时间:2022-07-20 00:44:40
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇计算机程序设计语言,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
论文摘要:提高学生计算机知识水平和实践动手能力,让学生成为社会的准职业人才,是中职学校计算机教学的根本任务。将北大青鸟程序设计语言《JavaScript》课程应用于计算机理论教学与实践操作,其教材的设计引发我对中职计算机课改的深思。北大青鸟程序设计语言采用“以项目为导向”的课程设计方法,课程内容全部围绕完整的项目逐步进行,学生在学习过程中,同时也完成了实用性的项目开发,其设计不仅符合学生的认知规律,能够充分调动学生的学习兴趣,提高学生的自学能力和解决实际问题的能力,培养的学生也更能适应当前市场对技能型软件人才的需求。
目前中职计算机课程体系及课程内容设计存在着许多问题。在我国中职计算机教育中, 专业课程开设不大合理,教材内容设计不与实际应用相结合,程序设计课程教学内容要么过于简单和笼统,要么过于复杂和高深,导致许多中职学生对编程学习产生严重的抵抗情绪,出现厌学、弃学现象,所学的部分程序设计知识和操作技能,对学生毕业后进入社会后所从事的职业没有任何用处,而真正许多实用性强、专业性强的课程和计算机应用软件却又没有学到。因此,我们必须从以下几方面对中职计算机课程体系及课程内容进程大力改革。
1 明确学生的培养目标
原来中职学生的培养目标,主要以掌握教材统一指定的理论知识与基本技能为主,学生是否毕业以统考、会考成绩决定。毕业后,因培养目标、课程内容、操作技能不能与实际所需对口,导致很多学生难以找到适合自己的工作岗位。
从现在中职的培养目标及定位来说,中职学生应该是社会所需要的拥有一般化专业知识与中级或以上实践操作技能的准职业人,而不是像大学本科生一样,拥有很深厚的理论知识与专业技能。这就意味着中职计算机专业的学生,他们毕业后能在专业对口的普通岗位上找到适合自己的工作,而不是去搞科研或编写大型的计算机软件。如:机关、企事业中计算机网络的管理、信息处理的多媒体设计制作、广告影像行业的图形图像处理、设计行业的计算机辅助设计、办公自动化中的设备应用和公文处理等,都缺少有一定技术水平的准职业人才。因此,在改革中职计算机专业的课程体系与课程内容之前,不能盲目开展,应做好充分的调查分析工作,从计算机专业细化的开设方向到实际应用,必须紧贴现实生活,最大可能的保持与信息技术发展趋势、社会的用人需求同步。
北大青鸟在开设《JavaScript》课程之前,做了大量的企业调研与社会用人需求分析。调研结果显示,中国近几年互联网行业的高速发展,使越来越多的企业认识到网站运营以及网站推广的重要性,很多企业目前需要掌握一定的系统维护知识、网页设计制作知识和网站维护相关知识的复合型技术人才。进一步分析了解这些岗位应具备的IT技能,从而设计出适应于中职学生的计算机课程体系,使学生所学知识具有很强的实用性,保证学生能够在就业市场中具备竞争力,能够满足社会对人才的需求。结合目前中职学生的学习特点,将北大青鸟计算机专业学生的目标定位在培养网站运营人员,并对网站运营岗位从计算机技术层面划分为三部分:除互联网公司外的所有企业的网站维护员(涉及到JavaScript知识);网站制作公司的网页设计师(涉及到JavaScript知识);中小企业网络维护人员。
2 注重激发学生的学习积极性、培养学生的学习兴趣
兴趣是学习的内在动力,是学生自学最好的老师。原来的中职教程在内容设置方面,以理论居多,许多内容均滞后于时代的发展,涉及生活实际的知识、技能较少,涉及到实际项目的内容更少;理论作业偏多,实际操作较少;内容排版呆板,例图、效果图很少。
中职教育的对象多是学习上的后进生,学习主动意识和学习能力较低,接受新方法能力不强,在学习如果遇到较大困难或受到较大挫折,会打击其学习的自信心与积极性,很可能放弃对专业课程的学习。我们在设置课程内容时,先设计内容的趣味性与生活实用性,让学生快乐地学习专业理论知识与技能操作,通过设计来源于实际的案例或项目,让学生掌握实用的知识技能。
北大青鸟在设计课程内容时,非常注重理论与案例、项目的设计与联系。以《JavaScript》为例,教材内容围绕一个完整的现实项目进行合理设计。在该教材中,每一章节的标题名称,从学生第一感观上就能激发其学习兴趣。如:第1章 制作页面日期和排行榜的显示特效;第2章 制作随鼠标改变背景的特效;第3章 制作页面窗口特效 ……。在每章的各小节中均设计一个理论演示案例,同时针对每个演示案例,安排相应的理论知识点,对超出本演示案例的其他理论知识,不予考虑。如:1.1制作演示案例1-第一个嵌入JavaScript脚本的网页;1.2制作演示案例2-显示日期;1.3制作演示案例3-显示星期几……。在每章节的后面,设计了上机练部分,以巩固学生的理论,提高学生的实际操作技能。如第1章上机实练部分为:实练案例1-随机显示图片广告;实练案例2-评比星级商铺;实练案例3-北京奥运会倒计时……。在上机实练部分的后面,设计了作业。作业层次分明、由易到难,针对学生自身掌握的知识技能情况的不同,对完成作业的要求也不同。无论是理论案例,实练案例还是课后作业,均配有效果图与分步操作图文讲述,在兴趣的带动下,学生通过自学就能完成简单的学习任务。整个教材内容中的每个理论案例、上机实练案例、课后作业,设计安排合理,难易适度,更重要的是我们学生在现实生活中,可以很具体地看到它们应用于网站页面的制作设计,很大程度上激发了学生的求知欲与学习兴趣。本人将该教材应用于中职计算机软件班,计算机网络班的教学,两年来学生的学习兴趣浓,知识技能掌握好。
3 注重学生实践知识、技能的培养,将学生培养成社会所需的准职业人
中职学生的就业现状:许多的中职毕业生到单位工作,因原来所学知识与实际脱节,90%学生得从头开始学习相应的知识与技能,给用人单位带来时间、金钱上的极大浪费,甚至于失去就业的机会。
信息社会发展速度,社会对IT人才也不断提出新的要求。我们在开设课程前应该研究企业、 用人单位对IT人才的需求现状,分析对从业人员的技术要求,对计算机课程内容进行合理设计。在中职教学中我们提倡项目教学法,那么教材中所使用的项目一定要有很强的实用性,且与实际相结合。在课程设计中应以项目为导向,让学生在学习过程中边学习边做项目,在做项目的过程中掌握相关知识及项目的开发过程,从而培养学生的动手能力和积累实践经验,以适应实际工作的需要。
北大青鸟对IT用人需求进行了大量的调查研究,选择具有实用价值、与信息技术发展趋势相符的项目去开设相应课程。其课程体系采用“以项目为导向”的课程设计方法,课程内容全部围绕着完整的项目逐步进行,学生在学习过程中,也同时完成了实用性项目开发。在《JavaScript》课程中,每一章节所使用的理论演示案例、上机实练案例、课后作业,均是一个大项目中的某一组成部分。每一个案例是从整个项目分割出来的小项目,而且有一定的先后顺序与难易梯度,由浅入深、循序渐进,先通过案例介绍基础知识和基本操作,给学生打好基础,然后通过大量的项目演练提高学生的熟练度和项目能力,充分调动学生学习兴趣和学习积极性,直至学生掌握必备的专业知识和技能,达到培养目标,让学生成为社会所需的准职业人。实际应用中,因为每个案例的制作,均涉及到项目中的某项内容,通过章节内容的逐步学习,学生将掌握整个项目内容所涉及到的理论知识与操作技能,理所当然能完成整个项目的制作。另外,由于所开设的项目具有实用价值,学生毕业后可以拿自己做好的项目去企业、用人单位去应聘,减少很多的应聘环节,毫无疑问这样的学生具有很强的市场竞争力,很容易就找到与之专业对口的工作。本人将该教材应用到中职计算机软件班与计算机网络班,几乎所有学生均能掌握所学的知识与技能,制作完成相应的项目。
4 大力改进教学法
由于教材内容以项目为导向进行的课程设计,所以我们应对教学方法进行改进。在多年的北大青鸟《JavaScript》教学中,本人总结如下经验(以作借鉴):
1) 在每门课程的开始,由教师先讲解课程目标,然后介绍在课程中要完成的项目;2) 为了让学生能够了解项目的具体功能,让学生自己操作或是运行项目;3) 在后序的课程中,教师讲解项目所涉及的知识、技能点;4) 以小组为单位,让学生分阶段上机进行项目开发与作业的完成,期间老师辅导答疑;5) 在课程教、学、做完成之后,即可完成整个项目;6)小组互评与老师点评相结合,总结提高;7) 完成好的项目让学生保存好,做为实习、找工作、就业的宝贵材料之一。
培养学生自学能力与团结合协作的精神。IT行业及其应用技术发展迅猛,课堂上传授的知识不可能解决学生在工作中遇到的所有问题。因此,培养学生的自学能力就显得尤为重要。课程体系应始终贯穿这一思想,使学生意识到自学的重要性,并且教会学生如何去学习。在《JavaScript》实际教学中,指导学生进行项目开发时,每当遇到问题时,总是积极鼓励学生自行寻找解决方案,从而提高学生的学习自信心和成就感,培养自学能力,使学生终生受益。同时,通过对学生进行一些小的团队训练,强调沟通能力和团队合作精神在项目开发和实际工作中的重要性,提高学生的社交能力、沟通能力和团队合作精神。
信息技术的发展可以说是日新月异,教育也应顺应时代的变化,培养社会所需人才。所以,从中职教育的根本任务为出发点,为把中职学生培养成为社会所需的准职业人,我们急需对中职计算机程序设计课程的内容进行改革更新。
参考文献:
[1] 娄毓满.适应课程改革发展趋势 提高教师教学实践能力[J].安顺师范高等专科学校学报:综合版,2006(2).
[2] 贺平.项目教学法的实践探索[J].中国职业技术教育,2006(22).
关键字:程序设计语言教学改革
中图分类号:G642 文献标识码:A 文章编号:1672-3791(2012)02(c)-0000-00
1 概述
计算机程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。
当今计算机程序设计语言种类繁多、共性大、更新速度快,同时软件工程和项目管理的蓬勃发展使得计算机软件开发从业人员的职业分工更为明确。从人力资源与社会保障部颁布的“计算机程序设计员国家职业标准”上看,除了要求从业者必须要有扎实的基本功外,还要具备解决问题的综合能力。因此计算机程序设计员专业的学生在计算机程序设计语言的知识和技能的学习中,不能再仅仅孤立地教授几门编程语言、几门相关的专业课程而已,而是要教会学生掌握通过计算机程序设计来解决实际问题的知识和技能,成为一名合格的“软件蓝领”。这就要求我们不能延续传统的学历教育方法,计算机程序设计语言教学需要改革,需要一种全新的教学理念和模式。
当前的教学改革更多的体现在教学方法和内容上,“学习领域”、“任务驱动”、“职业岗位导向”、“面向工作”等各种课程设计方法层出不穷。然而,纵观大部分课程改革,我们发现其教学改革更多体现在独立的课程中,并没有在课程与课程的衔接上下功夫。大部分院校均先后开设VB、C、C++、JAVA等多门程序设计语言和数据结构、数据库管理系统等专业课程,学生虽然学习了多门程序设计语言,然而每一门语言都只学了皮毛,每一门课程都学了基础,只能完成课堂和课后的作业和练习,而对于能解决什么问题,怎么解决问题,如何综合解决问题一筹莫展,碰到问题时往往觉得无从下手。
2 程序设计语言教学探索与改革:C语言学习三部曲
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点,同时很多新型的语言都是衍生自C语言,,掌握了C语言,经过简单的再学习,就可以用其他新型的语言去进行程序开发了。因此,在计算机专业的课程中,只要把C语言学扎实了、学透了,就可以说掌握了计算机程序设计语言的精粹。在课程设计中,我们以C语言为主线,以一脉相承的C语言、C++语言、C#语言为基本知识内容,配合上数据结构、UML、数据库等相关知识点,提出语言知识入门、语言能力提高、语言技能应用三个阶段和应用层次的“C语言学习三部曲”的课程改革方案。
第一阶段:语言知识入门――C语言与数据结构整合
1、课程知识要求:
1) 掌握C语言的基本语法,如数据类型,3种语句结构,数组,指针等。
2) 掌握数据基本结构形式和操作,如线性结构,树形结构,图形结构,以及数据结点的查找、添加、删除、排序等操作。
3) 掌握“自顶先下、逐步细化”的结构化程序设计方法。
2、课程技能要求:
掌握如何用计算机解决日常问题,特别是数据的表现形式和动作行为的表现形式。
3、课程设计要点:
将C语言和数据结构进行有机整合,特别是在讲解C语言的数据类型时溶入数据结构知识,在讲解C语言的语法结构时溶入数据结构的数据操作知识。
4、课程目的:
通过该课程的学习,要求学生掌握基本程序设计思想和理论,学会数据及数据处理由现实世界向计算机世界的转换方法和过程,学会用计算机程序设计语言描述和解决日常生活中问题。
第二阶段:语言能力提高――C++语言与UML工具整合
1、课程知识要求:
1) 掌握C++语言的高级语法知识以及面向对象的概念和形式,如面向对象的三大特征:封装、继承、多态,以及模板等概念。
2) 掌握UML知识,掌握利用UML工具(如ROSE)来进行面向对象的分析和建模的方法和过程。
3) 掌握以“抽象与分类”为关键的面向对象的程序设计方法。
2、课程技能要求:
掌握如何用计算机解决日常问题,特别是以面向对象的方法来分析和解决问题。该课程要求学生在第一阶段掌握了结构化的设计方法后,进一步了解面向对象程序设计方法。
3、课程设计要点:
把C++语言和UML进行有机的整合。将UML作为面向对象程序设计的分析和设计的工具,而将C++语言作为进行面向对象程序设计的编程和实现工具。
4、课程目的:
通过该课程的学习,要求学生掌握面向对象理论,学会面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)方法和工具。
第三阶段:语言技能应用――C#语言与数据库操作整合
1、课程知识要求:
1) 掌握C#语言的高级语法知识和软件架构知识,如集合、委托、托管、、C/S与B/S架构开发方法等。
2) 掌握数据库操作知识,如SQL语法、、XML等。
2、课程技能要求:
掌握多层架构的数据库应用系统开发方法。,该课程要求学生在复习第二阶段的面向对象的设计方法后,掌握开发.Net应用系统的方法,掌握将数据存储在数据库中的方法,以及掌握对数据库进行查询、添加、删除等操作的方法和步骤。
3、课程设计要点:
将C#语言与数据库操作知识进行有机整合,在讲解用C#语言开发基于.Net的多层架构应用系统中,通过讲解与LINQ将SQL溶入C#语言。
4、课程目的:
通过该课程的学习,要求学生掌握C#语言和数据库操作,掌握通用的企业级应用系统的开发方法和过程。
3 结语
教育部部长周济在2008年度职业教育会议上说到:“以改革创新为强大动力,推动职业教育又好又快发展”。职业教育的生存和发展,离不开教学改革和创新。在进行计算机程序设计语言教学探索与研究中,我们通过走进企业,与企业软件开发人员的进行密切联系与沟通,了解市场发展与需求等一系列调研后,提出了改革方案并付诸实施。实践证明我们的改革思路是正确的,课程改革是卓有成效的。
参考文献
[1] 谭浩强,“C程序设计”[M],清华大学出版社
关键词:计算机;程序设计语言;VB
中图分类号:TP312.1-4 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02
中职学生可以掌握程序设计的具体做法和这一技能吗?在中职学校有必要开展程序设计教育吗?如果开展程序设计教育的话,中职学生又怎样将程序设计应用在实际生活中呢?基于诸多疑问,我展开了深入的研究,旨在利用多年的中职教育工作中获得的经验,为中职学校的老师提供有益教学参考。
一、精选程序设计语言,降低程序设计学习难度
计算机程序设计语言种类丰富,风格各异,应用多姿多彩。针对中职生开设计算机程序设计课程,基于三个方面的考虑,我们选择Visual Basic(以下简称VB)作为程序设计的入门语言。
VB编程方式效果直观,趣味性强。VB使用所见即所得的设计方式进行界面设计,减轻了界面设计的负担,使得学习过程更轻松更直接并充满了趣味性和成就感。BASIC语言本身就是为初学者设计。其简单的语法相比C语言省却了许多计算机底层复杂的细节,比如VB就没有指针的概念,没有动态内存申请的概念,使得学生学习更容易上手编程。VB语言的语法虽然简单但功能全面,其支持多媒体编程、支持数据库编程、支持结构化程序设计和面向对象的程序设计等特点,都使得VB适合作为编程学习的入门语言。VB实用性强,而且应用广泛。学习VB语言后可以在微软OFFICE办公软件、AutoCAD制图软件以及PhotoShop图像处理软件中进行二次开发。另外,动态网页中使用VB脚本开发网络程序也很普遍。这些都说明了VB有着强大的生命力。VB应用广泛,范例丰富,这为教学提供了大量的备选素材,也为教学提供了实用的目标。并且通过二次开发的范例也有利于提高学生对其它课程(如计算机基础操作课、AutoCAD课)的认识和应用水平。
经过教学实践证明,与C语言相比较而言VB语言以其直观的效果,丰富的应用激发学生的学习兴趣,提高了学生的求知欲。从实用的角度来看,VB语言是一种在实际当中用途非常广泛的一款程序语言,其实际地位已经与C语言一样成为一种被大众广泛认可并接受的程序语言。此外,VB语言相对于C语言来说还具有例如直观性强、应用范围广、学习入门容易、推广性强等特点。因此,VB语言具备了广泛传播和易于推广的所有优点,成为学生程序语言学习的首选也就不足为奇了。基于这种现状,VB程序语言目前已经成为了中职学生学习的主要对象,在中职学校得到了一定程度的推广。考虑到中职学生计算机基础较薄弱的特点,选用简单易学的VB程序语言成为了中职学校开展程序教育的首选。
二、精选程序设计内容,提高中职生的学习兴趣
中职学生对计算机程序设计课程内容往往感觉比较枯燥,缺乏学习兴趣。在教学组织中,通过从生活中提取的案例,通过给学生演示、模仿,并在实际应用中去探究和领悟解决案例所需要计算机实施的行为来理解程序设计中的若干概念,教学中适时地对这些概念加以归纳总结和延伸,让学生在轻松愉快的气氛中学习新知识。同时,在学科体系中的案例都是围绕程序设计概念而选择,为了理解概念而编程,我们打破学科体系中的逻辑结构体系,让学生在解决案例的过程中习惯于一个完整的解决一个具体问题的编程方式,而不是解决一个问题的片段。这样做的好处是把不仅传授给学生理论知识和操作技能,更重要的是培养他们的职业编程能力,这里的能力已不仅是知识能力或者是专业能力,而是涵盖了如何解决问题的能力:方法能力、接纳新知识的学习能力等方面。
鉴于程序语言学习比较枯燥,我们就要在开展VB程序语言学习的时候改变教学方法,选用精彩的教学内容,通过不断变换教学方法和教学内容来达到提高中职学生学习兴趣的目的。在学习内容的选择上,我们应该执行精挑细选的原则,尽量选择具有典型意义的案例,通过对案例的讲解,让学生感受到VB程序语言的魅力,从而有利于提高学生的学习兴趣。此外,在教学方法上,要改变传统的填鸭式教学的方法,要构建生动活泼的课堂环境,使整个VB程序语言课堂具有吸引学生注意力的作用。所以,对于VB程序语言的教学活动,我们只有通过精选教材内容和改变教学方法,才能提高中职学生的学习兴趣,最终取得积极的效果。
三、对计算机程序设计的教学方法进行改变,以学生的特点为主
对于中职学校学生而言,普遍的情况是感性思维强烈一些,理性思维欠缺一些。在平时的计算机程序设计课程中,学生一般都会喜欢上实践课和多媒体掩饰课,这主要是因为这类课程比较直观,并且容易引起学生的兴趣,在理解的过程中难度也很低。相对于实践课程来说,计算机程序设计的理论课程就没那么容易被学生接受了。学生在学习理论的过程中,普遍感觉到困难。这种困难不是来自于实际上的,而是来自与心理上的。所以我们在开展中职学校的计算机程序设计课程的时候,必须要对这种情况有所了解,必须要及时的改变教学方法,并且对学生的特点进行全面的了解。最终做到根据学生的特点而制定详细的计算机程序设计教学方法。由此看来,在中职学校的计算机程序设计的实际教学过程中,我们必须对教学方法进行改变,并以学生的特点为主,训练学生的综合理解能力和学习兴趣。
关键词:四环教学法;理论教学
程序设计语言是计算机专业非常重要的专业基础课之一,它主要培养学生编程的逻辑思维方式。学生初次接触此类课程经常被繁杂的语法规则所困扰,影响了程序的编写。尤其是对于面向对象的程序设计语言,众多的控件、事件、属性,更是让学生无从下手。笔者在多年的程序语言教学中总结出了“四环教学法”,经过实践,这种方法对于程序设计语言的理论教学,颇有成效。
一、程序设计语言理论教学现状分析
1、学习动力不足
目前高职学生的综合素质相对于普通本科学生很有差距。尤其是普高考入的学生,从来没有接触过程序设计语言,学起来感觉相当枯燥,难以理解。于是有些学生认为学习程序设计语言既枯燥又无用,不如学习多媒体或的一些课程;也有的学生由于数学基础和逻辑思维能力都比较差,在学习时显得力不从心,不能掌握应用计算机解题的基本思维方式,对计算机程序设计产生畏惧感,就知难而退了。
2、教学课时少
与普通高校本科计算机专业相比,一方面,高职学生的学习基础相对较差,导致他们接受较慢,学习困难;另一方面,目前我国高职院校的学制一般是3年,并且采用“2+1”学习制,即两年在校学习理论知识,一年在社会实践中提高专业水平。计算机专业的程序设计语言的课时较少,这就导致了实际教学中存在理论课时和实践课时不够的情况。因此,教师只能传授最基础的程序设计知识,不能提高学生应用程序设计语言解决实际问题的能力。
3、实践教材的缺乏
计算机专业本身就是技术应用专业,而高职院校更是以提高实践能力为主的职业。然而,现今高职程序设计语言教材,存在的普遍问题就是实践性教学内容不足,没有体现教材的实用性和职业性,不能保证对学生实践能力的培养,不能体现高等技术应用型人才的培养要求,缺少高职教育特色。
4、教学方法落后、考核方式单一
高职程序设计语言课程一般采用的教学方法是教师课上讲授加学生实验的形式,教师在理论课上常常采用“填鸭式”教学,学生很少主动思维,编程题不能独立作答案。上机实验时学生仅仅是对书本上现有的一些实例进行编辑调试,一旦调试成功就完成任务。这种教学方法根本不能让学生掌握如何从一个实际问题入手分析、解决问题。单一的笔试考核方式也使教师和学生忽视实践课环节,舍本逐末。
二、什么是四环教学法
所谓的四环教学法是指教学中的四个环节,包括知识点的简要概括、学生独立学习、学生上台讲述和教师总结四个部分。
1、知识点简要概括
知识点概括是四环教学法的第一个环节。在此环节中,主要由教师将本节课的知识点简要概括讲述,使学生在以下独立学习的时间内可以有目的性地学习。
教师在此环节讲授的时间大约控制在十分钟左右,注意要将本节课的重点、难点以及考点交代清楚。
2、学生独立学习
在教师讲完知识点后,就进入了第二个环节,学生独立学习阶段。此阶段教师可根据本节课的内容多少和难易程度,给学生半小时到四十分钟的时间,让学生根据本节课的重点难点来进行独立学习和记忆,教师同时也可以针对学生提出的问题进行答疑。
3、学生讲授
学生在经过了独立学习阶段后,对知识点有了自己的理解和认识。此时随机抽取五位学生到讲台上进行讲述,既锻炼了学生的表达能力,又加深了对知识点的印象。
在学生讲述的同时, 教师要注意学生对知识点讲述的内容是否正确,理解是否有偏差。此环节大约需要半小时左右时间。
4、教师总结
经过第三个环节后,教师利用最后的时间对本节课的内容进行讲授,并针对学生讲述的问题进行剖析解答,同时可以举例解释说明。
三、“四环教学法”在程序设计语言理论教学中的优势
以VB程序设计语言为例,教师采用四环教学法进行理论教学,可以使学生有目的性地去学习诸如属性、事件、方法等理论知识,同时让学生到讲台来表述已自学过的内容也可以提高学生的表达能力,在台下的同学也可以通过不同同学的反复讲述加深记忆。作为教师,可以根据学生的讲述来掌握学生的薄弱环节,在总结的时候可以有侧重点地讲授。
这种教学方式加强课堂互动,注重启发式教学。教师在激发学生欲望的基础上,加强培养学生发现问题、提出问题和解决问题的能力。在教学中可利用新旧知识的联系,提出需要解决的问题,并由易到难,设计一系列具有启发性的问题,引导学生一步步完善程序设计。
当然,四环教学法只是对理论知识采用一种新的方式进行教学。教师在授课时还要精心设计教学实例。零散实例可以加深学生对某些知识点的理解,但实例的内容不连贯,不利于学生从整体上掌握教学内容。因此建议在学期末还要设计一个规模较大的、典型的、学生熟悉且感兴趣的核心实例贯穿于教学全过程。该实例从小到大,随章节的开而逐步成长,呈现为逐步进化的多个版本。例如,在visual Basic程序设计教学中,可以设计一个“学生成绩管理系统”作为核心实例,贯穿始终,从而加深对该程序设计语言的整体理解。
最后还应将软件工程的思想融合到程序设计语言课程的教学过程中。教师在教学中从一开始就明确应用于工程开发的目的,以工程实践的方式,将软件工程的基本观念与课程的全部内容融合为—体传授给学生。
参考文献
[1]叶幼林.对计算机C语言教学的探讨与研究[J].中南民族大学学报(人文社会版),2004,(4).
[2]解晨光.关于高职高专计算机教学改革的研究[J].教育探索,2006,(8).
[3]袁锋.谈VB程序设计教学方法改革的几个转变[J].成人教育,2004,(2).
关键词: 面向对象程序设计 程序设计语言 面向对象技术
1.引言
面向对象程序设计技术将对象作为程序的基本结构单元,对象将数据及对该数据的操作封装在一起成为一个相对独立的实体,以简单的接口对外提供服务。面向对象程序设计语言通过提供继承与派生、多态性、模板等概念和语法,使开发者能最大限度地利用已有的程序代码,大大提高程序开发的效率。
2.程序设计语言
程序设计语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。程序设计语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读。设计语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为在当今所有的计算都需要程序设计语言才能完成。在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。高级程序设计语言(也称高级语言)的出现使得计算机程序设计语言不再过度地倚赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平立。随着C、PASCAL、FORTRAN等结构化高级语言的诞生,程序员可以离开机器层次,在更抽象的层次上表达意图。由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好地开始让程序员以接近问题本质的方式去思考和描叙问题。随着程序规模的不断扩大,在上世纪60年代末期出现了软件危机,在当时的程序设计范型中都无法克服错误随着代码的扩大而级数般地扩大,以至无法控制,这个时候就出现了一种新的思考程序设计方式和程序设计范型――面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如EIFFEL、C++、JAVA,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象,以及对象之间的消息传递构成。面向对象语言由此必须支持新的程序设计技术,比如:数据隐藏、数据抽象、用户定义类型、继承、多态等。
3过程式设计与面向对象设计
面向对象技术最初是从面向对象的程序设计开始的,它的出现以60年代的Simula语言为标志。
3.1过程式设计
总的来说,过程式的程序设计是一种自上而下的设计方法,设计者用一个main函数概括出整个应用程序需要做的事,而main函数由对一系列子函数的调用组成。对于main中的每一个子函数,都又可以再被精炼成更小的函数。重复这个过程,就可以完成一个过程式的设计。其特征是以函数为中心,用函数来作为划分程序的基本单位,数据在过程式设计中往往处于从属的位置。过程式设计的优点是易于理解和掌握,这种逐步细化问题的设计方法和大多数人的思维方式比较接近。然而,过程式设计对于比较复杂的问题,或是在开发中需求变化比较多的时候,往往显得力不从心。这是因为过程式的设计是自上而下的,这要求设计者在一开始就要对需要解决的问题有一定的了解。在问题比较复杂的时候,要做到这一点会比较困难,而当开发中需求变化的时候,以前对问题的理解也许会变得不再适用。事实上,开发一个系统的过程往往也是一个对系统不断了解和学习的过程,而过程式的设计方法忽略了这一点。
3.2面向对象设计
面向对象是一种自下而上的程序设计方法。不像过程式设计那样一开始就要用main概括出整个程序,面向对象设计往往从问题的一部分着手,一点一点地构建出整个程序。面向对象设计以数据为中心,类作为表现数据的工具,是划分程序的基本单位。而函数在面向对象设计中成为了类的接口。面向对象设计自下而上的特性,允许开发者从问题的局部开始,在开发过程中逐步加深对系统的理解。这些新的理解,以及开发中遇到的需求变化,都会再作用到系统开发本身,形成一种螺旋式的开发方式。在这种开发方式中,对于已有的代码,常需要做代码重构以体现系统的变化。和函数相比,数据应该是程序中更稳定的部分。不过在这里,只有从抽象的角度来看,数据才是稳定的,如果考虑这些数据对象的具体实现,它们甚至比函数还要不稳定,因为在一个数据对象中增减字段在程序开发中是常事。因此,在以数据为中心构建程序的同时,我们需要一种手段来抽象地描述数据,这种手段就是使用函数。在面向对象设计中,类封装了数据,而类的成员函数作为其对外的接口,抽象地描述了类。用类将数据和操作这些数据的函数放在一起,这可以说就是面向对象设计方法的本质。
4.面向对象程序设计
面向对象程序设计(Object Oriented Programming,OOP)的许多原始思想都来自Simula语言,并在Smalltalk语言的完善和标准化过程中得到更多的扩展和对以前的思想的重新注解。可以说OOP思想和OOP几乎是同步发展相互促进的。与函数式程序设计(functional-programming)和逻辑式程序设计(logic-programming)所代表的接近于机器的实际计算模型所不同的是,OOP几乎没有引入精确的数学描叙,而是倾向于建立一个对象模型,它能够近似地反映应用领域内的实体之间的关系,其本质是更接近于一种人类认知事物所采用的哲学观的计算模型。由此,导致了一个自然的话题,那就是OOP到底是什么?在OOP中,对象作为计算主体,拥有自己的名称、状态,以及接受外界消息的接口。在对象模型中,产生新对象,销毁旧对象,发送消息,响应消息就构成OOP计算模型的根本。
OOP主要有以下的概念和组件:
组件――数据和功能一起在运行着的计算机程序中形成的单元,组件在OOP计算机程序中是模块和结构化的基础。
抽象性――程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。
封装――也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。
多态性――组件的引用和类集会涉及其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。
继承性――允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。
我们可以看到面向对象程序设计的核心思想是:抽象数据类型、继承和多态。这也是它的好处和优点。其核心就是用类来表示各种概念,在这种思想的影响下,诞生了一批面向对象程序语言,通过各种语言和程序设计范型的演化,我们可以清晰看到面向对象程序设计技术的各种优势,以及这种优势产生的根本原因――克服过程式编程里面数据与算法完全分离的弊端,并在此基础上演化出了多种新的组织程序和表达概念的方法。
参考文献:
[1]吴其庆.J2EE程序设计实例教程.北京:冶金工业出版社,2006.
[2]Stroustrup.C++程序设计语言.机械出版社.
[3]Lippman.C++PRIMER中文版.中国电力出版社.
一九九三年美国的克林顿政府提出了“信息高速公路”计划,从而,这十多年间在全球范围内引发了一场信息风暴,信息技术几乎触及了现代生活的方方面面,毫不夸张地说没有了信息技术,现代文明的生活将无从谈起;作为信息技术中最重要的部分,计算机技术无疑是其发展的核心问题,而我们知道计算机只是一台机器,它只能按照计算机语言编好的程序运行,那么正确认识计算机语言的过去和未来,就是关系到计算机发展的重中之重;以自然辩证法的观点认识和分析计算机语言的发展历程,将有助于更加全面地推动计算机技术的发展,有助于更加准确地掌握计算机语言发展趋势。
一、科学认识大门的钥匙
当代自然辩证法,是对于自然界和科学技术发展的一般规律以及人类认识自然改造自然的一般方法的科学,是辩证唯物主义的自然观、科学技术观、科学技术方法论。它主要研究自然界发展的总规律,人与自然相互作用的规律,科学技术发展的一般规律,科学技术研究的方法。马克思、恩格斯全面地、系统地概括了他们所处时代的科学技术成功,批判地吸取了前人的合理成分,系统地论述了辩证唯物主义自然观、自然科学发展过程及其规律性,以及科学认识方法的辩证法,以恩格斯的光辉著作《自然辩证法》为标志,创立了自然辩证法继续发展的广阔道路。自然辩证法是哲学的一个重要组成部分。在辩证唯物主义哲学体系中,自然辩证法与历史唯物论相并列。它集中研究自然界和科学技术的辩证关系,是唯物主义在自然界和科学技术领域中的应用,它的原理和方法主要适用于自然领域和科学技术领域。学习和运用自然辩证法将有助于我们搞清科学和哲学的关系,从而更加清楚地认识科学的本质和发展规律,更加全面的观察思考问题,只有加深了认识,我们才能更好地发挥主观能动性,迎接新的科学技术的挑战。下面我将以自然辩证法的观点来分析计算机语言的发展历程。
二、计算机语言的发展历程和
发展趋势
计算机语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。具体的说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言。
1、计算机语言的发展历史:
二十世纪四十年代,当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(konrad zuse)。几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。随着c,pascal,
fortran,等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图。由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题。随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型——面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java。这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等。
2、计算机语言的发展现状:
目前通用的编程语言有两种形式:汇编语言和高级语言。汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。 高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类: 解释类和编译类。
3、计算机语言的发展趋势:
面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不再是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。
三、面向未来的汉语程序设计
语言
从计算机诞生至今,计算机自硬件到软件都是以印欧语为母语的人发明的。所以其本身就带有印欧语的语言特征,在硬件上cpu、i/o、存储器的基础结构都体现了印欧语思维状态的"焦点视角",精确定义,分工明确等特点。计算机语言也遵照硬件的条件,使用分析式的结构方法,严格分类、专有专用,并在其发展脉络中如同他们的语言-常用字量和历史积累词库量极度膨胀。实际上,计算机硬件的发展越来越强调整体功能,计算机语言的问题日益突出。为解决这一矛盾,自六十年代以来相继有500多种计算机语言出现,历经五代,至今仍在变化不已。汉语没有严格的语法框架,字词可以自由组合、突出功能的整体性语言。在计算机语言问题成为发展瓶颈的今天,汉语言进入计算机程序设计语言行列,已经成为历史的必然。
1、 发展汉语程序设计语言的理由:
1)计算机语言问题解决,只能从人类语言中寻找解决方案;
2)计算机语言的现存问题是形式状态与功能需求的矛盾;
3)计算机硬件的发展已为整体性语言-汉语进入计算机程序设计语言提供了条件
2、 汉语程序设计语言的技术特点:
1)汉文字的常用字高度集中,生命力极强,能灵活组合,简明准确地表达日新月异的词汇,这些优点是拼音文字无法企及的。
2)汉语言的语法简易灵活,语词单位大小和性质往往无一定规,可随上下语境和逻辑需要自由运用。汉语言的思维整体性强,功能特征突出。
3)汉语程序设计语言的发明者采用核心词库与无限寄存器相结合的方法,实现了汉语言的词素自由组合;将编译器与解释器合一,使汉语程序设计语言既能指令又能编程;以独特的虚拟机结构设计,将数据流与意识流分开,达到汉语程序设计语言与汉语描述完全一致,通用自如。具有汉语言特性的汉语程序设计语言的出现,打破了汉语言不具备与计算机结合的条件而不能完成机器编码的神话。还为计算机科学与现代语言学研究提出了一条崭新的路径,它从计算机语言的角度,从严格的机械活动及周密的算法上,向世人证实汉语的特殊结构状态,及其特殊的功能。
四、计算机语言之父
尼盖德帮助因特网奠下了基础,为计算机业做出了巨大贡献。 尼盖德是奥斯陆大学的教授,因为发展了simula编程语言,为ms-dos和因特网打下了基础而享誉国际。克里斯汀•尼盖德于1926年在奥斯陆出生,1956年毕业于奥斯陆大学并取得数学硕士学位,此后致力于计算机计算与编程研究。1961年~1967年,尼盖德在挪威计算机中心工作,参与开发了面向对象的编程语言。因为表现出色,2001年,尼盖德和同事奥尔•约安•达尔获得了2001年a.m.图灵机奖及其它多个奖项。当时为尼盖德颁奖的计算机协会认为他们的工作为java,c++等编程语言在个人电脑和家庭娱乐装置的广泛应用扫清了道路,“他们的工作使软件系统的设计和编程发生了基本改变,可循环使用的、可靠的、可升级的软件也因此得以面世。”尼盖德因其卓越的贡献,而被誉为“计算机语言之父”,其对计算机语言发展趋势的掌握和认识,以及投身于计算机语言事业发展的精神都将激励我们向着计算机语言无比灿烂的明天前进。
五、用科学的逻辑思维方法
关键词:计算机专业;程序理解能力; 程序设计能力;教学管理平台
随着信息科技的不断进步与发展,新型软硬件产品和信息服务不断涌现。在嵌入式系统设计、软件开发、系统管理维护等领域,高素质程序设计人才的需求与日剧增,这对高校计算机专业的人才培养提出了更加具体的要求。如何适应社会对高素质程序设计人才的需求,对于重庆邮电大学这样一所以信息科学技术为特色和优势的高校来说尤为迫切。
尽管各高校都制定了适合自身特色的培养方案以应对社会对程序设计人才的需求,但受教学方法、实践教学环境、考核方式等因素的影响,近年来,如何提高学生程序设计能力一直是高校计算机实践教学改革的重要内容之一。“读懂程序难,设计程序更难”成为计算机专业学生普遍反映的问题,有条件的用人单位通常需要组织专门的培训来满足生产的要求,这极大地影响了学生的就业能力和企业的生产效率。提升在校学生的程序设计能力,需要从教学方法、教学手段和资源建设等方面入手,探索一些新的思路。
1现状分析
目前,大多数高校均通过开设C/C++、Java等程序设计类课程培养学生的程序设计能力,而此类课程的传统教学方式是采用以知识点为单元的“讲授―验证―作业―考核”流程,即首先由主讲教师在课堂上讲授语法、结构等知识点,学生在课后或实验环节中上机验证,通过完成习题来体会程序设计方法,最后组织考核[1-2]。多年的教学实践表明,这样的实施流程忽略了一个至关重要的环节――培养学生的程序理解能力。
什么是学生的程序理解能力?简单说来就是当大段代码出现在学生面前的时候,学生是否能够明白这样一段程序代码在计算机中是怎样执行的,执行过程中环境会发生怎样的变化,是否能获得正确的执行结果,等等。传统的教学流程将程序设计这个有着严格的逻辑结构的行为拆分成为了若干个离散的知识点,学生在仅仅掌握这些知识点的前提下,尚未透彻理解给定的代码,此时,要设计出可用、高效的程序具有很大的挑战。
程序设计类课程学习的一个主要内容是掌握不同程序设计语言的语法规则和流程,进而灵活运用以解决遇到的专业领域问题。程序设计语言和人与人之间交流所用自然语言有一定的共性,且远没有自然语言复杂。在学习自然语言的过程中,通常首先学习基础语句,然后对语句的字词进行分析,进而掌握句子的意思,最后在充分理解句法的基础上组合出能表达
个人意愿的句子。程序设计语言也可以遵循这样的学习方法,先学习示例程序语句,然后拆分语句,用离散的知识点去分析解释语句的构造,并查看运行过程和结果,在头脑中形成直观印象,然后利用这些知识点有组织地结合程序结构的思想去解决问题。因此,先熟识程序的“庐山真面目”,理解程序的编写方法,然后模仿编写,将使得程序设计能力的培养变得事半功倍。
从另一方面来看,多样化的程序设计语言对于高校程序设计类课程的教学要求提出了新的挑战。考虑到学分结构、师资力量、个性教育、教学管理等因素,不可能、也没必要为每一门程序设计语言都开设相关的课程。即便能够这样做,往往会出于对学生成绩考核的量化而要求学生在选课阶段便对相应的语言进行选择,由不同的教师对其进行授课指导。绝大多数学生在选择程序设计语言时,由于没有直观的印象,也没有具体的应用需求,仅从教师简单的介绍和外界舆论,很难选择适合个人发展方向的语言环境。为满足个性培养的需求,让学生能找到适合自己的主要语言方向,需要提供丰富的、开放的程序设计教学资源[3],且允许学生灵活选择。同时,多样化、自由选择的程序设计语言教学资源也将使得学有余力的学生能对照学习,提高学习效果。
2改革思路
围绕上述分析,为了培养具有良好程序设计能力的计算机专业学生,在教学实践过程中,我们结合学校的专业建设、团队建设、课程建设和实验室建设工作,主要从以下几个方面进行改革探索。
1) 培养学生的程序阅读能力。在培养方案中,加大实验实践学分的比重,明确程序设计类课程在实践能力方面的教学标准和能力要求。实践环节并不是强调学生立即进入到具体的程序设计的学习,而是提供大量程序和针对这些程序提出的问题,引导学生对程序设计风格和相关知识点进行模仿学习,并追踪程序运行过程,查看运行结果。在这个过程中,教师通过评价学生的阅读效果,指导学生理解程序中具体知识点。
2) 培养学生的程序设计能力。在现有培养方案中,教学内容贯穿程序设计语言、数据结构、数据库、软件工程等系列课程,明确每一阶段的能力要求,采用基础训练、项目驱动和课赛结合等教学组织形式,以在校期间编写数万行代码为形式要求,以解决某一领域的具体应用问题为导向,促进学生程序设计能力的逐步提高。
3) 建设包含多种程序设计语言的教学资源。组织教师建设多样化、开放式的程序设计类课程教学资源,包括大量的程序代码、知识点和帮助学生理解程序。学生可自主选择不同的语言进行学习,并在阶段性考核前自愿随意调整,教师仅对学生学习进程和最终阶段性学习效果进行控制。为实现这一改革思路,我们采用以题库为核心的网络教学管理平台,原因有以下几点:
① 从网络使用角度来看,网络化的教学管理平台具有开放、访问方便等特点。目前,绝大多数高校都构建了良好的校园网,有条件的高校甚至可以将其在Internet上,提供校内校外的同步访问。学生的学习场所不再局限于课堂,而是扩展到了校园网(或Internet)上。
② 从资源管理角度来看,培养程序阅读能力所需的大量程序代码和针对不同知识点进行学习可按照“一对多”或“多对多”的对应关系存储在数据库中,学生仅需通过发送请求就可获得相互关联的程序、知识点和问题等,再围绕相关的问题进行在线练习。同时,授课教师还可根据教学和学生学习的实际情况,在数据库中陆续添加和补充新的内容。
③ 从教学管理角度来看,平台可以记录学生访问行为、读取程序细节等内容,可以通过学生的练习结果追踪学生学习效果,统计分析后的信息可以为教师提供辅助决策,并可对学习效果明显的学生进行“精英指导”,而对学习效果不明显的学生进行人为干预,整体上促进学生程序设计能力的提高。
④ 从程序设计语言选择的角度来看,可以为每一种主流的程序设计语言提供一套题库资源。在这个过程中,可以根据阶段性教学目标准备难度相似、进度相同的不同程序设计语言的资料。学生在学习过程中,仅告知学习的大致进度以及阶段性考核检查的时间,而由学生自行选择感兴趣的程序设计语言进行理解学习,且在任何时间可以自行更换,仅需要在阶段性考核时选定一种语言参与考核,提高学生学习的灵活性。
⑤ 从教学考核的角度来看,学生总体程序设计能力的考核不局限于以学期为单位的时间段,而是以能力要求为标准设定的学习阶段,在完成一个阶段的学习之后自行申请考核。在校期间,必须分阶段完成相应的内容并通过阶段考核。这种方法使得能力要求明确,有利于个性化教育,并能充分挖掘学生的学习潜力[4]。
3具体实施
按照上述改革思路,学生程序设计能力的培养可分三个阶段来实施,如图1所示。从最初程序阅读能力的培养,到程序编写能力的培养,最后进行综合程序设计能力的提高,每一个阶段都有对应的解决方案与之对应。实施重点是建设以题库为核心的网络教学管理平台。
网络教学管理平台实现“程序”和“问题”一对多的映射关系,采用“知识点”的方式对每一个问题所针对的基础培养的内容进行区别和归纳,通过“难度”来判定学生对于具体问题的掌握程度。系统主要对象关系如图2所示。
在具体运行过程中,以日志形式收集基本的信息,如学生的来访次数、语境选择、操作情况等,提供统计信息供教师进行查看以评价学生阶段性学习情况,必要时可进行指导或干预。平台主要工作流程如图3所示。
目前,网络教学管理平台已为C/C++语言建设了一定规模的程序库和问题库,并不断进行扩充,其他语言如Java等也正在建设中。平台试运行以来为重庆邮电大学计算机相关专业的学生提供了开放的程序设计学习环境,并通过平台在线考核评价其程序设计能力,从学生的投入程度和考核结果来看,学生的主动学习意识和程序设计能力普遍得到了提高,教学效果良好。教学团队中指定一名教师对平台的日常运行进行管理维护,并定期检查学生访问情况。其余教师拟定和补充多种语言的题库资源,指定阶段性学习任务,并定期答疑解惑。
4结语
我校对于计算机专业学生程序设计能力的培养还在不断地改革和探索,现行的方法和平台的优缺点还有待进一步实践和检验。未来的工作除了对现有工作的总结提高,还需要重点对平台的功能进行扩展完善,从而更好地服务于计算机专业的人才培养,为社会输送高素质程序设计人才,也为类似高校相关专业提供可借鉴的经验。
参考文献:
[1] 王春凤,刘世峰. 以编程能力培养为核心的教学设计与实践[J]. 计算机教育,2009(10):133-135.
[2] 孙静. 程序设计课程教学研究:在教学过程中提高学生的编程能力[J]. 中国教育技术装备,2008(16):42-43.
[3] 庄景明. 计算机程序设计课程实验教学新模式探讨[J]. 计算机教育,2009(4):18-20.
[4] 李文敬,廖伟志,闭应洲. 计算机程序设计课程实验教学质量标准的研究[J]. 计算机教育,2009(15):136-139.
Reform of Programming Education for Undergraduate Students Majored in Computer Science
DAI Yu1, XIA Ying1, ZHANG Lisheng2
(1.College of Computer Science and Technology, Chongqing University of Posts and Telecommunications, Chongqing 400065, China; 2.Software College, Chongqing University of Posts and Telecommunications, Chongqing 400065, China)
关键词:语法与算法;问题驱动;归纳;演绎
中图分类号:TP312
1 程序设计语言课程的教学现状
1.1 采取“满堂灌”的教学方式
当前,不少计算机教师在课堂教学上,只倾向于学生对程序语言知识的生硬灌输,往往忽视学生学习程序知识的能力培养,更多地以教师讲解,学生接受知识为主要模式,采取“满堂灌”、“填鸭式”的教学方法,只有教师在滔滔不绝地讲授程序知识,学生在下面抄一大堆的笔记。课堂氛围死气沉沉,学生的学习积极性根本不会高,自然不会对程序语言课程学习产生兴趣,本来生涩难懂的程序语言课程变得更加令人望而生畏。
1.2 坚持以教材为教学中心的授课方法
教材在不少教师的心目中,具有无比崇高、不可动摇的地位,无论是教案,还是课堂教学都是紧紧地围绕着教材。要知道教材是死的,学生是活的,课本是不变的,课本只是我们上课的一个蓝本,只是教学的一种参考,不是神圣不可侵犯的,教师需要对教材进行创造性的处理,不同专业的学生对计算机程序语言的学习有不同的侧重,教师不能忽略学生的个体差异,必须根据学生的实际水平进行动态处理。
2 对当前程序教学现状的原因分析
2.1 “以人为本”的素质教育认识不到位
当前,我们对教学理念提出新的要求,必须坚持“以人为本”的素质教育。素质教育,相对于应试教育,教学不是为了考试,获得高分数,而是切实提高学生的自身素质。对素质教育的理解是多方面的,其中最核心的一点就是“以人为本”,一切为了学生,为了学生的一切,任何教学活动都要围绕坚持以学生为中心。具体来说,教学分为教师的“教”与学生的“学”,两者之间彼此关联,互动互补。教师的“教”是为了学生的学,学生的“学”离不开教师的“教”,教师和学生是平等关系,需要彼此对话,沟通互动,不能把知识生硬地塞给学生就完事了。
2.2 对“语法”与“算法”的关系处理不当
“语法”与“算法”的关系处理不当一直存在于程序设计语言课程里面。不少教师面对不同专业的学生,不同水平的学生,都采取统一的教学要求,把教材上的内容一字不变地硬塞给学生。程序设计语言课程主要包括“语法”和“算法”两部分的内容。语法注重于语言规范,算法侧重于解决问题的方法。语法与算法都是程序员为了解决某一问题必须掌握的两个基本工具。教材是教学内容的参考蓝本而已,面对不同学生的专业需要和就业需要,我们教师需要科学合理地处理程序设计语言课程的“语法”与“算法”的关系。比如非计算机专业的学生学习程序设计,其主要目的是简要地掌握一门程序设计语言,从而了解计算机工作的原理,因此,我们教师无需将算法部分讲授得过于深入。但是对于计算机专业的学生,将来主要从事与程序设计等相关工作,那么,我们教师就要把“算法”作为教学重点。
3 遵从认知规律讲授程序课程的方法与措施
“以人为本”的素质教育要求我们教师的一切教学活动都要为了学生,从学生的角度出发来设计课堂活动。教师的“教”必须围绕学生的“学”,必须从学习的过程来掌握学生认知新知识的规律和方法。其实,学生的学习是一个循序渐进的过程,必须遵循认知规律。那么,什么是认知规律呢?从马克思哲学的认识论可知,认识可以分为感性认识和理性认识,直观可感的感性认识是认识的基础,抽象概括的理性是认识的提升。当理性认识指导感性认识,则实现认识活动的第一次飞跃;当感性认识检验理性认识的不一致后,则进一步提升认识的层次,实现认识活动的第二次飞跃,并且螺旋上升到更高的档次。
同样道理,在程序设计课程里,我们教师需要明确认知规律并且遵从此规律,带领学生掌握计算机程序设计内容。
3.1 从语言学认识的角度讲授程序设计语言内容
从语言学角度来看,语言体系分为字、词、短语、句子、段落、篇章,对应于程序设计语言,则属于计算机的专用语言,也可以分为词汇、语法,主要体系构成包括关键字、保留字、常量、变量、运算符、表达式、语句、复合语句。由此可见,语言学与程序设计语言的体系结构是基本相同。
人从出生呱呱坠地,就开始学习语言,学习自然语言的认知规律与语言体系结构相辅相成,第一步是掌握字、词,紧接着是掌握短语、简单句、复合句,一直到段落和篇章。这种认知规律可以引用到程序设计语言的教学中。在课程前,我们教师需要学生明确单词的含义,也就是关键字、保留字、数据类型的表示以及各类运算符等,并且让学生掌握这些单词是由系统定义的,具有语言的规范性和标准性,不可以随意改变。比如说,“整型”一词,在C语言是用int表示,但是不能写成integer,因为这个英文单词是整数的含义,却不被C语言中识别的。学习了一定的单词后,我们教师就可以讲解简单的表达式,比如算术表达式、关系表达式等,接着是语句,比如输入输出语句、选择结构语句、循环结构语句等,直到函数和大型程序的编写。这种从语言学角度学习程序设计语言语法的方法符合人类学习语言的认知规律,具有循序渐进、易理解、易掌握的特点。
3.2 采用引导思考的教学方式讲授程序设计语言内容
传统的授课方式往往以教师为中心,缺乏与学生的互动,不利于学生主动性的发挥。心理学研究表明:学生的学习过程是原有的认识结构与新知识相互作用产生同化和顺序的过程。在这一过程中,学生原有的观念和意识往往难以理解新的概念,需要教师设计教学内容,引导学生思考,懂得发现问题,并且分析问题,最终达到解决问题的目的。
那么,如何引导学生思考呢?刚开始,学生不可能一下子发现问题,还没有形成问题的意识,此时,我们教师需要用巧妙的问题设置,激发学生的求知欲,进而开动脑筋进行思考,进入自主学习的认知活动。
例如,在学习结构程序设计方法这一个知识点时,我们教师需要分三步走,设计三个层次的问题:为什么要学习选择结构程序设计方法?如何实现选择结构程序的编写?C语言提供哪些语句实现选择结构?一个问题比一个问题更深入具体。至于实例,我们教师可以举学生日常生活比较熟悉的例子,比如设计程序评估一个学生某门课程的学习效果,评判原则为:若其考试成绩大于90分,则为优秀,否则为一般。遵从上述三个层次的问题,一步步地引导学生思考,在思考的过程中,自然对结构程序设计方法有了更深刻的认识和理解。
参考文献:
[1]蒋华,王鑫.“问题驱动”教学方法与学生能力的培养[J].福建电脑,2006(05).
[2]卢向群.程序设计语言课程创新能力培养探析[J].中央民族大学学报(自然科学版),2007(02).
[3]张锦祥.高级程序设计语言课程教学改革与实践[J].浙江教育学院学报,2007(04).
[4],王彬.将专业课知识融入高级语言程序设计教学[J].吉林大学学报(信息科学版),2005(S2).
[5]王新光,万定生,张希伟.浅谈程序设计语言教学中工程能力的培养[J].吉林大学学报(信息科学版),2005(S2).
[6]张敏霞.程序设计语言课程教学方法改革的探索与实践[J].中国高教研究,2004(02).
关键词:C语言;教学;计算机;原理;应用
引言:C语言程序设计作为当前大部分理工科系的学生的专修科,属于程序设计的入门学科。C 语言在计算机的应用程序设计里不但具备了高效率,并且也可以同时使用在多个计算机的操作系统当中,具备了应用广泛的特征。当前,我国许多老师在讲解C语言程序设计时都只是在讲解C语言,而极少谈论C语言里同计算机原理有关的部分。文章通过对C言教学中计算机原理知识的应用做出简单论述。
一、C语言的特点
1、具有语言紧凑、简洁、灵活、方便等特点。C语言仅有32个关键字,9类控制语句,程序书写方式较为自由,通常用小写字母表示,压缩掉所有无关紧要的部分。
2、运算符相对丰富。C的运算符包括的范围非常宽泛,一共有34中运算符,因此,使得C的运算方式非常丰富,表达形式也是多种多样。
3、数据结构较为丰富,具备了当代语言的各类数据结构。C语言的数据类型包含了实型、整型、数组类型、字符型、结构体类型、指针类型、共用体类型等。可以用来作为各类复杂的数据结构的运算。特别是指针类型的数据,更加灵活、多样。
4、具有结构化的控制语句的特点。用函数当做程序的模块单位,可以实现程序的模块化。C语言是非常好的结构化语言,顺应了当前的编程类型的要求。
5、语法限制不严,程序设计自由
6、C语言可以进行位操作,可以实现汇编语言的大多数功能,可以对硬件直接进行操作。C语言的双重性,使得其不仅属于成功的系统描述语言,还属于通用的程序设计语言。
二、C语言的应用
C语言虽然被称之为是高级语言中的低级语言,虽然C语言的截面过于简单,但是学习好C语言几乎可以实现一切,并且,C语言的高效率以及高移植性非常显著。在学习阶段的学生千万不要被外界的不实传言所误导,觉得C语言无关紧要,而放弃学习的机会。当前,很多学习编程的学生都过于急躁和赶时髦,例如C#、.net等新鲜潮流,渐渐增加,让你眼花缭乱不说,还会让你永远都“赶”不完。因此,只有掌握好一门基础方式,打好底子,才可以在这纷乱的程序中学好新的知识,才能学什么都比较容易。在单片机的嵌入式领域中,C语言基本是通用语言。由于C语言是低级语言,所以执行效率会更高,并且只有学习好了C语言,才可以学好C++的编程思想。
三、计算机数据与文字的表达方式以及简单类型的关联
想要熟练的把握和运用C语言的程序设计,就要对C语言和计算机的触及原理从了解开始入手。到目前为止,计算机的语言数据从表达方式来讲,也就是计算机的语言程序,并不是作为重要部分在计算机的相关应用基础里出现。所以,在掌握和理解C语言时,要抛弃掉之前构成的对于计算机数据以及语言的想法,从基本计算机的构成开始,渐渐走进C语言的数据类型里去,最终,也会自然而然的进入到同C语言有关的技术原理的讲解当中,此时的C语言,不但可以攻克之前二进制无法实现计算机语言数据表达欠缺问题,还具备了完善的功能及类型。
四、内存储器的构造以及指针的关联
很多人在学习C语言之前只了解程序同数据是存放于内存储器当中的,之后提供给CPU进行处理和运转,但对于内存储器的结构并不了解。
在C语言的教学中,指针以及复杂的数据类型,比如:结构体、共用体里都同内存的结构紧密相连。加入学生在没有掌握内存状况的前提下学习上述知识,一定会觉得无法理解,这也是C语言的其中一个难点。因此,一定要在课程讲述之前进行内存基本知识的讲授。
之所以对学生讲解内存知识,主要是为了告诉学生内存的概念,以便可以更好的服务于C语言教学。所以,没有必要进行详细的讲解,而是应当以基本概念为主进行授课。
进行编址讲解时,让学生了解多大容量的内存编址要运用多少位的二进制,才可以保障每个字节都具有唯一的编号。编号并不存在于字节里。一旦需要储存某一个字节的编号就一定要运用两个字节来进行储存,储存的编号就被称之为地址或指针。变量的地址指的是变量所拥有的多个字节里第一个字节的地址。一个指着变量的指针变量里所包含的变量第一个字节的地址。
垃圾数据同C语言数据类型以及内存特点也是紧密相连的知识点。学生再进行编程时通常会忘记在运用前为变量设定初值,而且对于由此获得的随机结果无法理解。此时,可以通过内存的方向来解答这个问题。
结束语:C语言程序的设计课程属于整个计算机教育当中异常关键的环节,不要只将其看作是一门独立的程序设计语言课程,而是要将其视为同其他课程紧密相连的计算机课程。C 语言在计算机程序里的推广应用,不但有效促进了对于传统计算机语言编程方法的改良,还提升了计算机的工作效率,确保了计算机先进性的操作。因此,在教学过程里,不可以单独孤立C语言教学,而是从C语言的理论研究、开发等方面,进一步提升教学质量,更好的掌握C语言的应用。
参考文献:
[1] 姬海宁,曾娟,胡永达,唐晓莉,杨舰,熊杰,王卓.新型教学法在计算机应用基础课程中的应用[J].教育教学论坛.2012(23).
中图分类号:G642
摘要:针对非计算机专业的VB语言程序设计课程的教学现状,分析教学过程中出现的问题和困难,阐述全方位的教学改革方法和措施。提出在教学过程中,打破“以教师为中心”的传统教学模式,突出“以学生为中心,教师为主导”的教学理念;教学手段采取多样化,将电子课件与多媒体教学手段相结合,板书与演示相结合,课堂教学与实践教学相结合。
关键词:程序设计语言;教学改革;以学生为中心;计算思维;实践教学
运用计算机解决实际问题的能力是当代大学生的基本素质要求。计算机程序设计课程是培养学生的逻辑思维能力和应用计算机解决问题能力的基础课程,是我国普通高等学校人才培养的基本要求。目前,我国大多数高校不仅在计算机专业中开设了程序设计课程,作为当代大学生的基本要求,在非计算机专业乃至文科专业中,也普遍开设了程序设计课程。
针对非计算机专业和文科专业,很多高校均将VB语言程序设计课程作为计算机能力培养的必修课程,面向各专业的大一学生开设。对于非计算机专业的学生而言,怎样为他们讲好语言程序设计课程,一直是笔者所关注的问题。
1 VB语言程序设计教学现状和问题
针对非计算机专业,华中科技大学开设了Ⅶ语言程序设计课程。VB语言程序设计其语法简洁,功能强大,相对于其他程序设计语言具有简单易学、容易上手,容易调试等优点。尽管如此,针对非计算机专业学生,要想讲好这门课,仍旧存在诸多困难。在多年的实践教学中,我们发现存在以下现状和问题。
1)学生对课程不够重视。
学生对课程的重视度会在很大程度上决定课下学生能主动为该课程花费的精力和时间。由于华中科技大学VB课程开设的对象主要是新闻学院、经济学院、医学院、建筑学等非计算机专业学科,同学们往往认为VB语言程序设计课程与本专业的紧密度不大,对专业能力的帮助不大,而产生不够重视的情况。
2)学生对知识点的理解和掌握具有较大难度。
在VB课程的讲授中,很多知识点学生都会觉得枯燥生涩,难以理解,例如变量的数据类型、函数、子过程等概念。开设VB课程的学院往往是文理兼收或仅招收文科生,部分学生在高中时没有学习相关知识,逻辑思维能力不强。结合学生的实际认知水平,如何让学生接受程序设计相关概念,并能灵活应用是课程教授的一大难点。
3)思维方式的转变具有较大的难度。
使用计算机程序设计语言来设计开发应用程序的最终目标是要解决实际研究及工作、生活中出现的问题。因此,培养学生具有“将问题转换成用程序设计语言来解决并实现”的思维过程是VB课程的重要目标之一。如何培养学生、强化学生的逻辑思维能力和抽象思维能力,使学生能够使用计算思维方法解决实际应用问题,是授课的难点。
4)自主学习兴趣的持续性难以保障。
程序设计语言课程内容的讲授是一个由浅入深的渐进过程。前期讲授基本的语法,这部分较容易掌握,同学们的自主学习兴趣相对较高。后面讲到数组、函数、子过程等内容时,这些知识需要前期的基础知识点做铺垫,前期基础知识掌握不够扎实的同学学习起来就会有一定的困难,自主学习的积极性往往会明显下降。如何进行教学讲授和安排实验,激发学生自主学习的积极性,是整个教学环节中的一个重要问题。
针对Ⅶ语言程序设计教学过程中出现的问题和困难,我们进行了全方位的教学改革,包括在教学过程中,打破“以教师为中心”的传统教学模式,突出“以学生为中心,教师为主导”的教学理念,积极采用互动式教学,同时,教学手段采取多样化,将传统与现代相结合,电子课件与多媒体教学手段相结合,板书与演示相结合,课堂教学与实践教学相结合。
2 “以学生为中心,教师为主导”的教学模式
传统的教学方式是“以教师为中心”,在新的教学模式中,我们突出“以学生为中心,教师为主导”的教学理念。随着教学中心的转变,教师的身份也发生了巨大的转变。教师不再仅仅只是简单的知识传授者,还兼具引导者的身份,能够有目的、有步骤地引导学生进行学习。在引导过程中,教师还会采取各种方法手段激发学生的学习兴趣,让学生能够更加积极、主动、自发地学习。具体来说,我们采用了以下方法来实现“以学生为中心,教师为主导”的教学理念。
2.1 注重第一节课,激发学生对课程的重视度
传统授课过程中,通常第一节课教师在做完自我介绍后,会进一步介绍课程的总体目标、学时和教学内容的分配等内容。在贯穿“以学生为中心”的教学理念中,考虑到第一节课的重要性和特殊性,我们认为第一节不仅需要给学生一个课程内容的概要介绍,更需要让同学们产生对课程的重视,并深入激发学习的兴趣和热情,使其能自觉自愿地进行学习。
在课程内容安排上,我们会精心准备相关专业对人才计算机能力需求的资料讲述。这些资料包括学生毕业后可能从事的工作方向和就业单位;在本科阶段后期和研究生阶段的学习以及未来的工作中,会有哪些方面要求大家具有使用计算机及编程语言解决问题的能力;计算机等级考试中程序设计语言的重要性等内容。由于这些内容和大学学习以及就业紧密关联,学生听起来非常专注。在了解本专业对计算机能力的需求以及社会对专业人才计算机能力的要求后,学生往往会产生强烈的学习热情。
在实践中我们发现,按照上述内容安排上完第一节课后,学生的学习重视度和以往的学生相比,有着显著的加强,很多学生课下会主动和老师讨论该如何进行课程的学习。
2.2 课程讲述中,注重“以问题为导向,激发学生自主探索”
“以学生为中心”的教育理念,使教师在课程内容教授过程中更注重学生的状态,注重引导学生自主探索学习。前苏联教育家苏霍姆林斯基指出:“如果不想办法使学生产生情绪高昂和智力振奋的内心状态,就急于传授知识,不懂得有情感地做脑力劳动,就会带来疲倦;没有欢欣鼓舞的心情,没有学习兴趣,学习就会成为学生的沉重负担。”
在课程内容设计中,应积极引入“案例讲授法”,给出案例场景需求,以提问的方式,要求学生先自主思考,同时根据课堂具体情况,引入团队讨论机制,让学生自己先探索解决问题的方法、设计界面并回答问题的关键点,再通过与学生的交互,共同讨论得出最后的解答方案。
2.3 注重培养学生“将问题转换成用程序设计语言来解决并实现”的思维能力
在2010年的《九校联盟(C9)计算机基础教学发展战略联合声明》中,确定了以计算思维为核心的计算机基础课程教学改革的实施。当前,计算机课程对于大学生科学思维能力培养的重要性被放在了前所未有的高度。在“以学生为中心,教师为主导”的教学工作中,教师不仅要激发学生自主学习的兴趣,还必须有意识地引导学生用计算思维的方法来解决问题。要解决实际问题,程序设计语言只是工具,思维过程才是解决问题的根本所在。计算思维能力的培养是课程的目标之一,也是我们教学工作的一个难点。
课程讲授时,在激发学院自主探索的过程中,我们更注意引导思考“将应用问题转换成用程序设计语言来解决”的方法,训练学生的逻辑思维能力、抽象思维能力以及用计算思维解决问题的能力。例如在讲授“九九乘法表”的解决方案时,引导学生先思考如何将平面显示的问题分解。经过讨论,大家得出解决该问题要分两步:先将一行中的内容按列输出,然后再逐行输出。老师进一步引导大家思考,解决每一个问题需要使用哪一种程序设计的方法,大家通过讨论得出行内的列输出和逐行输出均使用循环的方法。之后老师提问引导大家思考:两个循环的关系是什么,要使用那种方法实现。学生再次思考和讨论,最终得出将逐行输出作为外循环,行内列输出作为内循环,整个是一个双重嵌套循环的解决思路。整个过程中,老师通过提问的方式,引导大家使用计算思维方法进行思考,并进一步通过讨论来得出解决方案。
2.4 实践内容的教学安排上,注重“先易后难,讲解示范和自主探索相结合;重基础保兴趣,必做选做相结合”
教学要做到“以学生为中心”,则教学活动必须建立在学生的认知发展水平和已有的知识经验基础之上。VB语言程序设计课程的对象是大一的非计算机专业学生,他们中的大部分都没有计算机编程语言的基础,其中有一半以上的同学是文科生,相关的动手能力和解决实践中出现问题的能力较弱。针对这种现状,在实践内容安排上,我们按照章节和知识点内容,遵循“先易后难,必做选做相结合”的原则,先安排容易实现的,书上有案例可仿照的实验,再逐步提高实验的难度。
实践教学过程注意“讲解示范和自主探索相结合”。第一次的实验,实验手册上对整个实验过程逐步详细描述,同时老师在大屏幕上边讲解边演示,带着大家一步步地完成。之后的实验则根据实验具体情况来安排是否讲解演示。如果是章节和知识点的第一个基础实验,通常会统一讲解示范,帮助学生快速掌握实践方法,这之后的本章节实验内容通常不再通过大屏幕统一讲解,而是要求学生自主实践、自主探索,有问题个别辅导。对于具有共性的问题,再通过大屏幕统一讲解示范。
在安排实践内容时,教师以“重基础保兴趣”为指导,做到“必做选做相结合”。考虑到很多专业文理生兼有,有部分学生的动手能力比较强,每章节的实践安排都分为必做和选做两部分,必做实验以保证基础知识点的掌握为原则,选做实验通常会和实践问题挂钩,以锻炼学生使用VB语言程序设计解决实际问题,帮助同学进一步深入理解VB语言程序设计为原则,这部分实验通常需要学生自己努力探索后才能解决。
3 教学手段采取多样化
程序设计课程的很多知识点学生都会觉得枯燥生涩,难以理解。相对于其他基础理论课程而言,该课程具有实践性强的特点;作为一门计算机编程的语言,该课程内容的前后相关度高,前面的基础知识如果掌握得不好,后续内容的学习往往会存在较大的困难。在本课程的讲授过程中,我们注重电子课件与多媒体教学手段相结合,板书与演示相结合,同时强调动手实践,将课堂教学与实践教学相结合。
3.1 电子课件与多媒体教学手段相结合,板书与演示相结合
VB语言程序设计的很多知识点仅通过课件讲述,学生通常觉得枯燥且难以理解,例如变量的声明、数组、函数、子过程等。在授课中,相关知识点不仅通过电子课件进行概念的讲述,同时教师在多媒体系统中安装了Visual Studio 2010的环境,直接在电脑上编程,演示相关的知识点。对于课程的重点难点,例如选择法排序、冒泡法排序、参数的地址传递、数组作为参数的使用等,这些既是课程的重点,也是学生学习的难点。针对这些重点难点内容,在授课时充分利用板书,逐步推导,逐行板书,将板书和讲解相结合,在板书的慢节奏书写中,让学生逐步理解相关知识点,同时适时辅以演示。例如,在讲解冒泡算法时,在Visual Studio开发环境中,进行逐语句单步调试,启动快速监视,将循环变量和被排序的数组元素的值显示在监视窗口,并通过单步调试等演示,帮助学生进一步理解课程难点。
3.2 强调动手实践,将课堂教学与实践教学相结合
程序设计语言课程具有实践性强的特点。在课程教学安排中,教师充分利用先进的实验室条件,将部分内容放在实验室讲授,由学生先动手实践,然后老师再有针对性地进行演示和讲授。例如在用户界面设计内容的讲授中,考虑到此章节的内容主要是与界面相关的控件的使用,学生学习此章以前,已经了解了界面控件属性的设置方法,并具有基本的程序编码能力,因此,我们要求学生在实验室按照书上的例题实现控件的功能并运行。在自己动手实践过程中,很多学生对控件的属性和相关的编码提出了问题,老师并不直接给学生解答,而是让他们自己思考,相互讨论,并在系统上进行多种尝试。在学生有了自身的实践经验和感性认识,并带有一些疑惑之后,老师在实验室大屏幕上,针对普遍有疑问的地方,进行有针对性的重点讲解和演示,并在紧接实验课堂之后的教学课堂上,快速对相关的知识点进行回顾。这种由学生先动手实践,后讲解的方式,一方面极大程度上提高了学生听课时的积极性和专注度,另一方面有效地讲解了相关知识点,在一定程度上少占用了上课课时。
4 结语
给非计算机专业进行VB语言程序设计的授课,一直以来存在着不少问题和困难。华中科技大学在“以学生为中心,教师为主导”的教学理念指导下,采取了一系列的方法和措施实现该教学理念,同时在教学手段方面进行了现代与传统相结合的改革。实践证明,改革的方法措施在提高学生自主学习的积极性,锻炼学生计算思维能力,提高教学质量方面有着一定的效果。随着“以计算思维为计算机基础教学的核心任务”的提出,我们下一步的改革工作重点是如何在程序设计课程中贯穿计算思维的理念和方法。参考文献:
[1]马致明.感悟Ⅶ程序设计教学[J].中国大学教学,2008(7):39-41.
[2]吴文虎.我怎么讲好“程序设计基础”这门课[J].中国大学教学,2011(12):10-12.
为了提高程序设计语言在线评测系统的软件质量,确保该系统最终能够满足教师和学生的各种功能需求。本文通过结合程序设计语言在线评测系统中几个功能模块的实例,详细介绍几种黑盒测试技术在程序设计语言在线评测系统中测试用例的设计和应用。
系统功能简介
程序设计语言在线测评系统是一款以减少计算机程序语言教师作业批改工作量和提高学生学习程序语言效率的软件。整个系统的设计采用B/S模式以及MVC三层架构,主要包含以下五大功能模块:第一、用户注册与登录模块。第二、学生在线答题与成绩查询模块。第三、程序在线评测模块。第四、教师试题录入与编辑模块。第五、在线疑难问题讨论模块。
黑盒测试技术
黑盒测试技术是软件测试的主要方法之一。由于在黑盒测试中,主要关注于被测软件的功能实现而不是逻辑,又叫做功能测试。测试人员不需要了解软件的具体实现方法,不需要具备应用程序代码和编程语言等专业知识,只需要了解程序的输入、输出和系统的功能,从用户角度对软件界面、功能和外部结构进行测试。执行黑盒测试的人员通常是不同于系统开发人员的第三方,他们可以依据系统的用户需求文档,在软件实现工作的同时,并行开展测试用例的开发工作,最终达到缩短整个项目的开发周期的目的。
常见的黑盒测试技术主要包括有等价类划分测试法、边界值分析测试法、特殊值分析测试法、错误猜测测试法、因果图测试法和基于判定表的测试方法等等。
黑盒测试技术在程序设计语言在线评测系统中的典型应用
1.等价类划分测试法
等价类划分测试法主要是指,把输入的数据的可能值按照一定的标准划分为若干个具有一定共性的等价类,而只需要在每个等价类之中抽取一个有代表性的元素来构造测试用例,就是说只要该等价类中的一个测试用例测试结果正确,就代表该类中所有测试用例的测试结果都正确。这种测试方法的目的一是大大降低测试用例直接的冗余,二是期望进行某种意义上完备的测试。
对于等价类的划分一般又分为有效等价类和无效等价类。有效等价类主要是指那些符合系统的需求文档的正确、合理的“有效”输入值;而无效等价类则是指那些不符合系统的需求文档的错误、不合理的“无效”输入值。在设计无效等价类测试用例的时候,为了避免遗漏掉某一类的错误,通常要从多个不同的角度设置多个无效等价类,并为每类设计测试用例。
在程序设计语言在线评测系统的登录模块中,根据系统的需求文档,使用该系统的登录人员主要有三类:学生、教师和管理员。各类用户凭借自己的用户名和密码进行登录。以学生用户为例,学生以学号作为用户名进行登录,学号通常是以“入学年份+班号+人头号”的数字形式出现,假设该学校第一届学生入学是1994年,班号以最多1 000个班为界,从000到999用三位数字表示,再假设每班人数不超过70人,用数字00到69进行表示。对于学生用户登录的等价类划分如表1,设计覆盖(1.1)到(1.9)的9个等价类的测试用例,具体的测试用例见表2。
2.边界值分析测试法
边界值分析测试法可以看成是对等价类划分测试法的一个补充。大量的测试经验表明,程序的错误常常出现在输入变量的极值附近。因此,在设计边界值测试用例的时候,不同于在等价类划分测试法中取每一个等价类的典型输入值,而是取每一个等价类中,刚好等于、略微小于或是略微大于边界值的输入值作为测试数据。
仍然以程序设计语言在线评测系统中登录模块的学生用户登录功能为例,补充之前的表2,设计测试用例如表3。
3.错误猜测测试法
错误猜测测试法是一种依据测试人员的经验和直觉,对程序中可能会出现错误的地方进行有针对性测试的辅助测试手段。这种方法主要是通过对程序中有可能出现错误的地方进行“猜测”,并将所有的错误类型列出清单,再根据清单逐一设计测试用例的方法来实现的。
关键词 计算机 程序设计 课程群 建设和研究
中图分类号:G642 文献标识码:A
随着新课程改革的不断深入,对计算机专业的教学要求也越来越高。在信息技术发展飞速的现代社会,在计算机专业课程中,建设与研究程序设计课程群已经成了时代对计算机专业知识教育的基本要求。“程序设计”是计算机程序设计课程群建设的关键内容,这个过程是对课程实践内容要求相对较高的过程。计算机课程的发展领域非常广阔,涉及到的内容也极为丰富,因此,利用建设程序设计课程群来提高学生的创造力和开拓性思维是我们培养新时代计算机人才最重要的内容。
1研究内容
计算机专业人才培养也有相应的要求和规定,即在本科四年的学习过程中,要把程序设计在每一门课程的教学过程中体现出来,应该把培养他们的程序设计能力放在最基本的能力培养方案之中。包括程序设计这项内容的计算机专业课程有十多门,例如,C语言和C++程序设计,C语言可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序,代码清晰精简,十分灵活;C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格、数据结构课程和数据结构课程设计、面向对象的以及数据库的课程设计。还有一系列诸如Windows和Java等的程序设计,嵌入式程序设计和net程序设计等一系列课程。这些课程的应用设置完全是按照21世纪发展过程中对人才的需求特色来进行设置的。把为国家和社会培养大批实用性的人才作为主要的培养目标,不仅要让他们了解计算机技术还要让他们培养基本的程序设计技巧和基本能力。
2方式构建
要设置计算机程序设计课程群,就要按照学校教学特色的不同来进行设置。学校要分清计算机市场的市场需要,确定程序设计的工作职能以及工作范围。把学校和企业进行紧密的结合与联系,把学校的专业教师和企业的相关专家进行紧密的结合与联系。组成一支由企业和专家共同组成的建设队伍。现有的课程包含的科目内容比较多,比如,数据结构以及高级语言程序设计等。换句话说,也就是在已有的人才培养方案的基础上,将课程群所包含的科目进行科学设置,在一定情况下也可以将人才培养方案进行大量的修改。程序建设工作要在充分对企业进行调查的基础上进行,可以设置专门的操作程序,对学生的操作程序的技术进行评分,用以提高学生的综合素质和职业能力。其次,要根据学生进行程序设计的基本能力进行课程群设置内容的组织。确定主要的课程内容,然后根据相关课程的性质进行课程群的建设。
3核心思路探索
(1)从已经建立起来的国家人才培养方案进行考虑,将各门课程科目在课程群里面进行科学的设置。
(2)就是仔细研究构建课程群的思路和主要框架,这个构建过程要从点到线,从线到面,从面到体,即,从知识点联系到课程主线,再从课程主线构建整个课程群,最后建立起课程群与课程群之间的体系链接。经过这一系列的步骤,教学任务和学习任务才能得到相应的明确,教学和应用之时,会体现出更有层次感的知识架构,在学习的过程中,学生也可以对知识进行准确的定位,最后进一步地将基础知识进行强化,因此,培养出来的人才的知识面会更广,他们的实践能力和应用能力也会相应的得到提高。
(3)是在授课过程中教师最好把理论知识、实践应用、课程群的体系都形成体系化的教学环节。即使用一条龙的模式进行授课,这样可以更清晰地分享给学生相应的程序设计和程序之间的衔接和转化。
(4)是加强对学生思维的扩展,让他们具备一定的创新知识和创新能力,这个过程不能急于求成,而是要一步一步的进行,也可以从细节出发,引导学生去自主创新,强化学生的创新意识和创新精神,让他们更具抽象的思维能力和创造力,这样才能达到创新型人才的培养目标。
(5)是将实验引入课堂教学的基本内容里面,让学生主动参与到程序设计里面去,这样一方面可以将枯燥的知识变得有意思,提升学生上课的积极性和对这门课程的热情,另一方面还可以增强学生的动手能力和创造力,让他们更有学习的动力和热情。
(6)结合现在软件公司对人才的基本需求,和软件企业紧密联系在一起,这样才能明确所建设的程序设计课程群是否能够满足市对人才的需求。
(7)将理论考试和上机考试的成绩比例进行更加科学的分配,将程序设计也放在考试内容里设计出具有操作价值的上机考试科目。
(8)将自己的研究视角进行相应的改变,提倡理论联系实际,将提高学生的综合素质作为课程学习的前提和基础。
4结语
总之,通过怎样的教学方式才能将建设程序设计课程群的过程设计得更加实用,是每一位计算机专业教师和相关院校需要钻研的问题。为了抑制传统教学模式造成的不利影响,计算机程序设计课程必须将理论和实践结合在一起,实现一条龙的设计步骤,把教师放在教育引导的位置上,强化对学生相关实际应用专业知识素养的培养。教师要从细节出发,引导学生去自主创新,强化学生的创新意识和创新精神,让他们更具抽象的思维能力和创造力,这样才能达到计算机专业程序设计课程群的建设目标。
参考文献
[1] 丁丽.程序设计课程群建设与改革研究[J].山东省农业管理干部学院学报,2011,28(6).
[2] 孙雷,王新,张丽英等.计算机专业程序设计课程群的研究与实践[J].教育教学论坛,2013(11).