您的位置:首页 > 编程语言 > C语言/C++

【stanford C++】C++课程学习

2013-06-30 11:54 302 查看
C++课程网站:

http://www.stanford.edu/class/cs106b/ (或)http://cs106b.stanford.edu
http://www.stanford.edu/class/cs106l/
 

CS106B主要讲述的是C++的一些基本的编程概念,但是没有进行深入的介绍,其中使用了很多自己的定制库来取代C++的标准库,因此没有对C++中的细节部分进行探索。

CS106L是对CS106B课程的补充,介绍了C++更加强大的功能。

 

所用课本:

是Eric Robert编写的《Programmin Abstractions in C++》

 

课程任务:

有7个编程任务,各个任务会逐渐的变难,逐渐需要更多的时间来完成。

 

教学大纲:

天数 
主题(Topics)
阅读
任务
第1天为什么继续学习编程?

课程概述

C++编程语言

第1章 
第2天如何定义函数?

C++中的函数

递归函数

第2章和第7章任务1开始
第3天如何递归的处理文本?



串的递归

第3章   
第4天计算机如何分析表达式?

栈(Stack)

Shunting-Yard算法

第5章的5.1~5.3   
第5天如何存储集合的数据?

C++流(Stream)

Vector

第4章   
第6天如何对关联数据进行处理?

Map, Set和Lexicon

foreach

第6章任务1完成

任务2开始

第7天如何安全的存储密码?

Queue

密码管理(Password Management)

第5章的5.4~5.6节 
第8天在问题解决中递归的作用

递归的思想

第7章和第8章 
第9天什么是分形(fractal)?

图示递归

穷举搜索(一)

第9章 
第10天如何找到一个问题的所有解?

穷举搜索(二)

回溯搜索(一)

  任务2完成

任务3开始

第11天如何探索一个大的搜索空间?

回溯搜索(二)

   
第12天为什么有些算法比其他的快?

算法效率

Big-O标记法

第10章10.1~10.2节 
第13天计算如何排序数据?

排序算法(第一部分)

第10章10.3~10.5节 
第14天排序理论如何匹配实践?

排序算法(第二部分)

   
第15天如何定义自己的容器类(collection class)?

设计抽象

指针

第11章任务3完成

任务4开始

第16天动态数组是如何实现的?

动态分配

实现栈(Stack)

第12章 
第17天数据表示方式如何影响效率?

优化栈(Optimizing Stack)

   
第18天对于存储线性数据,数组是必需的吗?

链表(一)

第13章 
第19天栈和队列是如何实现的?

链表(二)

实现栈(Stack)和队列(Queue)

第14章任务4完成

任务5开始

第20天如何迅速的存储和查询数值?

哈希表(Hash Table)

实现Map

第15章 
第21天如何有效的存储文本数据?

Tries

实现Lexicon

   
第22天如何有效的以排序的顺序进行数据存储?

二叉搜索树

实现Set

第16章 
第23天如何探索网络结果?

图(Graphs)

图搜索(Graphs Searches)

第19章19.1~19.4节 
第24天如何最小化trip时间和wiring成本?

图表示(Graph Representations)

图算法(Graph Algorithm)

第19章19.5~19.7节任务5完成

任务6开始

第25天如何存储大的文件到一个小的文件中

Huffman编码

贪婪算法

   
第26天计算机如何识别数据组?

树状图(Dendrograms)

分层聚类(Hierarchical Clustering)

   
第27天有趣和令人兴奋的附加话题       
第28天学完C++后,后续如何走?    
第29天其他      
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: