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