《高级语言程序设计大作业》实习教学大纲
课程代码 | 045101571 |
课程名称 | 高级语言程序设计大作业 |
英文名称 | Advanced Language Programming Course Design |
课程类别 | 集中实践课 |
课程性质 | 必修 |
周数 | 2 |
学分 | 2 |
开课学期 | 2 |
开课单位 | 计算机科学与工程学院 |
适用专业 | 计算机科学与工程 |
授课语言 | 英文授课 |
先修课程 | 高级语言程序设计C++(一),高级语言程序设计C++(二) |
毕业要求(专业培养能力) | 本课程对学生达到如下毕业要求有如下贡献: №1:(工程知识)培养学生熟练掌握英语,掌握扎实的计算机科学与技术专业基本原理、方法和手段等方面的基础知识用于解决复杂工程问题,并通过计算机系统分析、建模和计算等方面的先进方法,为将所学基础知识应用到计算机科学与技术研发和工程实践做好准备。 №2:(问题分析)培养学生能够创造性地利用计算机科学基本原理解决计算机领域遇到的问题。 №3:(设计/开发解决方案)能够设计针对计算机工程复杂问题的解决方案,设计满足特定需求的计算机软硬件系统,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 №4:(研究) 培养学生具备计算机系统相关知识并对计算机工程复杂问题进行研究,具有计算机系统研发基本能力、具备问题分析和建模的能力,具有系统级的认知能力和实践能力,掌握自底向上和自顶向下的问题分析方法。 №5:(使用现代工具)能够针对计算机工程复杂问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具。 |
课程培养学生的能力(教学目标) | 在顺利完成课程要求后,学生应该能够: (1)理解使用预处理程序包装以防止由于添加了在源代码文件头文件一个以上的副本而产生的多个定义错误 (2)理解分别使用运算符new和delete来动态地创建和销毁对象 (3)理解重新定义(过载)运算符来处理用户定义类的对象。 (4)理解通过继承现有的类来创建类。 (5)理解继承如何促进软件重用。 (6)理解声明和使用虚拟函数以实现多态。 (7)理解到使用C ++的面向对象的流输入/输出,来创建,读取,写入和更新文件。 (8)理解什么是例外以及何时使用它们。 |
课程简介 | 本课程的目的是练习学生的分析问题和编程的能力。 1)掌握面向对象编程的思想,使用面向对象的程序设计的思想,解决实际问题; 2)独立进行程序设计和编码,并且使用多种方式有效地调试和纠正错误; 3)通过写科学报告,对所学知识有更好的理解同时培养学生的表达和推测能力。 |
教学内容 | 这门实践课程旨在培养学生使用C ++编程语言的能力,基本要求包括以下几点: 1)每三四个学生可以组合在一起做项目。 2)每组的学生选择感兴趣的题目,题目不限于指定项目中,每个小组应提交建议,项目报告和源代码; 3)技术:
4)系统应设计和实施应当合理,高效和友好。 5)源代码应当有清楚的注释:对于类注释(详细描述的属性,行为,类继承和派生关系);对于函数的注释(详细描述目标,函数参数,原理步骤/算法)。 |
实习方式 | 集体组织 |
实习地点 | 校内 |
考核要求 | 满分为100分,详情如下所示。 |
实习注意事项 | 上课期间严格遵守实验室规定。 |
教材、指导书及教学参考书目 | C++ How to Program, 9/e,Paul Deitel,Harvey Deitel,ISBN-10: 0133378713, ISBN-13: 9780133378719, Prentice Hall, 1080 pp, 02/12/2013 |
制定人及时间 | 徐雪妙,2019-04-04 |
“Advanced Language Programming Course Design” Syllabus
Course Code | |
Course Title | Advanced Language Programming Course Design |
Course Category | Practice Course |
Course Nature | Compulsory Course |
Weeks | 2 |
Credits | 2 |
Semester | 2 |
Institute | The School of Computer Science and Engineering |
Program Oriented | Computer Science and Engineering |
Teaching Language | English |
Prerequisites | Advanced Language Programming(C++) (1), Advanced Language Programming(C++) (2) |
Student Outcomes (Special Training Ability) | №1.Engineering Knowledge: An ability to apply knowledge of English, solid knowledge of professional basic principles, methods and means of computer science and technology for solving complex engineering problems, to well prepare the required knowledge applied to the computer science and technology research & development and engineering practice through computer systems analysis, modeling and calculation and any other aspects of the advanced approach. №2.Problem Analysis: An ability to creatively use the basic principles of computer science to solve the problems encountered in the computer field. №3.Design / Development Solutions: An ability to design solutions for computer engineering complex problems, to design computer hardware and software systems that meet with specific requirements, and to embody innovation awareness in the design process and take into account social, health, safety, cultural and environmental factors. №4.Research: An ability to develop computer system-related knowledge and research computer engineering complex issues, to develop the basic capacity of computer systems research & development, systematic cognitive and practice, master the Bottom-up and top-down problem analysis methods. №5.Applying Modern Tools: An ability to develop, select and use appropriate technologies, resources, modern engineering tools and information technology tools for complex computer engineering issues. |
Teaching Objectives | The objectives of this course are to practice the students' capability of problem analysis and programming skill. 1)To master the thinking of object-oriented programming, and use idea of object-oriented programming to solve practical problems; 2)To carry out the programming design and coding independently, and use various ways for debugging and correcting the error efficiently; 3)To write scientific report, and hence have a better understanding of the knowledge and to develop students' ability to express and speculative. |
Course Description | This practice course is designed to train the students’ practice skill using the C++ programming language. The basic requirements of this course include the following points: 1)Every three-four students can be grouped together to do the project. 2)Each group of students selects one interesting topic which is not limited to the options provided in this specification. Finally, each group should submit the proposal, project report and source code; 3)Techniques: a)The key features of the object-oriented programming language should be utilized, including class, objects, encapsulation, inheritance, polymorphism, etc. ; b)The number of class should not be less than 5; c)The number of levels for the inheritance hierarchy should not be less than 2; d)The UI is needed for the system; e)Random file processing (writing, reading, and updating) is also required in the system; f)The lines of source code should not be less than 5000. 4)The system should be designed and implemented reasonably, efficiently and friendly. 5)Source code should be clearly commented: comments for class (a detailed description of the properties, behaviors, class inheritance, and derived relationships); comment for functions (detailed description of objectives, function parameter, principle steps /algorithms). |
Content | Reference topics:Management system for personal address book Description: Personal address book is utilized to record the information about the relevant persons, such as the classmate (information items: name, birth, phone no., Email address and school name), colleagues (information items: name, birth, phone no., Email address and company name), friends (information items: name, birth, phone no., Email address and the place where you met), relatives (information items: name, birth, phone no., Email address and type of relative, e.g. uncle), and so on. Request: 1)Provide a friendly UI for the system; Hints: MFC, QT, C sharp can be used; 2)Providing the editing functions for processing the personal address book, e.g. adding, displaying, deleting, modifying etc.; Hint: Supporting random access.. 3)Provide a searching function based on different combinations of items. For example, search and list the number of persons whose birthdays are in a given period. Moreover, it should support to do the searching among all persons or each type of persons respectively. Hints: Using a binary sequence to indicate different combinations of items; using overloading functions; 4)Provide a function to automatically find the persons whose birth days are in the next 5 days, and send the best wishes to them by emails. Hints: calculating the exact date in the next 5 days relates to the number of days in a month. Hence a function for determining the number of days in any month is required. Moreover, SMTP (Simple Mail Transfer Protocol) can be used for sending an email to a target email address. 5)Display the information sorted by different items; 6)List the names of all staff, date of birth, telephone and email address. 7)List the information of the students, colleagues, friends, and relatives respectively. 8)Create the abstract class person, and the derived classes including classmate, colleagues, friends, relatives. Moreover, use polymorphism to access members of different derived classes. Optional subjects: 1)Bank Account Management System 2)Students' personal financial management system 3)College Admissions Management System 4)Video management systems 5)Household registration information management system Or other topics which have similar difficulty. Practice period: 2 weeks |
Internship Mode | collective organization |
Internship Location | Campus |
Assessment | Full score is 100 points. The details are as the following. 1. Attendance 10% 2. Final report 35% 3. Demonstration 55% Basic requirements 45% correctness 25% Rationality of design 10% User Interface 10% Expression clarity 5% Additional features for refinement 5% |
Matters Needing Attention | Strictly comply with the requirements of the laboratory during class time |
Teaching Materials and Reference Books | C++ How to Program, 9/e,Paul Deitel,Harvey Deitel,ISBN-10: 0133378713, ISBN-13: 9780133378719, Prentice Hall, 1080 pp, 02/12/2013 |
Prepared by Whom and When | Xuemiao Xu, 2019 April 4th. |