1、改革计算机基础课程教学提高计算机应用能力摘要:计算机基础课教学存在着实践动手能力不能满足实际工作需要的问题。本文提出根据学生基础分层提出教学要求,全面贯彻“精讲多练”的教学原则,实施分层教学;实施“任务驱动教学法” ,明确学生实际操作的任务,加强平时考核;建立和完善网络教学平台,拓展教学与辅导的方式,全面改革教学体系。 关键词本文来自:计算机毕业网 :计算机基础;教学改革;独立学院 1 我院计算机基础课程教学现状分析 独立学院的目标是培养应用性人才,强化学生动手能力一直是我们追求的目标。计算机在实际工作中应用广泛,对工作人员的应用能力要求不断提高,因此计算机基础课程是基础课教学的重点,分别在第
2、一学年两个学期组织教学,课程是“计算机基础” 、 “Visual FoxPro 程序设计”两部分组成。学院按每 10 名学生 1 台计算机的要求建立了 6 个机房,每个机房安装了投影教学设备,方便教师在机房演示讲解。为强化计算机教学,加大了课时数,实行每周 6 个课时贯穿整个学期,理论课时和上机课时各半,所有理论课安排在多媒体教室教学,提供了较好的教学条件,基本保证了教学质量。但学生计算机实际操作能力和应用水平并未达到后续专业课程的学习和实际工作的要求,主要存在以下原因。 (1) 在逐步建立教师队伍的过程中,师资队伍的组成比较复杂,对教师的管理缺乏有效途径和方法。没有教学大纲,缺乏统一的教学安
3、排和要求,教师对教材的选用和处理搬用学校本部的要求或者全凭个人经验,不能适应独立学院的教学特点。 (2) 虽然使用了多媒体教学,但仍然采用是满堂灌的教学方法,学生被动接受,没有根据计算机基础学习实践性很强的特点组织教学,影响学生学习积极性。 (3) 上机课时安排较多但教学内容没有明确的要求和安排,降低了实践教学的效果。 (4) 考核模式以期末考试、理论考试为主,不利于培养应用型人才。 (5) 入校新生计算机基础水平差异加大,统一的教学进度和要求导致一部分基础较好的学生没有兴趣,基础太差的学生又跟不上,影响了教学效果。 2 课程改革的对策 课程改革要适应我院应用型教学的整体思路,考虑我院学生的基
4、础和就业实际,整体实施分层教学,全面贯彻“精讲多练”的教学原则,实际操作实施“任务驱动教学法” ,强化学生实际动手能力。为切实保证我院计算机基础课程的教学,要通过立项形式组织任课教师开展课程建设,主要完成以下任务,形成一套完整的教学体系。 2.1 教学大纲的制订与完善 根据教育部非计算机专业计算机课程教学指导委员会提出的“非计算机专业计算机基础课程教学基本要求” ,考虑实际应用的需要,兼顾全国计算机等级考试二级要求,来确定教学大纲。制订教学大纲前要了解学生入学前掌握计算机知识的情况,根据分层教学的“最近发展区”理论,在大纲中明确提出对基础较差的学生的一般要求,对基础较好的学生的较高要求,增加学
5、习内容和学习深度,为实施分层教学提供教学依据。2.2 按“精讲多练”的原则安排教学内容、组织教学 计算机发展快、应用范围广,需要学习的内容越来越多,越来越新,而学生的课时很有限,因此必须在“需要”与“可能”之间找到一个“平衡点” ,使学生在校期间,能学到最基本的知识与能力,为以后的学习打下基础。计算机基础教学应该大力提供“精讲多练” 。所谓“精讲”就是在教学中主要讲清课程的要点和基础知识,教会学生学习的方法,更多的具体内容让学生自学,而不是面面俱到。所谓“多练”就是让学生多上机操作,目的是从培养学生的操作技能入手,让学生多动手动脑,提高操作的准确性、迅速性、灵活性和协调性1。 按“精讲多练”的
6、原则组织集体备课,确定精讲的教学内容,进行教材建设,制作多媒体演示文稿,统一教学要求。 2.3 用“任务驱动”组织实验教学 “任务驱动”也称为抛锚学习、问题解决学习或课题式的探索学习。顾名思义,即力求以任务为驱动,以某个实例为先导,进而围绕这一实例提出问题,引导学生加以思考。通过学和做,培养学生分析问题和解决问题的能力。用任务驱动为主导的教学模式,在教学内容安排上不再以“知识点”作为线索,而是改用任务为线索,将原本孤立的知识点有机组合成知识链,形成系列教学内容,分阶段为每一个学生设置任务。教师讲解的时间则尽量减少,而以学生实际操作为主。对任务的设计和安排,既要考虑学生掌握信息技能的认知规律,又
7、要逐步与职业定向、学科内容的学习相融合,为后续技能的培养打下基础2。 “任务”可以分为以下四种类型:教学型任务、模仿型任务、扩展型任务、创新型任务。将任务贯穿于课程的始终,在不同的教学阶段设计使用不同类型的任务。根据教学大纲要求确定上机训练内容,将训练的内容组合形成明确的任务,分层提出基本要求和提高要求,让不同层次的学生都有训练内容,达到不同的学习层次要求。将任务驱动法应用于计算机基础教学之中,不仅可以调动学生学习的积极性,还可以培养学生的独立性和自学能力,挖掘学生的创造力,培养学生分析问题解决问题的能力3。 用任务调动学生完成基本操作,以完成任务的成就感调动学生的学习积极性,将完成任务的情况
8、作为平时考核的依据。如中英文录入可提出明确的速度要求及评分标准,Word 学习时可将毕业论文的排版格式作为要求,为毕业论文工作打好基础。 2.4 建立网络教学平台丰富教学手段 建立计算机教学网站,组织教师制作教学课件、收集相关的教学资源,提供了师生交流的平台,便于学生课余学习和教师辅导答疑。更重要的是可建立学生学习成果的展示窗口,为每个班级提供一个作品展示空间,由老师和同学推荐较好的作业和课外作品展示出来,培养学生学习兴趣,提高学习积极性。 2.5 完善课程评价体系 研究并开发考试评价系统,组建试题库,实施上机考试并自动评分。改革课程考核形式,加大平时成绩比例,形成性评价与总结性评价各占 50
9、%,不仅要客观地评价学生掌握所学知识的程度,更要考核学生综合应用知识的能力,改变学生在计算机学习中高分低能的局面。 3 课程教学的组织实施 课程改革的关键还在于认真组织实施,教学组织者、教师和学生都要以提高学生的能力为目标,全面贯彻课程改革方案。 首先,确定分层教学组织方案。根据调查或组织考试来分析学生掌握计算机基础知识的情况和各层次人数。分层明显且人数较多的专业,分层建立教学班级。层次不明显或人数较少的专业,实施班内分层教学。班级的组织形式在教学前分别通知任课教师,以便有针对性的组织教学。 教师是教学主导者,是教学过程的执行者,教师的素质和能力是教学质量的根本保证。要研究并建立与之相适应的教
10、学管理制度,同时要注重教师队伍的引进和培养,实现由自聘教师承担主要的教学工作。任课教师在教学过程中应完成的主要工作包括: (1) 严格按教学大纲和教学要求组织教学,调查了解班级和学生学习情况,适时调整教学内容和教学进度。积极参加教研活动,交流教学情况,吸收其他教师的教学经验。 (2) 建立个人教学主页,根据教学需要制作课件,收集教学素材,丰富教学内容,供课堂教学或学生课外学习使用。 (3) 加强上机辅导,对学生完成任务情况进行评价并记载平时成绩,对完成任务中存在的较集中的问题进行讲解。 (4) 推荐优秀作品展示并做点评,负责班级学生作品展示工作的辅导。 (5) 组织学生考试并确定学生最后课程成
11、绩。 学生是教学的主体,要积极配合学校组织的教学,加强平时的训练,按时完成各项任务,保证学习进度。根据自己学习情况,可推荐学习效果好的教学课件和学习素材进入网络学习平台,丰富课程教学资源。学生班级负责本班优秀作品网上展示,课程结束时完成班级网站建设。 参考文献 1 吴文利,李茜妹. 高职院校计算机基础课教学的探讨 J. 教育理论与实践,2006,(10):58-59. 2 阮琼娥. 高职计算机基础教学改革初探J. 教育评论,2006,(5):111-112. 3 邸英. 任务驱动法在计算机基础教学中的应用J. 科教文汇,2006,(7):50. 收稿时间:2010-1-21 设立计算机教育杂志
12、“报刊引证报告”栏目的目的是:(1) 持续了解和分析专业教师在开展教育教学改革活动中,对相关学术刊物的阅读情况和关注程度。 (2) 通过引证分析,为本刊读者和教师推荐优秀的专业刊物和重要的学术论文,并期望以此帮助读者拓宽阅读面,减轻阅读负担。 在本期(2010 年第2 期,总第 22 期)“报刊引证报告 ”中,我们首先分析 2009 年第 23 期至第 24 期(2009 年 12月,统计月) 的报刊引文情况, 另外还将综合分析 计算机教育杂志 2009年全年的报刊引证情况。 12009 年 12 月论文引证情况 在 2009 年 12 月出版的计算机教育第 23 期至第 24 期(共 2 期
13、) 中,共发表论文 92 篇,其中,标注了报刊参考文献的论文有 72 篇(不含外文期刊和教材书籍 ),占发表论文总数的 78.26%。 引证参考文献(不限年份)涉及计算机教育 、 中国大学教学 、 福建电脑等 128 种杂志(含因特网文献),引文共 267 次。其中 ,引用因特网文献 14 次,引 用学报类刊物42 种且引文 47 次。 22009 年 12 月引文数前 7 种刊物 在本统计月中,为计算机教育杂志论文作者所青睐的前 7 种刊物见表 1 所示,对比分析如图 1 所示。 表 1 前 7 种重点阅读刊物 刊物名称被引文次数 计算机教育 65 中国大学教学 7 福建电脑 5 教育探索
14、5 教育与职业5 教育理论与实践 4 中国高等教育 4 图 1 前 7 种刊物的被引文数对比 前 7 种刊物的被引文数为 95 次,占引文总数的 35.58% (图 2)。其中,计算机教育杂志论文的 被引文数占引文总数的 24.34%,占前 7 种刊物被引文数的 68.42% (图 3)。 被引用学报类刊物占总引用刊物的 32.81%(图 4),学报类刊物的被引文数占引文总数的 17.60%(图 5)。 图 2 前 7 种刊物的被引文数分析图 3 计算机教育被引文数分析图4 被引用学报类刊物的数量分析图 5 学报类刊物被引文数分析 3 2009 年度论文引证汇总 2009 年全年 24 期计算
15、机教育杂志共发表论文 1168 篇,其中,标注了报刊参考文献的论文有 890 篇(不含外文期刊和教材书籍,含因特网文献), 占发表论文总数的 76.20%。 引证参考文献(不限年份)涉 及计算机教育 、中国大学教学 、 实验室研究与探索等 786 种杂志(含因特网文献), 引文共 3220 次。其中,引用学报类刊物 332 种且被引文 621 次。 42009 年度前 20 种重点刊物 2009 年为计算机教育杂志论文作者所青睐的前 20 种重点 刊物见表2 所示,对比分析如图 6 所示。 前 20 种重点刊物的被引文数为 1336 次,占引文总数的 41.49% (图 7)。特别需要指出的是
16、,计算机教育杂志论文的被引文数为 641 次,占引文总数的 19.91%,占 20 种重点刊物被引文数的 47.98%(图 8)。 摘要:“操作系统”是计算机专业的核心课程之一。由于涉及的学科多、知识点多、课程内容难理解等,该课程的教与学一直是学科难点。成人教育学生普遍起点较低,对纯理论性知识不太乐于接受。本文以该课程的一个核心知识点进程同步与互斥为实例,探讨如何从学习者的角度设计循序渐进的教学内容,并通过编写程序验证书本理论,提高成教学生的兴趣和实践能力。 关键词:进程; 同步;互斥;信号量;多线程 G642 计算机专业中,“操作系统”课程非常重要。操作系统直接高效地管理着计算机的各种软硬件
17、资源,为用户提供使用接口。操作系统是最复杂的系统软件,涉及了程序设计语言、计算机系统结构/硬件、软件设计、网络、算法等。由于该课程内容多而杂,普通高校学生特别是成人教育学生学习比较困难。传统教学方式下,只给学生讲解操作系统原理,学生感到抽象、难懂,近些年来,很多高校加大实验(实践) 教学力度,在讲授理论的同时,加入操作系统内核代码分析,如一些学校让学生分析 Linux 内核。但这势必加大教学工作量,教师无法在五六十学时内完成课程教学。 为了既让学生深入掌握理论知识,又能通过编码验证理论,本文根据实际教学经验,结合普通高校学生学习该课程的状况,以进程同步互斥为例,从以下四个方面讨论如何循序渐进地
18、展开教学。 1 “进程同步与互斥”的引入 教学中,首先带领学生回忆在 DOS 环境下的C 语言编程,使学生明白什么是单道程序环境。然后就提高系统的利用率,提出了程序并发执行的载体进程。程序并发执行时,涉及到相同资源会引起一些问题,但抽象的理论并不利于学生的深入理解,笔者设计了一个银行存取款问题的案例: 某一银行账户 M,尚有存款 100 元;用户 P、Q 同时对该账户进行操作,可能会导致数据不一致,操作过程如图 1 所示: 时间 T2T1T0; T0 时刻,p0 操作读出 Mp0=100; T0时刻,q0 操作读出 Mq0=100; T1 时刻,p1 操作写入数据 :存款 100,M=Mp0+
19、 100=200;Q 未能获得更新后的数据; T2 时刻,q1 操作写入数据: 存款 100,M=Mq0+ 100=200; 应该是 300 元的账户余额,由于操作的并发执行 ,造成只有 200 元余额。通过这一具体、直观的例子,让学生明白并发执行与顺序执行有很多不一样的地方,即并发环境中的共享资源,不能同时访问,只可互斥访问。然后带领学生学习并发操作的Bernstein 条件、临界资源等知识。 2 信号量描述 怎样才能做到在某一时刻,只有一个进程访问该资源呢,这就是临界资源的管理方法。在介绍了部分不成熟的管理方案后,引入 Dijkstra 提出的信号量和 P、V 操作机制。 (1) 信号量定
20、义 信号量是进程在某一特殊点上被迫停止执行直到接收到一个对应的特殊变量值。进程使用 P、V 两个原语操作发送和接受信号,如信号没有送到,进程被挂起,直到信号到达。 信号量按其用途可分为:用于进程互斥访问临界资源的公用信号量 ;用于进程同步时协调相互关系的私有信号量。 信号量按其取值可分为:整型信号量、可用资源数目的记录型信号量。 (2)P、V 操作定义描述 信号量结构中需要一个整型计数和一个等待对象。 P 操作表示现行进程向系统申请资源,将信号量值减 1,如结果小于 0,则调用进程被置成等待信号量的状态。 V 操作表示现行进程释放该类资源,信号量值加 1,系统可用资源数也增加一个,如果 s.v
21、alue0,等待队列中有等待进程,则唤醒其中一个。 信号量定义,PV 操作算法 C 语言描述如下: typedef struct int value;/信号量值 QueueType waitQueue;/等待队列 semaphore; void P(semaphore s) -s.value; if (s.value 阻塞调用进程; 进程进入等待队列 s. waitQueue; void V(semaphores) +s.value; if(s.value 从等待队列 s. waitQueue 中取出一个进程; 将该进程入就绪队列; (3) 关于信号量与 PV 操作的几个结论 结论 1:若信号
22、量 s 为正值,则该值等于在封锁进程之前对信号量 s 可施行的 P 操作数,亦等于 s 所代表的实际还可以使用的物理资源数。 结论 2:若信号量 s 为负值,则其绝对值等于排列在该信号量 s 队列中等待的进程个数,亦等于对信号量 s 实施 P 操作而被封锁起来并进入信号量 s 队列的进程数。 结论 3:PV 操作一定要成对使用。 (4) 进程中信号量操作模型 通过对临界区访问过程的分析,信号量机制中 P 原语相当于进入临界区操作,V 原语相当于退出临界区操作。用P、V 原语实现进程互斥就是将临界区置于 P 和 V 两个原语操作之间。 示例算法如下: void ProcessExecute( 参
23、数列表 ) P(s);/进入区 临界区; V(s); /退出区 / 剩余区 3 进程同步与互斥算法编写过程 初学者能够看懂他人编写的进程同步互斥算法,但是自己动手编写很困难。学生在写该类算法时,总想一次完成,但是很多时候写不好;或者不知道如何解决该类问题。针对这一现象 ,笔者分析了算法编写过程,给学生总结了分析问题、解决问题的步骤: (1) 找出问题中的执行进程,再描述其余各进程的执行过程。 以“多生产者多消费者多缓冲”问题为例,通过分析就会发现,该问题中生产者、消费者各是一类进程。执行过程为: 生产者的执行过程: 请求生产指标; 请求缓冲区使用权; 生产; 归还缓冲区使用权; 消费者过程:
24、请求消费指标; 请求缓冲区使用权; 消费; 归还缓冲区使用权; (2) 分析进程中的同步、互斥关系,设置信号量。 本问题中缓冲区是临界资源,需要互斥访问。 “生产指标”就是空白缓冲区数目,每减少一个,产品就增加一个,“消费指标”就增加一个。每消费一个产品,空白缓冲区就增加一个,产品就减少一个。 用 mutex 信号量来保证对缓冲区的互斥访问,emptyBufferCount 记录空白缓冲区数目,fullBufferCount 记录产品数目。 (3) 利用 PV 操作写出同步互斥关系。用算法替换前面描述的执行过程。 生产者进程 Producer: P(mutex);/申请使用缓冲区, P(emp
25、tyBufferCount);/生产许可申请, 生产 V(mutex);/离开,释放!PV 操作成对使用 V(emptyBufferCount);/ 消费者进程 Consumer: P(mutex);/申请使用缓冲区, P(fullBufferCount);/消费许可申请 ,消费 V(mutex);/离开,释放 V(fullBufferCount); / (4) 选择并确定信号量的初值。 整型信号量 mutex 初值为 1,记录型信号量 emptyBufferCount 初值为缓冲区大小。 (5) 给出几个进程,人工模拟算法执行,检测算法并改正错误。 用一个生产者、一个消费者模拟进程执行,发现
26、 emptyBufferCount 的 PV 操作,fullBufferCount 的 PV 操作,在同一个进程中,不能发挥同步作用,所以位置互换。 互换后,如果生产者进程先一步执行,算法没有问题。如果消费者先一步执行,就会被阻塞,由于生产者不能生产,产生死锁。因此生产者进程中位置互换,消费者进程中互换,即一般情况同步信号量在前,互斥信号量在后。改正后再测试,算法无误。 4 生产者消费者的多线程仿真 “操作系统”的课程实验旨在加深学生对理论的理解。很多高校“操作系统”实验基于 Unix/Linux 平台,学习该 系统会对学生来说是很大负担。笔者在课程实验中,选择学生更为熟悉也更容易使用的 Wi
27、ndows 平台和 VC+6.0 开发环境,用线程模拟生产者消费者问题。这样学生既容易上手编程,又能通过编程切实理解进程的同步与互斥理论。学生以调试该程序入手,独立完成哲学家进餐问题的模拟。生产者消费者问题的线程函数原型如下: DWORD WINAPI ProducerThread(LPVOID lpvThreadParm) /生产者线程函数 BOOL fHasDone=FALSE; while(!fHasDone) EnterCriticalSection ( /进入临界区函数 if(producerRunTimes=MAX_RUN_TIMES) fHasDone=TRUE; else g_
28、Bufferin=rand(); in=(in+1)%BUFFER_SIZE; / 循环队列 producerRunTimes+; /线程执行次数计数,防止死循环 LeaveCriticalSection ( / 退出临界区函数 return 0; DWORD WINAPI ConsumerThread(LPVOID lpvThreadParm) /消费者线程函数 BOOL fHasDone=FALSE; while(!fHasDone) EnterCriticalSection ( if(consumerRunTimes= MAX_RUN_TIMES) fHasDone=TRUE; else
29、 g_Bufferout=rand(); out=(out+1)% BUFFER_SIZE; consumerRunTimes+; LeaveCriticalSection ( return 0; 在上述程序中除掉同步互斥部分,学生就能实际理解图 1 中银行账户存款例子。多线程仿真实验不但能让学生深入理解进程同步互斥的理论和实现,还让学生学会和理解了多线程的编程。 5 结论 在“操作系统”课程中 ,笔者将知识点理清脉络,并围绕操作系统的五大管理功能展开教学。介绍操作系统的每个功能时,以知识点的内在特性为线索,连接看似不相关的知识摘 要:本文首先分析我国目前嵌入式专业教学的现状,并探讨了我国嵌入
30、式教学存在的一些问题。接下来结合我国对嵌入式软件人才的培养要求,说明了工程型嵌入式软件人才应具有的知识与能力,并因此提出了基于 ARM 体系结构的嵌入式课程设置与教学方案,最后对该教学模式实施的效果进行了总结。 关键词本文来自:计算机毕业网 :嵌入式;ARM;SOC ;FPGA 1 引言 随着手机、PDA、高清电视(HDTV)、机顶盒、智能家电、汽车电子、路由器、医疗仪器、航天航空设备等嵌入式系统的广泛应用,中国嵌入式系统市场预计每年将直接创造亿元的效益,因此嵌入式将成为电子信息产业新的经济增长点,嵌入式系统无疑是当前最热门最有发展前途的应用领域之一。与巨大的市场潜力和产业需求相比,我国国民教
31、育体系下嵌入式系统的教学知识较为陈旧,缺乏实践锻炼,无法适应企业的实际需要,嵌入式人才的缺乏是阻碍我国嵌入式系统发展的首要因素。本文首先分析我国目前嵌入式专业教学的现状,阐述了嵌入式课程体系的知识结构,接下来针对应用型本科院校计算机类嵌入式方向的课程设置与教学进行了探讨,最后对该教学模式实施的实际效果进行了总结。 2 嵌入式课程设置现状分析 21 现状及问题 目前,我国大部分高校的嵌入式系统教学仍然停留在 20 世纪 80 年代初发展起来的以 8 位 51 单片机为核心的教学水平上。教学内容、教学方法、教学手段、教材体系不能适应嵌入式技术发展的需要。学生学完这门课程后满足不了社会对嵌入式人才的
32、需求。究其原因,一方面是因为从事该领域的研发人员常常需要不同专业背景,例如计算机、电子、通信、自动化与控制,等。另一方面更重要的原因是我国的嵌入式教学没有跟上嵌入式技术的发展,笔者认为我国嵌入式教学存在如下问题: (1)定位不明确,课程体系设置不合理:一个嵌入式系统不但包括硬件部分还包括软件部分。电子类、通信类、计算机类专业都可以开设嵌入式方向,但培养目标是不相同的、课程设置和侧重点也不相同,而目前有些高校只是根据技术潮流笼统地开设一门课程,远远达不到系统地学习嵌入式技术的需要。因此,高校开设置嵌入式专业时必须找准定位,结合自身的特点和优势开设课程。 (2) 缺少系列教材:嵌入式技术往往和行业
33、背景结合紧密,由于新技术日新月异,很难找到一套普遍适用的系列教材。这也给嵌入式教学带来影响。 (3)课程教学内容陈旧:嵌入式课程是一门很新的技术,目前有些高校虽然开设了这方面的课程,但是师资往往没有同步跟上,很多都是从相关专业转型而来,在短期内无法跟上新技术变革,因此出现教学内容陈旧,而且广度有限,深度不够的现象。 (4)缺少实践锻炼:嵌入式是一门实践性很强的技术。目前有些高校缺少实验设备,没有与实际工程应用密切结合的课程设计,使得高校培养的人才创新意识薄弱,实践能力不强,与实际工程应用需求严重脱节,学生发展后劲不足。 要解决以上问题,必须对嵌入式专业所需要知识结构有所了解。 22 嵌入式专业
34、的知识结构 从广义上说,以单片机,FPGA/CPLD,DSP,ARM 等实现的产品都可以称之为嵌入式产品,基于 FPGA 的 SOC、SOPC、 ASIC 设计都和嵌入式系统密切相关,如图 1 所示。 嵌入式工程人员应该具备什么样的知识结构呢?嵌入式工程人员既可从事嵌入式硬件设计,也可从事嵌入式软件设计,下面结合我国对嵌入式软件人才的培养要求,我们认为工程型嵌入式软件人才应具有如下的知识与能力: (1)硬件知识 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。因此,对于从事嵌入式软件开发的工程人员,必须清晰地掌
35、握相关的硬件基础知识,如嵌入式微处理器、接口技术、软硬件一体化的开发工具,等。 (2)软件工程知识 嵌入式软件工程与通用软件工程具有共同之处,但又有很大的差异。因此,嵌入式软件工程人才必须首先具有软件工程技术的基本知识和工程技能,例如软件工程管理、软件质量、软件工程过程,等。同时,一个好的嵌入式开发工程师必须掌握一门开发语言、精通一种主流微处理器系统、掌握一套开发工具和一种嵌入式操作系统。 (3)行业领域知识 嵌入式系统是与特定行业应用密不可分的,嵌入式软件在移动设备、数字家电、汽车电子、数控机床、医疗电子、航天航空、工控等领域得到广泛应用。所以,嵌入式软件工程人才必须具有一定的行业领域知识,
36、才能胜任工作。 (4)系统工程能力 由于嵌入式系统是面向某种特殊应用,所采用的硬件平台、开发工具和应用环境都有所不同,再加上市场对大多数产品要求开发周期短和成本低,我们无法为了某一种产品而从头开发。因此,如何选择合适的软硬件平台以高效地开发产品,如何有效管理开发团队中的各类人员,如应用专家、硬件工程师、软件工程师和其他相关工程人员,成为嵌入式系统产品开发的重点。这就需要嵌入式软件工程人才应具备解决工程问题的能力,自我知识学习与更新能力和良好的交流与组织协调能力。 对于嵌入式专业的教学,不可能把图 1 中罗列的所有技术全部学习一遍,这样做也得不偿失。一个比较好的方法是根据各个学校的特点实施嵌入式
37、课程教学,电子类、通信类、计算机类专业都可以开设嵌入式方向,但是其侧重点和培养目标是不相同的。下面主要结合计算机类专业的嵌入式方向阐述其课程设置与教学。 3 基于 ARM 架构的嵌入式课程设置与教学 31 课程体系嵌入式专业的特点是涉及知识面广、综合性强、实践性强,并且学科发展快,因而学习难度大。同时,它要求教师不仅具备一般的计算机系统的软硬件知识,如计算机系统结构、操作系统、计算机网络、编译原理、数字电路,等,而且需要真正从事过嵌入式系统的开发实践,才能对嵌入式系统中的实时性等抽象概念和系统调试过程有感性认识。对于计算机应用类的学生而言,学习嵌入式系统设计重点应该放在嵌入式软件设计这一部分。
38、如果学生掌握了一种主流嵌入式微处理器、掌握了一门开发语言、一种嵌入式操作系统、一套开发工具,就达到了系统地学习嵌入式技术的要求。 目前,在嵌入式领域中广泛应用的是 ARM(Advanced RISC Machines)系列微处理器。作为世界第一大 IP 知识产权厂商,ARM 公司本身不直接从事芯片生产,而是靠转让设计许可,由合作公司生产各具特色的芯片。可以说,ARM 公司引发了嵌入式领域的一场革命,在低功耗、低成本的嵌入式应用 领域确立了市场领导地位,是目前 32 位市场中使用最广泛的微处理器。 ARM 从 1991年大批量推出商业 RISC 内核到现在为止,已授权交付了超过 20 亿个 AR
39、M 内核的处理器核。在全球已有将近 200 多个半导体公司购买了 ARM 核,生产自己的处理器。目前,80以上的 GSM 手机、99的 CDMA 手机以及将来的 WCDMA、TD-SCDMA 手机都采用的是基于 ARM 核心的处理器。ARM 进入中国 2 年以来,已经与中兴、华虹、东南大学、上海集成电路设计中心及中芯国际签定了芯片核心技术授权协议。因此,学习以 ARM 为架构的嵌入式技术具有非常广阔的前景。 对于嵌入式开发语言目前主要有汇编语言、C 和 C+语言、Java 语言,等。对于嵌入式操作系统目前主要有 VxWorks、Windows CE、Linux 和 C/OS-II,等,各个学校
40、可以根据实际情况开设这些课程。集成开发工具主要有 Tomado、Windows CE 开发工具、ADS,等。下面结合笔者所在学校介绍其嵌入式方向的课程设置与教学情况。 计算机系嵌入式专业培养目标偏向嵌入式软件设计开发。其课程体系的设置应该体现“注重工程能力培养的嵌入式系统人才知识体系” 。根据学生的接受能力,嵌入式知识的学习应体现层次性、由易到难的渐进性、注重实践性。其知识结构由基础知识、专业基础知识、专业知识这样一个层次结构组成。 基础课程阶段:主要学习理工科的一些基础课程,如高等数学,等,主要在大学一、二年级开设,这里不再赘述。 专业基础课和专业课开设方案如图 2 所示,图中列出其主要课程
41、,该课程体系的目标是培养嵌入式系统软件设计师。 专业基础课阶段:如图 2 底部所示,主要包括模拟电子电路、数字电子电路、数据结构、C 语言程序设计、Java 语言程序设计、计算机组成原理、操作系统,等。主要放在大学二、三年级开设。 专业课阶段:如图 2 中部所示,专业课体现为三条线,主线是图中部虚线框中以 ARM 为架构的系列课程:第二条线属于硬件方面的选修课程,用于加强学生对嵌入式硬件方面的了解;第三条线属于软件方面的课程,用于加强学生软件方面的知识,后两条线的课程都为主线服务。下面详细介绍主线各门课程的主要知识点。 “汇编语言程序设计”课程是学习嵌入式技术的入门课程。主要介绍汇编语言程序设计的基础知识,ARM 系列微处理器,基于 ARM 体系结构的指令系统以及汇编程序设计。本课程是学习嵌入式系统原