前言:中文期刊网精心挑选了电脑编程入门教学范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
电脑编程入门教学范文1
BYOD(Bring Your Own Device)这一概念原本出现在企业中,指员工携带自己的设备办公,在机场、酒店、咖啡厅等地登录公司邮箱、在线办公系统,让办公不受时间、地点的限制。
在加拿大多伦多地区的中小学,BYOD就是学生携带自己的电子设备到学校,包括iPad、平板电脑、智能手机、笔记本电脑,通过校园内无处不在的WIFI,进行随时随地的学习。
开展BYOD的缘由
1.21世纪教学的要求
在加拿大,21世纪教学是当地教师反复提及的核心词汇。他们认为社会正以意想不到的速度变化着,为了保证学生能够在不可预知的将来取得成功,教育必须跟上这些变化。
21世纪教学的4C标准是:Collaboration(协作)、Creativity(创作力)、Critical Thinking(批判性思维)、Communication(沟通)。科技是实现21世纪教学的重要手段,它可以:①提供随时随地的学习。②支持教师改革和自身能力的提升。③通过个人设备和网络资源的使用,让机会更均等。④使用社会媒体进行查询和沟通的同时培养社会责任感和数字素养。⑤加强与家长之间的沟通。
2.解决教育局资金的不足
根据多伦多天主教地区教育局的统计,当地学校的人机比为4∶1,教育局没有足够的资金为每一位学生提供学习所需的电子设备。在这种情况下,BYOD无疑是一种好方法。现在这一地区自带的电子设备已超过教育局配置给学校的设备,自带设备中40%为苹果设备,大部分为智能手机。
3.自带电子设备具有独特的优势
学生们通常非常熟悉自己的电子设备,并能够对其进行个性化设置,从而可以满足自己随时随地的学习需求。放学后,学生可以利用它与同学共同学习。学生所拥有的设备往往比学校所提供的更先进,虽然学校提供的设备价格高,但不是很耐用。
开展BYOD的保障手段
1.学校实现WIFI覆盖
多伦多天主教地区中学(9~12年级)实现了无线全覆盖,每所中学配置有40~60个无线接入点。小学(1~8年级)实现了部分覆盖,并争取在两年后也实现无线全覆盖。一般来说,学校安装的无线接入点功率比家庭低,比企业更低,接入点不是安装在教室而是在走廊。当地教育部门通过多次理论认证和实地检测,表明这样的辐射强度对学生和员工是无害的。
2.给家长购买电子设备提供指导
教育局和学校、教师对家长购买怎样的电子设备提供指导。首先,每一种设备有它使用上的优势和短缺,没有一种设备适用所有的情况。为了帮助家长选择,教育部门给出了如下页表1的指导。
家长可以从孩子的年级、学习科目、偏好、设备使用的舒适度、价格等因素综合考虑选择怎样的电子设备。买不买设备,买哪一种设备最终的决定权在于家长本人。
3.提供软件管理平台
多伦多天主教地区教育局为每一位学生提供了一个用户账户,学生在学校使用自带的电子设备时,须用该账号登录教育局提供的管理平台。这一平台给学生提供了大量教学资源、各类软件及一定的存储空间,同时也通过一定的技术手段屏蔽了网络中不健康、不安全的因素。
4.出台必要的指导性文件
教育局同时出台文件明确自带设备使用中教育督导、校长、教师、学生的职责和行为规范,在文件的最后一节明确相应的惩罚措施。
BYOD设备在各年级的使用情况介绍
1.低年级(幼儿园到3年级)
侧重于词汇扩展、访问网站、在线教学、相片和影片的创作、基于课标的游戏/应用程序。
2.中年级(4到5年级)
侧重于访问网站/研究调查、相片和影片的创作、文件和演示文档的创作与编辑、基于课标的游戏/应用程序、维基(博客、播客)、记笔记、词汇扩展、计算/图表练习、在线教学、项目提升、计划表/行事历、地图、民意调查、视频会议。
3.高年级(6到8年级)
与4到5年级不同的是:在线教学变为在线教学/模拟、投票代替了民意调查。
4.高中(9到12年级)
与6到8年级不同的是:词汇扩展取消了,而增加了Office操作。
当然,并不是每天、每一堂课都会用到科技产品,而是根据教学需要适度使用。
加拿大BYOD的启示
1.学科整合,信息技术课程发展的趋势
加拿大1到9年级并没有专门开设信息技术课程,10到12年级信息技术课程设置如表2。
表2中的5门计算机课程均为选修,任何学生在十年级均可选“计算机课程入门”,打算上大学的学生可在11、12年级选修“计算机科学入门”、“计算机科学”,打算上技术学校的学生可在11、12年级选“计算机编程入门”、“计算机编程”。当然作为选修课,如果学生对以上5门课程均不感兴趣,则完全可以不修。
在中国信息技术课程是必修,从小学到高中均有开设,与之相比,加拿大开设的信息技术课程要少很多而且是选修,但参观的教师很快就发现加拿大课堂中学生很多时候均在使用计算机等电子设备进行学习。这就凸显了其工具地位,使用时更有针对性,更灵活,更能体现学以致用的理念。加拿大的教学实践说明信息技术课程和其他课程整合是必然的发展趋势。
当然,只有教师们都具有足够的信息素养,能自然地将技术运用到教学中,而且学生能随时随地取得计算机等现代化设备进行学习,这才能实现信息技术课程和其他课程整合,才能减少信息技术课程本身的课时安排。从中国目前的情况来看,远达不到这一要求,因此将信息技术课程列为小学到高中的必修有着一定的必要性。
2.科技改变教育,让我们行动起来
电脑编程入门教学范文2
【关键词】51单片机;技工院校学生;单片机一体化教学设备;实践
随着计算机技术、微电子技术的发展,单片机技术在工业自动化、智能仪器仪表、数据采集与处理、计算机控制系统及家电等领域被广泛应用。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目前,技工院校的电类专业普遍已开设了单片机课程,大多采用的是MCS-51系列单片机,它的学习资料非常多,且学习成本很低。但是,调查到一些技工院校的单片机教学,是以单片机的结构为主线,先讲单片机的硬件结构,接着是指令和软件编程,然后是单片机系统的扩展和各种器件的应用,最后再讲一些实例。按照此种教学结构,技工院校的学生普遍感到难学,他们很多没有接触过计算机结构,甚至数字电路也是刚刚学完,要去学习单片机原理与结构、寻址方式,记住一百多条指令,设计流程图编写程序真是太困难了。学生从一开始学习单片机的“神奇”、“敬畏”、热情高涨,到最后的“恐惧”、沮丧、放弃,觉得学习单片机的过程是一个不断充满挫折的过程,这就是为什么有“单片机难学”一说。下面作者根据多年单片机教学经验,从学习、探索、实践、进步这样一条规律,谈谈技工院校的学生如何入门单片机。
1 了解必要的单片机知识
51单片机对于技工院校学生入门单片机是非常合适的。但是当教师讲完概念,讲指令,讲完指令讲接口,用不了几天就会发现,班级里的一大半同学都说单片机枯燥乏味,是天书,谁学的会啊!时间上,初学单片机,只需先了解单片机各管脚的名称、各个寄存器是干什么,能实现怎样功能即可。因为单片机的核心是用程序去控制各个寄存器,给寄存器赋值0或1,然后再通过引脚寄存器输出高低电平控制外部设备。例如执行语句P2=0x7f;(MOV P2,#7FH),就是控制单片机P2口的P2.7引脚输出低电平,其它P2口的引脚(P2.0- P2.6)都输出高电平。此时学生可能记不住,也听不明白,原因是技工院校的学生学习单片机时大多数是第一次接触到这种器件,对单片机没有任何感观认识,对许多抽象的概念无法产生相应的实物映像。但是不要紧,我们研制了单片机一体化教学设备来帮助学生体会感知实际应用的单片机。
2 感知实际应用的单片机
江苏省常州技师学院研制的“单片机一体化教学设备”,通过形象化的模拟仿真,理性内容动态表述,可以实现原理可视化,概念可视化,理念阐述和动态演示无缝结合,解决学生在单片机学习中不可视,不可入的难题。例如在讲授P2口的P2.7引脚通过执行语句P2=0x7f;(MOV P2,#7FH)输出低电平,我们就可以利用“单片机一体化教学设备”上的彩灯模块,将P2.7引脚通过继电器驱动,接到一个共阳接法的220V40W彩灯上,学生就可以直观看到这只彩灯亮了,从而加深理解了单片机程序控制、软硬件相结合的工作原理。对于学习单片机初级阶段的学生,教师可以选择“单片机一体化教学设备”上的在线仿真模块和基本教学模块(8只彩灯显示、8位数码管实时时钟显示、单片机电子琴、模拟倒计时交通灯、16×16点阵图形汉字显示),利用Keil程软件、Proteus仿真软件,再通过232串行通讯口将软件仿真通过的程序传送到基本教学模块的CPU实时运行,实现理论教学实验化,枯燥电路图实物化,抽象原理形象化,静止现象动态化,教学过程趣味化,创设真情实景,使学生感知实际应用单片机。
3 多做单片机软硬件实验
单片机是实践性非常强的一门课程。实验这个过程一定要做而且要多花时间,这是非常关键的一步。课堂实验以教师布置的教学任务为主,学生用Protel软件绘制出电路原理图,用Keil软件输入程序并编译程序,然后用Proteus软件对程序和电路进行仿真调试运行。教师对学生实验过程中的重点、难点及操作过程中存在的问题进行实时讲解。课后实践,建议学生可以自己购买一块51单片机的实验板,不要求功能太多,只要有流水灯、数码管、键盘、蜂鸣器、串口通讯、AD等就可以了。把实验板和电脑连好,安装上必备的软件,学生就可以在课余时间自己做单片机的实验了。从最简单的流水灯、交通灯实验做起,通过实验,学生眼睛看得见(灯光)、耳朵听得到(声音),就能理解程序是怎样转化成信号去控制执行机构的。单片机与其说是学出来的,还不如说是做实验练出来的,注重实践、反复循环训练,就会取得很好的效果。当学生编写的程序能按照自己意愿实现功能时,就会有非常自豪的收获感和成就感,也可以说是成功入门单片机了。当然,学习单片机除了做实验仿真,还要制作实际电路板。可以先进行万能板的设计、焊接,如果在万能板上测试成功,再用电脑辅助软件进行PCB板设计、制版、焊接,通过不断的实践积累开发制作单片机小型作品的经验。
4 结束语
单片机是一门技术性、应用性很强的课程。学单片机并不难,关键是掌握要领,一旦找到了学习的捷径,入了门,初步掌握单片机编程技术并看到实际效果,那么必然信心大增。本文以最实用的方法,希望将技工院校的学生领进单片机世界的大门,真正感受体会单片机的强大作用,从而投身于单片机的领域中,一步一个脚印,向新的深度、广度进军,逐步成为自动控制方面的复合技能型人才。
【参考文献】
[1]张翼成.“单片机原理及应用”课程教学改革[J].计算机教育,2012.
电脑编程入门教学范文3
>> Dreamweaver中的页面跳转 浅谈JavaWeb编程中页面跳转与数据共享 .NET架构下页面间跳转及数据传递的实现 解析Dreamweaver中的层应用 Dreamweaver中多种菜单样式的实现方法 知识迁移在Dreamweaver教学中的实施 混合学习模式在DreamWeaver课程教学中的探究 浅谈Dreamweaver在中职网页制作教学中的应用 多媒体课件制作中应用Dreamweaver的探讨 Web Form中的页面处理 过滤加密页面中的广告 浅析网页设计中的页面布局 浅析页面中Java与JavaScript脚本的区别 JSP技术在WEB页面中的应用 PHP网页设计中SHTML页面的应用 浅谈Session对象在用户登录页面中的应用 浅述网页设计中的页面布局技术 色彩在网站页面设计中的应用探讨 浅谈网页设计中页面布局的教学 浅谈网页设计与制作中的页面布局 常见问题解答 当前所在位置:和down.htm分别为上下两个框架里面的网页内容,我们就可以在down.htm里嵌入音乐文件,而在up.htm里作为正常的网页浏览,有如下链接,如图2。
这种情况下有两种链接要做,第一种就是从主页跳转到具体的页面(如图2),第二种就是如何返回到主页面里(如图3)。
4 结论
网页之间的跳转是网页制作中的难点,本文就重点指出了两种常见问题,一是网页的自动跳转,二是在框架中的网页跳转问题,并对此给出解决办法。
参考文献:
[1]Dreamweaver MX扩展.程宪宝.电脑知识与技术[J],2006(6):131-131,192.
[2]张继光.Dreamweaver 8中文版.从入门到精通[M].人民邮电出版社.2007.
电脑编程入门教学范文4
关键词:数控车工 学习兴趣 教学方法
职业院校数控加工专业(数控车工方向)旨在培养熟悉企业本岗位的工作流程,能按照作业规范熟练操作数控车床,完成一般零件的编程、加工与质量检测,以及设备的日常保养与维护等工作任务,具有良好的责任心和质量意识,并能解决精度调整、故障诊断等现场问题,具有职业生涯发展基础的高技能人才。要实现培养目标,笔者认为应从以下诸方面入手。
一、激发学生学习兴趣,增强学生自信心
我国古代著名的教育家、思想家孔子曾说过:“知之者不如好之者,好之者不如乐之者”。进入职业院校就读的学生面对数控设备、数控加工、数控展品充满了好奇,家长想让孩子学,学生也想学。但由于学生普遍学习基础差,家长和学生普遍缺乏自信心,此时最重要的是给家长和学生以自信。
在新学生刚来到车间之际,教师让高年级学生在机床上调用一个葫芦、奖杯等学生感兴趣的工件程序,现场演示加工出一件产品,会增强新生的学习兴趣。看着高年级学生熟练的操作机床,内心的冲动及对老生的羡慕会让新生们跃跃欲试,摩拳擦掌。
二、创新教学方法,助学生快速掌握数控编程
开始学习数控加工时,学生对熟悉操作面板比较感兴趣,加上按键与电脑键盘有很多相似之处,好记忆、易理解、上手快。但对于编制程序,学生自己心理上就有道坎。教师要鼓励学生,让学生知道“没有做不到,只有想不到”,只要学生愿意学习,就一定能行。
首先,笔者把知识化难为易,化繁为简。
其次,笔者将数控车程序化“无形”为“有形”,总结出一个完整的编制程序步骤。步骤1,程序号0××××;步骤2,选刀、对刀输入刀补T0101;步骤3,设定主轴转速、转向及进给方式M、S、F;步骤4,设定安全点G00X(大于毛坯直径)Z(为正);步骤5,车削轮廓G指令;步骤6,退刀G00、G28;步骤7,程序结束M30。无论加工何种工件,只有步骤5改变,其他步骤基本不变。
再次,笔者把入门编程的门槛放低,程序设计为填充式,按照编程步骤,教师和学生一起动手填充编程,举一反三,让每名学生自行编制,没把握的能写就写,允许学生编错程序,但不允许学生不编程序。在检查程序时,只要学生写对一步就对学生进行鼓睿学生写错了和学生一起改,克服学生不想尝试、不敢尝试的心态。这样一步一个脚印,开始的慢和错是为了以后的快和正确,数控编程贵在坚持,常学常用学生便可得心应手,乐在其中,快速掌握数控车编程。
三、讲究教学技巧,促进学生主动学习
著名教育家陈鹤琴说过“没有教不好的学生,只有不会教的老师”。在数控车一体化教学过程中,教师要控制教学节奏,讲究教学技巧,应与学生“斗智斗勇”。教师不能把操作技巧和关键点一股脑都倒给学生,要时不时地留几手,该出手时就出手,让学生觉得教师手里有“绝活”。
例如,在学生刚开始加工工件时,笔者先把主轴倍率和进给倍率旋钮调好,加工中有时由于上刀大了会发生振动和响声,笔者过去把两旋钮一调,车削平稳了。笔者转身走开,学生看看我,再看看旋钮,一头雾水,实际上“两个旋钮怎样用”的问题笔者在讲《操作面板》一课中已经讲过,学生早给忘记了。
电脑编程入门教学范文5
关键词:程序设计 辅助学习系统 API函数 实例代码 编程文章
Visual Basic是微软公司开发的一种可视化应用程序开发工具,是一种面向对象的程序设计语言。电脑覆盖了程序设计中文件访问技术、数据库访问技术、图形处理技术和多媒体技术等多个方面。Visual Basic具有强大的编程能力和广泛的应用范围。主要表现在:基于对象的设计方法、极短的软件开发周期、较易维护的代码。
Visual Basic程序设计软件是一门非常有用的高级语言,是您踏上计算机程序设计学习之路的必修课,Visual Basic程序设计软件以其强大的功能一直独领编程语言的先锋。正因为Visual Basic程序设计软件功能强大,所以学好它并非一件很简单的事情。Visual Basic程序设计软件虽然很容易入门,精通不是易事,因此,只有通过不断的实践,亲手编写程序,在实践中不断体会才能深入Visual Basic程序设计软件的精髓。
1、Visual Basic学习系统的主要功能
(1)基础知识:包含Visual Basic的基本知识,有6个类别30多个知识点,通过分章节的教学,使您能快速入门Visual Basic。
点主界面工具条上的“基础知识”,界面如下(图1):
在左边的列表框中选择您要查看的知识点即可。
(2)API函数:包含1500多个Windows API函数的详细说明,并附有详细实例,使您能常握Visual Basic编程的精髓部分。点主界面工具条上的“API函数”,在左边的列表框中选择您要查看的函数名即可。
(3)实例代码:包含8个类别150多个编程实例,使您能巩固Visual Basic编程的学习。点主窗体工具条“实例代码”,在左边的选取框中选择你要查看的代码即可。
8个类别包括:窗体实例、图形图像实例、多媒体实例、系统实例、文件管理实例、数据库实例、网络实例、游戏实例。
(4)编程文章:包含6个类别200多篇编程文章,解决您在编程中遇到的各种疑难问题。点主窗体工具条“编程文章”,在左边列表框中点击您要查看的文章即可。
(5)软件注册:Visual Basic学习系统是一个共享软件,未注册版本会部分功能限制,如果你喜欢本软件并想使用更多的功能,请注册。
注册用户可以得到作者的技术帮助及其它服务,并且可以免费升级Visual Basic学习系统的后续版本。您的注册还将在最大程度上鼓励作者做出更多、更好的软件供大家使用。
(6)帮助:您在使用软件的过程中有什么问题可以点“帮助”查询帮助文档。
2、Visual Basic学习系统的设计与实现
2.1 设计思想
(1)系统分为几个相对独立的模块,但各模块的内容是相互关联的。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计,作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
2.2 设计原则
为了使Visual Basic学习系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:
(1)实用性原则;
(2)易操作原则;
(3)优化原则。
2.3 窗体的设计
(1)系统登陆(图2);
(2)创建系统主窗体;
(3)主窗体菜单;
(4)主要功能模块设计。
2.4 代码设计
公用模块设计、模块功能实现代码。
2.5 软件实施与运行
在Visual Basic学习系统中,达到了用户灵活学习Visual Basic程序设计的目的,不受空间与时间的限制,可根据自身情况选择自己需要学习的部分,为用户提供了方便自由的学习平台,实现了用户学习自主化目标。
参考文献
电脑编程入门教学范文6
摘要:C语言是计算机程序设计入门教学中最流行也较难学的编程语言之一。本文介绍的Ch是一个面向交互式教学的跨平台C/C++解释计算环境,是一个完整的C语言解释器,支持最新C语言标准C99中大部分的新增特性以及C++的类,由交互式命令外壳(command shell)和教学专用且界面友好的集成开发环境(ChIDE)两大模块构成。Ch支持计算数组(computational array),提供了图形绘制库和高级数值函数库,能够方便快捷地解决许多工程和科学方面的复杂问题。在Windows系统中,Ch计算环境支持常用的Unix和Linux命令,帮助学生在熟悉的Windows环境中学习Unix和Linux。Ch还可以作为引擎脚本无缝地嵌入到编译的程序中,实现柔性编程。本文最后概括性地介绍了笔者在美国加州大学戴维斯分校多年教学实践中开发并使用的一套基于Ch的C程序设计教学平台。教学实践表明,使用这个平台在相当程度上提高了计算机程序设计教学的实用性、授课效果和学生学习的积极性,帮助学生充分理解和掌握计算机程序设计这一工程和科学领域的重要基本技能。
关键词:计算机程序设计教学;C语言;C解释器;C++解释器;数字计算;嵌入式脚本计算
中图分类号:G642
文献标识码:A
1引言
编写计算机程序解决复杂的工程和科学问题是工程师和科学家的基本技能之一。C语言是在工程和科学方面应用最广的编程语言之一,事实上,它是很多工程师和科学家的首选。C语言可以在各种计算机上运行,其中包括微控制器、微型计算机、手执设备、个人电脑、工作站乃至超型计算机。在2005年制造的90亿个微处理器中,只有不到2%的处理器用于新的个人电脑和工作站中,剩余的88亿个则用于工业机器、医疗设备、交通灯控制器和家用电器等的嵌入式系统中。C是编写诸如此类嵌入式系统硬件接口程序的标准语言,同时也是计算机编程入门教学中应用最广的计算机语言之一。但众所周知的是,C语言较难学,熟练掌握更需要相当长的时间。本文介绍的Ch是跨平台的C/C++解释计算环境,对于提高计算机编程入门教学具有良好的效果。
2背景
在过去的十多年中,编程范例发生的转变包括从非移植性特定语言编程到可移植性快速应用开发,从私有语言到开放语言,从系统编程语言到脚本语言。当初设计和开发Ch的主要目的是为了更有效地进行C语言计算机程序设计入门教学,同时兼顾智能机电系统方面的科研和工程应用[1][2]。经过十多年的教学实践和工程应用并不断完善,Ch现已从一个简单的教学和科研工具演变为一个可移植跨平台且通用简便的计算环境[3],并得到教师、学生、科研人员和工业界的广泛认可。经过十多年教学经验的积累,目前已经形成了以Ch为核心的C语言程序设计课程的教学平台[4]。
然而,Ch并不是什么全新的语言,Ch设计严格遵循了C语言标准,是C语言的超集。作为一个完整的C语言解释器,Ch支持1990年通过的ISO C89标准[5]的所有特性。在基于对象的编程方面,Ch也支持C++中的一些主要特性。我们为数值计算而扩展C语言的工作与ANSI C语言标准委员会为修改C语言标准所做出的努力是一致的。自从我1993年参与ANSI X3J11和ISO S22/WG14 C语言委员会修订C99后,Ch受益匪浅。很多诸如复数(complex number)[6]和可变长数组(variable length arrays, VLAs)[7]等原先在Ch中实现的新特性都添加到了的最新C语言标准C99[8]中。与其他大部分C语言编译器相比较,Ch支持更多C99的新增特性。我们鼓励C程序员使用这些新特征,诸如复数、可变长数组、IEEE 754浮点运算和泛型数学函数(type generic mathematical functions),因为它们可以极大地简化很多编程任务。
C语言最初是为系统编程而设计开发的,因此它在工程和科学应用方面存在一些缺陷。Ch是一个C/C++解释器,可用于跨平台脚本、高级数值计算和图形绘制、shell编程和嵌入式脚本。Ch借鉴了很多其他语言和软件包的特性和创意,它和其他一些语言和软件包的关系见图1。Ch的以下主要功能是一般的C语言编译器所无法提供的。首先,Ch可以解释C语言程序,在一台机器上开发的C语言程序可以在无需编译和链接代码的情况下在另一台机器上由Ch解释执行,这对脚本应用来说是非常理想的,比如通用网关接口(Common Gateway Interface,CGI)处理网页上的已填好表格。解释器对C语言计算机编程的教与学双方都是非常有帮助的,比如,运行时的出错信息能够更方便地指向源代码,使初学者更容易发现程序中的错误。Ch还能解释使用面向对象编程特性的C++程序。其次,一些应用于工程和科学方面的语言(如MATLAB和Mathematica)所具有的高级数值计算和图形绘制特性也被Ch扩展到C语言上。Ch中的一些数值计算方面扩展特性已添加到C99中。再次,Ch是一个具有高效的shell编程特点的超高级语言(very high-level language, VHLL)。有些需要编写数千行C语言代码才能解决的问题,Ch代码只需寥寥数行即可完成。此外,Ch还可以无缝地嵌入到用C或C++语言编写的编译应用程序中,使应用程序可以用C/C++脚本柔性编程,极大地扩展了应用程序的功能。本文将从教学的视角阐述Ch的这些独特功能。
3Ch是一个跨平台的C/C++解释器
在处理某些任务时,C语言功能及其编译/链接/运行/调试等繁琐过程不尽完美且效率不高。随着计算机硬件越来越便宜,计算速度越来越快,Ch作为跨平台C/C++解释器,其在程序设计效率、柔性及成本方面的优势已被越来越广泛应用,特别是在C语言程序设计教学上。
作为一个完整的C语言解释器,Ch支持ISO C89标准的所有语言特性和标准库。通过Ch软件开发包(Ch SDK),Ch可以支持C/C++函数库。比如,Ch支持POSIX、TCP/IP socket、Winsock、Win32、X11/Motif、GTK+、OpenGL、ODBC、SQLite、CGI、LAPACK、LDAP、PCRE、Gnome Libxml2、甲骨文公司的XML XDK、NAG统计库、用于计算机视觉的Intel OpenCV、用于图像处理的ImageMagick、用于信号处理的SigLib、美国国家仪器有限公司的NI-DAQ和NI-Motion等。
此外,Ch被设计成与平台无关,它可以在配有不同计算机硬件和操作系统的不同类型计算环境中运行,其中包括Windows、Mac OS X、Linux(x86、PPC、ARM架构)、Unix,FreeBSD和实时操作系统QNX。Ch跨平台特点可以使C/C++程序在多种操作系统上跨平台解释执行,而无须繁琐且与平台相关的编译过程。在一个平台上开发的程序可以在其他任何一个平台上运行。
在辅助初学者学习计算机编程方面,Ch有很多专门开发的警告和出错提示信息,而不用如段故障(segmentation fault)和总线错误(bus error)之类含义模糊且令人费解的出错提示信息。
3.1交互式解释执行C/C++语句和表达式
C语言的所有语句和表达式都可以在Ch命令外壳(command shell)中交互解释执行并即时地显示在屏幕上。如图2所示,使用交互调用函数printf()得到“Hello, world”的输出。注意,在命令模式中执行相应语句时,C语言程序中语句末尾的分号是可省略的。上述执行操作所调用的函数printf()中没有分号。Ch shell中的默认提示符是可配置的。为简易起见,下文关于Ch shell的命令行叙述中只显示提示符>,而不列出完整路径。
Ch shell会对输入的C语言表达式直接进行求值,并将结果显示于屏幕上。比如,输入表达式1+3*2,输出的结果为7,如图3所示。
任何有效的C语言表达式都可以在Ch shell中求值。因此,把Ch当作计算器使用也是相当方便的。再举一例,在提示符后声明变量,接着在随后的计算中使用该变量,如图4所示。
以上C语句中,i是一个4字节的int型变量,i的整数值30将以十进制、十六进制和二进制数显示。Ch shell还可以方便地检查C语言结构或C++类的对齐,如图5所示。
本例中的int和double虽然分别占4和8个字节,但为了对齐,结构体s的int和double两个字段共占16个字节,而不是12个。
3.2交互式解释执行C/C++函数和程序
除了C语句和表达式之外,C语言的函数和程序也可以在Ch shell中进行交互式解释执行。C语言标准库中的所有函数都可以进行交互式执行,也可以在用户自定义的函数中使用。比如,在交互式解释执行如图6所示的代码:
在随机数值生成函数rand()中种入时间值srand (time(NULL))。在命令行中定义并调用的函数add()依次调用了泛型数学函数sin()。
函数文件中定义的函数也可被其他程序和表达式在命令外壳直接调用。Ch的函数文件是一种扩展名为.chf的文件,此类文件只含有一个函数定义。函数文件名和函数定义名称必须是相同的。
比如图7中的程序addition.chf就是函数addition()的函数文件。函数addition()可以用于程序或如图8所示的命令外壳中。
C/C++程序无需编译即可直接进行交互式执行。比如,要运行图9中的“hello.c”程序,只要在Ch命令shell中输入命令“hello.c”,得到的结果就是“Hello, world”,如图10所示。
Ch由上述命令外壳(command shell)和一个集成开发环境(Ch Integrated Development Environment,ChIDE)两大模块构成。ChIDE允许用户在IDE中编辑、调试或运行C/C++程序,其用户界面支持包括中文在内的30多种语言。ChIDE中含有现代IDE中常用的大部分功能。比如,它具有自动语法高亮显示,可帮助用户发现程序的一些语法错误。用户可设置断点,单步运行程序,在程序运行过程中监视变量和表达式值并修改变量值。ChIDE操作简便,是专门为教师授课和学生学习而开发的。ChIDE的特征和布局都是针对那些没有任何编程经验的初学者而设置的。比如,如图11所示,程序func.c连续或单步运行停在第9行时,可以在ChIDE中间的调试窗格内监控局部变量和全局变量的值。变量a和i以及表达式2*g的值可以通过将相应命令输入右下角的调试窗格中获取。教师课堂演示时,还可以方便地改变ChIDE中程序的字体大小。
4Ch的高级科学计算功能
科学数值计算并不是C语言设计的最初目的。比如,在C89中就很难处理多维数组。C99为C语言添加了可变长数组和复数,使得数值计算得到极大简化。Ch进一步扩展了C99的数值计算功能。在Ch中,数值分析方面的复杂问题往往只需调用一个函数即可解决。本部分将阐述Ch在科学计算方面对C语言进行的扩展。这些数值扩展极大地简化了工程和科学中复杂问题的编程。很多工程和科学上的实际问题都可以在课堂演示,在课后练习和项目训练中轻松解决,提高了教学的实用性,并极大地激发学生对计算机编程的兴趣和学习的积极性。
4.1高级数值计算
Ch支持作为一类对象(first-class)的计算数组(computational array)。计算数组可以由类型声明符array进行声明。一维的计算数组作矢量处理,而二维数组则作为线性代数矩阵处理。对计算数组进行运算的操作符重载遵循线性代数的运算规则,如图12所示。
本例中,函数transpose()和inverse()分别用于计算转置矩阵和逆矩阵。对关键词array的处理方法跟C99中关键词complex的相同。在程序中使用计算数组时,应该包含头文件array.h。如果程序中没有包含头文件array.h,那么标识符array仍可作为变量名使用。
Ch含有针对科学数值计算的高级数值分析函数库。比如,线性方程组Ax=b,其中:
通过图13中的程序linsolve.ch调用函数linsolve()进行求解,输出结果如图14所示。
头文件numeric.h包含头文件array.h和数值函数的函数原型。函数linsolve()的算法基于广为应用的开源LAPACK,直接调用了LAPACK中的相关函数。用户无需担心用快速精确的数值算法进行的潜在的优化。通过高级数值分析函数库,用户只需调用一个函数就能解决诸如LU分解、QR分解、伪逆、奇异值分解、矩阵的特征值和特征向量、非线性方程、常微分方程等复杂数值分析问题。
这些高级数值函数对解决工程和科学类后续课程的复杂问题也是非常有用的。
4.2二维和三维图形绘制
图形绘制对数值结果的可视化和解释是极为重要的。C语言默认不支持图形绘制,C语言程序员往往用程序先生成一个数据文件,再使用如Excel之类的软件包,用数据文件中的数据绘制图形,这一过程对算法开发来说很不方便。Ch在C/C++的框架下,为二维和三维图形绘制提供了几乎最简捷的方案。使用图形库(graphical library)的绘图函数(plotting functions)或绘图类(class CPlot)成员函数(member functions),可以在Ch中方便地生成二维和三维图形。Ch可以用数据数组、数据文件或函数生成图形,将其显示于屏幕,保存为不同格式的图片文件,或以适当图片格式输出到标准输出流,并使用Web服务器在Web浏览器上显示。
下面三个例子分别展示了在Ch中绘制二维曲线、三维曲面和三维曲线的简捷功能。
图15所示为函数sinc(x)的二维曲线图形:
x的取值范围为[-10,10]。该图形是如图16所示的Ch程序sinc.cpp通过调用绘图函数fplotxy()实现的。
绘图函数fplotxy()的函数原型为:
Int fplotxy(double func(double), double x0, double xf, int num,
char *title, char *xlabel, char *ylabel);
其中变量func是拟绘图的函数,其自变量区间为[x0, xf],num为绘图取点数,title为图形名称,xlabel和ylabel分别为x坐标轴和y坐标轴的标识。
Ch的绘图函数是通过绘图类(class CPlot)实现的。比如二维曲线绘制函数fplotxy()调用方式:
fplotxy(func,x0,xf,num, title, xlabel, ylabel);
可以用绘图类及其成员函数实现如下:
CPlot plot;
plot.func2D(func,x0,xf,num);
plot.title(title);
plot.label(PLOT_AXIS_X, xlabel);
plot.label(PLOT_AXIS_Y, ylabel);
plot.plotting();
很多别的Ch绘图类的成员函数可以用来绘制不同的图形并达到各种各样的功能。
同样地,三维曲面也可以由Ch绘图函数简捷地生成。图17为数学函数sinr(x, y) 形成的曲面,sinr(x, y)为:
,其中该曲面绘制可由如图18所示的Ch程序sinr.cpp通过调用绘图函数fplotxyz()来实现,其中x在区间[-10, 10]取点数为80,y在区间[-10, 10]取点数为100。
绘图函数plotxyz()可以用来绘制三维曲线或表面。图19是由如图20所示的Ch程序helix.cpp调用plotxyz()生成的,其中t从0到10π的曲线段上含有300个点。在绘图函数plotxyz()中,前三个数组变量与参数函数x、y和z相对应,第四个变量为三维曲线取点数,其他变量与函数fplotxy(), fplotxyz()相同。
使用绘图函数的程序也可以用C++图形库(SoftIntegration Graphical Library,SIGL)[9]在C++编译器中进行编译和链接。比如,图16、18和20所示的程序可用微软的Visual C++来编译、链接SIGL图形库产生可执行的文件。ChIDE集成开发环境不但可以直接解释执行这些调用绘图函数的程序,而且还能够通过编译和链接的方式产生可执行的文件来执行这些程序。
以高级图形绘制和数值函数为基础,大量教学和工程应用工具包可被开发出来。现已开发的工具包包括控制系统工具包[10]和机构设计和分析工具包[11]。图21所示动画是一位学生为机构设计课程项目训练所开发的快速回归机构[12],只需短短34行代码即可实现该机构的数值和图形输出以及仿真。
5Ch命令外壳(Command Shell)和Shell编程
随着计算平台的日趋多样化,为学生提供除Windows的更多跨平台实践的机会就显得越来越重要了。Unix和Linux也是学生需要学习的重要操作系统。计算机的图形用户界面(graphical user interface,GUI)固然好用,但是在命令shell中却可以更简便地完成一些诸如建立多个目录之类的任务,而在处理多平台任务时更是如此。不同平台采用的图形用户界面往往是不同的。此外,shell编程的脚本可以高效地自动执行重复任务,比如系统管理、回归测试、快速编程。常见的Windows MS-DOS和Unix shell(包括Bourne shell,C shell和Korn shell)的语法都是非常繁杂的。和低级汇编语言的符号记忆形式类似,MS-DOS和Unix shell元字符组(metacharacters)的特殊含义很难被记住。因此,用MS-DOS和Unix shell编程语言编写的大篇幅shell脚本较难读懂,也不容易进行修改和维护。再者,MS-DOS和Unix shell编程语言的功能也十分有限。
Ch是一个无需中间字节码(bytecode)的解释器,它也是一个命令外壳(command shell)。Unix系统下,处理Ch shell命令的方法与Bourne shell和C shell之类的常规Unix shell采用的方法是相同的。跟其他Unix shell一样,Ch也能当作login shell使用。大部分Unix命令都是用C语言编写的。Ch为C语言和shell进行了几乎天衣无缝的衔接。在Windows系统下,Ch支持Unix和MS-DOS规范。作为一种可移植命令shell,Windows系统下的Ch包含了Unix shell中常用的200多个Unix命令,比如vi、ls、mv、grep、find、awk、sed和wget等。这样有Windows操作经验的学生可以在熟悉的环境中学习Unix和Linux,自然地过渡。Ch可用于交互式命令解释和shell编程设计。从shell编程的角度看,Ch是一种超高级语言(very high-level language,VHLL),并同时保留了shell的特性,比如命令行编辑、命令替换和别名等。作为命令外壳,Ch的大部分特性与常规的Unix shell相同。在命令shell和shell编程方面,Ch被设计得尽量接近C shell,但不完全相同。Ch shell是一种真正意义上的C shell,并且在Windows、Unix和Linux中都可以使用,因为Ch是C语言的超集,用Ch编写脚本更高效,而且易于维护。
Ch具有现代命令shell该拥有的大部分特性,其中包括历史替换、快速替换、文件名替换、管道、输入和输出重定向、别名、后台运行命令、敲tab键补全文件名和命令,以及使用键盘上的方向键重现命令。这些特性大部分都与C shell和Bourne shell兼容。
在Ch shell中,用户可以在shell的提示符后面输入命令。这些命令包括编译的可执行文件、shell脚本、C语言程序。例如,图22所示的这条命令便可建立dir1和dir2两个目录。
如果要在其他脚本诸如Bourne shell中执行Ch脚本,可以在Ch程序首行含有以下组织行:
#!/bin/ch
如图23所示为Ch脚本script1,该脚本的文件名为script1。在Ch脚本中主函数main()可省略。该脚本由替换命令`uname`生成的字符串与程序预定义的字符串“Linux”和“windows32”相比较来决定程序运行在什么操作系统上,字符串变量s1,s2的值“dir1”和“dir2”则作为mkdir命令的变量。如果该脚本在Linux或Windows操作系统中运行,就会建立dir1和dir2两个目录;如果运行在其他操作系统,则会产生出错信息。
6Ch作为嵌入式脚本引擎
设计软件系统时采用嵌入式脚本柔性编程已越来越流行。在嵌入式脚本的编程范例中,解释器或脚本引擎被嵌入到编译的应用程序中。应用程序可以通过嵌入的解释器执行脚本代码,该脚本代码还能依次调用应用程序和其他函数库中编译的函数并与其共享数据。虽然强大的可嵌入解释器可以极大加快软件开发和部署的速度,但这种柔性编程规范的方法和功能还有待进一步开发和充分利用。
比如,如果将C/C++解释器嵌入到一个自控程序中,对硬件和软件进行测试,则质保工程师就能用C/C++测试脚本调用编译的C函数和C++成员函数。编译的应用程序仅通过调用不同脚本就可用来测试不同产品,这些调用的脚本可以从图形用户界面输入或从文件调入。再如,嵌入式解释器可以为不同客户和应用定制产品,在不改变标准产品的情况下,可根据客户的具体需要给应用程序加入额外功能。应用程序在特定的点调用和执行脚本就能实现客户期望的具体行为。
用于嵌入式脚本的可嵌入解释器有好几种,但最理想的情况是,应用程序的编译代码和脚本代码使用同种编程语言。否则,在编译的二进制空间和脚本空间之间共享数据就会困难而复杂。
C和C++是最常用的编译应用程序开发语言。对于用C/C++编写的应用程序来说,嵌入一个C/C++解释器是最合逻辑的选择,如图24所示。用C/C++编写的应用程序和C/C++脚本均可无缝地共享内存、函数和头文件。
嵌入式Ch具有大量可用于嵌入脚本的应用编程接口(Application Programming Interface,API),比如可在编译的应用程序中跟踪和分析C/C++脚本代码。单个嵌入的解释器就能处理多个C/C++脚本,多个解释器也可嵌入到单个进程中,多个解释器还能嵌入多线程应用程序的不同线程。
虽然如何嵌入脚本引擎到编译的应用程没有包括在计算机编程入门课程中,但是图11所示用于教学的ChIDE中嵌入了Ch解释器,用来解释执行在编辑窗格中的C和C++程序。解释器执行C和C++源代码可以为程序调试提供更多明确的出错信息,而简单明确的出错信息对初学者调试程序尤为重要。再如,Ch解释器嵌入到Mobile-C(一个multi-agent平台),用以支持mobile C/C++ agent,而这种基于agent的移动计算可应用到各种智能机械电子和嵌入式系统中,用动态柔性编程来提高各项性能[13]。
很多龙头企业都在使用嵌入式Ch,如Agilent Technologies公司用嵌入式Ch调控仪器仪表,Lockheed Martin公司用嵌入式Ch做飞机的设计和仿真,ABB公司用嵌入式Ch作自动控制,LG Electronics公司用嵌入式Ch检测生产的电子产品。FunctionBay公司为处理C/C++脚本,将Ch嵌入到其拳头产品RecurDyn(这是一款用于多体动力学分析的软件程序)中。图25显示的是嵌入式Ch和基于mobile C/C++ agent的移动计算在工业机器人、移动机器人、嵌入式系统、智能交通和机电系统设计和仿真中的应用。
基于标准语言的可靠的嵌入式脚本引擎可以免掉开发人员在开发和维护私有脚本语言或解释器上的负担,而开发和维护一个跨平台的基于私有语言的嵌入式引擎在人力、硬件、软件、开发、测试、维护、系统管理、培训和技术支持等方面的成本是非常昂贵的。
7基于Ch的C程序设计教学平台
自从1992年以来,我在加州大学戴维斯分校每年教授工程类学生C语言计算机编程的入门课程。在课堂讲学中,我在笔记本电脑上以交互的方式使用Ch。Ch使我能够快速地演示C语言特征和编程原理,特别是在回答学生问题时。学生们可以快捷地体验C语言的不同特征,无需进行冗长的编译/链接/运行/调试的循环操作。经过10多年教学经验的积累,目前已形成了以Ch为核心的C语言程序设计课程的教学平台[4],体系结构如图26所示。它包括Ch计算环境(由Ch命令外壳和ChIDE集成开发环境两大模块组成)、C语言教材和课件(含350有详细注释的完整实例源程序、1400多页课堂授课用PPT、500多道习题)、讨论训练素材(含200多页课堂讨论用PPT)、教师指南(含教学目标、计划、试题库)和习题题解手册(含每章习题答案及相关源程序)。以上四部分内容是我们长期教学和科研经验的积累和不断完善的结果。
该教学平台主要面向没有任何编程经验的初学者,通过教与学,帮助学生理解和掌握C语言程序设计原理、编程与调试方法以及工程与科学计算算法程序实现,并能够用C编程来解决工程和科学实际问题。
该教学平台已被世界各国越来越多的高等院校所接受和采用。教学实践及反馈表明,该教学平台具有以下主要特征:
(1) 实现了C语言的直观交互式的教学方式,降低了C语言的学习难度
C/C++语句、表达式、函数和程序都可以在Ch命令外壳和ChIDE中解释执行。因此,教师可以在课堂上对C/C++语句、表达式、函数和程序等进行直观的交互式的演示教学,帮助学生形象化地理解C语言指针、结构体、数组、编程逻辑、编程调试等学习难点,让学生能像学习BASIC语言一样学习C语言。
(2) 使用高级数值计算、图形绘制功能以及工程用例,增强了C语言学习的生动性和实用性
该平台具有强大的高级数值计算、二维/三维绘图功能和底层硬件连接与工业控制功能,并附有丰富的工程及科学实际编程应用案例,可以形象而又便捷地展示和讲解使用C语言解决较复杂的工程和科学问题中的应用,有利于激发学生学习的积极性,提高教学的实用性。
(3) 支持跨平台功能,可帮助学生了解和熟悉不同操作系统下的C编程特点及方法
在美国、俄罗斯、欧洲、日本、中国等国家,Windows、Linux、Mac OS X、Unix等操作系统均被广泛使用,而在工业控制、嵌入式系统及Web服务器等领域,Linux操作系统占有更重要的地位。Ch具有跨平台的特点,可以帮助学生了解和熟悉C语言在不同操作系统中进行程序设计和执行的特点,有助于他们在今后工作和学习中适应不同操作系统环境下的程序设计、开发和应用。
(4) 此外,Ch教学平台中的Ch命令外壳、ChIDE以及教材等均支持ISO C89标准的所有语言特性和标准库、C99的大部分新增特性以及64位编程功能,是目前关于C程序设计知识最为完整的教学工具之一。在编写教材时,我们既考虑到初学者的需要,力求浅显易懂、深入浅出,同时也兼顾C语言知识和技能的系统性和实用性,并对一些疑难的高级知识点做了专门的实例化剖析,力求使之成为学生在后续课程学习及今后解决工程和科学领域实际问题时的重要参考资料。
8结语
Ch是一个完整的C语言解释器,同时支持C99新增的大部分特性和C++类。Ch的计算数组、高级数值分析函数、二维和三维图形绘制功能是C/C++框架下最便捷的形式,这些功能可用来方便地解决许多工程和科学中的复杂问题。Windows下的Ch计算环境支持常用的Unix和Linux命令,使学生能够在熟悉的Windows环境中学习Unix和Linux。Ch可作为一个C/C++脚本引擎被无缝地嵌入到其他应用程序中。越来越多的应用程序扩展后都具备了C/C++脚本功能。
基于Ch的C程序设计教学平台是在美国加州大学十多年教学和科研中不断积累和总结而成的一项重要教学成果,并形成了独特的教学模式。该教学平台包括跨平台的C/C++解释性计算环境(由Ch命令外壳和ChIDE集成开发环境组成)、成套的教材及课件、相应的讨论训练素材和完整的教师指南。教学实践及反馈表明,该平台能增强教学的实用性,提高授课效果,降低初学者学习计算机程序设计的门槛,并有助于激发初学者对计算机编程的兴趣和学习的积极性,帮助他们真正理解和掌握如何应用计算机编程这一种重要工具来解决工程和科学中的实际问题。Ch和Ch教学平台可从网上下载[3][4],希望它能使您的教学和编程任务更加快乐有趣。
参考文献:
[1] H. H. Cheng,“Scientific Computing in the Ch Programming Language”,Scientific Programming,Vol. 2,No. 3,pp. 49C75,Fall 1993.
[2] H.H.Cheng,“Extending C and FORTRAN for Design Automation”,ASME Trans.,Journal of Mechanical Design,Vol. 117,No. 3,pp. 390C395,Sep 1995.
[3] Ch―an Embeddable C/C++ Interpreter,.
[4] H. H. Cheng,C for Engineers and Scientists:An Interpretive Approach,New York:McGraw-Hill,Inc. March 2009; iel.ucdavis.edu/cfores;中文版将由高等教育出版社出版.
[5] International Standard:Programming languages - C,ISO/IEC,Geneva,Switzerland,1990.
[6] H. H. Cheng,“Handling of Complex Numbers in the Ch Programming Language”,Scientific Programming,Vol. 2,No. 3,pp. 76C106,Fall 1993.
[7] H. H. Cheng,“Extending C with Arrays of Variable Length”,Computer Standards and Interfaces,Vol. 17,pp.375C406, 1995.
[8] International Standard:Programming languages - C,ISO/IEC,Geneva,Switzerland,1999.
[9] SoftIntegration Graphical Library,/products/silib/graphlib/.
[10] Y. Zhu,B. Chen and H. H. Cheng,“An Object-Based Software Package for Interactive Control System Design and Analysis”,ASME Trans. Journal of Computing and Information Science in Engineering,Vol. 3,No. 4,pp. 366C371,Dec. 2003.
[11] H.H.Cheng and D. Trang,“Object-Oriented Interactive Mechanism Design and Analysis”,Engineering with Computers,An International Journal for Simulation-Based Engineering,Vol. 21,No. 3,pp.237C246,May 2006.
[12]M. Campbell and H. H. Cheng,“Teaching Computer-Aided Mechanism Design and Analysis Using a High-Level Mechanism Toolkit”,Computer Applications in Engineering Education,Vol. 15,No. 4,pp. 277C288,2007.iel.ucdavis. edu/.
[13] Mobile-C:A Multi-Agent Platform for Mobile C/C++ Code,.
Ch: a Pedagogically Effective Cross-Platform Interpretive C/C++ Computing Environment
Harry H. Cheng, Professor
(University of California, Davis, USA)
Abstract: C is one of the most popular languages used to teach introductory computer programming. A pedagogically effective cross-platform C/C++ computing environment called Ch is introduced in this article. Ch is a complete C interpreter. It supports most new features added in C99 and classes in C++. Ch consists of both command shell and user-friendly IDE called ChIDE. In addition, Ch supports computational arrays, a graphical plotting library, and advanced numerical functions for solving complicated problems in engineering and science conveniently. Furthermore, the Ch computing environment in Windows supports commonly used Unix and Linux commands. It allows students to learn Unix and Linux in a familiar Windows environment. Ch can also be seamlessly embedded in other applications as a C/C++ scripting engine for flexible programming. Finally, a Ch-based teaching platform developed and used at the University of California, Davis over the years for teaching introductory computer programming in C will be briefly presented. Experience indicates that this C/C++ interpreter based teaching platform increases the effectiveness of teaching computer programming for real-world problem solving and lowers the barrier for beginners to learn computer programming. It helps students to fully understand and master the working principle of computer program design for solving problems in engineering and science, which is one of the most important and basic skills for engineers and scientists.