绪论:写作既是个人情感的抒发,也是对学术真理的探索,欢迎阅读由发表云整理的11篇vb程序设计论文范文,希望它们能为您的写作提供参考和启发。
1.2工程施工放样数学模型
1.2.1曲线常数:(1)缓和曲线倾角:πβ180200=×Rl(2)圆曲线内移值:(3)切线外移量:23002240Rllm
1.2.2曲线要素:(1)切线长:(2)曲线长度:(3)外矢距:E=R+PR2()secα(4)切曲差:D=2TL
1.2.3主点里程:(1)ZH点里程:(2)HY点里程:(3)QZ点里程:(4)YH点里程:(5)HZ点里程:检核计算:
1.2.4独立坐标计算:(1)在坐标系x′o′y′中,缓和曲线ZH-HY段(i1K)独立坐标计算:(2)计算ZH-HY缓和曲线细部点:(3)计算ZH-HY缓和曲线HY点(直接将上式0lli代为0lli代为):(4)在坐标系x′o′y′中,圆曲线HY-YH段任意一点独立坐标计算:=+=+(1)siniiiiyPRCosxmRφφ1.2.5主点及若干曲线中桩点坐标:(1)(指ZH到JD的坐标方位角)(2)(右转用-,左转为+)(3)(右转用-,左转为+)(4)三个主点坐标如下:ZH点坐标:HZ点坐标:QZ点坐标:(5)曲线中桩点坐标按线路右转所得公式如下(注意若为线路左转则以下几个公式用iiy代替y):
2工程施工放样项目VisualBasic程序设计
2.1程序界面
2.1.1主程序界面。主程序界面设计如图2所示,通过主界面,可以输入所有的已知数据,并选择偏角的类型。图2主程序界面
2.1.2结果显示界面。计算结果通过一个文本框的形式,将所有需要的结果及一些关键的中间结果分栏显示,如图3所示:图3结果显示界面
2.2核心代码
2.2.1计算曲线常数和曲线要素:IfR<>0ThenJD=Ls*180/(2*R*PI)p=Ls^2/(24*R)-Ls^4/(2688*R^3)m=Ls/2-Ls^3/(240*R^2)T=(R+p)*Tan(PJ/2)+mL=PJ*R+LsE=(R+p)*1/Cos(PJ/2)-Rq=2*T-LElseMsgBox"必须输入曲线半径R!"Text12.SetFocusEndIf
2.2.2主点里程及独立坐标计算:k1=k1*1000+k11k2=k2*1000+k22k3=k3*1000+k33kZH=k1-TkkZH=kZH\1000kkkZH=kZH-kkZH*1000kkkZH=Format(kkkZH,“###.###”)Str1="ZH点里程:"&"K"&kkZH&"+"&kkkZHStr2="HY点里程:"&"K"&kkHY&"+"&kkkHYStr3="QZ点里程:"&"K"&kkQZ&"+"&kkkQZStr4="YH点里程:"&"K"&kkYH&"+"&kkkYHStr5="HZ点里程:"&"K"&kkHZ&"+"&kkkHZLi=k2-kZHLi1=k3-kZHX11=Li-(Li^5)/(40*R^2*Ls^2)Y11=(Li^3)/(6*R*Ls)X12=m+R*Sin((Li1-0.5*Ls)/R)Y12=p+R*(1-Cos((Li1-0.5*Ls)/R))Xhy1=m+R*Sin(JD*PI/180)Yhy1=p+R*(1-Cos(JD*PI/180))Ajd=((Li1-0.5*Ls)/R)*180/PI
2.2.3坐标计算:Xzh=X2+T*Cos(A)Yzh=Y2+T*Sin(A)Xhy=Xzh-Xhy1*Cos(A)+K*Yhy1*Sin(A)Yhy=Yzh-Xhy1*Sin(A)-K*Yhy1*Cos(A)Xqz=X2+E*Cos(Ajz)Yqz=Y2+E*Sin(Ajz)X111=Xzh-X11*Cos(A)+K*Y11*Sin(A)Y111=Yzh-X11*Sin(A)-K*Y11*Cos(A)X112=Xzh-X12*Cos(A)+K*Y12*Sin(A)Y112=Yzh-X12*Sin(A)-K*Y12*Cos(A)
2.2.4结果输出:OpenApp.Path&“\T1.txt”ForInputAs#2DoWhileNotEOF(2)'循环至文件尾。LineInput#2,TextLine'读入一行数据并将其赋予某变量。Form2.Text1.Text=Form2.Text1.Text&Chr(13)+Chr(10)&TextLineLoopClose#2Form2.Show
虽然有关部门一直非常的关注VB程序设计课程的教学问题,我国的VB程序设计课程教学也取得了非常大的进步但是依然存在着一些问题。这些问题涉及到高校教学制度,考试制度,教学方法等多个方面,因而必须要给予极大的重视并积极采取必要的措施进行解决。
1、教学方法陈旧
教学方法陈旧会导致教学效果大打折扣,目前,很多计算机教学方面的老师还是用比较原始的教学方法来进行计算机教学,特别是习惯性的用过于专业的语言来讲授教学内容,且教学课程的设置并不符合学生们实际学习的需要,这就使得学生们在学习VB程序设计时不太感兴趣,也不能主动去复习、巩固。很多老师虽然非常重视实践操作,可是学生们在自己设计程序时只能根据老师所教的内容来进行编程却缺乏创造性思维,这对于培养极具创新意识的高素质人才来说是非常不利的。老师们在介绍VB程序设计时往往强调是面向对象的程序设计时没有将VB与其他的程序设计语言进行比较,这也使得学生们对VB程序设计课程的了解比较抽象。其实VB与其他的编程语言可以共同开发一些数据库以实现特定的用途。而这也是当前教学过程中比较缺乏的。
2、学生评价体系落后
除了以上的这些问题外还有一点是比较重要的,那就是学生的评价体系比较落后,很多学校着重考学生的基本知识,这就使学生容易陷入死记硬背的怪圈中而不能形成自己的思维能力。学校往往是简单的将学分作为评价学生的标准,因而促使学生们为了获得学分而进行学习或开展活动,这对于学生的发展是非常不利的。老师不能从考试和平时作业来简单的评价一个学生对于课程的掌握情况,这对于学生的评价是不完善的。很多老师还用相同的标准来对于不同专业的学生,这也是相当不合理的。
二、如何改善VB程序设计课程教学
为了解决当前VB程序设计课程教学中存在的问题,有关部门应该要保持对这门课程的客观评价并结合当前的实际情况来改善教学状况。只有与时俱进用新的教育理念和教学方法才能培养出未来需要的高素质人才。
1、培养学生学习兴趣
学生是学习的主体,所以在改善教学状况时首先就应该要培养学生的学习兴趣。老师应该让学生们了解这门课程的应用并将一些比较实用且非常有趣的东西介绍给学生们,这就可以增强学生们的学习兴趣并真正的喜欢上VB程序设计这们课程。老师们可以让学生们了解到一些游戏例如俄罗斯方块就是根据VB程序设计开发出来的进而引导学生学习如何进行VB程序设计的学习。学生们甚至可以自己根据程序开发的思想设计出自己想要的简单程序。老师们还可以给学生们介绍一些比较有用的课外书籍借以启发学生们的创造性思维。学生们在日常生活中也应该注意有意识的培养自己这方面的兴趣。很多同学对软件开发比较感兴趣,这就可以将所学与所用结合起来,在兴趣的驱使下有意识的学习程序设计往往能够取得更好的效果。
2、改变教学方法
除了要培养学生们的学习兴趣外还应该要改变教学方法。只有教学方法改变了才能提高学习效果并保障学生能够真正吸收VB程序设计的思想学会运用这门技术。对于很多学生来说可视化设计便利了他们的学习,所以老师要将VB程序设计的一些特点以合适的形式介绍给同学们,这就减少了他们的理解障碍。老师在教学过程中要将理论教学和具体操作结合起来,不仅要让学生们知道VB程序设计的思想还要让他们了解如何通过具体的操作来实现程序设计。当然,老师们往往发挥着非常大的作用,老师们应该尽可能的将具体的教学内容贯彻到学生们的实际操作中。学生们既要充分的利用各种教学资源还要有创新意识大胆的提出新思想。以师范类非计算机专业的VB程序设计课程教学为例,师范类学生往往对VB程序设计课程不重视,所以老师们往往通过案例教学法等方式来增强教学效果。一些老师根据师范类学生逻辑思维不强等特点加强对学生的思维锻炼,这就取得了比较好的效果。所以,老师们根据学生群体的不同改变教学方法是非常必要的。
3、完善学生评价体系
中图分类号:G623 文献标识码:A 文章编号:1674-098X(2012)12(b)-0-01
VB程序设计是该校部分非计算机专业必修的课程之一,目前教学中普遍采用多媒体课堂教学与上机实践紧密结合的方式。这种教学方式虽然能适当提高学生的学习兴趣,但仍然是以教师教学为主体,学生只是被动的接受知识,不能很好的培养学生解决实际问题的能力。而案例教学和任务驱动式教学能很好的实现理论与实践的衔接,所以笔者将案例教学和任务驱动式教学相结合,同时吸取传统教学的优点,并考虑到该校学生学习VB现状,探索出一种适合该校学生学习VB的教学方法―任务驱动式案例教学法。
1 任务驱动式案例教学法的特点
1.1 任务驱动和案例教学
任务驱动教学法是以建构主义的认知灵活性理论为基础的一种教学方法。教师将教学内容设计成学生感兴趣的任务,并将知识点隐含到任务中,引导学生通过各种方式实任务,获得知识。案例教学主要是对具有一定实践性、针对性的典型实例进行分析、讨论、推断、归纳和总结,以提高学生分析问题和解决问题的能力的一种教学方法。
1.2 任务驱动式案例教学法
任务驱动式案例教学法是将案例教学与任务驱动相结合的一种教学方法。案例教学侧重于“教”,指教师在授课的过程中以事先设计好的典型案例为基础;而任务驱动侧重于“学”,指学生在学习的过程中以任务为驱动,以解决问题为目标,在解决问题的过程中学习。这种教学方法主要是把学生作为教学中的主体,教师在授课中的主要目的是激发学生的学习兴趣,引导学生自主学习,构建相应知识体系,培养和提高学生的实际操作能力。而VB课程的实践性较强,在教学中不仅要让学生掌握理论知识,还要培养学生的实践操作能力,以及自主学习和独立分析、解决问题的能力,所以VB程序设计的教学适合采用该教学方法。在整个的教学方法中,需要教师和学生很好的配合。教师设计有代表性的案例,在向学生呈现、讲解案例的过程中激发学生的学习兴趣。再根据相关知识点给学生布置任务,学生得到任务后根据情况自主学习或分组讨论学习,通过对案例的认真研究和模仿,并在教师的协助指导下逐步完成任务。在整个教学过程中学生不仅掌握了VB的基本知识和方法,在教师的引导下建构了相应的知识体系,同时也掌握了相应的操作方法以及相关的技巧,极大的提高了学生的实践操作能力。
2 任务驱动式案例教学的实施
任务驱动式案例教学法首先要精选案例;然后向学生呈现案例,通过案例引入任务;再引导学生自主学习,分析任务、进一步探究任务,最后做出总结评价。
2.1 教师精选案例
教师分析VB程序设计的教学目标和教学内容,根据教学内容设计出一些学生日常生活中常见的典型案例,比如网页中常见的滚动字幕、计算器、qq登陆框、qq农场定时提醒闹钟、音乐播放器、学生成绩管理系统等,选取这些案例不仅能提高学生的学习兴趣,而且能使学生清楚学习VB的实际用途,这样学生才有动力继续学习下去。
2.2 教师呈现案例、提出任务
向学生展示设计好的案例,使学生有个直观的印象。将案例分解为VB教学中的知识点进行讲解,通过讲解使学生掌握知识点,模仿案例。然后提出问题,根据提出的问题布置相应任务。以下以“蝴蝶飞舞”为例。(1)向学生展示案例。如图1所示,当单击“开始”按钮时,蝴蝶从左向右飞翔,同时“开始”按钮变为“继续”按钮,单击“暂停”按钮后停止。
图1 “蝴蝶飞舞”案例
(2)讲解涉及到的知识点。Timer控件(Enabled、Interval属性和Timer事件)、Image控件(Visible属性)、VB坐标系的使用,进一步熟悉If语句的应用。(3)提出问题。蝴蝶飞出窗体时如何处理? 蝴蝶飞舞的速度如何控制?蝴蝶飞舞的方向能否发生变化?如何制作滚动字幕?(4)布置任务。编写蝴蝶飞出窗体时从窗体的另一边飞入的程序;编写调整蝴蝶飞舞的方向(左下->右上或其他方向)的程序;设计简单的演员表字幕滚动程序;设计红灯停、绿灯行的程序等。
2.3 学生自主探究任务、实现任务
学生得到任务后,以自主学习或分小组讨论的方式来完成任务。对于相对简单的任务学生应该自主学习,遇到困难时查阅相关资料或向同学、老师寻求帮助。这样可以培养学生独立分析、解决问题的能力,便于循序渐进地学习VB基础知识,掌握程序设计方法。
2.4 师检查任务、总结与评价任务
当学生完成任务后,教师应该认真检查学生完成任务的情况,进行总结与评价。这样不仅可以明确学生掌握知识的情况,有针对性的对学生进行不同的辅导;同时还能发现教学中存在的不足,以便及时调整教学内容和教学方法。在任务评价阶段,还可以让学生提供有针对性的反馈信息,并将某些有代表性的作品作为范例给学生进行示范讲解,让同学之间进行作品欣赏和各种方法的交流,这样不仅可以开拓学生的思维,集思广益,还可以鼓励学生创新,充分发挥了他们的想象力和创造性。
3 结语
在VB程序设计的教学中采用任务驱动式案例教学法的教学效果较好。首先,该教学方法活跃了课堂气氛,极大的提高了学生学习VB程序设计的兴趣;其次,有效地促进了理论向实践的转化,提高了学生的实践能力;再次,培养了学生一定的相互协作的能力。最后,很好完成了教学内容,达到了教学要求的目标。该方法也存在不足:教学进度难以把握,教学效果评价有一定的困难,还有待于进一步研究与
改进。
参考文献
[1] 罗新密.基于任务驱动的大学计算机文化基础课程教学模式研究与实践[J].计算机与信息技术,2008(3).
关键词: VB程序设计;一体化教学;教学改革
Key words: VB Programming Design;integrated teaching;reform in education
中图分类号:G652 文献标识码:A 文章编号:1006-4311(2016)30-0197-02
0 引言
随着IT行业的发展,企业对相关人才的要求越来越高,以软件开发为例,企业招聘程序设计人员的要求是不仅具有较强的合作能力,还具有丰富的开发实践经验。在这种情况下,高职计算机语言类课程的重要目标应是为计算机专业学生打好程序设计基础,不断提高学生程序设计水平。
VB是计算机专业学生必修的一门专业课程,它是一门可视化的、面向对象的程序设计语言,它具有所见即所得、结构化程序设计思想以及强大的数据库访问功能。在传统的教学模式下,VB课程授课以教师为主导,学生扮演者被动听讲的角色,该教学模式下学生需要花费大量的时间和精力学习语法等理论概念知识,没有时间和精力进行实践,导致该教学模式下培养出来的学生普遍实践能力较弱,进入社会中无法在短时间内适应企业的要求。究其原因主要是院校在教学过程中未将理论和实践结合起来,使得理论和实践脱节,这种情况严重影响了院校的教学质量,影响了院校应用型人才培养目标的实现。面对这种形势,院校应采取有效措施提高VB课程的教学质量,首要任务就是改革VB课程的教学模式,采用“教、学、做”一体化教学模式,该模式培养出来的学生都是理论和实践兼顾的应用型人才。
一体化教学是指理论与实践一体化教学,该教学方法打破了理论课和实践课的界限,将两者有机的结合起来,通过创造良好的实训环境,学生在“学中做,做中学”,更加注重学生的实践能力,突出教学内容和教学方法的科学性和实践性。
1 项目设计及教学思路
要想成为一名合格的VB程序设计员,应具备以下能力:熟练掌握 VB的基本设计、编程、调试的方法;学会用户界面设计方法;理解面向对象的程序设计思想;熟练运用VB开发环境等。基于此我们应建立相应的教学目标:熟练掌握VB的基本编程方法;掌握面向对象程序设计的特点;掌握可视化编程技巧等。在已确定的教学目标的基础上采取一体化教学模式,确定最终的教学思路为以学生为主体,以项目为载体。
在实际的教学过程中可通过设计与生活息息相关的项目来调动学习热情,即采用“大项目、小案例、任务驱动”的教学模式。 “大项目”是一个相对的概念,它可以突破教材的章节限制,将VB课程所有授课内容的知识点用一个相对较大的项目涵盖,其中各章节的知识点基本都隐含在项目的各个模块中;“小案例”同样如此,也是一个相对的概念,当完成各项目模块功能时,可通过引入学生感兴趣的、实践意义强的小案例,来导入知识点,引出项目。
为更好地完成课程教学的目的,笔者设计了一个相对完善的学生信息管理系统综合项目,如图1所示。每一个模块都包含界面设计、代码设计、调试等重要步骤,个别模块还包含数据库设计。在设计任务时尽可能循序渐进地把知识点融入到任务中,然而由于该门课程设计知识点众多,学生们要想良好地完成这个综合项目,需要预先做很多准备,掌握很多相关知识,比如各章节的知识点内容、VB程序设计的基本概念和基础知识等。需要注意的是设计项目时应循序渐进,先设计比较容易的项目,之后慢慢提高项目难度,如此不仅能够帮助学生学习和掌握相关的知识点,还能够培养学生的实践能力和团队协作能力。
2 模拟企业的课程设计和教学方法
传统的教学模式是先理论后实践,而“教、学、做”一体化教学模式的特点是理论和实践同时进行。这种新型的教学模式课程设计时围绕实践展开,项目中包含知识点,学生在实践的过程中就潜移默化的学习了相关的知识点。该教学模式要求学生积极的参与进来,教师作为整个项目的主导着,应合理安排各个环节的操作时间,适时地任务,鼓励学生解决各类问题。比如在讲授控件的使用方法时,可通过设计“图书管理系统”同步项目,把项目分成“界面设计”、 “菜单设计”、“数据库管理”、“用户权限管理”四个子任务,教师引导学生现将每个子任务都完成好,之后设置每个任务所需的控件属性,最后编程各个对象。“教、学、做”一体化教学模式的重点是教师做好自身的主导工作,给学生创造一个良好的“真实”学习环境,学生在身临其境中就能够潜移默化的掌握各个知识点。
3 灵活运用信息化教学环境
传统的教学模式是学生看教师的演示,然后依靠自身记忆模仿老师的操作进行操作,不能和老师进行同步操作。现在智能化的教学环境,教师可以采取多元化的教学手段,要求学生边看边做,实现“教、学、做”一体。
借助数字化校园建设的平台,利用现已成熟的网络技术,实现信息技术与学科课程的整合,营造一种新型的教学环境。①开发特色信息资源。对于重要的知识点开发微课资源,并将资源上传网络,学生借助学习终端可下载资源自主学习,在课堂教学中,也是“翻转”课堂的一个重要的组成部分。另外,也可以把课堂教学延伸到课堂以外。②借助网络交流平台。如今网络信息发展飞速,博客、QQ、微信已深深融入到我们的学习生活中,教师应引导学生正确地使用通讯工具及网络。师生可以通过微信等平台在课余时间进行反馈交流,帮助教师及时掌握学生学习动态,这是教学环节中必不可少的一部分。
当前在硬件配置方面,我们实现了电脑师生人手一台,多媒体教学系统设备也比较齐全,另外江苏省江阴中等专业学校学生人手一只“绿网”手机,学校也出台了一套比较健全的管理制度。在软件配置方面,安装了软件多媒体教学演示系统。且建立了专门的学生实训室。在这种教学环境下,学生们能够一边听教师讲课一边操作计算机,即在接收理论知识的同时就能够马上进行实际操作,如此不仅有利于学生掌握相关的理论知识,还能够培养学生的实践能力和团队协作能力,教学效果将事半功倍。
4 加强校企合作
职业学校最终的培养目标是让学生成为一个准员工,满足企业需求。所以高校应加强和企业的合作,在课程设计时充分考虑实际市场的影响,运用市场上常用的软件,注意不让教学内容和实际市场需求脱节。只有这样高校培养出来的才是理论知识和实践能力兼具的应用型人才,才能够满足当前社会的要求。我系与某软件公司联合办了一个校企合作班,由企业师傅与学校老师一起开发课程给学生上课。通过校企合作,为学生实训、实习提供了真实的场所。教学场地不再拘泥于课程,可在企业组织实训,由企业提供硬件设备和软件技术,学校负责管理。通过加强校企合作,能够有效提高学生的实践能力,如此不仅有效提高了学校的教学质量,也更好地满足了企业的用人需求,实现了学校和企业双赢。
5 建立新的考核评价体系
整个课程学习过程中要建立一个科学合理的教学评价体系。VB课程的目标是提高学生程序设计、代码编写和可视化界面设计的综合能力。所以我们采用的评价方式必须是多方面的,不仅要有理论知识检查,还要有实际操作能力的考核。传统的考核方式以考试为课程的最终评价依据,主要由平时成绩、期中考试和期末考试成绩总评而成。而现在我们除了通过课上提问和讨论发言来检验学生的理论掌握程度,还通过项目的阶段任务完成情况来检验学生是否掌握该课程的实践要求。对学生的考核评价以项目任务的完成情况为依据。根据企业相关职位的岗位要求来制定考核评价标准,以学生完成的项目成果作为评价的内容,从而确保学生的岗位职业能力,实现与企业岗位工作“零对接”。
6 结束语
一体化教学模式将理论学习与实际操作紧密结合,将学生从被动的学习模式中解放出来,提高了教学质量,让学生积极主动地参与到学习活动当中,自主地去构建个人知识,实现知识的迁移,使学生的实际操作能力和专业技能得到了培养。这种教学模式采用多种教学方法和教学手段,将教学的科学性和教学的艺术性相结合,始终以学生为中心,以就业为导向,以培养高技能人才为目标的职业教育办学方针。这种教学模式下学生就业后深受用人单位的欢迎,对学生就业有极大的益处。
参考文献:
中图分类号:G434 文献标识码:B 论文编号:1674-2117(2017)06-0084-03
研究背景
计算机程序设计语言一直是学生反映比较难的一门课程。长期以来,很多高校使用VB语言作为“高级语言程序设计”课程的教学内容,笔者所在学校原来也是如此。在VB语言的教学过程中,笔者发现了一些问题,突出表现为以下两点:①学生反映学习编程比较难,而且历年考试成绩也不理想;②学生觉得学习这门课程用处不大。这就导致很多学生对这门课程没兴趣,上课纯粹为了应付考试,甚至产生厌学情绪。[1]笔者仔细分析了上述问题,认为问题产生的原因主要有以下三个:①学生基础较差,且逻辑思维能力不强。②VB语言要结合数据库编程,才能展现它的强大功能。而大多数学校只开一学期课程,学时太短,学生仅能机械地学习语法,没有时间学习实际应用部分的内容,从而觉得VB语言没有用。③学语法时,教师没有给学生呈现对其专业学习有帮助的例子,所以他们没有一个直观的感受。
笔者经过详细的论证,决定采用Excel VBA替代VB教学。VBA有着其他语言或开发工具所不具备的独特优点:①VBA可以通过操作Excel操作数据库,这样就可以开发出很多实用的程序,使学生对编程有了直观的体验,提高了他们的学习兴趣。[2]②VBA是易学、上手较快的编程语言,且属于VB语言的子集。即使是非计算机专业人员,也可以用它编写出需要的件,极大地降低了学生学习的难度。③可以高效、快速地编制出Windows环境下功能强大、图形界面丰富的应用软件系统。用Excel VBA替代VB的教学改革在笔者所在学院已经进行了两年,并取得了较好的教学效果。学生学习兴趣明显加强,对编程的应用能力也得到了较大的提高。
目前仍存在的问题
“高级语言程序设计”课程改革虽然已经取得了一定的成效,但还存在以下几个问题。
1.缺乏完善的题库
由于笔者用Excel VBA替代了VB进行教学,学生在上机练习的过程中,有很多题目不再是传统的编程题。例如,在教学过程中,笔者把Excel作为数据库使用,让学生通过编程操作Excel,使他们能轻松理解数据库的基本概念和知识。但由于没有建立统一的题库,每位教师上课时例题都有所不相同,对知识点的要求也有细微的差别,所以给期末考试命题带来了困难,未能实现教学标准化。
2.困难解答不及时,教学实时化不够
“高级语言程序设计”课程是一门对实践要求较高的课程。学生上机编程时,一个语法错误或隐含的逻辑错误都将导致程序运行失败,甚至系统崩溃。这时,如果遇到的问题不能及时得到解决,学生则容易产生厌学情绪。但在课堂中,教师要同时面对几十个学生,要想及时解答每个学生的问题是不可能的,教学实时化不够。
3.教学考核、评价体系不完善
考试的目的不仅是为了检查学生的学习成绩,还要及时发现他们哪些知识点掌握不足,并针对特定问题进行指导。目前,笔者所在学校的改革使学生对“高级语言程序设计”这门课程的整体学习成效有了较大提高,但学校的教学考核、评价体系不够完善,教师对单个学生的学习状况掌握还不够精细。
“学、练、考”一体的VBA教学平台构思
针对以上问题,笔者提出开发一个集“学、练、考”于一体的VBA教学平台来实现教学的标准化、实时化、精细化,其具体步骤如下。
(1)开发一个统一的题库来实现教学的标准化。按照教学大纲的要求,笔者把每一章的知识点按选择题、判断题、程序填空题、编程题四类题型编制成试题库。这样,不论哪位教师上课,学生掌握的知识点都是固定的,保障了教学质量的稳定。
(2)单元测验后,软件会自动统计出每题的出错率,教师很容易就可以知道学生哪些知识点掌握得不够好,以便下节课进行重点讲授,从而实现教学的实时化。
(3)系统对每位学生的每次登录练习都有记录(包括自测成绩、错题编号等),这样教师可以很容易掌握每位学生的学习情况,并针对学习落后的学生进行定点辅导,以达到教学精细化的目的。
开发方案概述
1.关于自动阅卷问题
笔者采用Excel VBA进行教学,由于Excel自带了VBA开发环境,所以生成的题目只需要一个Excel文件即可保存。在该文件中,工作表一保存判断题,工作表二保存选择题,工作表三保存程序填空题,工作表四保存编程题。对于客观题(前三种题型),程序只需要按题号与题库答案进行对比就可以阅卷。对于编程题的自动阅卷,笔者这样设计:在题库中,每道编程题的结果都要求保存在题目文件的工作表四中;阅卷时,程序自动打开每位学生的试卷文件(一个Excel文件),采用Excel VBA的过程调用(call)命令执行过程(学生抽到的题目号),再把结果(保存在工作表四中的数据)跟题库中的结果进行比较,最后得出成绩。对于有语法错误不能运行的程序,系统将杀死进程,再对学生的源代码进行关键字对比,给出步骤分。[3]
2.系统结构
考虑到出题效率,笔者采用了C/S系统结构,开发工具使用Visual Studio 2010,数据库使用SQL Server2008,系统结构如下图所示。
教师登录系统后,可以出卷,安排任课班级的考试,查阅任课班级学生的考试成绩,以及查阅学生的练习情况。学生登录后,可以进行单元练习,自我测试,查看题目答案以及知识点描述等。
3.数据库设计
数据库主要由学生信息表(如下页表1)、试卷信息表(如下页表2)和学生成绩表(如表3)三个表组成。
结束语
构建“学、练、考”一体的VBA教学平台,能有效解决“高级语言程序设计”课程教学中存在的问题,加强教师和学生的信息交流,方便教师及时掌握学生的学习动态,较好地实现了教学的标准化、实时化、精细化,该平台还可以作为一种通用教学平台应用到其他课程的教学中,具有普遍的应用价值。
参考文献:
[1]孙淑霞.地方高校大学计算机基础课程改革的探索与实践[J].中国大学教学,2014(4).
随着信息技术的发展,计算机已逐渐普及到家庭,电脑发挥其强大功能的同时,也给家长带来了困扰:怎样能控制小孩只能在限定的时间内操作电脑呢?本文利用VB编写了一个限制用户登录时间的小程序可以解决这个问题。
1.编程思路
首先,在Windows下建立两个用户,一个是小孩知道的普通用户,用户名可以为Child;一个是超级用户注销,用户名可以设为Adm,该用户能自由使用和管理电脑并可控制Child用户。为防止Child用户修改系统时间,要求此用户在建立时权限为受限用户,Amd用户要加密码,此用户名和密码不能让小孩知道。
然后,利用VB建立一窗体实现提示游戏时间到了的信息,利用两个时钟控件控制游戏的登录时间和玩多长时间,并设置相应属性。
最后通过调用API函数,若小孩不在指定的游戏时间内登录或超过了玩游戏时间,系统就自动注销此用户。为使窗体更形象,特通过调用API函数使窗体设为有图形背景的椭圆状。API函数是一组C语言编写的系统函数,是Windows本身用来提供图形用户界面和操作windows环境的所有的过程。VB可以直接调用所有Win32API函数。本文用到的几个API函数:GetUser-Name函数、ExitWindowsEx函数、CreateEllipticRgn函数、SetWindowRgn函数。
下面主要以ExitWindowsEx函数说明API函数的功能及使用,ExitWindowsEx函数可以方便地实行重新启动计算机或退出Windows系统并关闭计算机免费论文。它有两个参数,参数、uFlags指示执行该函数时要完成的动作,可以用一个或几个常数的组合或数值的组合来指定动作。这些常数为:
EWX_LOGOFF(=0)
EWX_SHUTDOWN(=1)
EWX_REBOOT(=2)
EWX_FORCE(=4)
EWX_POWEROFF(=8)
比如要强制用户退出重新登录可以设参数uFlags值为0或4注销,(参数uFlags值也可是这些常数的组合),如组合值为0+1+2表示强制终止所有进程,退出登录、关闭计算机、重新启动计算机等方面的信息。dwReserved参数用于控制是否要保留当前窗体状态。GetUserName函数用于获取当前登录的用户名的信息;CreateEllipticRgn函数用于建立椭圆状窗体。为能让计算机启动时自动运行此程序,需修改Windows注册表。
2.程序设计过程
(1)在Windows的“控制面板”中的“用户和密码”程序中,首先选中“要使用本机,用户必须输入用户名和密码”复选框,再建立两个用户:Amd和Child(权限为受限用户),并为Amd用户设置密码和权限(超级用户Administrator权限)。
(2)在VB中建立一窗体,并为窗体增加两个时钟控件和一个标签,属性设置为下表:
控件名
属性
属性值
窗体
Name
frmmain
标签
Caption
“孩子你应该结束游戏,去学习了!”
Backstyle
0-Transparent
时钟1
name
Timer1
中图分类号:G642 文献标识码:B
文章编号:1672-5913(2007)10-0039-02
西北师范大学知行学院是甘肃省第一所独立院校,为了增强办学竞争力,不断地创建专业特色鲜明、应用优势突出、就业需求看好的新专业,在传承和发扬西北师范大学百年老校的崇尚学术、追求卓越、严谨治学的优良传统同时,积极研究和探索,采用新的教学模式培养人才,提高教育教学质量。
知行学院计算机与信息科学系是为适应西部大开发,加快培养信息技术人才而设置的,在坚持科学发展观的前提下,全面推进素质教育,从改革教学模式着眼,有效地培养应用型人才方面,做了许多切实的工作。
第一,从社会需要定位培养目标,制定务实的办学思路,就是“面向社会、以人为本、任务激励、实践创新、多能多证、应试应市”。面向社会就是以社会的需求,和“科教兴国”战略、“人才强国”战略的要求确定专业设置、培养目标和教学模式,为西部大开发培养信息技术人才。以人为本,就是以学生为本,教师和管理人员要为学生的成才服务。实践创新,就是要培养学生的实践能力和创新意识,使其具有新型应用型人才的重要素质。任务激励,就是以课题项目的研究、开发,充分调动学生的学习积极性。多能多证是所培养的应用型人才,不仅要拿到学校的毕业证,还要拿到国家相关的专业等级与职业资格证书。应试应市,表明素质教育不排斥考试能力,学生要能适应专升本的考试、研究生考试和国家机关凡进必考的形势,适应人才市场的需求,应聘就业。在此基础上,进一步实施的新举措是“两手抓”:一手抓学生的搞课题项目实践,一手抓考取国家的专业技术等级和职业资格证书。使学生在毕业时,每个人都搞出几个项目成果,获得几个资格证书。几年来的实践证明了整个办学思路有很强的指导性和实际意义,已在增强学生素质,提高就业率方面凸现优势。
第二,根据经济社会发展和人才市场对各专业人才的素质要求,合理地调整各专业的课程设置和教学内容,强化学生实践能力、创业能力的培养,积极推行教学改革,努力推进教学创新已势在必行。教学改革要落在实处,除了科学地制订教学计划外,在课程设置中,知行学院计算机系突出了这样几个方面:首先,瞄准技术发展应用领域的前沿,不断的选择增设实用性强的新课程,以适应计算机科学日益迅速的发展。几年来先后增设了大型数据库、ASP、EDA技术等课程;其次,着眼应用,增加实践性课程,制定了x+1学期的教学与实践计划,即专科生第六学期从事专业实习,本科生第八学期安排专业实习。为了加强毕业生专升本与就业工作,把专升本的辅导提早到第5学期,把毕业设计与毕业论文提前到第7学期,这一措施既可以保证上述工作有充分的时间来完成,更重要的是学生的毕业论文和毕业设计成果在就业应聘面试中派上用场。再次,面向社会,增设开发和研究性课题。对专职教师要求教学采用新技术、新手段,以全新的姿态走上讲台,教学效果普遍较好。
第三,为落实办学思路培养应用型人才,多年来的实践中认识到,应用型人才的最主要的特点是具有较强的实践能力和创新精神,既能创新,又能创业。能够搞项目与课题的研究和开发,所以培养学生从事课题、项目的研究和开发能力,成为培养应用型人才的关键。依据动机理论,人们愿意做出努力的事情不外乎两种:一是他们指望做后能成功的事,一是能看到成功带来收益的事。在教学过程中向学生公布一系列有实际意义的课题任务,向学生说明实际意义,完成这些任务能学到什么技能,然后让他们报名选做,老师进行个别指导,引导学生自己进行社会调查、搜集资料、进行实践和创造性的学习。通过任务激励,极大的调动了学生的学习积极性和主动性。
第四,采用课题、项目研究与开发教学模式,培养应用型人才。为了使学生有较多的项目开发的体验与实践,在一部分应用性强的专业技术课程的教学中,改变传统的教学方法,采用新的教学模式,就是把教学的目标、教学的过程、教学结果考核均与课题项目的研发相连接的教学模式。这样就改变了只靠毕业设计集中搞项目的办法,而让每一门专业课为新型人才培养做出贡献。笔者有幸承担了“Visual Basic程序设计”课程的教学任务,率先进行“课题、项目研究与开发教学模式”的教学。第一步,改编写了教材,将VB课程学习中要做的课题一一列出。VB这门课程是计算机专业和电子信息工程专业学习的核心必修课,实践性很强的课程,对培养学生的实践能力和创新能力能发挥重要作用,在学生整个知识体系中,占有重要地位。第二步,设计一个全面全新的教学模式:“一个飞跃达标、两个阶段教学、三个层次要求、四个方面考核”。一个飞跃达标,就是实现从案例教学入门到项目开发的飞跃。由于教学目标定位于培养应用型人才,其最重要的特征就是能搞课题项目研发,具有较强的实践能力和创新能力。把课题、项目研发的任务分解到相关课程教学中进行。这样,毕业时每个学生可以搞出三、四项成果,提高了就业竞争能力;两个阶段教学,就是把一个学期分成两个阶段,进行阶段教学。第一阶段,进行案例教学,以课题为主线,学习基本概念、基本理论和基本设计方法,做到由基本概念与案例入门。第二个阶段,进行项目研发。综合运用所学知识和方法,分析和解决实际问题,不仅能做小项目,也能做功能相对完整的中等程度项目。实现由“案例”到“项目”的飞跃;整个阶段都是讲练结合,加强实际动手能力的培养。具体做法是:每个课题单元分两个阶段,教师讲解、演示为一个阶段(2学时),学生实训练习为一个阶段(4学时)。教师讲解、演示课题项目时,给出课题项目名称,说明课题目的、课题意义,讲解演示设计过程,(包括界面设计、属性设置、代码编写、运行调试、整理保存和注释详解)让学生知其然而且知其所以然。通过实训练习,使学生亲手完成一些案例和项目任务,获得成就感,从而引起继续学习的兴趣。提高学习的积极性,达到“任务激励”和“实践创新”的目的;因材施教,分层次教学。实训练习课题难度分一般、较难和难三个层次。一般的课题任务要求全体同学完成,较难的课题任务要求二分之一的学生完成,难的课题任务供少数优秀同学选做。考核成绩考虑到四个方面:学习态度、出勤情况、创新精神和成果业绩。期末考试,让学生分组选题,采用论文答辩的方式进行。看创新精神,看成果业绩。第三步,根据改革了的教学模式,进一步设计了改革要求,即为授课编写独具特色的讲稿,打印成册;采用多媒体手段进行教学,做出教学课件;汇编学生完成的课题成果,刻录成光盘并保存。按照上述的教学模式以及改革要求进行的教学,从教得方面来看,因为“Visual Basic程序设计”是一门实践性很强的课程,为避免单调的理论讲解,笔者从多本辅导教材中精心挑选了多个有代表性的实例汇总为16个课题(如窗体程序设计、复选框程序设计、查询密码程序设计、菜单程序设计、多重文档程序设计、访问数据库技术、宾馆管理系统等)作为主导教材详细讲解,制作了多媒体教学课件。并在多媒体教学环境中进行实际演示,配合理论知识的强调,教学效果良好,学生比较感兴趣,学习的主动性和积极性较强,在期末课题设计时也充分发挥了创造性思维。从学的方面来看,学生对这门课程的教学比较感兴趣,因为这门课程实用性较强,但难度不算很大。学生们为了能学好VB这门课,借阅了多本相关资料,花费了大量业余时间来上机实践,进一步强化他们对一些VB实用例子的理解和掌握。因此,学习的效果也比较好。“Visual Basic程序设计”这门课程实用性较强,符合专业课学习的改革要求。达到了培养学生从事课题、项目的研究和开发能力,促进他们成为应用型人才的目的。2006年VB程序设计课题项目研发教学的成果比较显著,下半年期末考试中列出26个课题,学生分组进行研发,同学们设计出了“学籍管理系统”、“电子教务系统”、“评语管理系统”、“企业人事管理系统”、“小区物业管理系统”、“快捷Windows桌面操作系统”、“AMT模拟系统”、“黄河风采抽奖系统”、“多媒体播放器”等课题项目,一些同学的程序设计很具特色和创造性。
第五,知行学院计算机系又将“课题项目研发的教学模式”推广到EDA技术、数字图像处理、C程序设计、CAXA、多媒体技术、JAVA等课程,都收到了良好的效果。数字图像处理期末列出了27个课题,同学们完成的“建立五官数据库为特征人物画像”、“运动员号码识别处理系统”独具特色。EDA出了20个课题,“三层电梯控制设计器”、“乒乓球游戏设计”、“智能函数发生器设计”、“数字钟”等课题学生们在创建过程中充分发挥了创造性,使同学们都很有成就感。2003年以来学生完成各类课题150多项,学生的专业技能显著提高。因此在一部分专业课程中改革教学内容和教学模式,对学生的实践能力、创新能力,培养应用型人才很有实际意义。
本系统的目标是:通过相关软件、硬件的设计,实现由主机(上位机)通过单片机(下位机)通讯实现对石蜡车间现场石蜡成型机工作状态的监控。即利用主机的监控软件与单片机进行通信,以实现对石蜡成型机的监控功能。本系统应具备如下功能:
(1) 界面设计清晰,功能齐全,实时准确的显示石蜡成型机所有参数及状态
(2) 上位机与下位机能进行可靠、实时的通信。
(3) 查询历史记录功能
1软硬件的选取及上下位机间通信协议的定义
基于上述目标与功能,要实现本系统,首先要解决以下几个问题:
1.1 上位机与单片机之间通信方式的选取
串行通信使用一条数据线,将数据一位一位地依次传输,处理的数据电压只有一个准位,因此不容易漏失数据。串行通信端口(RS-232)是每部计算机上的必要配备,它不仅实用简单,而且价格便宜。。因此本系统采用RS-232串行通信方式用于上、下位机间的通信。
1.2 监控软件开发平台的选取
VisualBasic(VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。所以,本系统采用VB作为监控软件平台。
1.3 单片机型号以及芯片的选取
MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位具有精简指令集的、超低功耗的混合信号处理器(Mixed SignalProcessor)。由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中一颗耀眼的新星。本系统采用MSP430单片机。
1.4 上位机与单片机之间的通信协议
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。本系统采用Modbus通讯协议进行通讯,采用16位CRC校验以保证数据传输的准确性。
关键词:vb计时器对象
vb系统中提供了固有计时器timer控件,通过给计时器控件的interval属性设置不同的数值,就可以控制计时器运行的时间间隔,但该属性是一个双字节的整型变量,最大值只能设置为65535,即只有65535毫秒,约一分钟多一点,在需要长时间计时时,该控件就无能为力了。本文给出用timer控件创建一个超长时间的计时器对象,并将其编译成activexdll部件,供其它应用程序调用,可实现最大限度地利用代码的可重用性。下面给出这个超长计时器对象的编程设计过程,供读者参考选用。
1.编写程序
启动vb,新建一个activexdll工程,将工程命名为newtimer,将类模块名class1改名为longtimer。在工程中添加一个窗体form1,在窗体上加入一个timer计时器控件timer1。打开longtimer类模块,加入如下程序代码:
optionexplicit
publiceventtick()''''声明事件
privatenzasinteger
privatecsasinteger
privatem_formasform1
privatewitheventsm_timerastimer''''声明对象类变量
''''返回enable属性值
publicpropertygetenabled()asboolean
enabled=m_timer.enabled
endproperty
''''设置enable属性值
publicpropertyletenabled(byvalvnewvalueasboolean)
m_timer.enabled=vnewvalue
endproperty
''''返回interval属性值
publicpropertygetinterval()aslong
interval=m_timer.interval
endproperty
''''设置interval属性值
publicpropertyletinterval(byvalvnewvalueaslong)
cs=0
nz=vnewvalue\65536+1
m_timer.interval=vnewvalue\nz
endproperty
''''类初始化事件
privatesubclass_initialize()
setm_form=newform1
loadm_form
setm_timer=m_form.timer1
endsub
''''类终止事件
privatesubclass_terminate()
unloadm_form
setm_timer=nothing
endsub
''''产生tick事件
privatesubm_timer_timer()
cs=cs+1
ifcs>=nzthen
raiseeventtick
cs=0
endif
endsub
窗体form1只用来作计时器timer1的载体,不用于显示。
2.测试newtimer.dll
对activexdll部件进行测试,与标准的exe程序一样,可分为单步运行或全运行。在写完所有程序代码后,建议用户先用ctrl+f5进行全编译执行,发现检查newtimer程序的语法错误。也可建立一个测试工程与newtimer链接进行测试,针对由newtimer类模块提供的每个属性和事件,添加测试代码来测试它们的属性和方法。按f8,进入单步运行状态,逐个语句察看对newtimer类模块的调用情况。
3.编译newtimer.dll
完成测试,排除所有错误后,从“文件(f)”菜单中选择“生成newtimer.dll(k)”命令,编译生成newtimer.dll文件。编译成功后newtimer.dll文件将自动注册到windows注册表中,
4.引用newtimer.dll
引用activexdll部件同引用其他对象一样,从“工程(p)”菜单中选择“引用(n)”命令,打开引用窗口,从引用列表中选中newtimer对象。如果是第一次引用newtimer,则在引用窗体上单击“游览(b)”命令按钮,将newtimer.dll文件添加到可引用列表框中方可使用。
5.调用newtimer.dll
在应用程序中加入下述程序代码,实现参newtimer.dll的调用:
optionexplicit
dimwitheventslongtimer1aslongtimer
privatesublongtimer1_tick()
print"时间到,此处添加处理程序"
endsub
privatesubcommand1_click()
longtimer1.interval=12000‘两分钟
longtimer1.enabled=true
endsub
privatesubform_load()
setlongtimer1=newlongtimer
endsub
项目编号:该论文由科技厅指导性软课题资助
近年来,计算机领域在全球呈现出快速发展的态势,尤其是软件业,其发展速度已经远远超越其他的科技领域,在某种程度上已经开始引领着全球在经济、贸易、产业、人力等方面一系列的变革。所以,就目前的情况看,计算机相关技术的掌握及操作能力的高低是企业挑选人才的一个很重要的衡量标准,当前我国高校在计算机教学方面应该紧紧跟住当前的形势,不断优化计算机软件教学内容,提高计算机教学质量。
《Visual Basic程序设计》课程是计算机类各专业的一门核心基础课,目的在于培养计算机软件程序员、信息系统设计师、网站设计、数据库设计师、网络管理等专业方向学生基本的程序设计能力。VB语言难以理解、比较枯燥,学生在没有相应的知识背景下,对课程缺乏兴趣,甚至有恐惧心理。这就要求教师在教学中分析、摸索出一些行之有效的教学方法,才有可能激发学生对程序设计的兴趣,培养学生的程序设计能力。
高等院校计算机科学与技术专业开设3-5门程序设计类课程可以有效地提高学生的岗位适应能力,因为学生通过学习经典架构的程序设计语言及现在流行的面向对象设计语言,可以掌握在不同开发环境中进行软件开发的技能,还可以在遇到新的相同架构的程序设计语言时触类旁通,快速地入手。
一、当前程序设计类课程教学的现状与问题
目前我国IT行业发展迅速,机遇与挑战并存,企业需要大批的软件程序设计类人才,但是很多计算机专业的学生在就业时往往出现技术能力不足、项目开发经验欠缺等问题,严重影响了应届生的就业选择。究其原因,主要是这些同学在校学习时只是大量学习基础知识,并没有达到精通的程度,而且缺乏实战经验,很难适应高效快速的工作环境。那么又是什么原因造成这种现象的呢?究其原因主要有如下几个方面:
1.教学目标不明确
目前我国高校计算机专业人才培养机制普遍采用“3+1”的方式,学生在校学习3年基础知识,程序设计类课程一般会在第一年的下半学期开始,每学期开设1门,学时在70-90左右。3年下来学生至少掌握4-5门程序设计语言,但是由于这些课程的教育方法都是大体上雷同的,一般是教师课上讲语法,演示代码编写,课下组织实验课或者简单的课程设计。学生虽然能掌握简单的程序语言编程模式但是脱离课堂之外的内容通常一无所知,这就往往造成“高分低能”的现象,学生学习程序设计类课程的目的在于掌握编程能力,可以在日后的工作中把程序设计语言作为工具一样进行项目开发,而不是把程序设计语言作为一门原理课程学习它的原理。而且程序设计语言种类繁多,各有特点,教师应当根据学生的特点有针对性地选择适合学生的内容进行授课,多为学生毕业后的择业考虑。
2.教学模式和内容相对落后
目前高校计算机专业程序设计类课程的教学模式多数都是传统的教学模式,一般都是“课上代码分析+课后练习”形式。课上讲的内容多年来没有什么变化,学生听得不是很明白,课下仅仅进行简单的习题练习和课程设计显然无法让学生完全掌握程序设计语言的精髓,至于自主学习和实践性探索的精神更是无法体现,综合运用能力难以提高。这就造成了在校能通过课程考试,但是离开学校就难以应对工作岗位要求。
二、VB课程的教学现状分析
程序设计课程是一门理论性和实践性都很强的课程。在传统的教学模式中,《Visual Basic程序设计》课程采用理论教学和实践教学相结合的方式,课时比例大致安排为1:1。理论教学过程中,教师大多数是按教材的章节前后编排顺序,循序渐进进行VB程序设计思想和语言规则讲解。即使采用了多媒体教学手段,也是按照教材上的章节内容安排做成PPT课件,把书本上的案例和习题进行演示分析。在讲述理论的同时,也尽可能引导学生思考,通过例题、案例的分析,培养学生自己分析问题的能力。但是,这样的课堂教学往往是很抽象、枯燥的。
实践教学是课堂教学不可缺少的环节,实践教学质量的好坏直接影响到课程的整体效果和质量。因此,在教学过程中一般会安排学生上机实操,进行实际的编程训练,然后运行调试,改错。目前实践教学一般是在教师的指导下,由学生完成章节性的习题,布置的实训项目一般是教材上的例题或者是课后练习题。如此实践教学只能称之为验证性实验,缺乏创造性。
在传统的教学模式下,教师始终处于主导地位,由教师向学生介绍程序设计的思想,介绍语言规则和使用方法,学生处于被动学习状态,始终跟着老师的思路,没有学习主动性。在教学过程中,笔者也发现,学生学习理论知识好像并不十分困难,听老师讲解例题、习题也能够明白。但真正让学生动手操作解决实际问题时,却无从下手。因此,教师受传统教学模式的影响,在教学中重理论、轻实践,课堂讲授只注重教材中基本语法和语句的讲解,不注重学生实际编程和程序设计能力的培养,授课形式以教师讲学生听为主,没有学生自主思考、设计、实现的过程,学生被动接受教师所授内容,产生枯燥厌学的情绪,从而导致学生学习积极性不高,动手能力差,课程结束后还不能用所学知识解决实际问题。
三、改革VB课程教学的方法探讨
1.教学方法要有多样性
1 计算机专业学生程序设计能力培养现状
程序设计能力是计算机专业学生必备的一项基本技能。程序设计能力培养不仅包含技能培养,还包含学生分析问题、解决问题以及创新能力的培养。为此,各高校从大一开始就开设了高级语言程序设计课程以及后续一系列课程,以提高学生的程序设计能力。然而,即使各高校设置了丰富的程序设计能力培养课程,学生的程序设计水平也没有得到大幅度提高。
当前软件企业招不到合适的人才,计算机专业学生找不到工作,这种局面的形成归因于学生的程序设计能力并未达到软件企业预期的要求。调查表明,企业新招聘员工中只有15%直接来自高校毕业生,而85%来自社会招聘,因为社会招聘人员动手能力强,入职后能很快适应工作岗位。程序设计能力层次见表1,从表1可以看出,要胜任企业软件开发工作,至少需要100000行代码量;对于本科毕业生,至少需要有10000行代码量,而目前计算机专业大多数学生本科4年的代码量均在1000行,有的甚至更低。
1)程序设计类课程依然重教学,轻实践。理论教学依然是程序设计类课程的重点,理论学时多,实践学时少。教师花费大量时间进行语法、数据结构概念、算法理论讲解,因此也使得有针对性的实践太少,基于相关知识和理论的案例教学不足,学生很难将所学知识点和理论用于解决实际问题。
2)实践环节枯燥,学生无法提高学习积极性。
在传统程序设计实践教学中,教师布置3~6道作业题,学生当堂完成,然后将代码以及运行结果截图打包上传到服务器,教师一一评阅。教师给出的习题往往直接针对课堂教学的知识点,无任何实际背景或故事情节,实验枯燥乏味,学生学习积极性无法提高。
3)学生多,教师少,教师无法逐个解答学生的问题。
在大学不断扩招的情形下,师生比进一步扩大。实践教学过程中,教师无法一一发现和解答每个学生的问题。学生将作业代码和运行结果截图通过FTP上传至服务器,教师查看运行结果,由于学生多,教师无法逐个查看和运行学生代码,疲于应付,因而导致实践效果差。
4)实践能力评价方法单一。
目前的课程考核多采用笔试,学生的实践能力只能通过平时作业和实验进行主观性评价,难以激发学生自主训练实践能力的激情。在这样的教学模式下,久而久之学生就失去了编程兴趣,同时也降低了后续程序设计类课程的学习积极性,以致形成恶性循环,学生代码阅读量、代码编写量均得不到保证,程序设计能力自然无法提高。
为了提专业提供论文写作、写作论文的服务,欢迎光临dylw.net高学生的程序设计能力,文献[1]提出一种贯穿在系列课程中的程序设计能力培养方法,强调在一系列课程中持续不断地进行系统化训练,采用面向专业应用的分类教学,贯彻落实案例驱动、强化实训等教学方法。文献[2]初步将ACM模式应用到程序设计类课程实践教学中,使学生的编程能力和解题思维能力得到有效训练,教学效果显著提高。文献[3]也提出采用ACM竞赛形式的程序设计能力层次化培养模式。这些方法都是提高学生程序设计能力的有益尝试。
2 立体化程序设计能力培养模式
针对目前程序设计能力培养方面依然存在的一些突出问题,我们借鉴国内外一流大学的经验,与学校、学院教学部门配合,探索并建立立体化程序设计能力培养方法。立体化程序设计能力培养方法如图1所示。
1)培养方法和过程。
在立体化程序设计能力培养方法中,教学活动仍然分为理论知识讲授与编程实践,但理论课不再以单纯介绍语法知识为主,而是以具体的程序案例分析为主,让学生从案例中掌握语法。在实践教学环节中,教师设计若干有趣的问题,学生在解决问题过程中学会相关的语法知识与编程技巧。学生编写的程序代码全部通过安徽大学程序自动评判系统进行评判,学生只需在规定时间内完成,不再局限在实践课堂内完成,令学生有了足够多的思考和动手编程时间。对于学生在编程过程中出现的各种问题,教师和ACM/ICPC队员及时进行在线细致辅导。在每次作业结束后,系统公布所有学生的解题代码,以供所有学生在线查看和评价。获得优秀评价的代码将在系统上公布,以便学生有机会进一步学习优秀代码,增加代码阅读量。
2)立体化程序设计能力培养特点。
(1)以高级语言程序设计课程为依托。高级语言程序设计课程是学生接触的第一门程序设计类课程,其教学与实践对培养学生的编程兴趣和能力起着至关重要的作用,可以帮助学生树立自信心并步入程序设计的殿堂。
(2)课堂教学以案例为中心。程序设计=算法+数据结构。在高级语言程序设计课程的教学过程中,我们摒弃单纯讲授语法的课堂教学方法,改之以程序案例为中心。在课程早期,案例以语法知识为主,逐步增加基本数据结构和算法。整个教学过程以案例分析为中心进行语法教学,让学生在潜移默化中学习到基本的数据结构和算法。
(3)实践教学以问题求解为中心。在实践环节,教师通过设置有趣的故事和实际的问题,帮助学生在求解问题过程中掌握课堂上所学的语法知识、基本数据结构和算法。
(4)实践环节从课内延伸至课外。实践环节要求学生完成指定的编程题目。与传统实践环节不同,通过在线程序自动评判平台,学生所有的编程作业只需在教师规定的时间段内提交,学生既可以在实践课上完成,又可以利用课外时间完成课堂内没有完成的作业。将实践课延伸到课外的优点表现在:①学生有足够的时间思考分析问题并最终通过编程解决问题;②实践题目数量适当增加,学生的代码量随之增加 ,充分的课外实专业提供论文写作、写作论文的服务,欢迎光临dylw.net践可以进一步巩固学生的理论知识基础。
(5)经验丰富的ACM/ICPC队员参与程序设计实践环节辅导。ACM/ICPC队员经过长期的编程实践,积累了丰富的编程经验,代码能力强,因此我们利用ACM/ICPC集训队的优势资源,实行“传帮带”机制,对于每个学生编程过程中出现的问题及时给予解答,有效提高学生的编程积极性。集训队学生优秀的编程水平对于低年级学生也是一种激励,可以进一步激发其编程热情,增加其向更高编程水平迈进的动力。
(6)学生作业采用自动化评判模式。学生提交的作业通过服务器自动评判给出程序的运行结果。自动评判模式对于编译错误,会直接给出编译出错位置和出错类型,方便学生自查;对于运行错误,包括结果错误和运行超时,则需要学生重新审查程序代码。服务器自动评判能够有效减轻教师批改作业压力,还可以大大提高实践教学效果。此外,服务器上保留了每个学生的做题细节,包括以往的代码、做题的数量、错误类型等信息,可以进一步增强学生做题的成就感和积极性。值得一提的是该自动评判平台不仅支持高级语言程序设计,还支持C++、Java、VB和Pascal语言,因而吸引了省内一些初中、高中学生进入该平台进行程序设计能力实践。
(7)优秀代码展示有助于增加学生代码阅读量。学生代码量包括代码编写量和代码阅读量。代码阅读量是提高编程能力的一种重要途径,然而在实际教学过程中常常被忽视,通过教师评阅、学生互评等方式,可以筛选出优秀代码并加以展示。优秀代码主要指具有巧妙的算法、运行时间短、内存占用空间少、代码格式规整、符合标准编程风格的程序代码。展示优秀代码可以让学生有机会看到彼此对于同一道题目的多种解决方案,有效促进学生之间的交流,积极提高学生的代码阅读量。这种相互的交流还可以进一步激发学生的创新灵感,在提高学生编程能力的同时也提高创新能力。
与传统专业提供论文写作、写作论文的服务,欢迎光临dylw.net程序设计能力培养主要依靠“教师一学生”这种二维扁平的实践教学模式不同,立体化程序设计能力培养方法以案例教学为中心进行教学,以问题驱动为中心进行编程实践,采用机器自动评判和学生互评相结合的方式进行学生编程实践效果评价,在教师—ACM队员—学生之间建立一个跨越时间和空间的三维立体互动教学网络。这种教学方法将课内实践延伸至课外,将实验室实践延伸到实验室外,对学生的程序设计能力进行主客观相结合的综合评价与即时反馈。
3 实施成效
通过一系列的研究与设计,我们构建了立体化的程序设计能力培养模式,在安徽大学自主研发的自动评判系统基础上增加了高级语言程序设计实践模块。自2008年以来,学生通过该自动评判平台进行程序设计实践呈逐年增多趋势,多名学生参加了ACM/ICPC程序设计竞赛以及省级程序设计竞赛,获得各类奖励10余项,其中亚洲区邀请赛金奖2项、省级竞赛一等奖4项。实施该培养方法后,学生进行自主程序设计训练的积极性明显提高,目前在校生中程序代码量已经达到10000行的有200人左右,部分毕业学生直接进入腾讯、百度等企业工作,用人单位也对毕业生的编程能力普遍表示满意。安徽大学计算机专业学生2008—2012年提交代码量如图2所示。
该培养方法不仅提高了学生的程序设计能力,而且培养了学生的创新精神和可持续发展能力,还吸引了许多非计算机专业学生学习程序设计技术。近年来,陆续有电子学院、自动化学院、数学学院、化学化工学院、资源与环境工程学院和物理学院的学生参与到程序设计实践中,并且取得了不错的学习效果。例如,安徽专业提供论文写作、写作论文的服务,欢迎光临dylw.net大学物理学院一名学生经过该平台实践后,积极参与ACM/ICPC程序设计竞赛,获得2010年ACM/ICPC亚洲区竞赛铜奖并于2012年成功考取复旦大学计算机专业研究生。
4 结语
强调师生互动、实践反馈、学生互动足立体化程序设计能力培养方法的关键,而利用案例教学与趣味实践是重要途径。实践证明,立体化程序设计能力培养方法在提高学生编程水平和算法能力方面具有较大优势,取得了显著成效。今后我们将进一步注重教师与学生互动,探索更多的师生之间、学生之间互动手段,不断提高学生编程素养和创新水平。