第1页共13页南京大学软件工程专业本科生培养方案与教学计划(2005年6月1日修订)软件产业作为信息产业的核心是国民经济信息化的基础,已经涉足工业、农业、商业、金融、科教文卫、国防和百姓生活等各个领域。采用先进的工程化方法进行软件开发和生产是实现软件产业化的关键技术手段。因此,为积极促进我国软件产业发展,增强其国际竞争力,加速我国信息化建设,急需培养大批软件工程领域的实用型、复合型软件工程技术人才和软件工程管理人才。为促进南京大学软件工程专业本科生在入学、培养、毕业和学位授予等环节的规范化,确保培养质量,根据教育部有关要求,依据南京大学有关本科生培养的规定,特制定本方案。本方案作为南京大学培养软件工程专业本科生的指导性文件,规定其培养目标、方向和要求,以及培养对象、方式及学习年限,并就其课程设置、课程修读和学位论文要求等给出指导性意见。一、培养目标、方向和要求1、培养目标软件工程专业本科生的培养目标是针对国民经济信息化建设和发展的需要,面向软件产业界对软件工程技术人才的需求,培养具有国际竞争能力的多层次复合型软件实用人才。作为一名合格的软件工程专业本科毕业生,应当符合国民经济信息化建设和发展需要,以及软件企业对软件工程技术人才需求,能够成为企业所需要的较高层次的软件工程技术和管理人才,其基本能力应当达到(具有国际水准的)程序员、高级程序员、软件工程师、以及项目质量管理人员的水平。2、培养方向软件工程专业本科生培养的基本思路是强化基础、注重实践。针对软件产业的人才需求,本科生阶段强调宽口径培养,不具体细分专业培养方向,但考虑专业课程模块设置,从而使得毕业生既具备扎实的基础和宽广的知识面,又较深入地认识某类软件系统和应用领域。软件工程专业的基础课程应涵盖软件基础,软件工程基础,数学、工程与职业基础。软件工程专业的专业课程应覆盖软件设计开发、软件过程与管理、计算机网络、数字化技术、信息安全技术、嵌入式软件、信息系统、图形系统等。3、培养要求1、软件工程专业本科毕业生应较好地掌握马克思主义、毛泽东思想和邓小平理论;拥护党的基本路线和方针、政策;热爱祖国,遵纪守法,品行端正,身心健康,具有良好的职业道德和创业精神,积极为我国经济建设和社会发展服务。2、软件工程专业本科毕业生应具备科学的世界观,掌握科学方法;掌握扎实的软件基础理第2页共13页论知识和较宽广的软件工程专业知识,具有技术创新能力;受到良好的软件工程训练,具有较强的工程实践能力和团队协作能力;熟悉软件应用和工具,具备运用先进的工程化方法、技术和工具从事某一应用领域软件分析、设计、开发、维护等工作的能力。3、软件工程专业本科毕业生应达到基本的数学和语言要求;熟练掌握英语,具备良好的阅读、理解和撰写外语资料的能力和进行国际化交流的能力;拥有较好的沟通技巧和团队工作能力,通晓和遵守法律和职业道德。人才还应具备以下的一般特征:对软件系统、计算机系统、信息系统乃至与计算机软件相关的社会系统具有系统级的认识能力;有扎实的理论基础,能够全面通晓计算机软件和软件工程的基础知识,较深入理解至少一个计算机软件应用领域;有较强的动手能力,能够具有一定的系统分析和软件设计的能力,熟练使用两种以上主流的操作系统、数据库管理系统和程序设计语言,做到理论与实践相结合;能够合理认知软件科学与技术中的重复概念;有实际项目的工作经验;具备自学习的能力以适应软件技术的快速变化,能够通过自学的方式在较短时间内掌握系统软件的使用;具备综合应用各类方法、技术和工具,运用工程方法解决复杂性软件问题的能力;具备语言、交流、写作等基本的软件从业能力,认同现行的法律、道德和伦理。二、培养对象与入学要求1、培养对象软件工程专业本科生面向全国招收应届高中毕业生,学制四年。2、入学考试高中毕业生须参加全国高考,并选考英语和物理,达到所在省南京大学录取分数线并高于南大软件工程专业实际录取分数线,经所在省招生办公室和南京大学批准方能录取。三、培养方式及学习年限1、培养方式软件工程专业本科生采用系统化课程学习和工程实践相结合的培养方式,在培养中贯彻理论基础坚实、科学思维敏捷、专业知识宽广、动手实践突出、工程训练有素等措施,力图实现学生基础理论与科学素养、专业知识与实践能力、工程训练与职业素质均衡发展的培养理念。本专业实行学分制,培养阶段划分为基础理论课程教学阶段、专业技能课程教学阶段和软件第3页共13页工程实习阶段等三个培养阶段。学生在进入三年级专业技能课程教学阶段前必须指定其修读的专业方向,进行专业深度培养。本专业提倡并特别加强双语教学,包括专业课采用英文原版教材和英文讲稿,并在少量专业课程上聘请国外教师进行全英语教学。本专业在二三年级末安排暑期学校,聘请外籍教师和企业专家开设目录外课程(2学分/门),并设置技能/认证类课程(1学分/门);要求每位本科学生至少选修3学分此类课程。2、培养阶段与学期设置为加强培养成效,本专业把本科生培养划分为基础理论课程教学阶段、专业技能课程教学阶段和软件工程实习阶段等三个培养阶段。基础理论课程教学阶段包括4个18周的正常学期和二年级末暑期学校。本阶段的设计思路是达到强化学生基础知识的目的,实现“基础扎实、系统级认知和编程能力强”三个目标。课程启动采取系统级认识和编程能力双优先的策略,本阶段要求学生完成全部公共基础课程、大部分专业核心课程和专业公共指选课程的学习任务。本阶段涉及学分数86-90个。专业技能课程教学阶段从三年级起至四年级上,包括4个12周的小学期和三年级末暑期学校。本阶段的设计思路是强调学生工程性、技术性、实用性、系统性、综合性和复合型能力的培养,实现“熟悉软件工程技能、更完整的系统级认识和掌握某一方向的软件设计开发技术”三个目标。本阶段要求学生完成4门专业核心课程和大部分专业方向选修课程、文化素质课程的学习任务。本阶段涉及学分数约50个。学生进入本阶段前应确定一个具体的联系专业方向,修读该专业方向指定的3+1门方向指选课程。软件工程实习阶段始于四年级上,包括2个12周的小学期。本阶段设的计思路是借助具体项目工作参与实际项目训练,通过毕业设计与论文培养总结概括能力,实现理论与实际结合、技能与职业素质成长的目标。本阶段要求学生直接参与软件工程项目实践,完成必要的技术方案设计、软件开发等工作,并在所取得的工程实践成果基础上完成学士学位论文的撰写。本阶段涉及学分12个。3、学习年限采用学分制,本科生学习年限为4年,其中从事软件工程实践的时间不少于半年。特殊情况下,本科生在校学习期限不超过6年。第一年获得学分未达到28、第二年获得学分未达到56、第三年获得学分未达到84、第四年获得学分未达到112、第五年获得学分未达到140、第六年获得学分未达到毕业要求,均应作退学处理。四、课程设置及学分要求1、课程设置原则计算机软件工程专业本科生课程体系设计遵循六个基本原则,即先进性、灵活性、复合性、第4页共13页工程性、创新性和模块化。先进性:课程设置和课程内容需反映国际上先进的软件技术发展成果和软件企业对先进技术的需求,以及相关的基础理论。灵活性:课程设置需具有灵活性,应根据软件技术的发展及时调整。复合性:课程体系还需包括技能、工程、管理等方面的课程,使学生具有必要的综合技能和基本素质。工程性:课程设置面向软件工程实践,强调工程实践能力的培养,使学生能够自觉的运用先进的工程化方法和技术从事软件开发和项目管理,具有团队协作精神。创新性:课程体系应当倡导学生自主学习,并给予必要的指导,从而培养学生自主学习和自我提高的能力,以及勇于开拓和善于创新的能力。模块化:课程应该能够按照模块化的准则设计,课程模块的设计可以交叉。学院将根据软件技术最新发展、当前市场需求情况、学院当前培养方向、以及学生目前具备的领域知识等,灵活调整课程设置和具体课程的涵盖内容。2、课程设置课程学习总学分要求为159学分。从课程结构上可分为公共基础课、专业核心课、专业选修课、文化素质选修课、实践环节与毕业设计。专业基础课强调本领域的理论基础与核心技术,专业选修课程注重应用系统开发能力和工程能力培养,并结合市场软件应用需求。课程体系如下图所示:工程实习与毕业论文文化素质选修课专业任意选修课软件设计与开发课程模块软件工程技术课程模块信息系统技术课程模块计算机网络技术课程模块嵌入式软件技术课程模块专业公共指定选修课学科核心课程公共基础课程1、公共基础课程(必修环节):又称通修课程,共48个必修学分。包括:高等数学甲(15学分);大学英语(12学分);体育(4学分);法律基础(2学分)、思想道德修养(2学分)、形势与政策(1学分)、军事理论与军事高科技(1学分);马克思主义哲学原理(3学分)、马克思主义政治经济学原理(2学分)、毛泽东思想概第5页共13页论(3学分)、邓小平理论概论(3学分)。2、专业核心课程(必修环节):又称学科核心课程,共14门,43个必修学分,为学生打下坚实的软件数学知识、软件基础知识和软件工程基础知识。包括:软件数学类课程:离散数学(4学分),统计与经验方法(3学分);软件基础类课程:计算系统基础(4学分),面向对象程序设计(3学分),数据结构与算法(3学分);软件系统类课程:计算机系统概论(现暂定名操作系统)(3学分),网络通信系统(3学分),数据库系统(3学分);软件工程基础类课程:软件工程概论(3学分),软件设计(3学分),软件测试技术(3学分),大型软件系统构造与体系结构(3学分),人机交互技术(3学分);实践环节:软件工程课程实践(2学分);3、专业选修课程:主要讲授软件分析、设计、开发、支持过程中先进实用的方法、技术和工具,以及软件系统和软件应用技术方面的知识。学生至少必须选修42个学分,包括以下三类:公共指选课程:共4门,10学分。为本专业各领域广泛涉及的一些基本技术课程,包括网络技术导论(2学分),计算机组织结构(3学分),C++程序设计(3学分),UML(2学分)。学生必须选修相关课程。方向课程模块:按照办学特色,目前提供软件设计与开发技术、软件工程技术、信息系统技术、计算机网络技术、嵌入式软件技术等5个课程模块。以后,可以根据办学特色,进一步扩充专业方向课程模块。每位本科学生必须在修读一个课程模块的全部指选课程,计11学分。其他任选课程:除已设置的专业方向课程模块外,其他专业方向的选修课程组合而成该模块。包括:3学分/门的目录内常设课程。如:计算机图形学,算法分析与设计等;2学分/门的目录外课程。如:外籍教师、企业界专家开设的课程,每生必须修读一门全英文教学课程;1学分/门的技能/认证类课程,每生最多计2学分。4、文化素质课(指定选修环节):指定选修14学分,最多计14学分。包括:4个学分的艺术类课程;人文社会科学文化素质课程,软件学院开设职业素质课也应计入此类课程。5、毕业设计(必修环节):计12学分,包括软件工程实习、毕业设计、毕业论文答辩。3、专业方向课程模块1、软件设计与开发课程模块:第6页共13页相关专业核心课:数据结构与算法;相关公共指选课:C++程序设计;方向指选课程:Linux程序设计(3学分),.NET程序设计(3学分),J2EE与中间件技术(3学分);方向指选实践课程:软件设计课程实践(2学分);方向任选课程:编译技术(3学分),开发工具(3学分),互联网程序设计。2、软件工程技术课程模块:相关专业核心课:软件工程概论;相关公共指选课:UML;方向指选课程:软件过程与管理(3学分),CMM(3学分),个人/小组软件过程(3学分);方向指选实践课程:软件设计课程实践(2学分);方向任选课程:软件模型与分析(3学分),软件维护技术(3学分)。3、信息系统技术课程模块:相关专业核心课:数据库系统;相关公共指选课:UML;方向指选课程:管理信息系统(3学分),电子商务(3学分),商务智能(3学分);方向指选实践课程:信息系统课程实践(2学分);方向任选课程:高级数据库开发技术(3学分),软件