《高级语言程序设计(C++)()》教学大纲

课程代码

045101991

课程名称

高级语言程序设计(C++()

英文名称

Advanced  Language  Programming (C++)2

课程类别

公共基础课

课程性质

必修

学时

总学时:32学时,实验学时:6学时

学分

2

开课学期

2

开课单位

计算机科学与工程学院

适用专业

计算机科学与技术,网络工程,信息安全

授课语言

中文

先修课程

课程对毕业要求的支撑

本课程对学生达到如下毕业要求有如下贡献:

 1.工程知识:掌握扎实的面向对象的程序设计基本概念、基本语法和程序设计方法,能够将数学、自然科学、本专业基础知识和专业知识用于解决复杂工程问题。

 2.问题分析:能够应用数学、自然科学、本专业基本原理、方法和手段和程序设计语言的基本知识,识别、表达、并通过文献研究分析计算机复杂工程问题,以获得有效结论。


课程目标


完成课程后,学生将具备以下能力:

掌握面向对象的程序设计语言的基本概念,培养学生的计算思维能力。

能够使用面向对象方法设计小规模的应用程序,并在有关集成环境下(例如Visual C++)调试运行。


课程简介

《高级语言程序设计(C++)》课程分为()、(二)两部分。本课程的教学目的是通过讲授C++,介绍面向对象程序设计的概念和方法,使学生初步具备使用C++开发对象化软件的能力,以及使用、掌握新的软件工具环境的能力

主要教学内容包括:类与对象的定义与访问,构造函数和析构函数,类的常成员、静态成员和友元,类的包含;运算符重载规则,用成员或友元函数重载运算符,几个典型的运算符重载的实现,类类型转换的实现;类之间的关系,继承、多继承、虚继承的概念;虚函数与多态性的概念及应用,纯虚函数与抽象类;函数模板、类模板的定义与运用;输入/输出流的概念,输入输出格式控制,串流的概念,文件的建立与读写。


教学内容与学时分配


(一)类与对象                6学时

教学要求:要求学生识记C++中类的定义形式以及对象的访问形式;要求学生理解类与对象的概念,理解构造函数、析构函数等定义和使用,理解静态成员与友元。此外,还要求学生能够根据问题要求使用类知识来组织程序,并能够熟练地对对象进行操作。

重点:类和对象的定义以及使用

难点:对对象进行操作

(二)运算符重载               6学时

教学要求:要求学生识记运算符重载形式;要求学生理解运算符重载的作用;并要求学生能够熟练地掌握常用的数学运算符的重载。

重点:运算符的重载形式

难点:类类型之间的转换,包括显示转换和隐式转换

(三)继承                     4学时

教学要求:要求学生识记单继承和多继承的语法形式,以及派生类构造函数的定义; 要求学生理解类层次中各类对象初始化的实现、对象的访问特性以及虚继承的概念以及作用;要求学生具备设计两层以上的类体系,建立较复杂的应用程序的能力。

重点:单继承及多继承的使用,派生类对象的初始化及访问

难点:虚继承的作用及使用场景,不同继承方式的访问控制特性

(四)虚函数与多态性            4学时

教学要求:要求学生识记虚函数与抽象类的语法形式;理解动态联编、基类指针和派生类指针、纯虚函数和抽象类的使用方式;要求学生有能力设计两层以上的类体系,并使用多态特性,建立较复杂的应用程序。

重点:多态性的实现

难点:含抽象类的类体系的实现

(五)模板                      2学时

教学要求: 要求学生识记函数模板及类模板的语法形式;理解模板的概念以及模板的实例化过程;要求学生具备熟练建立和使用模板的能力。

重点:类模板以及函数模板的定义以及使用

难点:模板的实例化过程及运用

(六)输入输出流                 4学时

教学要求:要求学生识记流的概念和基本操作,输入输出的格式控制,文件的概念、文本文件和二进制文件的概念;要求学生掌握文件的基本操作;并要求学生具备使用流进行数据传递,建立和操作文件的能力。

重点: 流的使用,文件的读写

难点: 输入输出流中格式控制;正确地对不同格式文件的读写操作


实验教学(包括实验学时、实习学时、其他)

本课程的实验部署在校内的OJ(在线评测)平台上,平台网址http://www.scut.edu.cn/oj/。 每次实验设置5道左右的编程题,其中一道探索性的题目,所有题目都是新题,各届学生的实验题目不固定。

(一)基于竞教相结合的实验一3学时

(二)基于竞教相结合的实验二3学时

教学方法

以课堂教学、上机实验、课外作业、网络教学相结合的教学方式

考核方式

本课程注重动手能力的考核,成绩比例为:

平时作业和课堂表现: 10%

上机实验:           30%

期末考试:           60%


教材及参考书

现用教材: 周霭如、林伟健. C++程序设计基础》(5),电子工业出版社,2016.

主要参考资料:

1. H.M.Deitel, P.J.Deitel. C++大学教程(9)(英文版),电子工业出版社,2016

2. 谭浩强. C++程序设计(第四版),清华大学出版社,2010

3.广东省精品资源共享课程网站:http://202.38.193.234/c/

 4. 爱课程:http://www.icourses.cn/coursestatic/course_5847.html


制定人及制定时间

徐红云, 沃焱,郑运平,李方,2019.4


 “Advanced  Language  Programming (C++)2)” Syllabus

Course Code

145219

Course Title

Advanced  Language  Programming (C++)2

Course Category

General Basic Course

Course Nature

Compulsory Course

Class Hours

Total Hours:32  Theory Class Hours: 26  Lab Hours:6

Credits

2

Semester

2

Institute

School of Computer Science & Engineering

ProgramOriented

Computer Science and Technology, Information Security and Network Engineering

Teaching Language

Chinese

Prerequisites

NONE

 Student Outcomes

 (Special Training Ability)

This course contributes to the following graduation requirements:

1. Engineering knowledge: A solid grasp of the basic concepts, grammar and programming methods of object-oriented programming can be used to solve complex engineering problems in mathematics, natural sciences, basic knowledge and expertise of this major.

2. Problem analysis: The basic knowledge of mathematics, natural science, basic principles, methods and means of the specialty and programming language can be applied to identify, express and analyze computer complex engineering problems through literature research in order to obtain effective conclusions.

Course Objectives

After this course, students will be required to:

  1. Master the basic concepts of object-oriented programming language; develop the students’ ability of though and calculations.

  2. Design a small application based on object-oriented design, and debug it in the related IDE (e.g. Visual C++2010).


Course Description

This course is the second part of Advanced Language Programming. The purpose of this course is to let student understand the concept and method of object-oriented programming. Through this course, students will be able to develop object-oriented software in C++ and have the ability to use and master new programming tools.

The main contents of this course include: definition and usage of class and object; constructors and destructors; const, static and friend member of class; rules of the operators overload, overload operators by member or friend function, implementation of several classic operators overload and class type transformation; relationship between two classes, concept of inheritance, multiple inheritance, virtual inheritance; concept and application of virtual function,  polymorphism, pure virtual function and abstract class; definition and application of function template and class template; the concept of iostream; control of input or output format; concept of streaming; creation and operation of file.

Teaching Content and Class Hours Distribution

(1) Class and object      Hours: 6

Requirement: First, All students are required to recognize and remember the definition of class, access ways of object. Second, all students are required to understand the concept of class and object, constructor and destructor, static member and friend function or class. The last one, all students are required to use class to programing according to problems, and operate manipulate objects of a class.

Focus: definition and using of class and its object

Difficulties: operation of object

(2)Operator Overload        Hours: 6

Requirements: First, all students are required to recognize and remember the forms of operators overload. Second, students are also required to understand therole of operator overload. Finally, students are required to overload some usual math operators currently.

Focus: the forms of operators overload

Difficulties: type conversion of class

(3)Inheritance              Hours: 4

Requirements: First, all students are required to recognize and rememberthegrammar of single inheritance and multiple inheritance, and the definition of the constructor of derived class. Second, students are also required to understand how to implement the objects of class; and understand the characteristics of access to object, concept of virtual inheritance. Finally, students are requiredto design more than two layers of class and design and implement complex applications.

Focus: using of single Inheritance and multiple inheritance, initialization and access of object of derived class.

Difficulties: the characteristics of access control of different inheritance way, the role of virtual inheritance.

(4) Virtual function and polymorphism         Hours: 4

Requirements: First, all students are required to recognize and remember the grammar of virtual function and abstract class. Second, students are also required to understand the dynamic binding, base-class pointer, derived-class pointer, pure virtual function and abstract class. Finally, all students are required have the capability to design more than two layers of class and using dynamic blinding to design complex programming.

Focus: the implementation of polymorphism

Difficulties: the implementation of the virtual class

(5)Template              Hours: 2

Requirements: First, all students are required to recognize and remember the grammar of function template and class template. Second, students are also required to understand the concept of template, the implementation of template function and template class. Finally, all students are required have the capability to use the template agilely.

Focus: the definition and application of class template and function template

Difficulties: the instantiation and application of template

(6)IOStream            Hours: 4

Requirement: First, all students are required to recognize and remember the definition and basic operations of stream, the definition of file. Second, students are also required understand the concept of stream, the concept and operations of file. Finally, students are required to have the capability to use stream to transmit data, to create and operate a new file.

Focus: the using of stream, read and write of file

Difficulties: the format control in input/output stream, read and write operation of file

(7)Reservation             Hours:0

Experimental Teaching

The experiments are deployed on the Online Judge System and the website is http://www.scut.edu.cn/on . There are about 5 problems needs to be solved in every experiment and one of them is exploratory problem. All the problems deployed on OJ are original and are not regular for different grade students. The two experiments are shown as follow:

  1. Experiment One       Hours: 3

Experiment Two       Hours: 3


Teaching Method

Teaching in class, experiments, homework and learning online.

Examination Method

This course will take a written exam to assess the students’ performance, which takes up 60% of the final grading.

The auxiliary assessment of this course includes: lab, homework and attendance, where the attendance takes up 10% of the final grading, and the lab and homework takes up 30% of the final grading.

Teaching Materials and Reference Books

1Teaching Materials and Reference Books

1. 周霭如、林伟健. C++程序设计基础》(5),电子工业出版社,2016.

2. H.M.Deitel, P.J.Deitel. C++大学教程(9)(英文版),电子工业出版社,2016

3. 谭浩强. C++程序设计(第四版),清华大学出版社,2010

2multimedia teaching resourceCourse website ,PPT and so on

1.广东省精品资源共享课程网站:http://202.38.193.234/c/

2. 爱课程:http://www.icourses.cn/coursestatic/course_5847.html


Prepared by Whom and When

Hongyun Xu, Yan Wo, Yunping Zheng, Fang Li,  2019-4

附件

《高级语言程序设计(C++()》实验教学大纲

课程代码

045101991

课程名称

高级语言程序设计(C++()

英文名称

Advanced  Language  Programming (C++)2

课程类别

学科基础课

课程性质

必修

学时

总学时:32学时,实验学时:6学时

学分

2

开课学期

2

开课单位

计算机科学与工程学院

适用专业

计算机科学与技术,网络工程,信息安全

授课语言

中文

先修课程

高级语言程序设计(C++()

毕业要求(专业培养能力)


课程培养学生的能力(教学目标)

完成课程后,学生将具备以下能力:

1.掌握面向对象的程序设计语言的基本概念,培养学生的计算思维能力。

2.能够使用面向对象方法设计小规模的应用程序,并在有关集成环境下(例如Visual C++)调试运行。

课程简介

《高级语言程序设计(C++)》课程分为()、(二)两部分。本课程的教学目的是通过讲授C++, 介绍面向对象程序设计的概念和方法,使学生初步具备使用C++开发对象化软件的能力,以及使用、掌握新的软件工具环境的能力。

主要教学内容包括:类与对象的定义与访问,构造函数和析构函数,类的常成员、静态成员和友元,类的包含;运算符重载规则,用成员或友元函数重载运算符,几个典型的运算符重载的实现,类类型转换的实现;类之间的关系,继承、多继承、虚继承的概念;虚函数与多态性的概念及应用,纯虚函数与抽象类;函数模板、类模板的定义与运用;输入/输出流的概念,输入输出格式控制,串流的概念,文件的建立与读写。

主要仪器设备与软件

硬件设备:微机(每人1台)

软件:Windows 系列操作系统,VC++2010

实验报告

考核方式

OJ实验占课程总成绩的30%,以在OJ上通过的题目道数计算实验成绩

教材、实验指导书及教学参考书目

(一)教材与参考书

1. 周霭如、林伟健. C++程序设计基础》(5),电子工业出版社,2016.

2. H.M.Deitel, P.J.Deitel. C++大学教程(9)(英文版),电子工业出版社,2016

3. 谭浩强. C++程序设计(第四版),清华大学出版社,2010

(二)多媒体教学资源(课程网站、课件等资料)

1.广东省精品资源共享课程网站:http://202.38.193.234/c/

2. 爱课程:http://www.icourses.cn/coursestatic/course_5847.html

制定人及发布时间

徐红云, 沃焱,郑运平,李方,2019.5


高级语言程序设计(C++)()》实验教学内容与学时分配

实验项目编号

实验项目名称

实验学时

实验内容提要

实验类型

实验要求

每组人数

主要仪器设备与软件

1

基于竞教相结合的实验一

3

类与对象、运算符重载、继承与派生的使用

设计性

必做

1

硬件设备:微机(每人1台)

软件:Windows 系列操作系统,VC++2010

2

基于竞教相结合的实验二

3

类与对象、运算符重载、继承与派生、虚函数与多态性、模板、输入/输出流的使用

设计性

必做

1

硬件设备:微机(每人1台)

软件:Windows 系列操作系统,VC++2010


 “Advanced  Language  Programming (C++)2)”Experimental Teaching Syllabus

Course Code

045101991

Course Title

Advanced  Language  Programming (C++)2

Course Category

Disciplinary Basic Course

Course Nature

Compulsory Course

Class Hours

Total Hours:32  Theory Class Hours: 26  Lab Hours:6

Credits

2

Semester

2

Institute

School of Computer Science and Engineering

Program Oriented

Computer, Information Security and Network Engineering majors.

Teaching Language

Chinese

Prerequisites

Advanced  Language  Programming (C++)1

Student Outcomes (Special Training Ability)


Teaching Objectives

After this course, students will be required to:

 1. Master the basic concepts of object-oriented programming language; develop the students’ ability of though and calculations.

  1. Design a small application based on object-oriented design, and debug it in the related IDE (e.g. Visual C++2010).

Course Description

 This course is the second part of Advanced Language Programming. The purpose of this course is to let student understand the concept and method of object-oriented programming. Through this course, students will be able to develop object-oriented software in C++ and have the ability to use and master new programming tools.

The main contents of this course include: definition and usage of class and object; constructors and destructors; const, static and friend member of class; rules of the operators overload, overload operators by member or friend function, implementation of several classic operators overload and class type transformation; relationship between two classes, concept of inheritance, multiple inheritance, virtual inheritance; concept and application of virtual function,  polymorphism, pure virtual function and abstract class; definition and application of function template and class template; the concept of iostream; control of input or output format; concept of streaming; creation and operation of file.

Instruments and Equipments

Hardware: microcomputer for per student

Software: Windows Operating System, VC++2010

Experiment Report

NONE

Assessment

Lab and homework on OJ takes up 30% of the final grading and the OJ grading is decided by the number of problems the student solved.

Teaching Materials and Reference Books

(1)Teaching Materials and Reference Books

1. 周霭如、林伟健. C++程序设计基础》(5),电子工业出版社,2016.

2. H.M.Deitel, P.J.Deitel. C++大学教程(9)(英文版),电子工业出版社,2016

3. 谭浩强. C++程序设计(第四版),清华大学出版社,2010

(2)multimedia teaching resourceCourse website ,PPT and so on

1.广东省精品资源共享课程网站:http://202.38.193.234/c/

2. 爱课程:http://www.icourses.cn/coursestatic/course_5847.html

Prepared by Whom and When

Hongyun Xu, Yan Wo, Yunping Zheng, Fang Li,  2017-6

 

Advanced  Language  Programming (C++)2)” Experimental Teaching Arrangements

No.

Experiment Item

Class Hours

Content Summary

Category

Requirements

Number of StudentsEach Group

Instruments, Equipments and Software

1

OJ experiment one

3

Using of class and object, operators overload, inheritance and derived class

Design

Compulsory

1

Hardware: microcomputer for per student

Software: Windows Operating System, VC++2010

2

OJ experiment two

3

Using of class and object, operators overload, inheritance and derived class, virtual function and polymorphism, template, input or output stream

Design

Compulsory

1

Hardware: microcomputer for per student

Software: Windows Operating System, VC++2010


思政建设内容

一、育人目标

1、实现专业知识教学与立德树人教育的有机融合;

2、激发学生“实干兴邦”的爱国奋斗精神。

二、教学特色

50年代华南理工大学老一辈科学家研制俄汉翻译机作为历史故事,实现历史与现实(国家战略)的结合。

三、预期成效

1、发挥“高级语言程序设计(C++()”第一堂课的育人主渠道作用,实现专业教育与课程思政的有效结合;

2、结合程序设计语言在提高国家信息技术水平的基础性地位,激发学生的爱国情怀。