首页 > 文章中心 > 程序设计语言

程序设计语言

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇程序设计语言范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

程序设计语言

程序设计语言范文第1篇

关键词:程序设计语言;VB;中职;高职单招;教学策略

一、中职生能力水平与高职单招考试现状分析

中职生普遍学习能力水平不高,部分学生未养成良好的学习习惯,对学习有较大的畏难情绪。多表现为课堂上不注意听讲,不记笔记,课后作业完成情况差,不复习功课。VisualBasic程序设计语言是一种面对对象的可视化编程语言,包含大量需要理解并识记的基础知识点,同时具有较强的实践操作性。学生在学习VB程序设计语言时,常因该科目过于困难而遭遇学习挫折,甚至产生厌学情绪。从2015年开始,福建省高职单招考试改革,除笔试外,新增技能考试。因此,对志在升学的中职生来说,书本知识的掌握与技能实践能力,这二者的培养同等重要。教师在授课过程中,不仅要重视基础知识点的讲解,更要注重上机操作技能的培养。因此,激发学生的学习兴趣,使学生积极主动参与到学习活动中,掌握基础知识点并培养优秀的上机操作能力,是教师制定教学策略的首要目的。

二、教学策略

(一)优秀案例设计导入新课

VB程序设计语言枯燥难懂,传统的教学模式中,教师常采用“讲授法”授课。从课堂一开始,就不断灌输程序设计语言的基本概念知识,不断讲解,致使学生难以理解概念,甚至丧失学习兴趣,事倍功半。为了激发学生学习兴趣,教师应设计生动有趣的优秀案例导入新课。例如,在教授计时器控件这一小节内容时,教师根据计时器控件能够通过设置时间间隔从而达到定期做一些程序处理的特点,与寓言故事“龟兔赛跑”相结合,设计一个乌龟与兔子赛跑的小程序。枯燥的程序设计语言转换为生动的小游戏,引导学生直观认识并体验程序设计的实用性,从而激发学生学习兴趣。

(二)合理教学方法提高课堂教学效率

VB程序设计语言学科内容繁多,理论性与实践性兼有,教学方法应根据教授知识点的不同,灵活转变组合,提高课堂教学效率。

1.详细讲解基础知识,掌握基本结构语句。教师采用讲授法,使学生掌握基础知识点。例如在计时器控件教学中,演示完小程序,导入新课,教师首先讲解计时器控件的特有属性、事件,计时器控件处理程序的特点,使学生打好扎实的基础。

2.结合基础知识,演示上机操作。教师采用任务驱动法,结合基础知识,演示上机操作,并布置任务让学生完成。中职生的学习能力水平不高,教师首先采用演示法,降低学习难度,设置简易任务,督促学生完成,并一一检查,保证完成率。程序设计语言是一门实践性极强的学科,上机操作练习后,更能加深学生对程序语言的直观理解。

3.教师总结错误,改正巩固知识。学生上机操作过程中,教师巡视指导。上机操作中,学生易出现错误,教师可于巡视过程中发现指导,最后总结经常出现的错误,统一讲解,巩固学生的基础知识。

4.设置思考题,强化自主学习能力。布置简单任务,是为了降低学习难度,提高学生的学习成就感。之后应设计难度较高的思考题,强化学生的自主思考能力。采用自主探究方法,学生可几人一组,探索如何完成任务。程序设计语言最终是一门灵活性极强、创造性极高的科目,单一的讲授法与演示法虽能使学生掌握最基础的知识点,却不能培养学生设计程序的自主思考能力。因此,适当提高任务难度,能激发学生的探究兴趣,促进他们积极思考。

5.综合式项目,整合所学知识。VB程序设计语言实用性极强,设计综合式题目,将所学知识都整合到一个综合项目中,能让学生深刻认识到程序设计的实用性。例如在计时器控件的上机练习题目中,用到的并不止计时器一个控件,更包括图片框、命令按钮、标签框等控件,应用的知识除了计时器控件的Timer事件、Interval属性外,还包括Left、Enabled属性和基本赋值语句等。将学过的多个知识点整合到一个题目中,既能让学生梳理学过的知识,又能提高学生综合运用VB程序设计语言解决实际问题的能力。

(三)渐进式教学任务提高学习成就感

班级授课经常存在学生学习能力高低不一,理解程度有好有坏的情况。教师授课若过于简单,全体学生皆能理解并完成,对一部分优生而言,学习丧失挑战性,容易失去学习兴趣,且无法更好地培养学生自主思考能力。而授课若太难,则水平较低的学生易遭遇学习挫折,产生厌学情绪。因此,设计教学任务时,教师应做好课前准备,钻研教材,将基础概念与练习题目紧紧结合,以学生的理解能力为基础,将难度设计为渐进式,由易到难。这样既能让学生获得学习成就感,激发学习兴趣,又能培养学生自主探究的精神。

(四)讲授与上机操作相结合,理论与实践并重在VB程序设计语言学科教学中,上机操作实践十分重要,教师课前应认真准备教材、上机任务,授课过程中安排合理充分的上机练习时间。VB程序设计语言是一门可视化编程语言,操作性极强,只有充分的上机练习才能保证学生对技能的完全掌握。高职单招考试中,笔试过后,仍有技能实践考试,理论与实践并重。

(五)课后巩固基础知识点

中职生学习习惯较差,大部分学生并无课后复习的习惯。教师在制定教学策略时,应考虑到课后巩固知识这一环。通过布置作业任务、课后习题督促学生完成课后巩固;通过小测、考试等手段激励学生的竞争心理,增强他们的学习主动性;通过批改作业、小测,发现学生的知识薄弱点,再加以强化。

三、结语

中职教育是职业技术教育,实践操作能力的培养至关重要;由于高职单招已成为中职生升学的重要渠道,掌握书面知识也同等重要。学生的计算机操作水平与教师的教学质量紧密相关,教师应根据VB学科的特性,分析其重难点,灵活运用多种教学方法,提高教学质量,提高课堂教学效率,以学生为主体,激发学生学习兴趣,同时不断提升教师的教学水平。

参考文献:

[1]梁徳赛.VB程序设计课程教学探讨[J].科教导刊,2012,2.

[2]张华.中职计算机实践教学法的应用与教学创新探讨[J].计算机光盘软件与应用,2011,5.

[3]高晓青.中职计算机教学方法探究[J].学周刊,2013,6.

程序设计语言范文第2篇

关键词: 《C程序设计语言》 误区 感悟

《C程序设计语言》课程是电子信息工程专业开设的第一门程序设计类课程。该课程在本专业的课程体系中处于承上启下的地位,对于学习后续高级编程语言具有很好的导引作用。笔者经过一个学期的系统学习后感觉受益匪浅,不仅学到了基础的编程语言知识,更重要是的掌握了逻辑性较强的编程思想。为了让更多学生很好地学习这门课程,笔者借此文总结出《C程序设计语言》课程学习时常见的误区,并给出解决上述误区的方法和途径,供广大同仁借鉴。

一、学习《C程序设计语言》课程时常见的误区

1.只注重写程序,而忽视读程序。

很多学生在刚学习这门课程时就希望自己能够独立编写出一些程序,但实际情况大相径庭,此时挫败感油然而生,甚至一些学生因为这种挫败感产生对这门课程的厌学情绪。其实就笔者的学习经历而言认为刚开始学习时,不要急于自己编程,因为此时你还没掌握好基础知识,不可能独立完成程序的编写,认真研读别人的优秀程序才是学习该课程入门最快,也是最好的方法,在读别人程序的过程中慢慢领悟别人的编程方法和思想。

2.没能将理论学习和上机实践进行有效衔接。

《C程序设计语言》课程的教学分为理论讲授和上机实践两个环节,因为学校主客观原因的限制二者之间存在一定的时间间隔,但二者在内容上又是相互连贯的。时间上的不连贯和内容上的连贯性会使得一些学习不主动的学生不能将理论课上老师所讲的知识和技能在上机实践中得到有效的验证和消化。因此,一些学生在上机实验时面对老师布置的作业会觉得无从下手,学习兴趣就会大大降低。而C课程的知识是承前启后的,前一部分知识没有掌握好,后面章节内容的学习也会大受影响,这样就进入了一个恶性循环。最大的问题是这部分学生不仅自身学不好内容,而且会影响其他学生,这样班级的整体学习效果就会大打折扣。

3.缺乏一定的逻辑思维能力。

很多学生错误地认为C程序设计语言就是变量、控制结构、函数、过程、数组的简单结合,认为只要掌握这些就可以编写出良好的程序了。其实不然,真正优良的程序是需要靠自己的逻辑思维对变量、控制结构、函数、过程、数组这些要素进行创造性的整合。所以C程序设计语言是一门锻炼学生逻辑思维能力的课程。当你具有抽象逻辑思维能力和弄清楚了变量、控制结构、函数、过程、数组相关知识后,编写C程序就是易事。

二、走出上述误区的方法

1.端正学习态度,充分认识到本门课程的重要性,并保持良好的学习心态和学习习惯。

《C程序设计语言》是很多高校学生接触的第一门编程语言,该课程对于培养学生较强的逻辑思维能力具有非常重要的导引作用,而逻辑思维对于处于信息社会的大学生而言是必不可少的,但是逻辑思维能力的培养又不是一朝一夕的,需要持之以恒地努力。对于学生而言,只有从内心认识到这一点才可以使自身在遇到学习困难时迎难而上。对于一些偏文专业的学生而言,在学习初期肯定会觉得一些概念晦涩难懂,与自己的思维方式存在差异,此时千万不能有畏难情绪,一定要相信自己,在自身努力、同学帮助和教师引导的三方努力下共同渡过难关,而自身的认真努力是首要的。课前一定要认真预习,对自己通过预习不能理解和解决的知识点和概念进行标记,上课时当老师讲授到这部分内容时要认真听讲,如果通过教师的讲解依然不能理解,千万不能就此搁置,一定要及时向老师和同学请教。C程序设计的入门学习并不难,却是一个十分重要的过程,因为程序设计思想就是在这时形成的,良好的程序设计习惯也在这个阶段养成的。

2.学习时要注重理解一些重要的概念,勤于动手编写程序,并借鉴别人编写的好程序。

C程序设计课程就其本质而言并不是很复杂,其核心无非就是变量、函数、过程、数组、控制结构(顺序结构、选择结构、循环结构)、文件和数据库等概念和相关操作。但这些概念虽然一些同学在数学课程中听说过,感觉似曾相识,但此概念非彼概念,二者还是有所不同,要真正理解这些概念就必须多动手、多思考。程序设计是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的。因此在学习过程中要勤于自己独立编写一些小程序,在编写过程中肯定会犯一些错误,在错误的解决过程中可以提升自己的编程能力,在能力提升的同时增强自身对该课程的学习兴趣。对于初学者而言,一方面要自己独立编程,但由于自身编程知识储备不充分,也要借鉴别人优秀的解题思路与方法,探究别人的思维过程,增强自己的思维能力,然后结合自身实际尝试实现或者说模仿着实现。

3.在学习过程中要避免孤军奋战、单打独斗,注重团队协作和互助。

笔者所在学校C程序设计课程的教学遵循先理论讲授后上机实验的步骤。一个教学班的学生人数在30至40人,实验课和理论课都只有一个教师。理论课和实验课之间的时间差会使一部分基础较薄弱的学生在实验课上会碰到各式各样的问题,而基础较好的学生在实验课上会很自如地完成老师布置的实验任务,因为只有一个老师进行辅导,如果那些基础不是很好的学生在学习过程中遇到问题后请教老师,老师此时可能正在辅导另外一个学生,在这种情况下就可以选择向身边基础较好的同学请教,这样既可节省时间又可加深同学之间的交流协作。经过半个学习基础知识的学习,老师会布置一些综合编程题让学生融会贯通并有效应用以前所学知识,笔者认为此时同学之间可以以团队形式进行答题,这样可以达到取长补短的效果。

参考文献:

[1]马丽洁.高职计算机和软件专业语言类课程改革探析――以C程序设计语言为例[J].电子商务,2015(07).

程序设计语言范文第3篇

关键词:在线 程序设计 评测 系统

中图分类号:TP311.51 文献标识码:A 文章编号:1007-3973(2013)003-065-02

1 引言

如今计算机技术发展迅速,计算机已经成为了人们在日常生活和工作中不可缺少的一种现代化工具。而要想充分的利用计算机的高效处理能力,程序设计就显得尤为重要。在高校中,很多专业都开设的有程序设计课程,要求学生具备一定的程序设计能力,以便能够借助于计算机这种现代化工具解决一些学习和工作中遇到的实际问题。因而学好一门计算机程序设计语言,具备一定的程序设计能力已经成为现代大学生必不可少的一种技能。在学习计算机程序设计语言时,学生们往往要编写大量的程序,教师要对学生们所编写的每一个程序进行调试运行,以便指出并纠正学生们在程序设计中出现的一些错误。从学生提交程序开始,到教师编译、调试,运行,到最后对程序做出评价结果。每一个阶段都是一个非常繁琐的过程,学生提交的程序越多,教师在程序设计评测过程中所花费的时间和精力就越多,大大增加了教师的工作量。

设计一套在线的程序设计与评价系统,可以让学生们在线进行程序设计,并能通过网络直接提交给系统,由系统对学生们提交的程序自动进行编译运行,自动反馈编译运行中的错误信息或程序运行的最终评价结果。该系统即方便了学生提交程序,也减少了教师对程序评测的工作量。同时,学生们能通过系统的评测,较快的了解程序设计中所出现的错误,以及时更正,提高学习程序设计的效率。

2 系统功能设计

系统以减少教师工作量,提高学生学习计算机程序设计语言的效率为目的,应具有以下功能:

(1)学生在线答题。

学生可通过系统页面登录,登录后选择程序试题,在线进行答题并将编写好的程序源程序提交到Web服务器端。

(2)自动程序评测。

Web服务器端对学生提交的程序进行在线评测,并给出评测结果。

(3)在线成绩查询。

学生可在线查询自己所提交程序的评测结果。

(4)在线考试与竞赛组题。

系统可用于平时计算机语言课程的考试与竞赛。考试或竞赛时允许教师指定相应考试题目,学生对教师指定的考试和竞赛题目在规定时间内答题,答题后在线提交并能实时查询自己的答题成绩。

3 系统总体设计

整个系统的设计采用B/S(Browser/Server)的模式,开发遵循MVC的三层架构,及底层Model层负责数据模型、中间层Control层负责业务逻辑的处理、高层View层负责用户界面。三个层次功能上相互独立,有益于系统的日常维护及进一步的扩展。

Browser客户端页面主要用来实现View层,负责用户界面,学生可通过客户端页面进行用户注册、登录以及在线答题和成绩查询;教师则可通过客户端页面进行试题与试题答案和要求的编辑与上传,还可根据考试或竞赛的需要进行试题的组织与编排。

业务逻辑层主要在Web服务器端能够对数据库中的程序源代码进行读取并生成相应语言的源程序以进行编译运行和评测,并最终给出评测结果,将评测各阶段的数据信息写入数据库中。

底层的数据模型主要用来保存学生和教师的信息、试题相关信息、学生提交的程序源代码信息、学生程序在服务器端的编译运行信息,以及学生最终的程序评测结果信息。

4 系统详细设计

根据系统的功能需要和总体设计,系统的详细设计主要分为以下几个模块:

(1)用户注册与登录模块。

学生或教师可通过系统进行注册,注册后不同身份对系统有不同的权限,如学生可在线答题,而教师可在线试题录入与编辑。

(2)学生在线答题与成绩查询模块。

程序试题按不同难度级别进行分类,学生可根据自己的学习程度选择不同难度的试题。选题后,学生可选择不同的计算机程序语言来进行具体实现,实现后学生通过系统页面将编写好的源程序代码直接提交给Web服务器。

待服务器端对程序做出评测结果后,学生可在线访问服务器端数据库中的评测信息与结果。如果没有编译通过,学生能查询到未通过编译的错误信息,可进一步修改程序后再次提交;如果通过了编译,学生可查询自己的程序是否执行正确以及程序运行的效率程度和最终的评测结果。

(3)程序在线评测模块。

学生在线答题的程序源代码提交到Web服务器端的数据库。在Web服务器端运行着一个守护线程,该守护线程不断检测提交到数据库中的源程序代码,一旦检测到尚未评测的代码,守护线程自动将该程序代码从数据库中读取出来,根据学生所选的计算机程序语言类别建立相应的源程序文件,并在Web服务器端调用相应的计算机语言编译环境进行源程序的编译,将编译时的编译信息写入数据库。若编译错误,则将编译时的错误信息写入数据中,可在线反馈给学生;若编译正确则进入程序运行测试阶段。运行测试时,需从数据库中读取该试题的测试数据,一般有三到五组的测试数据,一一代入编译后的程序中进行测试运行,运行后将每次运行的结果与运行时所花费的时间复杂度与空间复杂度记录到数据库中,并将每次运行的结果与数据库中该试题的正确结果进行比对,以判断该程序是否运行正确。进一步判断程序每次运行的时间复杂度与空间复杂度是否在该试题规定的时间复杂度与空间复杂度内,以确定该程序的运行效率是否达到试题的规定要求。系统将根据程序运行的正确程度以及运行效率给出不同的评测等级结果。

教师在客户端页面录入并编辑试题更新到服务器端的数据库中,完成试题的编制工作。

5 开发与实现

使用Eclipse开发工具,综合Spring技术、Hibernate技术,数据库使用MySQL,系统整体部署在Tomcat服务器,所有开发工具、数据库、服务器、框架全部为开源的免费软件,并且根据各个软件的授权协议进行使用。系统功能,构建具有良好的扩展性、开放性的系统,易于维护,升级方便。

底层使用Hibernate框架访问数据库,主要的类有BaseDao。BaseDao为所有DAO的父类,使用了泛型。BaseDao定义了数据库操作的常用方法,子类只需继承便可使用对应的方法,因为使用了泛型,所以更新操作的返回值为各个实体类Entity,返回的Entity向上层提供给Service进行业务逻辑处理。

数据库表所对应的类为实体类,一个实体类进行数据库的映射,默认自动对应的数据库表是和类名同名的数据表,如果数据库表和类名不同名可以设置@Table(name="users")进行映射。同样数据库字段名默认情况下是和类的属性名同名的,如果不同名可用@Column(name="user_id")进行映射设置。@Id说明该属性对应的字段为数据库主键。

Service为业务逻辑层,通过Spring的依赖注入,注入不同的DAO,进行数据库操作。DAO返回给Service的是Entity,在service的不同方法里面通过DataTransferUtil类进行转换,转换为页面需要的域模型Domain,提供给上层。

6 总结

该系统的设计可完成在线计算机程序设计的评测工作,一定程度上减少了教师阅读程序和调试程序的工作量。但在程序效率的评测上还不够精确,这取决于程序运行时的时间复杂度与空间复杂度的测定算法,系统中该算法的应用尤为重要,应着重设计实现。

(2012年河南省信息技术教育研究项目 ITE 12165)

参考文献:

[1] (美)威尔顿,麦可匹克.JavaScript入门经典(第3版)[M].施宏斌,译.北京:清华大学出版社,2009.

[2] (美)Marty Hall,Larry Brown.Servlet与JSP核心编程(第二版)[M].赵学良,译.北京:清华大学出版社,2004.

[3] 孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.

[4] 张孝祥.Java就业培训教程[M].北京:清华大学出版社,2003.

[5] 王国辉,李立文,杨亮.JSP数据库系统开发完全手册[S].

[6] 陈鹏,程勇.J2EE项目开发实用案例[M].北京:科技出版社,2006.

[7] (美)Bruce Eckel.Java编程思想[M].陈昊鹏,译.北京:机械工业出版社,2007.

程序设计语言范文第4篇

关键词:VB;程序设计;实例;多层次

一、教学中遵循理论与上机循序渐进,基本实例与综合实例有机结合

(一) 对书本知识进行精心编排,注重背景知识和基本概念的结合

我们注意到,在VB程序设计语言的教材布局上,往往是先从基本的语法现象入手,比如先介绍数据类型常量变量等,实际上,教学过程中演示这些基本数据类型的例子本身就会涉及对象、属性、事件、方法。VB课程的教学是面对非计算机专业学生,缺乏对windows程序运行机制的相关背景知识。因此,VB教学中,讲解基本概念和VB的事件驱动机制、可视化程序设计必须结合在一起。如果教师在讲解基本概念的时候照本宣科,演示数据类型的程序实例的时候,由于对VB的运行机制和可视化程序设计的方式不了解,学生的注意力并不关注也不理解教师讲解的内容,而是去思考这个程序的实现过程是什么,可是由于没有关于对象的基本概念,立刻造成了理解障碍,不但对应该掌握的知识点一头雾水,对程序设计也产生了一种恐惧心理,这个是我在VB教学中的深刻体会。

因此,在VB教学中教师应当时刻关心学生的知识结构,从学生的思维角度去考虑问题,必要的整合教材的相关知识点,特别要注意相关知识点的穿插讲解,打破学生的思维障碍。比如在讲解VB循环结构的时候,可以和后面的数组知识联系起来,使学生明白为什么在有了变量这个概念以后还需要引入数组,而且通过循环结构对数组元素的打印,深化对循环结构的认识。有机地改变课本知识的逻辑结构,以相关的知识点灵活组织课堂教学,通过让学生观看,在实际操作中主动模仿,领悟这些概念,最终引导学生明白抽象的理论知识并不神秘,让学生在轻松愉快的气氛中接受新知识。

(二)VB程序设计是面向应用的科学,注重理论和动手的结合

1.注重基本问题的上机操作。对VB有恐惧心理的同学往往是在学习的初期没有能够理解VB的上机环境,数据类型,变量等最基本的概念,而这些概念通过上机的直接观察是很容易理解的。教师在教学中一定要把握住学生的思维和背景知识,一个简单的概念经常成为学生学习程序设计语言的重大障碍,对学生的自信心和学习热情都会产生影响。因此,在VB教学的初期,要把基本的上机操作和基本的语法知识结合介绍相关的背景知识讲透,为学生的上机操作和后续学习扫清不必要的障碍。

2.演示实例,引导学生模仿。教师可以通过对实例系统的调试、改进,开拓学生编程思路,融合相关的知识点,必要时候允许学生通过模仿、达到熟练掌握的目的。模仿是学习程序设计重要的一环,即使对熟练的程序设计人员而言,也常常需要参考,或者说模仿别人成熟的代码,整个是程序开发的基本特点。因此,教师应鼓励学生采用模仿的方式去实现不同的应用需求,达到灵活应用,举一反三。

3.深化实践教学,以理论课教学为基础,通过案例的整合,形成不同层次的上机项目,供学生选择。对于理解能力强的学生而言,可以通过有一定难度的实践课,达到培养学生分析问题和解决问题的能力,为今后的深入自学打下良好的基础。对掌握综合案例有困难的学生,老师更应以基本案例为基础,强化基本知识点,逐步提高这类学生对VB的学习能力。教师应亲自指导,与学生一起上机实验,随时监控学生实验过程。对学生提出的问题及时予以指导,发现学生常犯的共性错误,可在理论课上进行点评。

(三)教学手段多样化

根据程序设计课程的特点,除了采用传统的教学方法如:引入问题、问题讨论、概念解析外,可以采用教学手段结合进行:

1.独立实例和综合实例结合进行

独立实例教学法可以加强对每个知识点的运用和理解,但对前后知识往往没有连贯性,对学生的实际应用能力提高不大。因此在教学实践中体会到,除经典的独立实例外,将一个有实用价值的、典型的、规模较大的、综合实例的实践应用于教学全过程,不但可以对整个VB应用程序的开发有观念上的认识,也可以全面提高学生的编程能力。如提出问题:设计一个“学生管理系统”。首先,用最基本的概念和最简单的界面,给出该系统的第一个框架版本,以后的每一次课,都对该系统提出新的功能和结构上的要求,并用本次课介绍的新概念和新方法对它进行功能上的扩充和结构上的改进。每次得到该系统的一个增强的新版本。学生随着教学的深入,会更有兴趣地积极投入到对实例系统的调试、改进中,不但掌握了所学的基本知识,同时也提高了编程能力。

2.通过分析上机错误,引导学生理解课本上的概念,学习调试方法。

学生对数据类型、变量、运算符、表达式等语言规则的掌握需要一个过程,对结构化程序设计的知识需要不断积累。经常听到学生反映能听懂老师授课的内容,但自己编制的程序往往在机器上难以运行。课堂上,可以将容易出错的概念以反例形式展示给学生,让学生主动找错误,通过上机运行去发现,比如下面错误使用逻辑运算符的例子。

用if语句编程计算下列分段函数值:

|x2+x-3 x<0且x≠-3

f(x)= |x2-5x+60≤x<10且x≠2及x≠3

|x2-x-1其他

学生往往编写为:

Private Sub Command1_Click()

Dim x!, y!

x = Val(InputBox(“x=”))

y = x * x - x 1

If x < 0 And x -3 Then

y = x * x + x 6

ElseIf 0

y = x * x - 5 * x + 6

End If

Print “x=”; x, “y=”; y

End Sub

ElseIf 0

乍看起来,似乎程序没有什么错误,实际上学生把数学符号的用法和VB中符号的用法混淆了。在VB中0

(四)用直观的方式培养学生利用程序设计语言理解和实现算法的能力

算法(Algorithm):计算机解题的基本思想方法和步骤。学生算法思维的形成是程序设计语言教学中的难点,也是学好程序设计语言最重要因素。程序本质上就是用一定的语法去实现算法思想,教学中,我往往采用直观教学法来让学生去理解算法,因为算法本身就是一种解题方法和步骤,可以让学生代表不同的数字排列起来,通过表演的方式模拟冒泡排序,课堂不但活跃,而且学生也非常轻松地理解了。

二、结束语

通过VB程序设计语言的教学,使我逐步认识到程序设计语言教学是一项复杂的系统工程,随着计算机科学的发展,对教师的教学水平的要求也越来越高,尽管在教学实践中总结的一些经验,获得了一些效果,但与因材施教的教学模式仍有差距。教学上的改革和探索一定要与实际相结合,遵循因时、因地、因人而异的原则,采用灵活多样的教学手段、教学方法,充分调动学生的积极性,培养学生自主学习的能力,为学生今后各个领域的学习和研究打下坚实的基础。

参考文献:

程序设计语言范文第5篇

摘 要 针对学生学习计算机程序设计语言的困难,以提高学生的实际编程能力为目标,提出了分层次的基于问题(Problem Based Learning,PBL)的程序设计学习方法。包括:以激发学习兴趣为目标的教学情景案例、以培养“计算思维”为目标的宏观问题和以培养实际编程能力为目标的微观问题等。教学实践表明基于PBL的教学取得了良好的效果。

关键词 基于问题的学习 教学情景 宏观问题 微观问题

中图分类号:G424 文献标识码:A DOI:10.16400/ki.kjdkz.2015.08.061

Programming Design Language Teaching Cases Base on PBL

BAI Hongtao[1], HE Lili[2], HU Chengquan[2]

([1] Center for Computer Fundamental Education, Jilin University, Changchun, Jilin 130012;

[2] College of Computer Science and Technology, Jilin University, Changchun, Jilin 130012)

Abstract: For students to learn computer programming languages difficult, in order to improve students' ability to target the actual programming is proposed based on hierarchical problem (Problem Based Learning, PBL) learning programming. Including: to stimulate interest in learning the target of teaching case scenario, to develop macro issues "computational thinking" as the goal, and to develop practical programming capabilities targeted micro issues and so on. The practice shows that the good results achieved based on the teaching of PBL.

Keywords: problem-based learning; teaching situation; macro issues; micro issues

0 引言

计算机程序设计语言是学生们普遍认同的学习难点,过多的语法知识点以及在考核考评模式下,学习计算机程序设计语言应有的根本目标――编程能力没有得到很好的锻炼。当前的教学模式是以教师为主体,教师是教学过程的主导,学生是知识的被动接受者和思想的跟随者。因此,培养学生的创造力,构建以学生“学”为中心的教学体系是非常必要的。

基于问题(Problem Based Learning,PBL)的教学模式率先由美国神经病学教授Barrows创立。①PBL已从国际医学界扩展到工程、法学、工商管理等诸多学科,从大学高等教育逐步延伸到中小学教育。②③PBL在国内的起步较晚,上世纪90年代才引起研究者的关注,全国教育科学“十五”项目规划将PBL的网络化设计列为重点课题。1994年开始,陆续有关PBL理论研究的文章发表,且侧重于医学教育领域,2000年后扩展到其他领域,但理论研究比例较大。④⑤PBL在高等院校计算机程序语言学课程中的实践,则较为少见。

本文引进PBL教学模式,通过基于“问题”的学习,探寻一条适合学生学习计算机程序设计语言的有效途径,同时为教师在教学中提供可参考的方法和思路。

1 教学情景案例

1.1 什么是计算机语言

对于初学者而言,最直接的问题就是:“什么是计算机语言?”我们从《通灵芯片》一书⑥中对计算机语言既抽象又形象的解释来阐述这一问题。

石头上我蚀刻了一副图案,内有几何图形种种,在不明者眼中,显得神秘而又复杂,但我明白,只要布局正确,这块石头将被赋予一种特殊的能力,即对一种至今无人说过的咒语做出反应。我用这种语言提问,石头会显灵应答:那是一个我用符咒创造的世界,一个在石头图案内想象的世界。

石头是硅片(硬件),咒语就是程序(软件)。

1.2 计算机语言与人类语言的关系,学习计算机语言与学习外语的相似性

语言也是我们人类的主要交流途径,要说对方能够听得懂的话。若我们想让计算机遵从我们的意愿工作,就必须对计算机“说”它能够“听得懂”的“语言”。

学习和使用计算机语言与我们学期一门外语(如英语)一样,有两种方式:

先学习单词、语法,再学习语义。

学习一定的语法,在使用(编程)中学习语义,融会贯通。

我们建议采用第二种学习方法,竭力避免为了语法而语法,死记硬背的学习是没有意义的。

1.3 结构化程序设计的好处

我们吃中餐都有这样一个体会,同样一个菜品,在不同的饭店,由不同的厨师做出来的味道迥异。而比如KFC,无论在世界上的哪个店面,口味几乎是一样的。同学们想为什么呢?对,因为KFC建立了一套标准化的食品制作流程,每个环节都是规定好的,细致的,不需要个人主观“发挥”的。同样,程序设计既可以是“京酱肉丝”,也可以是“汉堡包”。可以是艺术,也可以是工程。比较而言,我们更侧重于用工程化的思想和方法来进行程序设计。进而,有了结构化程序设计方法,就是为了规范程序设计的个人行为的。使得程序有更好的可读性、可理解性和可移植性。

1.4 正确理解编译器的提示信息

同学们在用编译器对高级语言源程序进行编译的时候,若有语法错误,通常编译器会告知我们语法错误出现在哪一行。有时仅仅有一个语法错误,但是编译器会显示有很多行都有错误。很多同学不理解,以为出了什么问题,其实这是可以解释的,如图1所示:

图1 编译器匹配规则

第一行有5个正确的匹配,如果我拿走了其中的一个(黄色一对中的一个),则高级语言顺序编译器根据至上而下检查的原则,会出现4个(而不是一个)失配的错误。只要更正了黄色的部分,则所有错误消失。

2 宏观问题

(1)如何才能学好计算机程序设计语言?

回答:从模仿开始。

人类学习母语是模仿,学习计算机程序设计语言也可以从“照葫芦画瓢”开始,在模仿的过程中修正错误,掌握知识点,培养程序设计的思路、方法和技能。

类比,学习外语如英语的方法也不该只是大量地背单词,应该是从说话、阅读、写作当中学习,学会用是最终目的,否则再多的单词也是没有生命力的。

(2)if 语句和switch…case语句都能实现选择分支,是不是二者用哪个都可以?

回答:虽然从语法上,switch…case结构相当于多个if嵌套。也有一些题目来考察两者的相互转换。但语法不该被乱用或滥用,switch…case结构只有在特定的多分支选择时才适合使用。

(3)条件表达式可以代替if语句,那么就多用条件表达式对吗?

回答:这个问题类似于switch…case结构一样,不能被滥用。只有类似于下面的条件语句

if ( a>b )

Max = a;

else

Max = b;

才能使用 Max = a>b?a:b;来代替,不是任何if语句转换成条件表达式都是合适和易于理解的。

(4)为什么C语言有“指针”?是必须的吗?

回答:包括C语言在内的任何一种计算机程序设计语言,都是从实用性出发的,而不像数学定理那样追求“当且仅当”。C语言的指针并不是必须的,比如C#就没有指针的概念,但有了“指针”,能够使程序更具灵活性,在实现某些功能时更方便、快捷。当然,C语言的指针也有一些负面的作用,如野指针。对初学者来说,C语言的指针也确实是一个难点。但无论如何,同学们完全可以通过勤学多练,掌握“指针”。随着学习和应用的深入,同学们会慢慢体会到C语言的“指针”不仅不是阻碍,而且还是解决问题的“利器”。

3 微观问题

(1)数组既然是多个数据元素的集合,是否可以对数组所有元素进行整体输入和输出?

例如:int a[10];

scanf(“%d”, a);

回答:C语言规定,数组的名字代表了数组首元素的地址(或理解为数组在内存中的起始地址),虽然scanf的参数表列的要求是地址,但不允许用一个地址将数组所有元素都输入,除非要输入的字符串,且字符串是放到字符数组中,并当作一个整体来看待的。

正确的方法是:

int a[10], i;

for (i=0; i<10; i++)

scanf(“%d”, &a[i]);

对于字符数组而言,可以:

int c[10];

scanf(“%s”, c);

(2)如何验证对浮点数在“足够接近”情况下的等值。

回答:浮点数的定义决定它的绝对精确度会随着其代表的值变化, 所以比较两个浮点数的最好方法就要利用一个精确的阈值。这个阈值和作比较的浮点数值大小有关。不要用下面的代码:

double a, b;

...

if (a == b) /*错!*/

要用类似下列的方法:

#include <math.h>

if (fabs(a - b) <= epsilon * fabs(a))

epsilon 被赋为一个选定的值来控制“接近度”。你也要确定a 不会为0。

(3)莫要乱写“;”

C语言程序的一行是以“;”为结尾的,但不意味着任何一行程序的末尾都要加“;”。比如:

for ( i=0; i<100; i++ )

sum = sum + i;

有很多同学在for ( i=0; i<100; i++ )后加了一个“;”,这使得本来完成一个功能的语句,硬生生地被“分开”了。

4 结束语

熟练掌握一门计算机程序设计语言,无论是对计算机还是非计算机专业的学生都是非常重要的。教学实践表明,通过不同层次基于问题的学习,能够显著增强学生的主观能动性,提升学习兴趣。本文是在我校教育教学改革项目的支持下的教学研究成果。期望在政策的指引下,通过师生的共同努力,探索出适合当代大学生学习计算机程序设计语言和相关课程新道路。

参考文献

2013.09,吉林大学本科教学改革研究项目,在线“非计算机专业计算机程序设计PBL教学”内容研究,项目编号:2013097;