首页 > 文章中心 > 计算机与编程专业

计算机与编程专业

计算机与编程专业

计算机与编程专业范文第1篇

“编译原理”、“操作系统”和“计算机体系结构”是计算机专业的三门核心课程,在计算机科学的教学体系中占有重要地位。学生对于这三门课程的掌握程度在一定程度上反映了他们对计算机专业知识的掌握情况;进一步讲,能否确切理解编译程序、操作系统和硬件系统之间的关联及它们在计算机系统中的层次地位,直接反映了学生对专业知识的整体把握程度。遗憾的是,受限于目前的教学大纲和学时,这三门课程的教学很少涉及对相关课程的介绍和联系,只注重课程自身教学内容的讲解和分析,导致学生无法理解所学知识的应用背景,产生学无所用的想法。

由于编译课程内容具有较强的理论性、逻辑性和实践性,学生在学习过程中感到过于抽象和难以理解。编译教学内容涉及到程序设计、操作系统和计算机系统结构等相关课程,掌握编译技术有助于加深学生对整个计算机系统的理解[1]。目前,编译课程的教学更多关注自身内容的讲解和传授,与其他课程横向联系的内容相对较少。许多学校虽然开设了实验课及相应的课程设计,但只对编译理论中的某些算法或编译系统的某一阶段功能进行单纯的实现与验证,缺少实际背景。另外,现行的编译教材大部分都是从编译技术本身的角度撰写的,为的是让学生掌握编译的基

本理论与思想[2]。所有这些最终导致学生无法对高级语言程序设计每条指令的执行过程有清晰的认识和理解,因而不能实现专业知识的融会贯通。计算机专业的理论基础对培养学生的计算机专业素养具有非常重要的作用[3],因此课程间封闭的教学方式不利于专业素养的培养和提高。

目前,这一现状在短时间内很难改变。笔者认为应以编译课程为切入点,在教学过程中加强相关课程的联系,促进计算机专业知识的交叉融合。

1以编译课程为切入点,强化专业知识融会贯通

编译程序在计算机系统不同层次中处于核心地位,在程序设计及运行过程中起到桥梁和纽带作用,因此应以编译课程为切入点,促进专业知识的融合。按照教学大纲安排,学生入学后首先要学习程序设计的相关课程,进入高年级后,主要学习操作系统、计算机体系结构和编译原理等核心专业课程,它们之间的关系如图1所示。由图1可以看出,编译程序在从程序设计到程序运行产生输出结果这一过程中处于核心地位,编译系统对用程序设计语言编写的源程序

进行编译,编译过程中会用到源语言自身的规范和库程序,需要操作系统提供的库程序和接口以及目标体系结构的相关信息生成可执行的二进制程序。可执行程序根据用户的需要,由操作系统调度运行,并与下层的硬件系统产生密切的关系。本文由收集整理为此,编译课程的部分内容需要程序设计语言、操作系统和体系结构等课程作为支撑,这样学生才能更好地理解计算机系统从软件设计到程序执行的完整过程。

正是由于编译系统在计算机系统中处于重要地位,以编译课程为切入点,在教学过程中加强核心课程之间的横向联系,不仅有助于实现编译课程抽象内容形象化,也有助于加强学生对整个计算机系统的认识。另外,随着计算机系统结构的不断发展与更新,嵌入式计算、并行计算与可重构计算系统逐渐得到发展和普及,这些都使编译系统和计算机系统结构之间的关系变得比以往更加密切。一种新结构的出现需要新编译系统的支持才能真正发挥作用,因此在编译课程的教学中加强与其他课程的联系,也是符合计算机系统发展的大趋势。

2以编译课程为切入点的可能性分析

以编译课程为切入点,强化各个核心专业课程之间的关联,其可能性概括如下:

(1) “编译原理”是计算机专业重要的专业课程,且在计算机系统中具有重要地位。

(2) 编译课程开课的学期较为合适。我们查阅了国内部分高校的教学计划,研究了计算机核心专业课程的课程安排。如表1所示,在我们调查的高校中,除北京大学、北京航空航天大学和西安交通大学外,近一半高校编译课程的开课学期多位于程序设计、操作系统和计算机体系结构等课程之后,或与操作系统和体系结构等课程同时讲授,因此在编译课程的讲授过程中穿插联系相关课程的内容比较合理。通过对相关知识进行整理归纳、巩固与提升,能够取得较好的教学效果。

(3) 编译课程多次涉及其他专业课程的内容,例如“编译原理教学引论”部分要讲授程序设计语言的发展历史、编译程序在计算机软件系统中的重要地位等内容;讲授“编译运行时的环境”部分时,一定学时用于讲述存储分配,特别是基于栈的运行时环境的动态存储分配和基于堆的运行时环境的动态存储分配部分,与操作系统相关内容相互渗透;在“代码生成和优化”部分,尤其是过程(函数)调用的翻译部分,针对目标系统结构的优化部分,亦需要体系结构相关知识作为支撑。反观操作系统和体系结构等课程的教学内容,与其他课程的联系则相对较少。

基于以上几点认识,我们认为,以编译课程为切入点,充分利用有限的学时,在部分教学内容中强化与其他核心课程的关联,实现专业知识融会贯通的可能性是存在的。

3关于课程教学的几点建议

如前所述,目前教与学的实际情况不利于学生对计算机专业知识的融会贯通,在注重软件能力培养的计算机学院中,学生对图1的阴影部分知之甚少,而对阴影前后两部分的内容更加熟悉,掌握程度更高。所以,学生没有从总体上对所学知识建立完整的知识体系,对所学专业课程没有构成清晰的轮廓和概括。

为了强化编译课程的教学效果,教师需要将课程教学置于计算机系统大的背景环境之中,重点阐述编译程序在计算机软件系统中的重要性,与其他核心专业课程之间的联系,同时运用实例教学,使学生从抽象的教学内容中解脱出来,真正感受到所学知识的可用性和有用性。鉴于此,我们对编译课程的教学提出如下几点建议:

(1) 在引言部分强调编译课程与其他课程的关系,重点

说明编译程序在整个计算机系统中的作用和层次地位。需要说明的是,教师不应只强调编译程序自身的地位和作用,还要将其放入图1所示的背景中,使学生能够理解编译程序在从语言到程序执行过程中所处的位置和作用,加强对计算机专业大背景的认识。

(2) 在运行环境、代码生成和优化部分,教师应结合操作系统和计算机体系结构内容进行讲解,使学生能更好地理解目标代码格式、函数调用方式、基于栈的存储管理、代码优化的原因和目标等概念。

例1:对可优化的简单程序源码,使用同一编译程序多次编译,每次编译时指定不同的优化级别,通过分析编译程序生成的汇编源码比较生成的可执行程序运行性能,向学生解释编译程序在编译过程中实施的优化措施,说明优化的目的和效果。

例2:针对最简单的c语言helloworld程序,通过分析其在具体平台上编译后的运行时函数调用图(包括操作系统api),说明用户编写的程序与语言库、系统库之间的关系。

例3:结合具体型号的dsp处理器(例如tms320 c6000系列)及其调试模式下指令的执行过程,说明针

对具体计算机系统结构进行编译优化的必要性和重要性。

(3) 建议针对目前常用的系统平台设计小型完整的实践课程,实践内容应适量涉及体系结构和操作系统的相关内容。针对常见的处理器架构和操作系统设计实践课程,可以使学生在实际的系统中观察到实践结果,通过实际操作和验证增强感官认识,对所学知识融会贯通。

例:针对学生熟悉的程序设计语言(c或者java)、经常使用的操作系统(windows或者linux)、常见处理器架构(例如x86),设计简单完整的实践课程。教师提供能够处理一小部分语法子集的完整编译程序,供学生学习,作为实践过程的参照。学生可以将一小部分没有实现的语法子集作为实践任务,完善已有的编译程序,实现从词法分析到代码生成的各部分功能。最后应能使增强的编译程序在现有的系统平台上运行,编译源码文件并生成可运行的应用程序。

计算机与编程专业范文第2篇

关键词:计算机本科;应用型人才;专业能力;培养方法;实践结果

当今,高等教育已经从精英教育转变成大众教育,大部分地方性高等院校都将培养合格本科应用型人才作为自己的定位,以适用社会经济发展需要。但是,作为热门专业,计算机科学与技术专业却面临尴尬局面,一方面,公司、企业招不到其需要的计算机人才;而另一方面,却出现计算机专业的毕业生就业难的局面。产生矛盾的原因在于学校不了解公司、企业相应岗位对计算机人才专业素质、知识结构、专业能力的要求,对学生的培养脱离实际需要。为此,对计算机专业应用型人才的专业能力构建与培养进行研究具有现实意义。

1计算机本科专业学生就业情况分析

我校计算机本科专业毕业生就业情况统计分析显示,约10%的学生受聘用于软件开发企业,从事软件系统的设计开发,30%的学生到中学、职业中学或培训机构从事计算机教学工作,25%的学生进入机关、事业、企业单位从事系统管理和网络管理工作,15%的学生到计算机软硬软件销售公司从事营销工作,10%左右的学生从事行业CAD、文字处理、平面图像处理工作,5%左右的学生考上研究生,继续深造,5%左右的学生从事与本专业无关的行业。从

就业情况来看,绝大部分学生还是从事与自己专业相关的工作。将他们从事的工作归纳分类,我们发现其专业方向性要求分布如下:对软件系统设计开发方向要求较高的学生约40%左右,其中10%到软件公司,30%从事教学与培训工作;对网络管理、行业软件系统的应用方向要求较高的约35%左右,其中25%左右进入机关、企事业单位,10%左右从事行业软件应用;对计算机组装与网络组网方向要求较高的约15%左右,主要是进入软硬件销售公司。近年来,我校计算机本科专业毕业基本能够顺利就业,但是,学生寻找工作的过程饱含艰辛和遗憾。专业能力强的学生,不用费多少力气就能找到自己满意的工作单位。但是,专业能力差,尤其是操作动手能力差的学生,就业就非常困难,不管是学校推荐还是自己投简历,都很少得到用人单位的回应,有些学生因此而错过很好的单位。现在,用人单位非常注重对毕业生专业能力和专业技能的考核,有些单位还要求学生有一定的实践经历。这些都说明,培养计算机本科专业学生的专业能力和专业技能非常重要。

2计算机本科专业学生专业能力存在的不足

多年来,从学生的毕业实习、毕业设计,就业应聘、用人单位对毕业学生的考核以及反馈的情况来看,学生能较好地掌握专业基本理论和基础知识,具备基本的计算机操作技能、编程方法、网页制作、数据库建立等专业能力,有些学生还具备较强的综合设计与开发能力。即使如此,学生的专业能力和技能还是存在不足。

1) 计算机基本操作能力还不高,操作技能不够熟练。计算机基本操作主要包括Office办公软件以及常用工具软件的使用、计算机组装与维护、网络布线、局域网服务器的安装与管理、应用软件的使用等。计算机本科专业学生对办公软件及常用工具软件的使用不够重视,有些不能熟练操作;计算机软硬件销售公司要求毕业生能够熟练掌握计算机的组装、维护、网络布线、组网和应用软件使用,但部分学生不能熟练组装计算机或组网,个别学生甚至做不好网线头,不能熟练操作常用软件系统。

2) 算法设计与分析能力较低,对常用的算法掌握不多,不能独立解决较复杂的算法。算法设计与分析是计算机本科专业学生编程的基础,是使用计算机解决实际问题的第一步。但是,师生对它的重视程度都不高。教师对算法分析与设计讲解得不够,偏重程序语句的解读,忽视算法的分析;学生对算法设计与分析重视不够,只满足于课程简单算法的代码描述,而不重视算法的设计与分析过程。

3) 编程能力偏低,读程与算法实现能力明显不足。学生阅读程序量少,常用算法的代码掌握不多;学生在校期间,编写的程序太少,有些编写的代码总数不超过5 000行。但是,最基本的要求至少应达到20 000行到40 000行以上的程序量[1]。

4) 系统设计与开发能力与社会需求相差较大,不能满足用人单位的要求。学生的软件系统设计与开发能力不高,有些学生仅停留在模仿教材例子的水平;有些学生会做系统的前台界面,却不会设计后台数据库,或设计的功能子程序却访问不了后台的数据库,总体来说,其综合设计与开发能力较低。

3计算机本科专业培养的人才类型

《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》将计算机科学与技术本科专业培养的人才划分为科学型、工程型、应用型三种类型,并分别由四个不同的专业方向来培养:计算机科学专业方向培养科学型人才、计算机工程专业方向和软件工程专业方向培养工程型人才、信息技术专业方向培养应用型人才[2]。但是,我校作为一所地方性本科院校,由于招生人数、师资以及学校所处区域经济发展和IT行业发展水平较低等实际情况,不能按四个专业方向来设置,并培养上述三种类型的计算机专业人才。我们只能根据学校所处的区域经济发展及各行业对计算机本科人才的需求情况来培养计算机人才。结合上述学生就业情况统计分析,我校计算机本科专业培养的计算机人才应包括软件工程型人才和应用型人才两种类型,即培养偏向软件开发的计算机本科应用型人才。所以,我们培养的计算机本科应用型人才并非单纯指由信息技术专业方向培养的应用型人才,还应该包括软件工程专业方向培养的软件工程型人才。我们所指的计算机本科应用型人才,是综合了这两个专业方向的培养目标、人才培养规格以及教学计划设置来进行培养的;我们讨论和研究的计算机本科应用型人才的专业能力也是包括了软件工程型人才和应用型人才应具备的能力。

4计算机本科应用型人才的专业能力

根据软件工程型与应用型人才培养规格以及信息社会对计算机人才的要求,我们制订计算机本科应用型人才培养规格,并结合人才培养规格,提出计算机本科应用型人才应该具备的专业能力。

计算机本科应用型人才的人才培养规格为:

1) 树立科学的世界观、人生观和价值观;具有责任心和社会责任感;具有法律意识,注重职业道德修养;具有诚信意识和团队精神;具有良好的心理和身体素质。

2) 具有良好的文字和口头表达能力、交流与沟通、协调、应变和创新能力。

3) 掌握文献检索、资料查询、运用现代信息技术获取信息的基本方法,具有初步的科学研究能力和实际工作能力。

4) 具有广泛的自然科学知识及比较扎实的数理基础,具备较强的英语实际运用能力;

5) 具有较强的编程能力和数据库应用能力;

6) 初步具有大中型软件系统的设计和开发能力,以及较强的学习掌握和适应新的软件开发工具的能力;

7) 有较强的组网能力、网络编程、设计与开发、维护与管理能力。

上述的计算机本科应用型人才培养规格包含人才素质要求、知识结构要求和能力要求。其中,规格中的第一二条是对计算机应用型人才的素质要求;第三四条是对人才的知识结构要求;第五六七条是对人才的能力要求。对上述人才能力要求进行归纳整理后,我们认为计算机本科应用型人才的专业能力包括:计算思维能力、基本操作能力、算法分析与编程能力、系统综合开发能力等四个方面[3]。

为了培养计算机本科应用型人才的专业能力,我们综合软件工程专业方向和信息技术专业方向的培养目标、人才培养规格、课程结构体系,制订了我校计算机科学与技术专业的人才培养方案、教学计划和课程教学体系,并从多方面提出培养计算机应用型人才的方法和途径,以保证计算机本科专业应用型人才培养目标的实现。

5计算机应用型人才专业能力的培养与成效

应用型人才专业能力的培养,必须通过专业教学计划的制订,课程教学结构体系、教学内容、理论教学与实践教学的改革以及科学的实施方案才能够实现。为此,我校计算机本科专业应用型人才专业能力的培养,主要通过以下几种方法和途径来开展。

5.1教学体系改革

5.1.1课程体系结构的改革

计算机本科专业课程体系原来只设置两大类课程,一类是公共必修课程,另一类是专业课程,专业课程主要培养学生的编程能力。但是,随着信息技术和社会经济的高速发展,信息社会对计算机人才的需求发生了新的变化,从原来对算法分析与编程能力的要求发展成对基本操作能力、算法分析与编程能力、系统综合开发能力的要求。为此,我们从培养计算机本科应用型人才的专业能力出发,对计算机本科专业的课程体系结构进行改革,将课程体系设置成5个模块,分别是“公共必修课程”模块、“公共选修课程”模块、“专业必修课程”模块、“专业选修课程”模块和“实验与实践课程”模块。其中,公共必修课程主要为培养学生的世界观、价值观和计算思维等能力服务;公共选修模块课程主要培养学生的人文与艺术、教育与心理学、教学技能等方面的修养与能力,为学生毕业后从事教师工作服务;专业必修课模块主要培养学生的专业基础知识、基本原理、算法分析与编程、系统设计的基本方法和能力;专业选修模块又设置“软件开发与软件外包装方向”、“网络技术方向”、“多媒体技术方向”、“嵌入式系统方向”4个不同的专业方向,让学生根据自己不同的兴趣爱好和不同就业意向选择不同的方向课程,培养学生基本操作能力、编程能力、系统综合开发能力;实践类模块课程包括课程实验、课程设计、综合设计、系统开发实训、专业实习、毕业设计等课程,主要培养学生办公软件使用、计算机组装与维护、网络布线、组网等基本操作能力,算法设计与编程能力、系统综合开发能力。

5.1.2加强实践类课程的教学

除了对课程体系结构进行改革之外,我们还对理论课程与实践课程的课时量(学分)进行修改,把理论课程与实践类课程的学分比从原来的67∶23调整为49∶41,将实践课程的学分提高到与理论课程接近1∶1的程度,并根据学生的实际情况和社会需求,加强了实践类课程的教学与训练,增加了基本操作类课程、案例教学与综合开发实训等课程,以提高学生的实践动手能力和软件系统开发能力。

5.1.3教学内容的改革

通过课程及教学内容的改革,培养学生的编程能力和团队合作精神。主干课程除了适当更新教学内容以外,主要在于增加选修课程的数量,并根据目前流行的软件开发工具,从两个系列开设程序设计课程。一个系列是微软平台的开发工具,如C、C++、C#、ASP、.NET等开发语言,一个系列是以Java为基础的跨平台开发工具,如Java、JSP、J2EE等开发语言。改变以往只注重开设微软平台开发工具的做法;学生通过选修某一系列的课程,以适应软件开发企业不同的需要;增加小组开发过程等团队协作课程,提高学生的团队合作精神。

5.2理论教学培养学生计算思维和算法设计分析能力

计算机应用型人才必须具备牢固扎实的专业基础知识和基本理论,掌握好本专业的基础课程和专业主干课程,形成较为完整的专业知识结构体系,构建基本的计算思维和算法分析能力,具备解决实际问题的专业思维、方式、方法和能力。

我们通过开设高等数学、离散数学、线性代数、概率论与数理统计等课程,培养学生的计算思维,使学生具备建立数学模型和解决实际问题所必备的数学知识和抽象逻辑思维能力。通过开设高级语言程序设计、数据结构、面向对象程序设计、算法设计与分析等课程,有针对性地培养学生掌握算法设计与分析的方法,使学生熟练掌握常用算法、掌握算法设计与分析的方法和步骤,并通过教学加大学生的读程和编程量,提高学生的读程和编程能力。通过开设数据库原理及应用、软件工程、信息系统设计与管理、网站设计、网页设计、网络编程、数据库编程、系统案例分析、小组软件工程等课程,加大学生综合系统设计开发,使学生掌握中小型软件系统的架构、算法分析和设计能力,掌握软件系统分析与设计的方式方法,提高学生综合系统编程能力。

5.3实践教学培养学生的专业能力和技能

1) 基本操作能力的培养。从多年计算机本科专业毕业生就业情况来看,计算机毕业生的就业行业面广、要求学生的专业能力层次多样。但是,最基本的就业要求,就是要求学生能够熟练掌握计算机的硬件和软件的基本操作。然而,我们培养的专业学生很多却达不到这样的要求。为此,通过开设计算机基本操作实践课程,培养学生熟练掌握办公软件的使用,使学生能够从事文员及简单的数据处理工作;熟练掌握计算机的组装与维护,使学生能够从事计算机硬件的安装和计算机系统的维护,适应计算机销售公司的需要;熟练掌握网络布线、局域网的组网、网页制作、网站建设与管理,使学生能够从事网络安装、建设与维护工作;熟练掌握某一行业的应用软件,使学生能够从事该行业的应用软件系统的使用、管理以及二次开发工作。如开设的Photoshop、Flash、AutoCAD、用友财务软件等课程,学生通过选修Flash课程,熟练掌握Flas的制作,就可以应聘于游戏制作企业、新闻广告公司、网络管理机构、学校的课件制作中心等单位。我们通过开展科技活动月等活动,开展汉字录入比赛、计算机组装比赛、网络布线与组网比赛,提高学生的计算机硬件和软件基本操作能力。

2) 算法分析与编程能力的培养。通过开设C语言程序设计课程实验,使学生掌握基本的编程基础以及模块化的程序设计理念,学会基本的算法分析与设计;开设数据结构课程实验,使学生掌握解决实际问题中数据结构如何设计与存储,算法如何分析、设计与实现;开设数据原理及应用实验,使学生掌握数据库的建立及编程操作;开设面向对象语言实验,使学生掌握当今面向对象软件系统开发所使用的语言,学会建立面向对象软件系统的前台;开设网络编程和网络数据库编程实验,使学生掌握面向Internet的C/S模式或B/S模式应用软件系统的开发,尤其是使学生学会建立软件系统的前台与后面的连接与访问操作;开设软件工程实验,使学生掌握开发软件系统所需要经历的步骤以及每一个阶段所要做的工作。我们还通过开设设计性和综合性的实验、课程设计等实践活动,训练学生的编程,要求学生编程量至少要达到20 000行以上,以提高学生的编程能力。通过组织学生参加系级的、校级的、省级,甚至部级的程序设计大赛等形式,提高学生的算法分析和编程能力。

3) 系统综合开发能力的培养。开设面向对象课程设计,使学生能够使用面向对象语言设计一个比较完整的软件系统的界面及各模块功能程序;数据库课程设计,使学生能够根据解决问题建立软件系统的后台数据库;软件工程课程设计,使学生根据所建立的软件系统,编写完整的系统开发各阶段的分析与设计文档,并编程测试、运行;系统设计与开发综合实训,以软件系统案例的形式进行实训,使学生能够综合自己所学的语言、数据库等技术开发一个B/S软件系统,或建立一个网站;嵌入式系统课程设计,使学生掌握嵌入式系统的开发。通过实习和毕业设计等教学环节,培养学生综合运用专业知识和专业技术的能力,提高学生软件系统综合设计和开发能力。

4) 项目驱动的软件系统开发实践,培养学生综合开发能力。从2005年开始,我们制订并实施“两个一”工程实施方案,即每个学生在毕业前学会开发“一个”软件系统、学会建立“一个”网站,并从此开始了项目驱动的软件系统开发实践活动。为顺利有效执行此次活动,我们制订了“两个一”工程的管理条例与奖励措施、导师制实施方案,建立学生选导师系统,建立学生实习实训基地等,为活动的顺利开展奠定基础。从2005―2009年已有多个年级共450多名学生、教师80多人次参与该项活动,开发了450多个功能比较完整的简单系统和网站,一些学生开发的系统或网站达到了比较高的水平。多年来,该方案得到顺利有效的执行,取得了较大的成效,切实提高了学生的综合系统开发能力。

多年来,我们通过对计算机本科专业的教学计

划、课程教学体系结构、课程设置、课程教学内容、实践教学、教学方法与手段等多方面的改革,采用多种培养方法和途径,有效提高了计算思维、计算机基本操作、算法分析与编程、系统综合设计开发等计算机本科应用型人才的专业能力。“两个一”工程活动实践表明,我们培养计算机本科专业应用型人才的专业能力方法和途径是可行而有效的。

4结语

大多数IT企业选拔人才看重的是应聘者的实际操作能力和开拓能力,他们所需要的是计算机应用型人才。我们培养的毕业生,虽然掌握了比较扎实的基础理论知识和简单的技能操作,但是还无法达到用人单位的要求。我们通过对信息社会对计算机应用型人才的需求以及学生专业能力现状进行分析,提出培养计算机本科应用型人才专业能力的一些方法,并取得了一定的成效。但是,信息技术的迅猛发展以及国家信息化工作的不断深入,都要求我们动态地跟踪IT企业对计算机应用型人才专业能力的要求,不断改进和完善培养计算机本科应用型人才专业能力的方法,以适应市场对计算机应用型人才的需要。

参考文献:

[1] 王志英,蒋宗礼,杨波,等. 计算机科学与技术专业实践教学体系与规范研究[J]. 中国大学教学,2009(2):42-44.

[2] 高等学校计算机科学与技术专业教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006:13-25.

[3] 王志英. 计算机科学与技术专业实践教学体系研究[J]. 计算机教育,2008(3):18-20.

Training on Professional Ability of Undergraduate Computer Application Talent

LI Wenjing, LIU Zhijia, BI Yingzhou

(College of Computer Science and Information Engineering,, Guangxi Teachers Education University, Nanning, 530001, China)

计算机与编程专业范文第3篇

计算机科学与技术本科生的基本学科能力可以归纳为计算思维能力、算法设计与分析能力、程序设计论文与实现能力、系统能力[1]。其中计算思维能力是指模型化、抽象思维能力、逻辑思维能力。系统能力是指计算机系统的认知、分析、开发与应用能力,也就是要站在系统的观点上去分析和解决问题,追求问题的系统求解,而不是被局部的实现所困扰。算法设计与分析能力、程序设计能力是计算机类专业学生应该具备的基本能力之一,是从抽象思维到具体应用方法的转换,涉及到阅读判断、思考分析、抽象综合、表达创造等多项能力,对计算机专业高素质人才的培养不可或缺。 

从目前社会对计算机专业人才的需求来看,高校在培养学生的程序设计、算法设计与分析能力上所作出的努力还远远不够。本文探讨了计算机专业学生在程序设计、算法设计与分析方面存在的主要问题,给出了在课程与实践中提高学生的程序设计、算法设计与分析能力的具体措施。 

1 现状与问题分析 

近年来,企事业用人单位较普遍的反映是计算机类毕业生的实际应用知识、动手能力和程序设计开发经验严重不足,尤其是程序设计能力、算法设计与分析能力无法达到用人单位的要求。这不仅影响学生就业,更阻碍了其进一步发展与自我提升。 

我们归纳了问题的主要原因。一是学生对于有关程序设计及算法的知识仅仅停留在了解的程度上,未能融汇贯通,进而应用这些知识解决实际问题。二是教师在讲解程序设计、算法设计与分析的相关知识时,并没有将理论与实际有机的结合。三是实际教学过程中并未对学生进行真正的软件项目开发训练。四是对第一门程序设计课程的教学不够重视。五是学生的数学基础差、逻辑思维能力弱,阻碍了学生进一步设计算法和分析算法。 

2 程序设计、算法设计与分析能力培养的具体措施 

教育教学工作应该以学生为主体,同时充分发挥教师的引领、指导作用,二者有机结合,才能充分调动学生的学习积极性和主动性,从而达到最佳的教学效果。因此本文以“学生为主体,教师为主导”这一思想为指导,结合本校的实际情况,以及教师在教育教学工作过程中遇到的问题和广大学生的反馈,从以下四个方面探讨教育教学改革的措施。 

2.1 调整课程设置和教学目标 

用计算机求解一个实际问题,首先要从这个实际问题中抽象出一个数学模型,然后设计一个解此数学模型的算法,最后根据算法编写程序,以便调试、编译、连接和运行,从而形成该问题的解。从实际问题中抽象出一个数学模型的实质,其实就是要用数学方法抽取其主要的、本质的内容,最终实现对该问题的正确认识。设计出解决问题的算法后,要清楚地知道算法的优劣处,如果是好的算法则不必对其怀疑而再浪费时间进行研究;如果不是好算法则应再进行改进。而如何知道算法的优劣,则需要学会分析算法。算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。编程就是设计程序,用计算机来解决问题。 

与数据结构和算法设计相关的课程较多,其中三分之二以上的专业课都需要学习编程,主要是提高学生编程能力和算法分析能力。对于本科生来说,这些课程的重要性是不言而喻的。如果掌握不好则会阻碍他们对编程能力乃至对计算机系统的认识和理解。因此,应该从课程的意义出发,以提高学生的编程能力和算法设计与分析能力为目标,结合计算机专业的特点与教学实际情况,将“C语言程序设计”、“面向对象程序设计”、“离散数学”、“数据结构”、“算法设计与分析”、“网络编程”、“Windows编程技术”、“操作系统”、“计算机网络”、“编译原理”和“数据库技术”等几门课程有机地结合起来,并充分利用它们内在的联系优化授课的顺序与内容,为学生提供一套以编程能力和算法设计与分析能力为中心的教学体系,为学好相应的课程打下坚实基础[2]。

“C语言程序设计”和“离散数学”作为计算机专业学生较早接触的两门课程,应该为后续专业课的学习打好基础。C语言是学生在大学接触的第一门编程语言,教学中应该重点介绍程序设计思想,并培养学生的逻辑思维能力、抽象能力、编程习惯,而不是一味地强调C语言的语法特性。同时,“C语言程序设计”这门课也为后续的数据结构、算法设计与分析课程做好实践上的铺垫。“离散数学”的概念、理论及方法应用于计算机科学与技术的诸多领域,并大量出现在“数据结构”、“数据库系统”、“编译原理”、“算法设计与分析”、“计算机网络”等专业课程中。此外,离散数学所提供的训练十分有益于学生的逻辑推理、抽象概括及归纳构造能力的提高,十分有益于培养学生严谨、完善、规范的科学态度。 

通过“数据结构”课程,使学生了解数据对象的特性,学会数据组织的方法,以及各种类型数据的处理方法,同时培养学生良好的程序设计技能。“算法设计与分析”课程重点讲授分治法、贪心法、动态规划、回溯法、分支限界法,培养学生分析问题和解决问题的能力,使学生掌握算法设计的基本方法,熟悉算法分析的基本技术,并能熟练运用一些常用算法。“操作系统”、“计算机网络”、“编译原理”和“数据库技术”都是对前面学习到的一些基本的数据结构和算法的具体应用,再加上一些相关领域的专业知识。 

在“操作系统”教学中,让学生了解操作系统的一些基本概念,如:进程和线程、虚拟内存、死锁等,并按操作系统的五大功能分模块进行介绍。通过相应实验帮助学生理解重要概念,如通过实现“银行家算法”让学生明白进程间的通信过程、模拟LRU算法了解页面如何置换,通过实验使学生更加深刻地理解有关概念[3]。对于“编译原理”这门课,由于其理论性较强,在教学过程中应该尽量多与实验相结合,在课堂上比较难理解的内容,例如词法分析中的有限自动机内容或语法分析中LL(1)文法的理解等等,都可以通过与实验结合来促进对课堂内容的理解,可通过完成词法分析器的实验了解编译器如何把输入的源程序转化为单词符号串。 

2.2 加强实验性课程教学 

计算机专业相关的课程总体来说理论性比较强[4-5],开设实验性课程有利于学生通过自己的实际操作加深对课堂知识的理解,同时强化编程能力、算法设计能力和创新能力。许多课程都有上机编程实验内容,如“C语言程序设计”、“面向对象程序设计”、“数据结构”、“算法设计与分析”、“Java程序设计”、“操作系统”等课程,都要求学生完成一定数量的设计性,完成验证性实验。我们设立了工程与学术实践、计算机软件课程设计、独立实验课程以及毕业设计等实训科目,坚持编程实践四年不间断。 

实验贯穿于理论、抽象和设计过程;实验对软件的设计和实现、测试原理和方法起示范作用;实验不仅是对理论的验证,也是技术训练和能力培养,包括动手能力、分析问题解决问题能力、表达能力、写作能力等。教学活动是教师和学生不断交流的过程,实验是实现这个过程的桥梁,可以弥补课堂教学的不足,加深对理论过程的理解,启发学生深入思考,敢于创新,理论联系实际。 

例如“编译原理”课程是计算机类专业的一门重要专业课。设置该课程是让学生学习编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,使学生通过学习既掌握编译理论和方法基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原理是一门理论性和实践性都比较强的课程。实验的目的是加深学生对课堂知识的理解,掌握几个主要编译阶段的处理方法,增强实践能力,能完成初步设计、编制和调试编译系统。 

实验一词法分析器构造,通过对给定源语言词法分析程序的设计,加深对词法分析原理的理解,掌握源语言的接受、存贮、预处理和扫描分析,生成正确的单词符号串二元式序列。实验二语法分析器构造,借助于词法分析程序提供的分析结果,编写一个算符优先语法分析程序,程序能进行语法结构分析和错误检查并产生相应的归约信息。同时给出出错信息和错误类型,从而加深对语法分析的理解。进一步设计实现球类描述语言词法分析、语法分析实验(扩展实验),根据球类比赛技战术分析的需求,设计的解释器由词法器、语法器和语义分析模块三部分组成,词法分析器负责词法分析的预处理和输入单词的解释;语法分析负责输入码的语法结构检查和解释;在词法和语法分析器基础上,语义分析模块负责比赛技战术的分类与统计工作。 

本校开设了“程序设计专题训练”、“计算机网络专题训练”、“操作系统专题训练”、“数据库专题训练”、“软件测试技术”、“嵌入式技术”等实践课程。如“程序设计专题训练”课程是C程序设计课程后续的训练课程,针对程序设计中常见问题,以专题形式进行训练。通过该课程的学习,使学生能深入理解C语言特性,掌握基本程序设计方法,学会常见问题的处理技巧,提高程序设计能力,为后续专业课程的学习打下良好基础。又如“操作系统专题训练”课程重点提高学生对操作系统的实际操作能力,使学生了解和掌握在Windows、Linux操作系统上运行的应用服务,对操作系统与外部接口(shell)有更深入的了解和认识。 

为了能切实提高学生的编程水平和算法设计与分析能力,我们开设了“项目管理实践”、“软件课程设计”、“企业实训”、“学术与工程实践”等实践课程,如“项目管理实践”课程培养学生参与大型软件项目开发的基本能力,使学生能够熟练掌握软件开发环境使用和软件开发的基本方法,为毕业设计和就业提供了必要的技能训练。按照5-8人的规模成立软件开发项目组,以开发一个软件项目作为实训的主线;项目经理由学生担任,项目成员的角色由项目经理根据各成员的技能来确定;由实训方提供项目的用户需求,并且确定要开展的软件工程活动和管理活动及项目里程碑;根据开展的软件工程和管理活动,提取出一些关键知识点,以案例的方式进行项目培训,并将其用于项目开发的实践中,其中案例来自实际开发的软件和系统集成项目。 

2.3 紧跟时代变化,实现多模态教学

首先重视教学内容的时效性,教师在教学过程中,不仅仅着眼于所选用的教材,还应融入前沿思想、技术和一些交叉学科的内容。例如在“编译原理”课程的教学中,不局限于一种语言,而应该选择多种不同体系结构的编程语言进行介绍;又例如可以选择C语言、Ruby、Python,甚至是苹果最新推出的Swift语言,通过比较这些语言的不同特征,给出其在编译过程中的各自特点,从而使学生对编译程序所做的工作有更加清晰透彻的了解。在“数据结构”、“面向对象程序设计”这类课程的教学中,可以多介绍一些国内外的文献、最新应用等,从多种不同角度引导学生程序阅读及编程的兴趣。这就要求教师关注计算机及电子信息产业发展研究的最新内容,并及时将这些新内容融入到教学工作中。 

其次,重视教学方式的时效性,培养学生程序阅读能力、编程能力,其手段要紧跟时代步伐。充分利用互联网时代的MOOC,如北京大学的MOOC、浙江大学的MOOC、本校的MOOC等,将原先只能在电脑上或书本中的程序放在手机上,使学生可以随时随地从手机端进行学习。学生课外可以利用北京航空航天大学实验类MOOC的计算机网络实验课程、移动计算两门课程,通过计算机网络实验课程,了解网络基本原理,远程配路由器、交换机,组一个小的网络,掌握基本的网络故障排查方法。通过移动计算即Android编程,MOOC已经搭好大的框架,教学生编写小的app程序,并将编写好的代码嵌入到框架中。 

通过促进在计算机系本科教学工作中多模态教学模式的实现,可以将原先计算机专业教学以课堂教学为主、课下上机实验为辅,其余全靠学生自觉学习的格局,转化为课堂教学为主导,智能端随时学习为辅,课下上机实验为监督检测的新格局。这样的格局摒弃了过去教学只能在课堂进行的成见,给予学生更多的学习自由,可以有效提高学生的程序设计、算法设计与分析能力,同时节约课堂时间,教师在课堂中能够有更多时间讲解一些更加实用的难以从书本中直接获得的知识。 

2.4 注重对学生学习态度的引导 

在对计算机系学生的调查中发现,后进生大多有“畏难”情绪。他们往往还未开始编程,就对自己的能力进行主观否定,这种特征在调剂生身上表现得较为突出。对于这种情况,教师在课堂上如果只单方面强调知识的重要性,甚至直接点出考试及格的重要性并不会对这类学生思维模式的转变有好处。教师在教学过程中,常常会不自觉地将自己体验过的应试竞争态度带入教学工作中,具体表现为:过于强调考试分数,为了提起学生的听课兴趣甚至以考试题型作为诱饵,经常强调奖学金和保研问题,整个教学工作围绕着考试等。这其实都是不正当的竞争指引方式,只会增强学生的厌学心理。 

因此,计算机专业讲师在教学过程中,应格外注重对学生学习态度的指引,特别是在代码类课程的教学过程中,教师不应根据自己多年的代码编写经验来对代码进行讲解,而是应该想象自己是这种代码的一名新学生,对这类代码一无所知的情况下,可能会从哪里入手进行理解。与其说“这门课挂科了,你毕业就有危险”,不如说“学会写代码,你就可以自由驾驭整台计算机”;与其说“这种数据类型期末考试一定会考”,不如说“你玩的泡泡龙中,屏幕上的泡泡就可以用这种数据类型来写”。在教学中注重引导学生的学习兴趣,激发学生的学习热情和探索精神,真正做到以学生为本,从学生的角度理解教学,才能在教学工作中正确指引学生的学习态度,达到最佳教学效果。 

3 总结 

计算机科学是一门具有创造性意识活动的学科,计算机本质上是一个程序的机器,只有那些真正懂得程序的人才能懂得计算机。因此程序设计能力、算法设计与分析能力是一名合格计算机类专业的毕业生必须具备的两大基础能力。本文给出的具体措施,有效提高了学生的编程能力、算法设计与分析能力,以及分析和解决实际问题的能力,有利于培养经济社会发展急需的信息产业人才。 

计算机与编程专业范文第4篇

【关键词】李克特量表 计算机编程 态度 性别

前言

相关研究表明,近十年中选择计算机专业课程学生的数目一直持续下降,同时社会对合格程序员的需求却不断增加,造成具有良好编程素质专业人才短缺的局面。其中一个客观原因是由于本科计算机专业学生的编程学习效果不佳,导致学生对编程开发的态度消极。因此,研究计算机编程学习效果的影响因素是计算机科学教育的一个重要问题,直接影响到计算机专业的教学。

1. 研究对象和方法

研究目的:探索大学生态度和性别与计算机编程学习成绩之间的关系。

研究对象:长沙学院179名(85名女性,94名男性)学习计算机编程C语言的在校大学本科计算机专业学生。

研究方法:李克特量表是目前调查研究中使用最广泛的量表,可直接反映出被调查者的认同程度。本次共设计与计算机编程学习相关的47个选项构建李克特量表,每个项目可选择:“非常同意”“同意”“既不同意也不反对”“不同意”和“非常不同意”。为量化测量值对答卷重新编码为1到5的数值,这样高分反映积极态度,反之亦然。

研究者:由长沙学院计算机科学与技术系两位教授设计问题选项,11名学生(4名女性,5名男性)监督完成答卷以确保被调查者了解每一个项目的预期含义。

2. 计算机编程学习效果的影响因素分析

根据Erodogan和Kabaca的研究,计算机专业大学生作为一个基于认知,情感和行为的信息受众集体其个人信心(态度)对学习效果有着明显影响。计算机专业的学生一般在本科学习的第三学期进行计算机编程的入门学习。

3. 调查结果

在对编程态度和性别之间的相关性研究中,学生性别对编程态度的影响经计算平均得分为3.59(Xmin=1.66, Xmax=4.94, б=0.645)。可知学生对待编程的态度普遍比较消极,同时男性对编程态度的积极性明显高于女性,如表1所示:

从表2可知,四个分量表中除对编程学习成功的态度没有显著差异以外,在其他的三个分量表中男生表现出更积极的态度。

编程的态度和编程的成就之间关联度是一个关键问题。为研究这个问题,特别做了编程效果与平均PAS(皮尔森)值相关性分析,结果如表3所示:

从表3可知,学生编程的态度与他们学习编程入门的课程之间有明显的相关性。其中相关性最高的是对学习编程会带来成功的信心。另一方面,对成功的态度与学习计算机编程并没有特别的关联,这其中相关性最低的就是对编程有用性的感知与在编程方面获得的成就之间的关系。因此16.7%的学生对编程态度的变化归咎于他们的信心、动机和对计算机程序设计有用性的感知。

4. 调查结果分析

综上所述,在计算机编程教学中学习态度和学习效果呈正相关关系,同时女性在计算机编程中参与程度较低,这与一般情况下女性在计算机专业的入学率非常低而且女性较男性对电脑负面态度更多是一致的。

关于学习态度的研究一直是教育学研究的重要问题之一,学生的主体态度是决定教学方法和教学材料设计时要考虑的一个重要因素。本研究中调查的47个项目有35项涉及编程态度,以反映学生对计算机编程的感受和看法。调查结果表明,学生的平均态度得分与编程入门课程及格之间显性相关(r= 0.443,P

5. 结论

本次研究结果有一定的局限性,主要体现在调查科目与测试样本相对较小,相关研究可参考科斯特洛和奥斯本对因素分析的相关文章。另一个局限性是被调查者可能受到不同班级与授课老师的影响。这些问题均应被包括在进一步的研究中。

计算机与编程专业范文第5篇

关键词:编程能力;软件能力;课程体系;实践教学体系

0 引言

可持续发展教育观认为知识、能力、素质是构成现代教育三方面的内容。高等教育应该是以能力培养为中心的教育,要围绕能力的培养来实施教育教学。本科生的能力包括较强的学习能力、创新能力和专业能力。

对计算机科学与技术专业的本科生来说,能够编写规范的程序代码是最基本的专业能力,但从社会的需求来看,计算机专业人才仅具备良好的编程能力远远不够,还应该具有软件系统开发等各方面的能力。软件开发的复杂性要求从事开发的人员能站在系统的全局角度看问题,并用工程化的方法分析、解决问题,也就是我们所说的软件能力。一直以来,由于计算机科学与技术专业的性质和认识上的局限性,教学上一般比较侧重对学生编程能力的培养,而对软件能力的培养重视不够,使得不少学生存在着软件开发就是编写程序代码的错误观点,或者意识到了软件能力的重要性,却缺乏软件开发必须具有的工程观、系统观。

编程能力与软件能力之间存在着密切的关系:编程能力是计算机人才应该具备的最基本的能力之一,也是软件能力形成的基础;而软件能力是真正能满足社会需求的能力,是一种更高标准的要求,能促进编程能力的提高和完善。我们在教学中,不仅要注重学生的编程能力培养,还要有目的地培养学生的软件能力,这不仅符合计算机专业培养要求,也符合社会对计算机人才的要求。而能力培养不是一两门课程或一两个教学活动就可以实现的,需要一个“养成”过程,必须循序渐进,用明确的系列课程构成相应的训练系统,使学生在修养中形成一些良好的学科习惯,潜移默化地养成学科优秀人才所要求的能力。因此,针对计算机专业的特点,以这两种能力的培养为目标,我们在理论课程体系、实践教学体系建设等方面上做了一些研究和实践。

1 理论课程体系的构建

按照能力培养的要求,课程应该是成系列的,是有利于各种专业能力逐渐形成的渐进系统。针对编程能力和软件能力,我们分别构建了两种相应的理论课程系列:编程能力培养系列课程和软件能力培养系列课程,如图1所示。编程能力培养系列课程侧重于培养学生掌握本学科要求的计算思维方法、算法设计策略和技术,能够熟练应用至少一门高级程序设计语言,具有良好的代码编写习惯,此外还要具备面向对象思维能力;而采用工程的概念、原理、技术和方法来开发与维护软件是软件能力的体现,因此是软件能力培养系列课程的侧重点。这两大课程系列形成一个渐进系统,帮助学生完成由编程能力到软件开发能力的提升。

从编程能力提升至软件能力是一个循序渐进的过程,因此这两个系列中的多门课程之间,知识上既有前导后续的关系,程度上也有迭代式加深的关系,甚至可能有些课程部分内容是重叠的,需要教师清楚该课程在整个能力培养体系中所处的地位,从而在教学内容选择上各有侧重,在教学要求上各有不同。

1.1 编程能力培养系列课程

针对编程能力的培养,我们进行了以下4个系列课程建设,分别是计算思维能力培养系列课程、算法系列课程、程序设计与实现系列课程、面向对象设计理念培养系列课程。

计算思维能力包括形式化、模型化描述和抽象思维与逻辑思维能力等。此系列的课程主要由一些数学类和计算模型类的课程组成,包括高等数学、离散数学、线性代数、工程数学、计算思维与问题求解、形式语言与自动机等。对一般本科生而言,计算思维能力难以在短时间内养成,需要一个渐进过程:由单一具体的实例计算,迁移到一般的、形式化的类计算/模型计算,实现思想境界的变化。在时间上,需要适当延长数学类课程的教学周期,将连续数学、离散数学、类计算/模型计算3部分内容按阶段分开安排,从第1学期一直延续到第6学期。

算法对于计算机专业的本科生是非常重要的。算法系列课程主要帮助学生建立算法的慨念,掌握算法设计策略和技术,并具备算法分析能力,主要有数据结构与算法、Matalab与数值计算等。

程序设计与实现能力要求学生至少掌握一门高级程序设计语言的基本思想和方法,具有分析、学习和实现高级程序设计语言的能力,主要包括编译原理、高级语言程序设计、数据库系统等课程。如高级语言程序设计课程c语言,能使学生掌握基本的编程基础及模块化的程序设计理念。

如今面向对象的编程是主流,无论使用何种面向对象的语言,其精髓都是面向对象的思想,因此掌握面向对象思想比掌握语言本身更重要,如对继承、多态、重载等面向对象概念的理解,对面向对象基本原则的掌握等。面向对象设计理念培养系列课程包括面向对象技术引论、面向对象语言程序设计等。

1.2 软件能力培养系列课程

学生的软件能力主要体现在对软件系统的认知、分析、开发与应用能力上,既要具有系统的眼光和观点,对系统结构、部分与整体、不同级别的抽象等有深刻认识,也要具有工程的知识,了解工程的概念、原理、技术和方法,以及这些在软件开发维护中的重要作用。对此我们进行了以下3个系列课程建设,分别是软件工程系列课程、系统开发系列课程、工具软件应用系列课程。

软件工程系列课程包括软件工程导论、高级软件架构、UML模型分析、软件测试、软件成熟度模型CMM等。通过这些课程的学习,学生能深刻理解软件工程概念、原理和技术方法,熟悉软件开发周期中每阶段的任务,包括需求分析和建模、软件设计和实现、软件评审与测试、人机交互界面设计、软件项目管理等,并认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

系统开发系列课程侧重于项目开发,强调抽象与高级实现。有面向对象应用程序开发项目、电子商务应用程序系统开发项目、使用XML的企业应用开发、Web设计与编程、现代电子系统设计、CRM客户关系管理系统。通过某些行业领域较大型的项目开发树立学生的整体观,培养学生的系统眼光,使他们学会考虑全局,按照分层模块化的基本思想,站在不同的层面上把握不同层次上的系统。

了解和善于使用工具软件能帮助开发者提高工作效率,改进工作质量,工具软件应用系列课程除了包括与软件开发密切相关的软件工程CASE工具,还包括了一些通用软件应用课程,如办公自动化、多媒体技术与应用等。

2 实践教学体系的构建

实践教学是培养学生能力的另一个重要环节,实践教学体系是一个与理论课程体系有机结合,又相对独立的完整体系,贯穿于人才培养的全过程。要将实践教学体系作为一个系统来构建,适当地追求系统的完备性、一致性、健壮性、稳定性和开放性。按照能力培养循序渐进的原则,我们以理论课程体系为基础,从夯实基础、提高能力、面向应用3个层次上,构建了两种能力的实践教学体系,如图2所示。图中灰色进度条代表各个实践教学环节对编程能力和软件能力培养的覆盖范围。

课程实验是对应于某一门课程设置的,实验内容与该课程理论教学内容紧密结合,侧重学生对课程各个知识点的掌握,规模一般比较小。设置了实验的课程有数据结构与算法、高级语言程序设计、数据库系统、编译原理、多媒体技术等。

课程设计更强调综合性、设计性,复杂度也高于课程实验,是引导学生将知识用于解决实际问题的第一步。我们将课程设计分为两种:一种是要求学生独立完成的,如程序设计课程设计、数据结构与算法课程设计、编译原理课程设计等;一种是以小组为单位完成的,如数据库原理课程设计、软件工程课程设计等。后者比前者规模更大,从工程化的角度出发,强调小组成员分工合作。

将实践教学活动扩展到课外一方面可以补充教学总学时的不足,更可以让学有余力的学生进一步仔细、深入地研究问题、解决问题。因此,我们鼓励学生参加各种课外实践活动,如组织学生参加省级、部级的各种学科竞赛,组成多个兴趣小组,参与各种社会技术服务等。

多门课程的综合设计一般放在高年级,由系统开发系列课程中的某一门牵头,如电子商务应用程序系统开发项目或CRM客户关系管理系统等,给出多个可供选择的题目,学生根据情况选题。多门课程的综合设计规模更大、对学生要求更高,通常涉及多门课程知识,既需要程序设计、数据库知识,也需要软件工程知识,还要了解某些行业领域的专业知识,比较接近社会的实际需要。

生产实习通过让学生直接接触专业生产实践活动,能在一定程度上让学生从社会科学研究和生产实践中体验需要学什么,并真正能了解、感受未来的实际工作。生产实习一般安排在专业课学习期间,或者课程学习结束后毕业设计之前。对于大四的学生,甚至可以将生产实习与毕业设计有机结合,缓解毕业设计时间不足的问题。

毕业设计在整个实践教学体系中综合性最强。学生进行毕业设计时,已经完成整个教学计划中所有课程的学习,完成其他各类实践。它承担着培养学生综合应用所学知识和掌握的技能,分析和解决实际问题、独立工作、团队协作等能力的任务。同时对学生在4年学习中所获得的知识掌握情况、学习和接收新知识和新技术的能力以及解决实际问题的能力进行检验。

整个实践教学体系体现了循序渐进的要求,既有基础性的验证实验,也有设计性和综合性的实验或实践环节,在规模上有小、中、大,难度上有低、中、高;内容上既有基本要求,还有更高要求,并通过更高要求引导学生进行更深入地探讨,体现实验题目的开放性。另外还强调实践环节与实际的紧密结合。

3 结语

编程能力和软件能力是计算机专业本科创新人才必备的能力,也是他们未来职业生存和发展的基础。加强学生程序能力和软件能力的培养不仅符合计算机专业对人才专业能力的要求,而且也满足就业市场对人才专业能力的期望。

研究不仅有益于信息科学技术学院计算机人才专业能力培养模式的创新,一定程度地丰富计算机教育领域关于人才专业能力培养的理论认识,而且在提高学生程序能力、软件能力,提升学生专业素质和社会竞争力上有着十分重要的现实意义。

参考文献:

[1]张海藩.软件工程[M].5版.北京:清华大学出版社,2008:5.