课程名称 |
程序设计综合实践 |
Practice of Programming |
开课单位 |
计算机学院 |
课程性质 |
必修课 |
课程类别 |
实践环节 |
课程代码 |
210731100902 |
学分 |
2 |
学时 |
2周 |
适用专业 |
软件工程、物联网工程 |
先修课程 |
面向对象程序设计(C++) |
授课语言 |
中文 |
一、课程简介
(一)课程中文简介
《程序设计综合实践》是软件工程、物联网工程及相关专业的重要实践环节,是在学生学习了《程序设计基础》和《面向对象程序设计》的基本知识、基本理论的基础上,将来源于企业的真实项目需求适当裁剪,在老师的指导下进行综合编程实训,模拟企业实际开发环境以及项目管理规范和流程,培养学生的动手能力,提高学生分析问题和解决问题的综合能力,特别是项目设计能力。为后继课程的学习奠定基础,为学生的职业能力培养和职业素养的提高提供有力支撑。
(二)课程英文简介
"Practice of Programming" is an important practice link of software engineering, IOT engineering and related majors, and it is the basis for students to learn "Foundations of Programming " and "Object Oriented Programming" Based on knowledge and basic theories, the real project needs from the enterprise are appropriately tailored, and comprehensive programming training is conducted under the guidance of the teacher, simulating the actual development environment of the enterprise and project management specifications and processes, to cultivate students' practical ability and improve students Comprehensive ability to analyze and solve problems, especially project design ability. It lays the foundation for the study of subsequent courses and provides strong support for the cultivation of students' professional ability and professional quality.
二、实训课程目标
本课程的目标包括:
CO1:能够结合程序设计基础所学知识,使用面向对象软件方法设计和开发小型软件项目。
CO2:能够利用资料,自学一种软件开发库和环境,熟练地在小型软件项目中加以运用。
CO3:了解软件工程项目实施过程中的基本角色和职责,完成自己所承担的任务。
CO4:能够针对软件项目中的工程问题进行基本分解并按步骤实施,具备基本的文字表达和语言沟通能力。。
课程目标与所支撑的毕业要求指标点的对应关系如下表所示。
适用专业 |
毕业要求内涵观测点 |
课程目标 |
软件工程 |
GR3.3能够针对特定软件需求,完成模块设计,并在设计中体现创新意识,特别是互联网应用软件、智能应用软件与游戏软件的模块设计。 |
CO1、CO2 |
GR8.2能够在软件工程实践中自觉遵守诚实公正、诚信守则的职业道德和规范。 |
CO3、CO4 |
物联网工程 |
GR3.5综合利用物联网应用领域专业知识和新技术,在针对复杂工程问题的设计及开发中体现创新意识。 |
CO1、CO4 |
GR6.3不断改进评价机制和评价方法,并理解个体应承担的社会责任。 |
CO3 |
GR12.2在实现目标的过程中能够发现自身缺陷,具有改进自我和终身学习的意识。 |
CO2 |
三、实训、实践内容与要求
实习内容主要围绕项目的开发展开教学,内容包括项目选题、编程技术培训、原型开发、需求分析与设计、编码测试及成果验收等多个环节,具体内容安排如下:
1.项目选题及要求介绍
由教师根据学生情况从项目案例库中选择一个项目作为实训选题,选择的课题尽量结合最新的用户需求及新技术的发展情况进行适当裁剪和调整,以获得更好的工程设计实践的训练效果。课题规模具有适当的可伸缩性,具有一定复杂度。通过激发学生参加开发实践的积极性与创造性,经过努力能够完成,以达到综合应用所学知识的目的。确定题目后,首先向学生介绍项目来源及要求,明确实训目标及任务。
2. 项目编程技术准备
根据实训项目中的要求,对于项目开发中要用到的而课程学习中没有学过的知识进行讲解,使学生能尽快进入实训项目的开发,至少应讲解windows窗口编程技术、文档/视图机制的原理及运用,对话框的定义及使用、常用GUI控件的使用,图片显示及动画处理的编程技术,文件处理或数据库存贮等内容。
3.原型开发
针对实训项目中的关键部分、易出问题部分,引导学生利用所学技术先构造原型。通过原型开发可以帮学生理清思路,巩固所学知识要点。为顺利完成项目奠定基础。
4.需求分析与软件设计
在老师的指导下对实训项目的功能及性能需求进行分析,建立相应的需求模型,然后在此基础上给出设计方案,重点阐明设计方案的合理性。分析模型和设计模型建议使用软件开发工具Rational Rose或者Sparx Enterprise architecture进行UML建模。
5.项目编码及软件测试
编写程序。要求给出详细的注释,包括:模块名,模块功能,中间过程的功能,变量说明等。
所有测试过程都要求采用综合测试策略;先作静态分析,再作计算机测试。应事先制订测试计划,并要求保留所有测试用例,完成测试报告。
由学生完成:模块测试、子系统测试、系统(或功能)测试(时间由学生在编码阶段自行安排)。
6.成果验收
验收测试由教师完成:指导教师检查每一个学生的成果,按基本功能完成情况、特色功能情况、代码质量、出错处理等方面分项给出评分,作为成绩评定的重要参考。
7.答辩
要求学生将自己的实训成果及教训进行概括和总结,在限定时间内展示自己的成果。
实习的基本要求是:
1.技术上必须覆盖程序设计基础及面向对象方法的主要知识点。
2.结合目前的主流GUI技术及最为普遍的数据库编程领域、网络编程领域或者多媒体编程领域等,提高学生的兴趣及实用性。
3.必须选取经典的项目,使学生的编程实践能直接转变为编程经验,实现与企业的零距离对接。
4.项目还必须具有良好的扩展性,能充分调动学生的创新能力。
实习过程在老师的指导下进行,首先进行项目介绍及预备知识讲解,然后由学生独立完成项目的分析、设计、编码及测试工作,最后通过成果验收和分组实习答辩评定成绩。
四、实验设备与环境配置
1. 计算机:Intel Core2 Duo E4300 1.8GHZ、内存512MB、硬盘15GB以上。
2. 编译器:支持ISO C++ 98标准特性,如GCC、VC++7以上;或支持ISO C++ 11标准特性,如GCC 4.8.1、VC++ 2013以上。
3. 开发环境:Codeblocks 10.05以上,或Visual Studio 2008以上,或Xcode 4.1以上。
六、主要参考资料(小4号黑体)
[1]G. Shepherd & D. Kruglinski(潘爱民译). Microsoft Visual C++ .NET技术内幕(第6版)[M].北京:清华大学出版社,2004年7月.
[2]Ivor Horton(苏正泉&李文娟译). Visual C++ 2010入门经典(第5版)[M].北京:清华大学出版社,2010年12月.
[3]周鸣杨,赵景亮.精通GDI+编程[M].北京:清华大学出版社,2004年2月.
[4]Mahesh Chand(韩江等译).GDI+图形程序设计[M].北京:电子工业出版社,2005年3月.
[5]刘生平.Visual C++ .Net数据库开发技术与实践[M].北京:清华大学出版社,2005年1月.
[6]Bjarne Stroustrup(裘宗燕译).C++程序设计语言(特别版)[M].北京:机械工业出版社,2002年7月.
[7]Bruce Eckel(刘宗田等译).C++编程思想(第2版) 第1卷:标准C++导引[M].北京:机械工业出版社,2011年7月.
[8]Bruce Eckel(刘宗田等译).C++编程思想 第2卷:实用编程技术[M].北京:机械工业出版社,2011年7月.
[9]任哲.MFC Windows应用程序设计(第3版)[M].北京:清华大学出版社,2013年3月.
七、考核方式、方法及实验成绩评定方法
考核成绩可以采用五级制,应从工作态度、作品质量、实训报告质量、沟通能力、独立分析与解决问题能力、团队与合作等方面进行评价。最终成绩采用五级制评分。
(一)评分标准
表2评分标准
考核 环节 |
占总成绩 比例 |
<60 (不及格) |
60-69 (及格) |
70-79 (中等) |
80-89 (良好) |
90-100 (优秀) |
工作态度 |
10% |
消极应工作任务,拖延应付。 |
基本完成阶段任务,偶尔有拖后或应付现象 |
完成阶段阶段任务 |
积极完成阶段任务 |
积极完成阶段任务,且能主动与教师讨论 |
作品质量及功能 |
20% |
无法完成基本功能,程序无法正常运行或有重大bug |
能够完成基本功能,程序能正常运行,但有少量bug |
完成基本功能,程序正常运行无bug,有小的功能扩展 |
在完成基本功能的基础上,独立添加较多的小功能,程序正常运行无bug |
在完成基本功能的基础上,有重大功能改进,程序正常运行无bug |
代码质量 |
20% |
代码无法编译,非独立完成 |
代码通过编译,且独立完成,但并未按照代码规范实施 |
代码结构清晰,符合代码规范实施 |
代码结构完善,符合代码规范实施,初步运用面向对象方法 |
代码结构完善,符合代码规范实施,面向对象方法运用熟练 |
实训报告 |
20% |
不能按时撰写完成实训报告,存在抄袭现象或错误较多 |
按时撰写完成实训报告,但偶有错误 |
按时完成实训报告撰写 |
高质量完成实训报告撰写 |
高质量完成实训报告撰写,且面向对象设计表述清晰完善 |
答辩(沟通能力) |
20% |
语言或文字表达含糊不详,意图不清 |
语言或文字表达基本通顺,但需反复解释或多次修改完善 |
语言或文字基本能表达意图,偶有需修改完善之处 |
语言或文字表达清晰明确,能够抓住要点 |
语言或文字表达清晰明确,能够抓住要点,专业术语运用准确 |
中期检查(提出问题和解决能力) |
10% |
基础知识不牢固,无法形成合理思路 |
基本掌握基础知识,能够理解问题,但提出的解决方案有明显缺陷 |
较好掌握基础知识,准确把握问题并提出合理的解决方案 |
较好掌握基础知识,能够独立提出问题并设计合理的解决方案 |
熟练掌握基础知识,能够提出有创意的问题,且提出的解决方案具备独到的见解 |
(二)考核环节权重
表3 实训课程目标与项目环节对应关系
考核环节 |
目标1 |
目标2 |
目标3 |
目标4 |
目标5 |
工作态度 |
|
|
|
30% |
20% |
作品质量及功能 |
40% |
|
|
|
|
代码质量 |
40% |
40% |
20% |
|
|
实训报告 |
|
20% |
40% |
30% |
40% |
答辩(沟通能力) |
10% |
20% |
20% |
40% |
40% |
中期检查(提出问题和解决能力) |
10% |
20% |
20% |
|
|
|
100% |
100% |
100% |
100% |
100% |
撰稿人:吴振寰
审核人:崔焕庆
批准人:倪维建