分享

程序设计与算法

 weiyj114 2016-06-29
课程概述


C++语言的功能和方便性都强于C语言,只是由于其面向对象的特性比较复杂,因此很少被选为入门语言。实际上,C语言是C++的子集,C++对C语言的扩充可以分为与面向对象无关的新语法特性、面向对象的特性,以及泛型特性三个部分。如果放弃其中复杂的面向对象特性,以及泛型的绝大多数特性(但保留其中极其有用的标准模板库STL中的部分算法和容器),则剩余部分也十分适合做为入门语言来学,而且用这样的“简化”C++语言编写程序,既比用C语言更为方便和高效,又无需掌握写大型程序才会用到的庞杂的面向对象的特性 --- 学习成本增加很少而编程效率提高很多。


基于上述考虑,本课程虽然是面向中学生的零基础的编程课,还是选用C++作为编程语言。实际上,本课程并没有因为面向中学生而作了简化,也适合大学生、上班族等所有希望编程入门的学习者。课程内容有13周,主要为以下三部分:


1) 11.5周: C++结构化程序设计(基本等同于C语言程序设计)。

2) 1.5周: 基本算法思想,包括算法的时间复杂度的概念、简单排序,二分查找。

3) 1周:用C++的STL(标准模板库)轻松实现高效的排序和查找。这部分内容虽不多,但对于提高编写程序的效率极其有用。


总之,本门课最大的特点是:让学习者花费比学习C语言多不到10%的时间,就能享受C++语言带来的更多方便与效率。


证书要求

完成作业和考试,达到要求后,可以获得课程主讲教师签名颁发的合格证书或优秀证书。总成绩算法如下:

考核

成绩

作业和测验

40/100

考试

50/100

参与讨论

10/100

60-84分:合格证书
85-100分:优秀证书


预备知识

零起点课程,基本上不需要预备知识,初中生也可以学习。

授课大纲

第一周 C++入门

 1.1 信息在计算机中的表示

 1.2 C++快速入门

 1.3 变量和数据类型初探

 1.4 变量和数据类型进阶

 1.5 常量


第二周 输入输出、运算符及表达式

 2.1 输入输出进阶

 2.2 算术运算符和算术表达式 

 2.3 逻辑运算符和逻辑表达式

 2.4 其他运算符和运算符优先级


第三周 分支语句和循环语句

 3.1 if语句

 3.2 switch语句

 3.3 for循环

 3.4 while和do while语句


第四周 循环语句和OJ输入数据处理

 4.1 break和continue

 4.2 循环例题选讲

 4.3 OJ编程题输入数据的处理

 4.4 用freopen重定向输入 


第五周 数组

 5.1 数组的基本概念

 5.2 筛法求素数

 5.3 数组的初始化及用数组取代分支结构

 5.4 数组越界

 5.5 二维数组


第六周 函数和位运算

 6.1 函数

 6.2 简单递归

 6.3 库函数和头文件

 6.4 位运算


第七周 字符串

 7.1 字符串的三种形式

 7.2 字符串的输入

 7.3 字符串库函数

 7.4 例题:求字符串的子串


第八周 指针(一)

 8.1 基本概念和用法

 8.2 指针的意义和互相赋值

 8.3 指针运算

 8.4 空指针和指针作为函数参数


第九周 指针(二)   

 9.1 指针和数组

 9.2 指针和字符串

 9.3 字符串库函数

 9.4 void指针和内存操作函数

 9.5 函数指针


第十周 结构、变量作用域和生存期、简单排序

 10.1 结构

 10.2 全局变量、局部变量、静态变量

 10.3 变量的作用域和生存期

 10.4 选择排序和插入排序

 10.5 冒泡排序

 

第十一周 二分查找

 11.1 算法和程序的时间复杂度

 11.2 二分查找


第十二周 用STL进行排序和查找

 12.1 用sort排序

 12.2 用binary_search二分查找

 12.3 set的用法

 12.4 map的用法 

第十三周 复习考试


参考资料

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多