计算机科学基础课程教学大纲(总学分:4.5总上课时数:80+8,上机时数:56)东南大学信息科学与工程学院一.课程的性质与目的本课程是为电子信息类专业一年级学生开设的一门计算机课程。它既是计算机的入门课又是计算机的基础课。它是在学生学完了该课程后,进一步为学习专业知识打基础的课程。本课程将通过讲课、练习、实验使学生掌握为开发应用软件所需要的基础知识和技能,掌握处理复杂问题的一般方法。二.课程内容的教学要求第一学期教学内容(共44学时,2.5学分)1.计算机基础知识(4学时)1计算机基本结构(理解)(计算机的基本结构、组成)2计算机工作原理(理解)(程序执行过程、指令与指令系统、低级语言、高级语言)3计算机中数的表示及其运算(重点)(进制转换、机器数、定点数、浮点数、汉字编码)2.《C++程序设计》(40学时)第1章.C++基础知识(8学时)(1)初识C++程序;(2)了解类型潜在的面向对象的特性——值集与操作集的封装(3)掌握基本数据类型和运算:关键字与标识符,基本数据类型,数组,枚举类型,运算符、表达式和优先级;(4)理解类型的相容性与不相容性;(5)掌握简单标准输入输出的程序实现。注:本章1.6.5节不要求第2章.基本控制结构程序设计(8学时)(算法部分可以参考计算机基础教程第三章处讲解)(1)理解算法的概念,掌握算法的描述方法,了解程序设计三种基本结构;(2)掌握双路和多路选择结构的程序设计:if语句,switch语句;(3)掌握循环结构的程序设计:while语句,for语句,do…while语句;(4)掌握常用算法的应用:直接法,枚举法,递推法,迭代法;(5)应用结构化技术分解程序,设计、实现、测试和查错简单程序;(6)掌握文本文件的输入输出。第3章.函数(10学时)(1)理解函数抽象机制,掌握函数定义与函数的调用;(2)理解参数化机制(值调用),了解参数的传递过程;(3)理解函数的返回值及函数原型说明;(4)理解全局变量,局部变量,变量的存贮类型与作用域,生命期与可见性;(5)掌握函数的递归调用,编写、测试、调试简单的递归函数;(6)理解函数重载,缺省变元,内联函数。注:本章3.10节不要求第5章.数组与指针(10学时)(1)理解数组的概念;掌握数组的定义方法,能编写基于数组的应用程序。(2)理解指针与地址、指针与数组的对应关系,数组名,指针运算;(3)掌握标准C++字符串与了解C风格字符串。(4)掌握向函数传递数组或指针;5.4this指针放到第四章4.5运算符的重载部分介绍注:本章5.1.3,5.6.3,5.7节不要求习题课与复习(4学时)第二学期教学内容(共44学时,2学分)第四章.类与对象(8学时)(1)理解传统的结构化程序设计和面向对象程序设计的基本概念;(2)理解面向对象程序设计和封装、抽象的合理性;(3)类定义、属性与行为、访问权限控制,对象的定义、使用及内存的安排,掌握类机制如何支持封装和信息隐藏;(4)掌握构造函数与析构函数,掌握由构造函数建立类对象,由析构函数撤销类对象的机制;(5)理解引用概念,理解值调用和引用调用在参数传递中的不同。理解拷贝构造函数。(6)掌握函数重载技术与运算符重载技术,this指针的使用。(9.3.3提取与插入运算符的重载可以安排在此将)(7)理解友元,静态数据成员。掌握友元函数的定义和使用方法。注:本章4.9,4.10节不要求第6章.模板与数据结构(6学时)(1)理解函数模板与类模版:(2)线性表:掌握模板编写程序的方法,掌握顺序表在内存中的分配与使用;(3)掌握主要查找与排序的算法;(4)模板与类参数,理解类型参数和参数化类型(模板)。注:本章6.5节不要求第7章.动态内存分配与数据结构(8学时)(1)了解动态数据结构和静态数据结构实现的差异;(2)理解堆内存分配、堆与拷贝构造函数、深拷贝与浅拷贝;(3)掌握链表在内存中的分配,链表的基本操作与使用,;(4)了解栈与队列及其基本操作;(5)介绍二叉树基本原理(考虑到等级考试概念题中有这方面的内容,具体程序不讲),了解二叉树的概念。注:本章7.2.3,7.4节关于二叉树程序的实现不要求第8章.类的继承与派生(6学时)(1)理解继承的概念,了解面向对象设计中继承和多态的合理性;(2)掌握派生类的构造与析构;(3)掌握在对象中使用类层次和继承思想进行设计、实现和测试;(4)理解多重继承,了解虚基类;(5)区别运行时的多态性的实现,理解重载与同名覆盖的差异;(6)理解虚函数与多态性。(7)实现运行时多态性的程序设计;注:本章8.6.3,8.6.4节不要求第9章.输入/输出流类库(4学时)(1)理解C++的基本流类体系;(2)提高标准输入/输出的健壮性;(3)掌握提取与插入运算符的重载(已在第四章重载介绍)(4)掌握文件的输入/输出:文件的打开与关闭,文本文件与二进制文件。(5)掌握在构造函数中通过文件建立对象,在析构函数中由文件保存对象的技术。注:本章9.5节不要求第10章.异常处理(4学时)(1)理解异常处理机制:try块,异常抛出throw,异常捕获catch;(2)了解栈展开与异常捕获;(3)异常和继承;(4)编写能响应执行中异常情况的代码。注:本章10.4~10.7节不要求第11章.MFC基本概念(4学时)了解和掌握MFC基本图形的建立,通过实验设计一简单计算器。习题课与复习(4学时)三、上机实习要求以VisualC++6.0集成开发环境下的控制台应用程序为背景,共23个必做实验和4个选做实验,对应精讲多练。课内学时分配为上学期28和下学期28。上学期的实验要求是重点掌握结构化编程方法和常用的基本算法应用实践,学会调试C++程序。下学期的实验要求是重点掌握面向对象编程方法,学会在面向对象程序中使用常用算法。四、能力培养的要求1.分析能力的培养:主要是培养学生对问题、算法和程序进行分析的能力,同时也要培养逻辑思维和描述抽象事物的能力。2.设计能力的培养:要求学生通过本课程的学习,具备算法和程序设计的能力,程序实践的能力。3.自学能力的培养:通过本课程的教学,要培养和提高学生对所学知识进行整理、概括、消化吸收的能力,以及围绕课堂教学内容,阅读参考书籍和资料,自我扩充知识领域的能力。4.表达能力的培养:主要是通过作业,清晰、整洁地表达自己解决问题的思路和步骤的能力。5.创新能力的培养:培养学生独立思考、深入钻研问题的习惯,和对问题提出多种解决方案、选择不同计算方法,以及对算法和程序进行优化,举一反三的能力。五、建议学时分配课程内容讲课习题课或课堂讨论实验上机第一阶段44428计算机基础4C++基础知识84基本控制结构程序设计88函数108数组与指针108第二阶段44428类与对象84模板与数据结构65动态内存分配与数据结构85类的继承与派生65输入/输出流类库44异常处理42MFC43注:课内外学时比:1:2六、考核方式总评成绩=期中考试成绩(包括作业及上机实验)+期末笔试成绩+期末机试成绩平时成绩占10%期末笔试成绩占60%期末机试成绩占30%七、教材及参考书1.《C++程序设计》,吴乃陵,高等教育出版社,20052.《C++程序设计》,谭浩强,清华大学出版社,20053.《VisualC++程序设计基础》,陈华生,苏州大学出版社,20054.《C++语言程序设计》,郑莉,清华大学出版社,20055.《C++程序设计实践教程》,李海文,高等教育出版社