《高级语言程序设计(C++)(二)》教学大纲
课程代码
045101991
课程名称
高级语言程序设计(C++)(二)
英文名称
AdvancedLanguageProgramming(C++)(2)
课程类别
公共基础课
课程性质
必修
学时
总学时:32学时,实验学时:6学时
学分
2
开课学期
开课单位
计算机科学与工程学院
适用专业
计算机科学与技术,网络工程,信息安全
授课语言
中文
先修课程
无
课程对毕业要求的支撑
本课程对学生达到如下毕业要求有如下贡献:
1.工程知识:掌握扎实的面向对象的程序设计基本概念、基本语法和程序设计方法,能够将数学、自然科学、本专业基础知识和专业知识用于解决复杂工程问题。
2.问题分析:能够应用数学、自然科学、本专业基本原理、方法和手段和程序设计语言的基本知识,识别、表达、并通过文献研究分析计算机复杂工程问题,以获得有效结论。
课程目标
完成课程后,学生将具备以下能力:
掌握面向对象的程序设计语言的基本概念,培养学生的计算思维能力。
能够使用面向对象方法设计小规模的应用程序,并在有关集成环境下(例如VisualC++)调试运行。
课程简介
《高级语言程序设计(C++)》课程分为(一)、(二)两部分。本课程的教学目的是通过讲授C++,介绍面向对象程序设计的概念和方法,使学生初步具备使用C++开发对象化软件的能力,以及使用、掌握新的软件工具环境的能力。
主要教学内容包括:类与对象的定义与访问,构造函数和析构函数,类的常成员、静态成员和友元,类的包含;运算符重载规则,用成员或友元函数重载运算符,几个典型的运算符重载的实现,类类型转换的实现;类之间的关系,继承、多继承、虚继承的概念;虚函数与多态性的概念及应用,纯虚函数与抽象类;函数模板、类模板的定义与运用;输入/输出流的概念,输入输出格式控制,串流的概念,文件的建立与读写。
教学内容与学时分配
(一)类与对象6学时
教学要求:要求学生识记C++中类的定义形式以及对象的访问形式;要求学生理解类与对象的概念,理解构造函数、析构函数等定义和使用,理解静态成员与友元。此外,还要求学生能够根据问题要求使用类知识来组织程序,并能够熟练地对对象进行操作。
重点:类和对象的定义以及使用
难点:对对象进行操作
(二)运算符重载6学时
教学要求:要求学生识记运算符重载形式;要求学生理解运算符重载的作用;并要求学生能够熟练地掌握常用的数学运算符的重载。
重点:运算符的重载形式
难点:类类型之间的转换,包括显示转换和隐式转换
(三)继承4学时
教学要求:要求学生识记单继承和多继承的语法形式,以及派生类构造函数的定义;要求学生理解类层次中各类对象初始化的实现、对象的访问特性以及虚继承的概念以及作用;要求学生具备设计两层以上的类体系,建立较复杂的应用程序的能力。
重点:单继承及多继承的使用,派生类对象的初始化及访问
难点:虚继承的作用及使用场景,不同继承方式的访问控制特性
(四)虚函数与多态性4学时
教学要求:要求学生识记虚函数与抽象类的语法形式;理解动态联编、基类指针和派生类指针、纯虚函数和抽象类的使用方式;要求学生有能力设计两层以上的类体系,并使用多态特性,建立较复杂的应用程序。
重点:多态性的实现
难点:含抽象类的类体系的实现
(五)模板2学时
教学要求:要求学生识记函数模板及类模板的语法形式;理解模板的概念以及模板的实例化过程;要求学生具备熟练建立和使用模板的能力。
重点:类模板以及函数模板的定义以及使用
难点:模板的实例化过程及运用
(六)输入输出流4学时
教学要求:要求学生识记流的概念和基本操作,输入输出的格式控制,文件的概念、文本文件和二进制文件的概念;要求学生掌握文件的基本操作;并要求学生具备使用流进行数据传递,建立和操作文件的能力。
重点:流的使用,文件的读写
难点:输入输出流中格式控制;正确地对不同格式文件的读写操作
实验教学(包括实验学时、实习学时、其他)
(一)基于竞教相结合的实验一3学时
(二)基于竞教相结合的实验二3学时
教学方法
以课堂教学、上机实验、课外作业、网络教学相结合的教学方式
考核方式
本课程注重动手能力的考核,成绩比例为:
平时作业和课堂表现:10%
上机实验:30%
期末考试:60%
教材及参考书
现用教材:周霭如、林伟健.《C++程序设计基础》(第5版),电子工业出版社,2016.
主要参考资料:
1.H.M.Deitel,P.J.Deitel.C++大学教程(第9版)(英文版),电子工业出版社,2016
2.谭浩强.C++程序设计(第四版),清华大学出版社,2010
徐红云,沃焱,郑运平,李方,2019.4
“AdvancedLanguageProgramming(C++)(2)”Syllabus
CourseCode
145219
CourseTitle
CourseCategory
GeneralBasicCourse
CourseNature
CompulsoryCourse
ClassHours
TotalHours:32TheoryClassHours:26LabHours:6
Credits
Semester
Institute
SchoolofComputerScience&Engineering
ProgramOriented
ComputerScienceandTechnology,InformationSecurityandNetworkEngineering
TeachingLanguage
Chinese
Prerequisites
NONE
StudentOutcomes
(SpecialTrainingAbility)
Thiscoursecontributestothefollowinggraduationrequirements:
1.Engineeringknowledge:Asolidgraspofthebasicconcepts,grammarandprogrammingmethodsofobject-orientedprogrammingcanbeusedtosolvecomplexengineeringproblemsinmathematics,naturalsciences,basicknowledgeandexpertiseofthismajor.
2.Problemanalysis:Thebasicknowledgeofmathematics,naturalscience,basicprinciples,methodsandmeansofthespecialtyandprogramminglanguagecanbeappliedtoidentify,expressandanalyzecomputercomplexengineeringproblemsthroughliteratureresearchinordertoobtaineffectiveconclusions.
CourseObjectives
Afterthiscourse,studentswillberequiredto:
CourseDescription
ThiscourseisthesecondpartofAdvancedLanguageProgramming.Thepurposeofthiscourseistoletstudentunderstandtheconceptandmethodofobject-orientedprogramming.Throughthiscourse,studentswillbeabletodevelopobject-orientedsoftwareinC++andhavetheabilitytouseandmasternewprogrammingtools.
Themaincontentsofthiscourseinclude:definitionandusageofclassandobject;constructorsanddestructors;const,staticandfriendmemberofclass;rulesoftheoperatorsoverload,overloadoperatorsbymemberorfriendfunction,implementationofseveralclassicoperatorsoverloadandclasstypetransformation;relationshipbetweentwoclasses,conceptofinheritance,multipleinheritance,virtualinheritance;conceptandapplicationofvirtualfunction,polymorphism,purevirtualfunctionandabstractclass;definitionandapplicationoffunctiontemplateandclasstemplate;theconceptofiostream;controlofinputoroutputformat;conceptofstreaming;creationandoperationoffile.
TeachingContentandClassHoursDistribution
(1)ClassandobjectHours:6
Requirement:First,Allstudentsarerequiredtorecognizeandrememberthedefinitionofclass,accesswaysofobject.Second,allstudentsarerequiredtounderstandtheconceptofclassandobject,constructoranddestructor,staticmemberandfriendfunctionorclass.Thelastone,allstudentsarerequiredtouseclasstoprogramingaccordingtoproblems,andoperatemanipulateobjectsofaclass.
Focus:definitionandusingofclassanditsobject
Difficulties:operationofobject
(2)OperatorOverloadHours:6
Requirements:First,allstudentsarerequiredtorecognizeandremembertheformsofoperatorsoverload.Second,studentsarealsorequiredtounderstandtheroleofoperatoroverload.Finally,studentsarerequiredtooverloadsomeusualmathoperatorscurrently.
Focus:theformsofoperatorsoverload
Difficulties:typeconversionofclass
(3)InheritanceHours:4
Requirements:First,allstudentsarerequiredtorecognizeandrememberthegrammarofsingleinheritanceandmultipleinheritance,andthedefinitionoftheconstructorofderivedclass.Second,studentsarealsorequiredtounderstandhowtoimplementtheobjectsofclass;andunderstandthecharacteristicsofaccesstoobject,conceptofvirtualinheritance.Finally,studentsarerequiredtodesignmorethantwolayersofclassanddesignandimplementcomplexapplications.
Focus:usingofsingleInheritanceandmultipleinheritance,initializationandaccessofobjectofderivedclass.
Difficulties:thecharacteristicsofaccesscontrolofdifferentinheritanceway,theroleofvirtualinheritance.
(4)VirtualfunctionandpolymorphismHours:4
Requirements:First,allstudentsarerequiredtorecognizeandrememberthegrammarofvirtualfunctionandabstractclass.Second,studentsarealsorequiredtounderstandthedynamicbinding,base-classpointer,derived-classpointer,purevirtualfunctionandabstractclass.Finally,allstudentsarerequiredhavethecapabilitytodesignmorethantwolayersofclassandusingdynamicblindingtodesigncomplexprogramming.
Focus:theimplementationofpolymorphism
Difficulties:theimplementationofthevirtualclass
(5)TemplateHours:2
Requirements:First,allstudentsarerequiredtorecognizeandrememberthegrammaroffunctiontemplateandclasstemplate.Second,studentsarealsorequiredtounderstandtheconceptoftemplate,theimplementationoftemplatefunctionandtemplateclass.Finally,allstudentsarerequiredhavethecapabilitytousethetemplateagilely.
Focus:thedefinitionandapplicationofclasstemplateandfunctiontemplate
Difficulties:theinstantiationandapplicationoftemplate
(6)IOStreamHours:4
Requirement:First,allstudentsarerequiredtorecognizeandrememberthedefinitionandbasicoperationsofstream,thedefinitionoffile.Second,studentsarealsorequiredunderstandtheconceptofstream,theconceptandoperationsoffile.Finally,studentsarerequiredtohavethecapabilitytousestreamtotransmitdata,tocreateandoperateanewfile.
Focus:theusingofstream,readandwriteoffile
Difficulties:theformatcontrolininput/outputstream,readandwriteoperationoffile
(7)ReservationHours:0
ExperimentalTeaching
ExperimentTwoHours:3
TeachingMethod
Teachinginclass,experiments,homeworkandlearningonline.
ExaminationMethod
Thiscoursewilltakeawrittenexamtoassessthestudents’performance,whichtakesup60%ofthefinalgrading.
Theauxiliaryassessmentofthiscourseincludes:lab,homeworkandattendance,wheretheattendancetakesup10%ofthefinalgrading,andthelabandhomeworktakesup30%ofthefinalgrading.
TeachingMaterialsandReferenceBooks
(1)TeachingMaterialsandReferenceBooks
1.周霭如、林伟健.《C++程序设计基础》(第5版),电子工业出版社,2016.
2.H.M.Deitel,P.J.Deitel.C++大学教程(第9版)(英文版),电子工业出版社,2016
3.谭浩强.C++程序设计(第四版),清华大学出版社,2010
(2)multimediateachingresource(Coursewebsite,PPTandsoon)
PreparedbyWhomandWhen
HongyunXu,YanWo,YunpingZheng,FangLi,2019-4
附件
《高级语言程序设计(C++)(二)》实验教学大纲
学科基础课
高级语言程序设计(C++)(一)
毕业要求(专业培养能力)
课程培养学生的能力(教学目标)
1.掌握面向对象的程序设计语言的基本概念,培养学生的计算思维能力。
2.能够使用面向对象方法设计小规模的应用程序,并在有关集成环境下(例如VisualC++)调试运行。
主要仪器设备与软件
硬件设备:微机(每人1台)
软件:Windows系列操作系统,VC++2010
实验报告
OJ实验占课程总成绩的30%,以在OJ上通过的题目道数计算实验成绩
教材、实验指导书及教学参考书目
(一)教材与参考书
(二)多媒体教学资源(课程网站、课件等资料)
徐红云,沃焱,郑运平,李方,2019.5
《高级语言程序设计(C++)(二)》实验教学内容与学时分配
实验项目编号
实验项目名称
实验学时
实验内容提要
实验类型
实验要求
每组人数
1
基于竞教相结合的实验一
3
类与对象、运算符重载、继承与派生的使用
设计性
必做
基于竞教相结合的实验二
类与对象、运算符重载、继承与派生、虚函数与多态性、模板、输入/输出流的使用
“AdvancedLanguageProgramming(C++)(2)”ExperimentalTeachingSyllabus
DisciplinaryBasicCourse
SchoolofComputerScienceandEngineering
Computer,InformationSecurityandNetworkEngineeringmajors.
AdvancedLanguageProgramming(C++)(1)
StudentOutcomes(SpecialTrainingAbility)
TeachingObjectives
1.Masterthebasicconceptsofobject-orientedprogramminglanguage;developthestudents’abilityofthoughandcalculations.
InstrumentsandEquipments
Hardware:microcomputerforperstudent
Software:WindowsOperatingSystem,VC++2010
ExperimentReport
Assessment
LabandhomeworkonOJtakesup30%ofthefinalgradingandtheOJgradingisdecidedbythenumberofproblemsthestudentsolved.
(1)TeachingMaterialsandReferenceBooks
(2)multimediateachingresource(Coursewebsite,PPTandsoon)
HongyunXu,YanWo,YunpingZheng,FangLi,2017-6
“AdvancedLanguageProgramming(C++)(2)”ExperimentalTeachingArrangements
No.
ExperimentItem
ContentSummary
Category
Requirements
NumberofStudentsEachGroup
Instruments,EquipmentsandSoftware
OJexperimentone
Usingofclassandobject,operatorsoverload,inheritanceandderivedclass
Design
Compulsory
OJexperimenttwo
Usingofclassandobject,operatorsoverload,inheritanceandderivedclass,virtualfunctionandpolymorphism,template,inputoroutputstream
思政建设内容
一、育人目标
1、实现专业知识教学与立德树人教育的有机融合;
2、激发学生“实干兴邦”的爱国奋斗精神。
二、教学特色
以50年代华南理工大学老一辈科学家研制俄汉翻译机作为历史故事,实现历史与现实(国家战略)的结合。
三、预期成效
1、发挥“高级语言程序设计(C++)(一)”第一堂课的育人主渠道作用,实现专业教育与课程思政的有效结合;
2、结合程序设计语言在提高国家信息技术水平的基础性地位,激发学生的爱国情怀。