HI,欢迎来到好期刊网!

软件开发基础知识

时间:2023-06-08 15:16:17

导语:在软件开发基础知识的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。

软件开发基础知识

第1篇

解释:

手机的软件开发需要语言知识与计算机基础知识。安卓需要Java基础,IOS需要OC基础。

计算机基本知识包括算发与数据结构、操作系统、数字逻辑等基础课。而软件工程专业与计算机科学与技术专业有完整的学习以上知识的方案。

介绍:

1、软件工程:

是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

2、计算机科学与技术专业:

第2篇

苏州大学软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。

其主干课程有高等数学、大学物理、物理实验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求和软件项目管理等。

(来源:文章屋网 )

第3篇

关键词:校企合作;人才培养;实践教学;人才培养;软件工程

一、引言

软件工程是一个新兴专业,主要目标是培养工程型、应用型的专业软件人才。随着素质教育改革的不断推进,软件工程专业的建设也面临着全新考验。软件工程建设重在实践,只有在不断的实践中才能提升学生的技术和技能,为社会提供适用的专业软件人才。本文结合近年来我院软件工程专业的建设实践,探讨校企融合下应用型软件工程实践教育模式的改革,旨在培养具有动手实践能力和创新意识、能很好地适应市场需要的高素质软件工程应用型创新人才。

二、应用型软件人才培养模式

软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,要求学生在掌握计算机科学与技术方面知识和技能的基础上,进一步熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养[1],使学生成为能够从事软件开发、测试、维护和软件项目管理的高级专门人才。

1.强调专业实际应用能力的培养。通过高校、企业双方的合作融合,引入实训机制,形成以“3+1”模式为框架、产学一体化为特色的应用型软件工程专业人才实践与创新能力培养平台,并把在企业培养的1年时间分散在学生大学四年的学习过程中,使学生能不断接触软件行业与企业[2],循序渐进,逐步加深学生对行业的认识与理解。

2.目的是形成“工程化教学—课程实验教学—基地实习实训—真实项目开发”的培养过程,建立“课程实践—项目实训—项目开发”的教学、实训模式,引导学生树立系统、科学的工程项目概念。

3.由学校和企业双方共同研究制订实践教学方案、共同实施,目的是提高学生的动手能力以及解决实际问题的能力,使学生毕业后能很快适应软件企业的要求[3]。

4.每学年根据教学计划以及教学实施的具体情况,在大一至大三期间,请合作企业选派资深工程师来校开设相关技术讲座,并选择部分专业课程由合作企业选派师资负责课程实践教学、实训的具体实施,学生在大四的时候再集中到合作企业进行强化训练。通过改革软件工程专业的人才培养模式,结合“3+1”合作模式,借助企业的平台,按学期逐步推进、锻炼和提高学生的实践能力和综合素质,锻炼学生适应社会的需要,使学生能不断接触软件行业与企业,使其观念及早融入社会,循序渐进地加深学生对软件行业的认识与理解[4],逐步形成“课程实践—项目实训—项目开发”的教学、实训模式。

三、实训体系构建

通过高校、企业双方合作融合,将实训引入软件工程专业的本科教学中,探索校企融合下应用型软件工程教育模式的改革。以JAVA专业实训为例,我们的实训目标是提高学生的动手能力以及解决实际问题的能力,使学生毕业后能尽快适应软件企业的要求。在企业项目经理和学院教师的共同带领下,通过实训中的具体项目,将原来分散的专业知识系统化,把整个项目的实施过程,贯穿于学生理论知识学习的始终[5],使学生获得综合性应用锻炼,进一步了解标准软件开发过程与规范,掌握软件开发的基本技能,锻炼其团队协作精神。

1.实训内容和阶段。我们的实训分两个阶段进行:第一个阶段的校内专业实训为基础实训,一般以基础性的、业务简单的项目为案例,训练重点放在编码实现上。第二个阶段的企业工程实践为大中型项目实训,一般由合作企业从其案例库中选择其之前实践过的真实项目作为案例,内容涵盖一个软件项目开发的整个生命周期,目的是通过项目的强化训练过程,提升学生的基础知识、基本技能和基础技术,熟悉企业级的运行环境和框架。两个阶段的实训都贯穿软件项目开发的整个生命周期,包括项目管理、需求分析、技术储备、系统设计、编码、测试、提交、项目评审等阶段,但第一个阶段侧重于技术储备,体验软件项目的开发过程,培养学生掌握软件项目的调试方法和技术[6]。以JAVA实训为例,在技术储备阶段,第二个阶段侧重于项目的开发流程和各类项目文档,培养学生养成良好的编程习惯、了解行业前沿应用状况和项目开发的业务流程和知识,提高学生的表达、沟通和团队协作能力,进而养成良好的职业习惯。通过项目的实战训练过程,提升学生的基础知识、基本技能和基础技术,熟悉企业级的运行环境和框架。通过完成案例项目的需求分析、系统设计、编码、集成、测试和项目评审过程的实践,了解软件项目的开发流程和规范。

2.实训目标。我们的实训目标按阶段的不同,具体内容也有所区别,要求学生实现的分段目标的侧重点也有所不同。(1)第一个阶段的校内短期实训:该阶段属于基础实训,在实训过程中引入单元测试技术、软件工程、质量管理和ISO体系概念,让学生了解到企业软件开发对质量的要求和管理方法,提高学员对自己编写的软件的测试和调试能力,修正和增强学员对软件测试和质量的意识。在实训过程中引入新的Web标准、HTML5、CSS3、Canva、SVG等,为学生将来进入互联网或移动开发领域,进行基础知识、基本概念等的技术储备。(2)第二个阶段的企业工程实践:该阶段为大中型项目实训,在大三第二学期校内短期的基础实训、学生技术发展规划的基础上,按照Java方向、Android和PHP前端开发三个不同的专业方向,在合作企业实训基地分组进行项目实训。期间结合加强项目训练和创新创业指导,培养学生的敬业精神、团队精神;以及如何把个人价值观和公司的价值观进行有效的衔接。以JAVA实训为例,该阶段的实训目标如表3所示。

3.预期成效分析。通过校企融合,借助于校企合作平台,探索应用型软件工程实践教育教学模式:一是能使学生获得实践经验,提高学生的综合素质和就业竞争力;二是可为学生提供更多的与企业接触机会,创造就业机会[7],扩大学生的就业渠道;三是可以为高校双师型教师的成长提供平台和环境。(1)提高学生的综合素质和就业竞争力。有关统计信息表明:我国软件专业毕业生,无论是本科软件工程专业,还是高职软件专业,其就业率和专业对口率都不是很高;另一方面,企业又普遍反映找不到合适的软件人才。之所以会出现这样的“两难”局面[8],纠其原因在于目前高校软件专业的培养与企业对软件人才的需求不对称,学生在学校所学的知识和技能无法紧跟市场,实践动手能力方面相对较弱,与企业直接顶岗的要求存在比较大的差距。校企合作模式,能在一定程度上弥补这方面的不足。(2)提升学生的就业能力,扩大学生的就业渠道。软件工程的发展与信息社会的发展和需求是息息相关的,而目前高校该专业的教育模式仍然集中于过多过泛的基础教育,教学方式仍然沿袭以理论讲授为主的模式,导致学生的实践能力与理论能力失衡[8]。因此,我们通过校企融合,整合优化培养方案,围绕培养目标,深化软件人才培养模式改革。从第二学年开始,每个学年度请合作企业的资深工程师为同学们进行实践训练,通过实训,使同学们逐步对大型软件的开发流程和方法有一个初步的了解,体验软件开发的工作氛围,逐渐树立基本的职业观念,以便到毕业时,能很好地适应软件开发相关技术岗位,提升就业能力,创造就业机会,扩大学生的就业渠道。(3)培养“双师型”教师。在校企合作的基础上,选派部分教师到企业参与相关项目开发实践,培养教师的“双师”素质,提升教师的工程经历和软件项目设计、开发经验,了解大中型软件项目设计开发过程,提高教师实际工程研发能力,为双师型教师的成长提供平台和环境,使专业教师得到工程能力的锻炼和提高,为以后“任务驱动、项目导向”培养模式的开展提前做好师资储备。此外,通过校企融合模式,培养应用型软件工程人才,还可为企业培养更多优秀的应用型软件人才。

四、结语

大学培养出来的软件人才在层次上来说应该是中高级的,他们受过良好的基础教育和理论教育,但由于传统的闭门造车式的培养模式,缺少实践的机会,而且所教授的理论和技术跟不上企业的现实需求,导致传统学历教育模式培养出的软件工程专业学生往往是理论知识有余而实践操作经验不足,毕业生不能够马上和完全适应企业的需要。因此,当前高校软件产业人才培养与实际需要存在着一定程度的脱节,学历教育与不断变化的市场需求的矛盾相当突出。而校企融合模式下应用型软件人才培养模式可以在一定程度上缓解这一矛盾,为企业培养更多优秀的应用型软件人才。

作者:黄茹芬 单位:闽南师范大学

参考文献:

[1]柳婵娟,邹海林.基于校企合作的应用型软件工程人才培养模式研究[J].计算机教育,2011,(24):9-12.

[2]张广泉,杨季文.面向校企合作的软件工程人才培养模式探讨与实践[J].计算机教育,2008,(21):29-32.

[3]张丽.软件工程本科专业校企合作人才培养模式实践[J].农业网络信息,2015,(8):137-139.

[4]徐洪智,覃遵跃.校企合作共建软件工程专业实践教学体系[J].实验室研究与探索,2013,32(6):128-130,160.

[5]王爱民,谷川.软件工程专业校企合作实践教学模式研究[J].实验技术与管理,2012,29(1):143-145.

[6]范会联,仲元昌.基于项目驱动的软件工程课程教学改革探索[J].教育与职业,2013,(5):147-148.

第4篇

培养高质量的软件开发人才一直是社会和行业关注的焦点。早在11年前,对于工程教育的迫切性就被人提出来[1]。工程教育本身也作为一个系统问题被讨论[2]。现在从国家层面在战略上建立了软件学院进行专门培养,各个高校也不断推出新的课程、新的措施方案。在这一领域虽然比过去似乎已经有了翻天覆地的变化,但来自企业的呼吁似乎一直反映出诸多不尽如人意。更多的思路希望将企业的力量直接引入到教学,比如实训基地等[3];而国家层面也非常关注实训[4]。但实际效果可能变得流于表面,因为企业往往难以将核心的工作拿给学生做,而其训练的项目也并未从更全面系统的角度去设计,其锻炼效果就有限了。在软件开发这一领域,由于其具有变化迅速,新技术不断涌现的特点,导致不少在教育内容上选择了追逐新技术、新语言、新平台,以能用会用这些流行主流技术为目标。典型的代表就是北大青鸟,有些二本的学生在毕业前专门花钱去青鸟学习,似乎可以看到这种教育的优势。但另一个矛盾的情况是,往往那些关注员工后劲的公司却不愿意招聘青鸟的学生。如果将目光投向国外的顶级大学,例如斯坦福,其教学上并没有去“依赖”校企合作,以及很热门的“实训”。其核心课程依然是过去的传统经典课程。以一个研究生为例,一学期能修2门课是正常,3门就很优秀。它并没有追逐所谓的新技术。但无人质疑其学生的工程能力、科研能力和创造能力。

2什么是计算机工程能力的核心

什么才是我们软件开发教育的核心知识架构,怎样才能培养学生可持续发展的核心竞争力?我们调查过一些非常高水准的软件开发者,发现他们往往在底层软件上持之以恒地进行长时间深刻的锻炼,然后在未接触的新领域才能非常迅速地掌握核心。例如,一个非计算机专业的系统分析员曾经“只”在DOS这种原始的操作系统下玩了10年,甚至自己写过一个汉化的DOS。他只有书本上的一点点网络知识时,就用一两天时间解决了一个学通信的研究生1个月都不能解决的网络故障。这是一个典型的例子,他并没有“实际的”网络经验,什么使得他如此轻松地进入了新的领域呢?而另一个曾就职于vmware、google等顶级公司的程序员,在Unix下只用C语言做了10年系统级编程。当用Java,C++甚至是javascript时,其学习时间只是1天,很快就比做了几年专门java编程的程序员还精通。如何才是软件开发人员的本质力量?什么才能让他们在变化万千的新技术面前屹立不倒,乘风破浪?

2.1计算机工程能力

我们认为计算机工程能力包含两方面的内容:(1)核心知识架构;(2)计算机的思维方式。什么是核心知识架构呢?是反应该领域最基本规律和支撑技术的知识。简单地说就是传统的操作系统、编译、数据库。操作系统将硬件、软件、高级语言和汇编融汇在一起,它几乎包括了软件工程中所有重要的因素。举一个简单的例子,似乎只有面向对象这种“高级东西”才有的虚函数运用,其实在Linux中就有相应的虚文件系统。操作系统是最为复杂的计算机工程之一。编译融汇了大量的算法,而且能让大家真正看“穿”语言的外表,深入到其内里,体现了最根本的计算机技术。其优化技术,也深刻地和硬件交融在一起,很好体现了底层风范。数据库,不仅是运用算法最多的地方,甚至是超越操作系统的一个复杂的系统,从缓存技术到i/o优化,到索引,再到事务处理,无一不是反映计算机最深刻规律。大家可以发现,所谓核心知识架构,都具有两个特点,反映本质规律,体现软硬融汇交织。也只有这样,才能建立下面谈到的“计算机思维方式”。

2.2核心知识架构

为什么我们没包括一些新兴的语言和技术呢?似乎它们很“实用”。而且已经出现的问题是,按照传统科目和方式学习后,学生在企业什么都不会。这也正是大家关注工程教育的初衷。为什么不强调这些新兴实用技术的教育还在强调“古老”的“基础”。计算机领域一个显著的特点是,表面上知识更新非常快,新技术、语言层出不穷。这很容易导致当我们发现学生能力欠缺时,将问题归罪于新技术的学习不得力,知识结构老化。但其实目前的问题可以从另外一个角度考虑,是否是基础教育不得力?分析国外著名大学,如斯坦福、伯克利的课程,我们发现两个特点:(1)关键的基础课程,如操作系统、编译原理、数据库,始终是其最重要的课程,并没有过分追逐各种“新潮”技术。(2)学生一学期能修的课程非常有限,一般为3门课。而国内却呈现相反的状况,比如编译原理被降到了选修课的角色,新潮课程层出不穷,一个学生二年级一学期要修13门课。在这种走马观花的状况下,计算机这种具有强烈“手艺”色彩和工程实践的学科,被完全纸上谈兵化。而一些可怜的实验内容,还被学生的复制拷贝所湮没。我们认为,恰恰是这种情况,使得基础核心知识教育没有工程化,没有充分动手,导致了基础知识教育某种程度上的巨大失败。从以下鲜明的对比可以窥见问题的端倪:国内学生反映操作系统课程是文科课程(只需要背条款考试即可);而相对地,国外著名高校操作系统课程要求学生实现“小”操作系统。国内数据库只讲其应用(如大量讲解sql等运用,sql即使非计算机专业人士也很容易学习,这也是它被发明的初衷)。斯坦福的数据库课程中有一门需要实现一个数据库系统。在笔者走访的计算机工程上优秀的人才,发现其共同的特点就是在诸如操作系统或数据库上都有很深入的学习经历,比如前面提及的自己构建过汉化DOS系统,或者在Unix下,做内核以及驱动很多年等。而当他们接触新技术时,之前深刻的经验和淬炼的思维就让他们如虎添翼,快人一等。更有甚者,国外真正的最顶级专家,都是在这些领域有无与伦比水平的专家,从delphi的缔造者,转战到微软并入主.net平台的开发,也可看到雄厚的底层知识和能力的巨大作用。所以“老”知识并不是障碍,而是通向天堂的阶梯。究其原因,就涉及到工程能力的第2个方面,计算机思维方式。

2.3计算机思维方式

对非专业人士它是很抽象的概念,而对真正专业人士,这又是一个非常鲜活的概念。这里限于篇幅,我们只举一个简单的例子。面对在C++中外部代码如何直接修改私有变量的问题,计算机的思维方式就是:对象也是放在内存中,只要能拿到对象的地址,并知道对象的布局,那么就可修改。而没有建立这种思维的人,就完全被高级语言的语法所左右,无从下手。一句话,无法看到本质,没有从下而上的底层思维。核心知识课程的有效深入教学和计算机思维方式建立有何直接关系呢?我们认为核心知识因为其反应了计算机本质规律,而且从底层建立起来,所以对其深入掌握运用后,它从开始的逼迫到最后的陶冶,最终潜移默化地让受众建立起“计算机思维方式”。而这正是计算机工程师安身立命之本,就如同音乐家有其独特的音乐思维方式一样。为什么诸如java之类的课程于建立计算机基本思维不太合适呢?因为它更高层,无法让学生看到最下面。而唯有彻底、深刻和系统的底层淬炼,才能真正建立起“计算机思维方式”。

3如何打造强大的计算机工程能力

大家一方面指责基础课程的“空洞”、“无用”、“陈旧”;另一方面在不断开设的海量新课和技术中压得学生更加远离编程,远离实践。即使能培养出熟悉某种语言的学生,也无法看到他们和培训学校有何不同。实训也似乎没有根本解决问题,我们在实践中发现,往往是那些自己醉心于编程的学生最后有着卓越的表现。让基础知识能支撑和指导实践,而非仅仅“符号”,并引导学生进行高效的实践。

3.1“3块连一线”,4门基础课程整合打造核心知识架构我们将4门基本课程进行贯通式整合,着力塑造学生的“计算机思维”。下层的是3门基础课(在上一小节探讨了其在工程能力训练上不可替代的重要地位),对软件开发环境产生支撑。而软件开发环境又通过精心的设计和工程实践,从应用角度将3门课程所学的知识串联起来。从而将基础知识和工程开发更有机整合在一起。首先,阐述为什么将以上课程整合在一起的理由。要回答这个问题,必须先回答什么东西支撑了优秀程序员。在我们的调查人员中,无一例外地都具有很深厚的底层软件开发背景。有长期从DOS的Hack入手的;有长期从事Unix内核编程的;有从Windows的driver起步的;有以反汇编逆向为根基的。长期在最底层的经历,使他们建立了最真实和能触摸的系统观,能以计算机的方式思考。所以面临新技术时,他们能透过新形式很快把握其精髓,深刻地把握其实质。“太阳下面没有真正的新事物”,例如号称21世纪最新的重要的软件技术AOP(AspectOrientedProgramming,AOP),其实在20世纪60年代就出现在了汇编一级的软件技术中,它本质就是钩子技术的系统化。在底层的软件世界,我们不仅能够用到那些所谓的最新的技术,而且能看到其本质(我们可能就是用机器码自己构建出来的,而不被新技术的华丽外衣障目)。这些使得具有底层经验的开发者,更有创造力,更能创造,也更能洞察迷乱后的本质,庖丁解牛,解决那些异常复杂的工程问题。举一个笔者遇到的真实例子,一个具有深刻底层经验的程序员(一直只有C语言和操作系统编程经验)和一个只有深刻Java经验的程序员,在同时学习Javascript的闭包概念时,后者一个礼拜都还有些似是而非。前者很快就能自如运用,且最后指点了后者1个小时,后者顿时豁然开朗。这是典型的“新”与“老”,上层和底层经验在面对新事物时的对比。既然底层软件赋予我们如此强大的能力,那么哪些是底层软件呢?大家公认,操作系统、编译和数据库由来就是计算机工程自身的根基。所以,我们必须将这3门课涉及的知识好好淬炼。而如何将3门课的知识和我们日常的软件开发联系起来呢?如何用它们指导平时程序的开发呢(我们大多数是开发用户级软件,不会开发内核软件,因此许多人认为几乎整个在内核中的操作系统对用户级软件开发无从指导)?另一门课,《软件开发环境》解决了这一问题。它有一条主线,通过反汇编将C语言和汇编串联起来,让系统级的知识从高级语言的面纱下展现出来。同时用逆向工程这把庖丁之刃,将编译、链接、面向对象等软件开发中的重要知识块剖剔,让底层与上层贯通一气。而逆向的技术技巧,本身也是非常高级的软件开发技术。因此,我们用“3块连一线”来总结4门课的关系是最好不过了。为什么不纳入语言课程,比如C/C++语言?从我们的工程经验来看,语言只是计算机原理和思想的载体,是表述方式而已。为了表述形式而专门花大力气是不值得的。比如,国外的著名大学很多都不开设语言课,在其他课程作业中必须用C语言编程,学生们就在那里锻炼了。真正的语言的力量并非来自语言本身,而是底层知识为支撑的项目锻炼。我们的思路是以构建式完成大量的完整系统的编写,这样就很好锻炼了软件开发和工程能力。同时,“软件开发环境”本身从逆向层面也对语言有了深刻的剖析,这是纯粹的语言课难以完成的。另外,从大纲安排上,我们在大一就会让学生用C语言来初步接触程序编写,这时并不适合放入太高级主题。而在教学中,语言的力量已经渗透到一个个工程构建中,随风潜入夜了。为什么不纳入算法课程?从某种程度上,“程序就是算法与数据结构吗”?我们认为在系统中运用算法,算法才具有生命力。而编译、操作系统、数据库以及我们专门设立的一些课程设计将全面运用各种算法和数据结构。在实战中运用并学习提升才是王道。这也正是构建式学习的精髓所在,这也正是探索式学习培养学生的创造能力的精髓所在。算法课已经为我们准备了元件,就看你怎么去组装甚至改造。

3.2以构建主义的思路,深度实践的风格改革课程

前面我们论述了底层知识架构的重要性,那么怎么来将它们实际地建立在学生的工程实践中呢?简单地说就是“构建一个具体而微的系统”。讲操作系统就构建一个小操作系统,讲编译原理就构建一个小编译器。同时,设计一些跨度较大的课程设计覆盖这些课程的一些重点内容。构建完整系统本身就可真实淬炼工程能力,而这些内容的复杂性、难度以及运用知识点的广度,本身就超越了简单的企业实训项目,在培养人才方面具有系统性、完整性、挑战性独特优点。我们需要的是运用团队的思路和现代软件工程的手段,将其开发过程管理发起来,从而熟悉企业级开发的工具链,将软件工程学到的知识贯通到实作中。这也回答了“和以前相似的强调基础课程教育,什么特点使得我们的做法能获得强大的工程能力?”这一问题。以前更多注重理论知识的学习,而现在的做法是回归计算机工程的自身科学规律———实践为王。

3.3改革考核评价标准,充分强调动手实践

以前我们一直是卷面考试,实验分数只是象征性的点缀。这本身违反了计算机工程的特点。只有改变评价考核标准,才能真正驱动学生充分锻炼工程。在课程软件开发环境中,我们采取了平时的考试结合期末考试的方式,而两者均为软件编写。期末考试在实验室上机编撰指定题目。不强调对一些函数名等死知识点的记忆,可以用在线帮助。这本身也符合软件开发的规律。

第5篇

(1)是一门新兴的交叉学科。相比于其他学科,如哲学、教育学等,软件工程专业属于一门新兴学科,仅有20余年的办学经验;而软件工程专业所需的技能需要多学科知识的综合应用,因此它属于一门交叉学科。(2)要求的基础知识比较广泛。软件工程专业与软件开发的工程实践紧密结合,需要广泛的专业基础知识,包括计算机科学、数学、工程学、管理学、经济学等。(3)具有较强的实践性。软件工程专业强调将基础理论知识应用于工程实践,在教学过程中有大量的实践环节,需要通过实践检验基础知识的掌握和应用情况。(4)密切联系工程实际应用,与时俱进。软件工程专业是在工程应用中形成的一门学科,是根据实际工程应用的需要总结工程实践经验和提取知识,将基础知识和工程应用相结合,运用基础知识解决实际应用中出现的问题而逐步形成的。随着工程应用中的技术进步,软件工程专业的课程设置和授课内容也需要进行适当调整。

2软件工程专业的知识体系

经过多年的发展,软件工程专业的本科生和研究生已经具备一定规模并获得社会的普遍认可。随着社会的进步和软件产业的发展,软件的需求量会越来越大,对软件工程专业人才的需求仍会十分旺盛,迫切需要我们健全和完善软件工程专业的知识体系,为社会发展培养紧缺人才。我们可以立足国情,借鉴国外的研究成果和经验教训,研究我国软件工程专业的人才培养模式,不断进行教学改革,逐步形成具有中国特色的人才培养方案和课程评价体系,为我国社会主义建设的可持续发展奠定良好的基础[2]。IEEE最新的软件工程知识体系(SWEBOK)将软件工程知识分解成10个知识域,并组成一个多级层次化的体系结构,如图1所示。这10个知识域是从软件开发的实际工程过程中总结出的,体现了软件开发所必须掌握的技能,软件工程专业的人才培养体系应围绕这些知识域展开。软件工程知识体系结构仅给出软件工程专业的一个总知识框架,各软件学院在具体办学过程中可以根据自己的实际情况设置不同的专业方向,专业课程的设置也要不断地根据市场对人才的需求进行调整,调整的依据就是课程评价体系的结果。

3软件工程专业课程评价体系设计

课程体系是为实现培养目标而设置的全部课程及其内容的总和,是由各类课程按照一定的逻辑关系构成的课程系统,是人才培养方案的核心内容。软件工程专业成立的时间较短,在课程评价方面尚没有完整统一的评价体系,而且该专业课程设置更新的速度比较快,也缺乏一个评价课程设置与更新是否科学合理的依据。为此,需要根据软件工程专业的特点和知识体系,设计课程的评价体系和具体的评价指标。3.1评价原则课程设置是影响院校建设和发展的重要因素,对内影响师资队伍、教学设备、实验仪器等教学资源的配置,对外影响学生就业、学院在社会上的声誉甚至局域经济的发展。因此,在对软件工程专业设定评价体系时,应遵循以下原则。(1)知识体系全覆盖原则。软件工程专业旨在培养未来的软件工程师,毕业生主要从事与软件开发相关的工作,因此课程体系的设置要完全覆盖软件工程知识体系所要求的内容。(2)科学规范原则。课程体系的设置不仅是每个学院的个别行为,也是一种社会行为。为使各个软件学院的软件工程专业整体结构合理规范,国家试点建立了一批“国家级示范软件学院”引导软件工程专业课程体系的设定。这样使学院之间、学院与企业之间、学院与人才市场之间的交流有了统一规范,但是在具体的专业方向以及选修课程的设置上没有具体的规范,各个学院正在摸索着前进,在一些具体课程的设置上也会注意专业面宽窄的选择、针对性与适应性、灵活性与稳定性等方面的矛盾处理问题。(3)保障条件原则。课程体系的设置与教学过程紧密相连,是实现专业培养目标的重要前提,是质量的根本保证。要进行课程体系的设置,首先要具有开设该门课程的保障基础,包括师资队伍、教学设备、实验环境等。(4)效益最大化原则。所谓的效益最大化,是指社会效益和经济效益的均衡,不能顾此失彼,要让双方都能获得最大的效益[3]。社会效益是指满足社会对人才的需求,培养学生掌握工作岗位所要求的技能,同时促进学生的自身发展,为学生提供更好的发展机会。经济效益是因为教育也有成本,软件学院一般采用“成本办学”模式,要考虑在办学当中的成本投入,特别是在当前教育资源短缺的情况下,更要注重资源的利用。3.2参与评价的对象对于课程体系的评价不能听信于一家之言,要有相关干系人的参与,包括教学院长、系主任、主讲教师、已毕业学生、用人单位、软件工程师等。通过各方面人员从不同的角度对课程体系进行评价后,得到一个客观公正的评价结果。3.3评价方法在进行课程体系评价时,可以采用多种评价方法,如问卷调查方法、访谈方法等。每一种方法都有自己的优点和缺点,也可以采用多种方法结合的方式。(1)问卷调查方法。首先由评价的主管部门组织专家设计问卷调查,然后把问卷发送给每一位参与的评价者并请他们按要求如实作答。问卷调查方法最重要的一个环节就是设计一份高信度、高效度的调查问卷和设定评价分值。(2)访谈方法。由评价主管部门依据事先拟定好的专业课程体系评价的访谈提纲,通过个别谈话或座谈会的形式收集信息,做详细记录并在事后进行分析。3.4评价模型根据现在多数软件学院软件工程专业的办学特点,一般是先设定专业方向,然后再根据专业方向设定方向课程,因此我们采用二维四向评价模型,如图2所示[4]。在该评价模型中,以O为原点的水平线,正向代表社会需求维度,逆向代表保障条件维度;然后再以O为原点画出4条线,分别为OX1、OY1、OX2、OY2,其中X1方向代表经济效益,X2方向代表社会效益,Y1方向代表硬件保障条件,Y2方向代表软件保障条件。在分析过程中,可以采用定量分析和定性分析。为了简化模型的应用,我们以定性分析为例,将每一个指标按照由低到高的顺序划分为3个级别,分别用1、2、3表示,其中3表示“强”,2表示“中”,1表示“弱”。在每一个维度(X1、Y1、X2、Y2)上分别标识一个点,然后把4个点连成一个四边形。构成的四边形面积越大,说明社会需求和保障条件越好。专业方向和课程的设置均可以采用此二维四向评价模型进行评价。在该评价模型中,可以计算取值总和S=X1+Y1+X2+Y2,根据总和设定一个阀值,对专业方向进行归类。例如,当阀值P>9时,表示专业方向处于最佳状态;P>6时,表示专业方向处于发展中状态;P<6时,意味着即将被淘汰。同时,还可以计算发展趋势比t=(X1+X2):(Y1+Y2),若t=1,表示该专业方向处于稳定期状态,意味着社会需求与保障条件比较协调;t>1,表示处于强势发展状态,意味着需求比较旺盛,保障条件需要进一步完善;t<1,表示处于衰退期状态,意味着社会需求不足而保障条件有冗余。在进行专业方向评价时,要参考S值和t值,同时要考虑(X1+X2)和(Y1+Y2)具体取值以及专业方向的历史发展状况。当然使用该模型的前提是已经使用上述评价方法,对每个专业方向和课程进行了较为准确的判断。对于该评价模型,我们可以很容易地将它转化为定量分析,只需要在(X1、Y1、X2、Y2)的每一个维度上有一个准确的数值即可。3.5评价过程课程体系的评价过程不是一蹴而就的,而是一个循环往复的过程,特别是对于软件工程专业,工程应用技术的更新速度比较快,专业方向(课程)的更替也比较频繁,但是不管课程如何更换,其最终目的都是实现专业方向培养目标,我们可以将评价过程简单地用图3表示。图3所示的评价过程中有3个反馈循环。首先设定专业方向培养目标,根据培养目标进行专业方向的设计,得到预期的专业方向课程体系,这时可以采用图2的评价模型进行课程体系的评价,同时进行结果反馈;根据预期的专业方向课程体系进行专业方向实施,通过实施检验是否达到专业方向的培养目标;然后根据出现的问题再次进行反馈,可以更改专业方向的培养目标,也可以更改专业方向的课程体系。3.6评价示例哈尔滨理工大学软件学院软件工程专业成立于2002年,于2011年被确定为黑龙江省首批卓越工程师教育培养计划(简称卓越计划)试点专业。在卓越计划的实施过程中,学校在企业中建立16个教学实践基地,校企共同制订人才培养标准,实现校企深度融合,联合培养软件人才。软件学院在2010年进行专业方向和课程体系的重新修订。在修订过程中,根据市场的人才需求、当前的技术更新以及课程评价体系的评价结果,重新制定了专业方向和课程教学计划。软件学院之前的软件工程专业分为两个专业方向:嵌入式软件开发和数据库应用开发。在进行专业方向的评价时,邀请用人单位、往届毕业生、软件工程师、主讲教师、外校教师等相关人员一起进行讨论并设计了问卷调查,收集大家的意见,最终嵌入式软件开发的得分为(3+2+3+2),即该专业方向处于最佳状态,数据库应用开发的得分为(1+1+2+1),即该专业方向将被淘汰。经修订,软件工程专业方向调整为嵌入式软件开发、软件开发J2EE技术、软件开发.NET技术和物联网软件开发技术。对于单门课程的评价也是一样,采用二维四向评价模型可以对每一门课程进行评价,如原来的工程数据库课程评价得分为(1+1+1+1),ERP原理及设计课程评价得分为(3+1+2+1)。显然,工程数据库课程应该被淘汰,而ERP原理及设计课程应该被保留。在2010版教学大纲的修订过程中,我们依据软件工程专业的特点,按照软件工程专业的知识体系,遵守课程评价的基本原则,采用该评价模型,对每个专业方向和每门课程进行客观而完整的评价,最终形成软件工程专业的课程体系。

4结语

第6篇

中图分类号:G642

摘要:分析软件工程专业的岗位需求和知识结构,提出适合地方性应用型高校的软件工程专业核心课程设置方案和体系结构。关键词:地方高校;软件工程;课程体系

0 引言

进入21世纪,以互联网为核心的网络与应用得到快速发展,信息技术的应用模式发生了巨大变化。在开放、动态、复杂的网络环境下,灵活、可信、协同的计算资源、数据资源、软件资源、服务资源等各种信息资源的共享和利用、无处不在的普适计算、主动可信的服务计算,均对软件工程提出了巨大挑战。

黄淮学院软件工程专业是河南省省级特色专业,近年来紧紧围绕培养“就业能称职、创业有能力、深造有基础、发展有后劲”的高素质技术技能型人才的目标定位,积极推进应用型人才培养模式改革,紧扣产业办专业,牵手企业促学业,强化职业促就业,不断提升专业价值,全面提高应用型人才培养质量。作为本科层次教育,重视较宽厚的基础知识的传授;作为应用型人才的培养定位,重视面向生产、经营、管理实际,面向经济社会活动实际,培养运用所学知识分析问题、解决问题的能力,同时也要培养学生适应社会的能力、创业发展能力。应用型本科院校课程体系的设计应有其内在的规律与特定的模式。基于此,笔者以黄淮学院为例,对这一问题做如下探讨。

1 软件工程课程体系建设原则

原则1:构建课程体系的重要原则是核心课程体系的构建。核心课程体系的构建不是计算机科学专业课程和软件工程类课程的简单堆砌,而是对计算机学科课程进行有效的裁减和调整。对比软件工程学科和计算机科学技术学科可以看出,计算机科学的主要目标是为解决计算问题寻找有效的、能产生更好性能的途径;软件工程的主要目标更注重具体方法和技术的应用,软件工程除了关注解决软件问题的理论、原则、方法和技术,还关注软件质量、软件过程、项目管理、团队合作、与用户/客户相关的问题,研究的对象是软件开发过程中的所有活动。软件工程专业的培养目标是合格的软件工程师,具有更明确的职业特性。

原则2:应用型本科高校软件工程专业不是简单复制211或985高校的课程体系,而要根据培养“就业能称职、创业有能力、深造有基础、发展有后劲”的目标,结合实际工作岗位职业需求,基于传统本科教育与职业教育相互渗透的培养理念,在通才与专才之间寻找平衡点,专业知识体系够用为主,“软、硬并重”,以第一课堂为核心,以行业、企业和管理服务岗位对人才知识、能力、素质的具体要求构建课程体系。

原则3:权衡软件工程专业本科毕业生所应具备知识的深度、广度和适应性。在大学教育期间,学生应学习的知识大致可以划分为4个.方面:人文社会科学知识,这是做人之根本;数学知识,这是软件工程专业的底层基础;专业知识,是软件工程学科之特色;相关领域知识,是学生就业之砝码。知识是基础,能力是知识的综合体现。对于软件工程专业的学生应该着力培养以下能力:专业必备的开发、设计能力,能终身受用的学习能力,培养领导力的处事能力和积累财富的创新能力。在注重学科知识的系统性和严谨性基础上强调实际能力培养的重要性。

2 软件工程专业课程体系基本构架

黄淮学院软件工程专业知识体系如图1所示,该知识体系以人文外语知识和科学基础知识为基本,软件工程专业基础知识为中坚,软件工程与软件管理专业知识为塔顶,辅以实践和顶岗实训构成软件工程专业知识体系金字塔。

人文与外语知识包含由教育部统一要求的思想政治类课程、大学英语、专业外语以及创新创意和职业规划方面的拓展课程;学科基础知识则涉及数学系列课程、电子基础课程和计算机科学基础课程;专业基础知识和专业技能知识包含程序设计基础、软件工程和软件管理等,具体教学过程中可以涉及部分软件工具和软件产品作教学载体。针对软件行业普遍反映的毕业生独立解决问题能力不强、责任心差、对问题进行抽象和分析的能力差的问题,设计了如图2所示的实践能力渐进培养模式,该模式贯穿在课程教学、实验、实训和毕业设计等教学过程中。

3 软件工程课程系列的设计

黄淮学院软件工程专业的课程体系既考虑了工程性、技术性、实用性、系统性、综合性和复合型,又注意到强化基础在有效解决复杂软件的构造和应用方面能起到关键性作用,采取了根据就业岗位的能力需求进行知识分解,由课程模块构建系列课程,分阶段互动式的课程设置方法。具体安排如图3所示。

从图3可以看到基础知识教学阶段共2学年,这样设计是为了强化学生基础知识,实现“基础扎实、学科认知和专业融入”的目标。公共基础系列课程针对人文与外语知识,学科基础理论系列课程的启动从数学基础课程系列和计算机导论开始,内容贯穿软件工程所涉及的计算机系统、程序设计语言、软件工程、网络技术等专业基础知识的知识点以及与信息技术有关的社会人文等知识,力求使学生对所学专业有比较深入的了解,树立专业学习的责任感和自豪感。其中包括高级语言程序设计、程序设计基础、数据结构和面向对象程序设计,旨在引导学生领会计算思维的同时训练其编程能力;硬件与网络系列课程包含数字逻辑、计算机组成原理和计算机网络,软件工程系列基础课程包括操作系统、数据库系统原理和WEB程序设计,这样安排力求达到“编程、网络和应用开发”三位一体的教学目标。

专业技能教学阶段共设36周,设计思路是强调对学生工程性、技术性、实用性、系统性、综合性和复合型能力的培养,实现“熟悉软件工程技能、树立系统概念和掌握软件设计开发技术”3个目标。在这一阶段中,综合考虑主干专业课程和特色课程的设置,基于办学特色设置若干动态可扩充的课程模块,全面考虑课程之间的关联,强调统一设计、统一规划。所有方向以系统分析与建模、软件工程、软件测试技术和嵌入式系统为基础,学生必须选修WEB程序开发和嵌入式软件两个专业方向中的一个课程模块,WEB程序开发方向设置网站前台开发技术、数据库应用技术、软件框架技术、软件需求工程和现代软件开发技术;嵌入式软件专业方向开设单片机与接口技术、嵌入式Linux程序设计、移动编程技术、手持设备软件开发和嵌入式系统开发综合实践,同时要求至少选修4门任选课以拓展专业知识。

工程实习教学阶段开设在第4学年,设计思路是通过具体项目参与真刀真枪的项目训练,通过毕业设计与论文培养总结概括能力,实现理论与实际结合、技能与职业素质结合的目标。

在软件工程专业的课程体系设计中还应充分考虑课程间的衔接性、系统性和创新能力培养。教学计划中通过设置10门设计类课程,加强课内实践教学,常设性的学生软件设计比赛如ACM竞赛和软件设计大赛也被引入教学过程中。上述思路形成的课程体系更细化的结构如图4所示。

4 结语

一个好的软件工程课程体系应该在一个或若干个应用领域方面体现出自己的特色,为了帮助学生在适当的深度上学习其他应用领域的知识,软件工程课程体系应该安排相应的支持课程。软件工程的应用领域如此广泛,软件工程课程体系不可能也不应该面面俱到。在相关领导的支持下,黄淮学院软件工程专业建设已取得了可喜的成果。软件工程专业在2010被批准为河南省特色专业,2012年批准为河南省专业综合改革试点专业,每年毕业学生到各大公司进行项目实践,并推荐部分优秀学生到IBM等业界著名企业实习,获得各公司的一致好评。这几年的实践表明,教学计划的设计是确保培养目标实现的保障,课程体系的设计是合理安排教学过程的关键。学院软件工程专业的每一位老师在这几年的教学改革中付出了辛勤的劳动,但回首软件工程专业取得的进步,大家都感到心情舒畅。高等院校的教学改革是永恒的主题,作为应用型本科院校软件工程专业的课程体系更应与时俱进,我们一定会在现有基础上进一步优化软件工程专业的课程体系,以期获得更好的结果。

参考文献:

[1]杨青,刘洪星.软件工程学科的特征及其课程体系设计原则[J].武汉理工大学学报,2005,27(2):183-186.

[2]曾永卫,林志刚,杨尧彪.应用型本科院校课程体系顶层设计的探讨[J].湖南工程学院学报,2007,17(3):65-67.

[3]祁文青,纪鹏,冯运仿,等.计算机类应用型本科的人才定位和课程体系[J].黄石理工学院学报,2012,28(1):60-63.

第7篇

论文摘要:随着企业生产规模的不断扩大,财务管理内容越来越多,管理项目越来越复杂、越细致,信息使用者所需要的财务数据信息也更加系统化、数字化。因此,依靠落后的管理手段已经无法满足客观实际的需求,如何改善企业财务管理的工作环境,提高财务管理的水平,在企业内部全面开展会计电算化已经成为当务之急。在此,就如何实现企业会计电算化,谈几点看法。

1 建立“企业ERP系统”

会计电算化发展到今天,已不是单纯的会计与计算机的简单结合,而是已经发展成为一门延伸到通信学、企业管理学、市场运筹学等学科的综合性学科;它的推广应用不再是单纯的财务管理系统,而是正朝着企业资源计划管理系统(ERP)方向发展,甚至发展成为不同企业之间跨地区、跨行业相互链接的大网络系统。

通过几年来在基层从事会计电算化工作所积累的经验,要想实现真正的财务管理现代化,必须在企业内部建立以财务为中心的“企业ERP系统”。通过把企业内部相关部门的计算机连接起来,建立企业内部综合信息管理网络系统,在业务量比较大的几个部门建立独立的资源子网。比如:财务管理信息子网、物资管理信息子网、生产管理信息子网等。各子网要以财务资源子网为中心,通过网间联合与财务管理局域网相连接,其它部门可采用电信线路用单机挂接方式或者通过光缆与财务管理局域网连接。同时,制定一套“财务管理局域网管理规范”,规范各资源子网的数据结构、操作规范,安全规范、职业道德规范等一系列管理制度,确保“企业ERP系统”运行畅通无阻,实现网上信息资源在各部门之间的相互沟通和资源共享。

2 以商品化软件为契机,开发更具实用性的会计软件

目前,我国工业企业财务部门使用的会计软件,一种是外国公司开发的经过汉化的会计软件,是按照国际会计准则设计的,适用于西方资本主义管理体系,而不适用于我国企业管理模式;另一种是国内企业开发的商品化会计软件,这种软件由于受知识产权的影响,价格比较昂贵,而且商品化软件维护起来比较麻烦,使用它势必造成人力和物力的极大浪费。当然后一种商品化软件是由各方面专家共同开发的,软件比较规范、功能比较齐全、操作也相对简便,而且软件实施周期短、见效快,因此,对于缺乏软件开发队伍的单位采用商品化软件是比较明智的。另外,我们还可以在同行业之间组织力量开发适用于某行业的会计电算化软件,实行集中开发、集中管理和维护,共同使用,这样可以节省大量的资金,而且行业之间提供的会计信息资料共上级部门可直接进行汇总处理,而不必再开发专用的汇总软件,这是我们开展会计电算化工作既经济又适用的捷径。

充分利用计算机技术和财务会计知识,建立一套科学的财会综合管理体系和会计电算化软件发展规划,采用在行业内部或同行业之间选拔优秀的计算机人才,建立行业计算机技术开发公关小组,开发适合行业内部管理需要的会计电算化软件,在企业各财会部门推广应用。达到集中开发共同使用的目的,缩短软件开发应用的周期,同时在应用管理上也可纵观全局,从长远利益出发,制定一套完整的会计电算化工作的长远发展规划。走出仅限于统计报表管理和数据存储管理的初级探索阶段,向大规模数值计算的专用软件、面向问题和过程分析及判断推理的高层次软件综合开发阶段迈进。由单机单用户、联机终端网络向标准化网络体系结构发展,充分利用计算机的网络结构,更大程度地共享计算机的硬件、软件及数据资源,建立一套完善的计算机辅助管理专家系统和智能系统,使计算机在财务管理工作中的应用向更广泛更深层次发展。为企业领导和决策者提供准确可靠的信息情报,编制出合理的企业生产经营计划报表及财务报表。有效地控制企业生产经营中的资源浪费,加快资金流通,降低资金占用消耗和产品生产成本,提高企业经济效益。开创以商品化软件为契机,以自己的软件开发队伍为中心,实现企业自己的智能化信息与专家系统的会计电算化发展新路子。

3 搞好计算机技术培训工作,走“全员化管理”的道路

会计电算化工作的关键是应用,特别是从事具体管理工作的人员,他们的会计电算化水平决定本企业会计电算化管理的水平,他们中有多少人会使用计算机,能够利用计算机进行辅助管理工作,甚至有多少人会进行简单的计算机软件编程工作都对会计电算化的顺利实施起着至关重要的作用。所以说会计电算化工作要得到全面的发展,必须走全员化管理的道路。

全员管理就是动员企业内部从事各项管理工作的工程师、会计师、管理师、统计师、会计员、技术员及一般管理人员等在搞好本职工作的同肘,协同从事计算机程序设计的人员一起研究学习计算机技术基础知识和其它管理科学的知识,应用计算机去从事各项管理工作。把计算机同现代化的管理科学融合在一起,培养出大批能从事多种工作的复合型人才,形成一个企业内部全体上下相互协作,同心协力的全员学电脑、用电脑的局面,让更多的人去学习计算机知识,用学到的知识去为管理服务,提高管理工作的水平和质量。

第8篇

关键词:嵌入式系统;课程体系;实践教学

随着嵌入式系统在工业生产和社会生活中的广泛应用,嵌入式系统技术越来越得到国内各大高校的重视。嵌入式系统涉及的知识面广、技术新、难度大,相关的技术资料少,并且仍然在快速发展中,这使得教学面临较多的困难[1-2]。因此,如何有效地进行教学,在相对紧张的学时内使学生掌握更多的嵌入式系统知识,成为许多高校开设“嵌入式系统”课程要首先解决的问题[3]。

本文结合作者几年来的“嵌入式系统”本科教学实践,提出和总结了教学工作中的一些思路和体会,主要有以下一些经验。

1主要课程体系的设置

嵌入式系统作为后PC时代的核心,所涉及的知识非常广泛,既有计算机底层硬件的知识,又包含操作系统、应用程序、特定领域的知识等,建立良好的课程体系,对学习者非常重要。

从狭义上讲,嵌入式系统知识可分为两大类,一是针对将来只是应用嵌入式系统硬件、软件平台来进行二次开发的学生,应侧重学习特定软硬件平台的应用系统设计和开发;二是针对将来从事嵌入式系统软硬件平台设计的学生,需要重点学习嵌入式系统体系结构及接口设计原理[4]。综合上述嵌入式系统的知识特点并结合目前教学的实际,把嵌入式系统教学分为三个层次:

(1) 学习嵌入式操作系统,主要掌握特定嵌入式操作系统的基本工作原理、特点及应用。这是学习嵌入式系统的基础,主要为基于操作系统的软硬件开发做准备。

(2) 学习嵌入式系统硬件,主要掌握特定嵌入式CPU的体系结构及其相关的接口电路的工作原理、特点,并学习无操作系统下的编程技术。使学生深入理解底层硬件的工作机制及控制技术,为顶层开发作准备。

(3) 学习嵌入式软件开发,在具备了操作系统及相应硬件知识的基础上,学习基于操作系统之上的驱动程序及应用软件的开发。

在这三个层次中,前两个层次是基础,第三层次是目的,只有掌握好嵌入式操作系统及相关硬件机制,才能更好地进行嵌入式软件开发工作。建议开课的具体时间及学时如表1所示。

在表1中,特别加重了实验教学学时,因为嵌入式系统课程体系要求较强的实践性,让学生多动手实践对提高教学质量很有帮助。

2教学内容的选择

2.1软硬件平台选择

由于嵌入式系统技术在国内出现时间不长,并且处于快速发展阶段,新技术和应用成果不断涌现,这给软硬件平台的选择带来了一定的困难。而且不同的选择直接导致嵌入式软件开发的技术差异,对教学及学生将来应用的影响很大,需要仔细分析、认真选择。

选择的基本原则是应用广泛或未来有发展潜力的嵌入式技术。根据目前嵌入式系统在国内外发展的现状,ARM微处理器以其体积小、功耗低、成本低、性能高和应用广泛成为目前嵌入式系统硬件的首选。而操作系统的选择则比较困难,既有出现时间较长,市场占有率很高的系统,如VxWorks等,也有出现较晚但很有发展潜力的系统,如Windows CE、嵌入式Linux、μC/OS-II等,各种不同的嵌入式系统均有各自的特点,像VxWorks经过多年的发展,市场占有率高,非常稳定但价格昂贵;Windows CE由微软公司开发,技术力量雄厚且容易为大多数开发人员接受;嵌入式Linux开源稳定且免费,受到很多企业的推崇;而μC/OS-II结构紧凑小巧,适合教学。

根据选型原则,嵌入式Linux在很多企业得到了应用,并且它的免费特点会有助于未来应用的扩大,因此选择学习嵌入式Linux有利于增强学生的竞争力。

2.2课程内容选择

精心选择授课内容,组织好授课知识体系并详略得当,略去一些繁杂深奥的细节,而把授课内容集中在需要重点学习的知识点上,对本科学生接受相关内容帮助很大。针对我们的课程体系,各门课程主要讲授内容如下。

(1)Linux操作系统:本门课程主要是以普及Linux操作系统基础知识为主,使得学生掌握其工作的基本原理、组织结构、配置方式等,学会Linux操作系统的基本操作及常用软件的应用。为开发基于嵌入式Linux操作系统的软件打好基础。

(2) 嵌入式系统原理:本门课程主要学习嵌入式系统的基础知识,介绍基于ARM微处理器的软硬件开发环境,并学习无操作系统的硬件编程技术。重点学习内容包括三个方面:一是ARM处理器的组织结构及特点,使学生对ARM处理器的整体结构有较好的理解,为学习其接口技术做好准备;二是ADS开发环境,掌握ADS的基本操作流程、相关的配置、理解交叉编译连接等概念;三是ARM处理器的接口技术,这是学习本门课的重点,不仅要掌握各种接口的工作原理、工作流程及配置方法,还要求能够利用C语言对其进行编程控制。

(3) 嵌入式软件开发:本门课程以嵌入式Linux作为软件开发平台,在基于ARM处理器上完成软件开发工作。授课重点主要包括:一是Linux操作系统的深入学习,包括Linux系统的工作机理、系统裁减移植及其系统的开发环境等;二是嵌入式Linux下的驱动程序开发,包括Linux设备驱动的工作原理、开发流程,常用设备驱动程序编写方法;三是图形界面的设计,主要介绍基于QT的图形界面开发方法。

3教学方法的运用

教学方法的有效运用对提高教学效果的作用是不言而喻的,如何在“嵌入式系统”教学中采用合适的教学方法,提高教学的质量,使学生能够从教学中得到最大的收获,对教学的成败至关重要。评判有效的教学方法的标准是看是否能增加学生的学习热情,能否变被动学习为主动学习。

3.1注重基础,重点突出

“嵌入式系统设计”是一门综合性的课程,涉及的知识面比较广泛,例如既有计算机学科的计算机体系结构、操作系统、程序设计等知识,也有电子学科的电子技术、微机原理等知识。因此,在课堂内容组织上,要分清主次,明确哪些知识仅需了解,那些知识需要重点掌握,并根据重要程度有计划地组织教学内容和学时,使得整个教学体系层次清楚,详略得当,为学生顺利接受提供保障。

例如在规划的教学体系中,硬件方面重点是接口技术、要求学生掌握各种接口的工作原理及其编程方法,软件方面重点是基于嵌入式操作系统的驱动程序设计及应用程序开发,而对于比较复杂的操作系统的内部工作原理分析、操作系统移植、BootLoader等仅作原理性介绍。

3.2以实践教学带动理论教学

通常理论教学比较抽象枯燥,学生接受大量的理论知识比较困难,为了提高理论教学的效果,为课程配备了较多的实验课时,每当在课堂上学习完成一部分理论知识,即安排相应的实验,由学生亲自动手验证理论知识的正确性并加深对理论知识的理解,这样把较抽象的理论具体化形象化,学生接受起来相对容易,提高了理论知识的学习效果。

3.3兴趣创新的培养

兴趣及创新能力的培养需要以应用为驱动力。学生对把所学理论如何应用到实际应用中非常感兴趣,以此为切入点,在理论教学时,把实际产品经简化后引入课堂,介绍所学理论知识在具体产品中的应用方式、方法,并进一步指出理论或产品的优缺点,改进方向等,为学生进一步学习指明方向,从而激发学生求知欲及创新的潜能。如在实际的教学中,介绍mp3产品的工作机理及软硬件设计方法,学生对此兴趣非常高,教学效果明显。

4实验教学的设计

嵌入式系统是面向应用的,实践是整个嵌入式系统课程体系中非常重要的环节。也是加深对嵌入式系统知识理解,培养兴趣及创新能力的必经途径。

我院购买了基于ARM9的实验教学平台,该平台拥有大量的接口设备并配备了嵌入式Linux操作系统,为学生学习ARM底层编程技术、嵌入式Linux操作系统及其上的软件开发提供了保障,

根据学生的能力特点,我们把实验课程分为三个层次,便于不同类型的学生选择。

(1) 基础性实验:本类实验主要是相关课程中最基本的实验,要求所有学生必须掌握。如在“嵌入式系统原理”课程中,需掌握ADS开发环境、通用端口、中断、DMA、UART等;在“嵌入式软件开发”课程中,需掌握Linux实验环境搭建、各种基本驱动程序设计、简单应用程序设计等。

(2) 综合性实验:是在前面基础性实验的基础上,综合整个课程的知识,尽可能利用实验系统上的硬件资源,构造一个具有实际意义的嵌入式系统,综合性实验提供多个题目,要求学生选做。如在“嵌入式系统原理”课程中,可以实现无操作系统下的音频录放、俄罗斯方块等程序设计;在“嵌入式软件开发”课程中也可以实现基于操作系统的类似程序设计。

(3) 设计性实验:设计性实验主要提供给学习能力较强并对嵌入式系统感兴趣的学生,本实验主要在计划外学时进行,由学生自主提出课题或通过其他方式选择课题,教师适当指导并利用实验室对外开放时间进行。如通过国家大学生创新性实验计划,设立了“智能生命救助仪研究”课题供学生进行实验。通过完成该实验,提高了学生研究能力和实际动手能力,使学生进一步理解了不同课程之间知识的有机联系并深入体会了嵌入式系统面向应用的含义。

5结语

嵌入式系统应用的广阔前景和未来发展的巨大潜力已得到了全社会的共识,作为培养高级人才的大学,要想又快又好地培养出大批嵌入式系统方面的优秀人才,就需要从嵌入式系统课程体系的设置、课程内容的选择、教学方法的运用及实验课程的设计等方面精心研究及组织,其最终目的是提高嵌入式系统的教学质量,培养学生对嵌入式系统的学习兴趣,激发学生自主创新能力,为我国嵌入式系统领域发展提供优秀的人才保障。

参考文献:

[1] 凌明,刘昊,时龙兴. 关于嵌入式系统课程教学过程中几个问题的思考[J]. 电气电子教学学报,2007(增刊1):94-98.

[2] 孙士明,刘新平,郑秋梅,等. 计算机专业嵌入式系统实践教学体系探索[J]. 实验室研究与探索,2009(5):122-125.

[3] 江敏,钱平,单片机教学向嵌入式教学转型的几点研究[J]. 电气电子教学学报,2005(2):33-34.

[4] 符意德. 嵌入式系统设计原理及应用[M]. 北京:清华大学出版社,2004.

Exploration of Embedded System Teaching System and Mode

LI Jun,YUAN Man,LIU Yan-jun

(College of Computer and Information Technology, Daqing Petroleum Institute, Daqing 163318, China)

第9篇

关键词:嵌入式软件开发;C语言;课程改革

0.引言

C语言程序设计作为程序设计语言的入门基础课程,是各高校理工科专业中计算机程序设计类课程的普遍选择。作为一门理工科通识课程,其目的在于使学生通过对C语言中各种语言成分的学习,初步认识计算机程序设计及进行程序设计的过程,掌握基本的程序设计思想与方法。作为通识类课程,目前各院校通常将该门课程的教学安排在一年级,每周3-4学时(含实验),讲授内容主要包含C语言的数据类型与表达式、程序结构、函数、指针、链表、文件等。在教学实践中,我们发现,由于学时限制或学生接受程度等原因,常常需要对部分教学内容(如多级指针、文件操作、位操作等)进行削减,无形中降低了课程内容的深度与广度。作为通识类课程,这样的削减影响不太大。而对于信息类专业(计算机、电子、自动化等)而言,仅掌握通识教育中所讲授的部分是远远不够的。

嵌入式系统开发是信息类专业的一个主要发展方向。进入21世纪以来,融合先进的计算机技术、半导体技术、电子技术及各行业领域具体应用的嵌入式系统,已在工业控制、交通管理、信息家电、智能家居、环境监测、电子商务、机器人等领域得到了广泛应用。

一般说来,嵌入式系统是指以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于心用领域,对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。由于在成本、功耗、体积等方面的限制,对嵌入式系统中的软件开发提出了更高的要求。嵌入式软件开发是在特定的硬件平台上进行,需要使用具有较强硬件操作能力的编程语言。由于C语言是具备了这一特质的高级语言,成为嵌入式系统开发的最佳选择。

调查显示,在信息类专业中,电子类本科专业教学计划与嵌入式系统教学要求相脱节,电子类本科学生的软件基础也较弱。在这样的背景下,对C语言程序设计课程进行相应改革,以适应嵌入式系统开发人才培养的需要是十分必要的。

1.嵌入式软件开发对C语言的需求

在适用于嵌入式系统开发的3类主要语言中,C语言占有超过70%的份额。开发嵌入式软件,除掌握C语言的基础知识和基本技能外,主要还存在以下几方面的要求:

1)指针。

指针作为C语言的主要特点,其使用十分灵活,因而也很难完全掌握。它可用于指向不同类型的普通变量、数组、字符串,甚至函数。在嵌入式软件开发中对各类不同指针(数组指针、指针数组、指向结构体的指针、多级指针)的使用十分普遍。因此,指针相关内容的教学必须足够深入。

2)位操作。

C语言有别于其他高级语言的一个特点是可直接对硬件进行操作。指针和位操作是这一特点得以实现的工具。通过6种位操作符,可直接对内存、寄存器或I/O端口的字节进行测试、置换或移位处理。熟练掌握位操作符的使用,是进行嵌入式软件开发必不可少的重要基础。在一些国内高校普遍选用的经典C语言教材(如文献[4])中,由于定位于普适教育,并未包含位操作部分的内容。

3)文件读写。

嵌入式系统中“一切皆文件”,系统的运行以文件读/写方式进行操作。理解文件系统的构成、掌握基本的文件操作方法也是进行嵌入式软件开发必须掌握的技能。

4)宏定义。

在嵌入式软件中使用宏定义,不仅可防止代码出错,提高可移植性、可读性,而且是产生内嵌代码的唯一方法,可用于替代函数调用,从而达到嵌入式系统性能要求。

以上4个方面的内容,在通识型的C语言课程中,由于课时和学生程度等原因,都不能进行针对性的特别训练。学生在进入嵌入式系统开发阶段后,显然会成为程序设计知识方面的短板。

2.课程改革思路

基于上一节的认识,我们对C语言程序设计课程的教学提出了下面的调整思路。

2.1课程设置

作为通识课程的C语言程序设计通常安排在一年级或二年级上学期完成。信息类专业的学生在大学三年级开始进入嵌入式系统开发相关课程时,不可避免地对已学过的C语言的知识会有一定程度的遗忘。

针对嵌入式系统开发的要求,考虑将C语言程序设计课程划分为2个阶段。第1阶段为c语言程序设计基础,每周3学时,可在大学一年级下学期或二年级上学期开设;第2阶段为嵌入式系统C语言程序设计,每周2学时,作为嵌入式系统开发方向的选修课,可在大学三年级上与其他嵌入式系统相关课程,如嵌入式系统、嵌入式操作系统一起开设。这样设置一方面满足了在低年级完成程序设计类通识课程的要求,使学生不必过早接触C语言中较为深入、复杂的部分;另一方面,通过将与嵌入式软件开发密切相关的知识适当推后,确保了嵌入式系统开发各门课程问的知识联系。

2.2教学内容的划分

由于将课程划分为基础部分和面向嵌入式系统开发的提高部分,则可将C语言的一般基础(基本语句、控制结构、数组、函数、指针、结构体)划人C语言程序设计基础课程中,通过这部分的学习使学生掌握C语言的基本理论知识并具备基本的编程技能,达到程序设计类课程的通识教育水平。

对于与嵌入式开发密切相关的知识,将在嵌入式系统C语言程序设计课程中讲授,主要包括:宏定义、位操作、文件操作和复杂指针运用。这部分内容的教学可围绕嵌入式软件开发实例展开,深入讲解各知识点的应用。通过嵌入式系统C语言程序设计课程的学习,学生应更深入地理解和领会C语言的精华思想,同时具备基于嵌入式平台进行软件开发的能力。

2.3实验内容

任何程序设计语言的学习都离不开大量的实践,实验是学习C语言的重要组成部分。根据前面对课程的划分,C语言程序设计基础课程中可开设的实验项目如表1所示。

实验1在学习了C语言的数据类型、运算符、表达式和输入/输出之后进行,目的在于使学生熟悉C语言的编译环境,逐步认识C语言语句的基本构成。实验2涵盖了程序的3种基本结构,便于学生统一认识关系、逻辑运算和程序结构。实验3-6分别对应于数组、函数、指针和结构体各章节的内容,重点掌握这些语言成分的定义及使用方法。实验7将综合运用本课程中的知识,完成一个较小的、具备一定功能的小型软件的开发。

嵌入式系统C语言程序设计课程的实验内容则围绕一个嵌入式软件开发实例展开,实例由任课教师选定。根据所选实例,实验内容可包含以下项目(如表2所示)。

实验1的目的在于使学生熟悉嵌入式系统的软件开发环境,主要介绍嵌入式Linux下的c语言编译工具。实验2-5则根据所选实例,选取特定的模块有针对性地进行文件操作、宏定义、位运算及复杂指针运用方面的练习。

2.4教学方法与手段的调整

毋庸讳言,由于种种因素的影响,当前各高校中普遍存在学风怠惰现象,相当一部分学生学习积极性较低下。如何提升学生对所学课程的兴趣,是每一名教师都要面对的问题。在多年的C语言程序设计课程教学过程中,我们接到学生的反馈意见最多的是“上课听得懂,下来不会自己编程”。究其原因,大概不外乎两种:一是学生尽管在课堂上听了课,课下并未及时回顾整理并主动思考;二是在理论课堂上一讲到底,学生要等到实验课时才真正动手体会讲过的知识,往往不能及时动手练习,进而影响消化吸收。针对第一种情况,我们采取了每一堂课以提问开始的方式,提问内容主要是对之前所学内容的回顾和脉络梳理,同时还留出了一定的课堂练习时间,这样能在一定程度上起到督促学生课下及时复习的作用,也便于教师及时了解学生的知识掌握情况。而对于第二种原因,可尝试采取将理论课堂搬至机房的方式,在完成一个知识点的讲授后布置即时练习,让学生能及时体验和理解。但当机房容量有限而班级较大时,并不适用,这样的情形如何处理?需要我们进一步思考。

相关期刊