1000位程序员+大厂HR联袂推荐,面向所有程序员的计算机核心知识体系,优惠中~
本阶段从Java基础语法开始,到面向对象,再到常用工具类,通过大量案例讲解,带你成功入门Java!
数据库是开发必备基础,会从设计规范、表的管理、数据处理、常用函数和事务等几个部分对数据库展开介绍,带你全面掌握数据库必备知识点。
本阶段,我们将学习最基础的算法和数据结构,通过这些基础的学习,不仅能入门算法和数据结构,还将学习基础的复杂度分析,如何书写正确的代码,让代码更通用,如何做性能测试,以及理解递归,这个在程序设计中最常见的逻辑运行方式。
第10周
线性查找法
开课第一周,我们将学习最简单的算法:线性查找法。在学习这样一个最简单的算法的过程中,我们也将接触诸多概念:循环不变量,复杂度分析,如何使用泛型让我们的算法更通用,以及简单的性能测试方式。
第11周
排序基础
在这一周,我们将接触两个最基础的排序算法:选择排序法和插入排序法。虽然这两个排序算法很简单,但在这一周,我们将巩固我们之前学习的知识,将循环不变量的思路和复杂度分析应用在这些算法中。
第12周
数据结构基础:动态数组,栈和队列
这一周,我们开始接触最基础的数据结构:线性数据结构。这些数据结构看似简单,但是通过对他们的学习,会接触很多新的概念,包括对静态数组的扩容和缩容;均摊复杂度分析;数据结构的接口设计;循环队列,等等。
第13周
动态数据结构基础:链表
在这一周,我们将接触最基础的动态数据结构:链表。在学习链表的过程中,我们将更深入透彻地理解程序设计中“引用”的概念,更会开始接触程序设计中最常用的一种逻辑搭建方式:递归
第14周
归并排序法和快速排序法
我们将学习两种高级排序算法:归并排序法和快速排序法。将看到更通用的递归算法的设计方法,归并排序法的优化,归并排序思想的实际应用,完成四个版本的快速排序算法,并看到算法对不同数据表现出的差异。
在这一阶段,我们要讲解更多高级的算法和数据结构,将拓展学习更多新奇的算法思想解决不同问题,看到不同的算法和数据结构在解决不同的问题中的优势。
第16周
堆/优先队列/堆排序/冒泡排序和希尔排序
我们将学习一个特殊的树结构:堆。学习后我们将看到数组也可以表示树结构。同时我们还会引出另外一种高级排序算法:堆排序。此外我们将再学习两个排序算法:冒泡排序和希尔排序法。
第17周
线段树/Trie/并查集/AVL和红黑树
我们将学习三种应用在不同场合的树结构:线段树,Trie 和并查集和两种高级的二分搜索树结构:AVL 树和红黑树,此外我们还会学习一种树结构:2-3 树
第18周
哈希表和 SQRT 分解
我们将首先学习哈希表这种重要的数据结构深入理解哈希的概念,并使用链地址法设计出属于我们自己的哈希表结构。同时将学习到分块这一概念并接触另外一个经典的使用分块的思想解决区间问题的数据结构:SQRT 分解
第20周
模式匹配
我们将学习一类重要的算法:模式匹配。从基本的模式匹配出发,引出大名鼎鼎的 KMP 算法。对于 KMP 算法,我们会学习两种实现方式,并接触到计算机领域的一个重要的概念:状态机。
第21周
随机算法,外存算法和更多
最后一周,我们将看到更广阔的算法和数据结构的世界。将探索随机算法的世界,学习 Knuth 洗牌算法和蓄水池抽样算法。探索外存算法和数据结构的世界,学习 B 类树等,以及更多在外存中处理问题的方式和思想
本阶段开始我们将开始学习计算机操作系统然后深入学习计算机编译原理知识。
第22周
操作系统入门篇
本周开始接触并熟悉操作系统,了解操作系统的演进历史,了解操作系统的基本功能,了解操作系统并发、并行、虚拟性以及共享性等概念;了解操作系统进程管理、作业管理、文件管理、设备管理、存储管理的功能。
第24周
编译原理入门
本周串讲编译器的主要流程,介绍编译器和自然语言翻译的差异性,以及对编译原理的课程提供一个整体介绍。接着快速进入到动手coding部分,将采用先设计后实现逻辑,采用Java+Js双语式教学实现。
第25周
编译原理中级
本周介绍语法分析的基本概念,如产生式、抽象语法树、递归向下方解析法等,并且在实战中帮助学员理解和处理更复杂的问题,如多级优先级表达式等。同时,向学员渗透跳跃结构——树和图的遍历算法以及相关理论知识。
第26周
编译原理高级
本章讲解语法树翻译的基本方法和理论、TinyScript编译成中间语言,涉及:如到符号表、作用域如何被实现?类型检查如何进行?重点渗透树、图、哈希表等关键数据结构,算法;终极目标是:完成编译器的实现。
最后一阶段我们将继续深入学习计算机基础知识,计算机网络+组成原理+图形学,无论是校招面试还是工作中都至关重要。
第27周
计算机组成原理入门+组成篇
本周开始接触并计算机组成原理,发展历史,计算机的分类,层次结构,能够对计算机体系有全面的认识;在此基础上,掌握计算机内部结构,深入冯诺依曼体系下的计算机组成,了解各个部分的工作原理及细节。
第28周
计算机组成原理计算篇+实践
本周开始讲计算机内部运算的原理,二进制、原码、补码、反码,再了解计算机定点数、浮点数的运算原理,掌握计算机内部运算的细节;接着对计算机组成原理笔试常见知识点缓存置换算法进行加深理解的实践
第29周
计算机网络入门+网络层
本周开始接触并计算机网络发展历史,了解计算网络的模型,现代互联网的网络结构,掌握物理层、数据链路层的基础知识;重点学习网络层的相关概念,包括IP地址、IP协议、路由算法、ICMP协议等知识点。
第30周
计算机网络传输层篇+应用层篇+实践
本周继续学习计算机网络,按照有下到上的层次,掌握TCP协议的工作原理,应用层掌握HTTP协议、DNS服务等的原理;最后,设置抓包的编程实践,对网络不同协议的报文进行抓包和解包,了解报文结构,加深理解。
第31周
计算机图形学初级
本周开启图形学的新世界,掌握计算机中如何表示图形的,包含:3d模型、世界描述、光照等图形学重要的内容。学习OpenGL标准、生态以及写一个webgl的helloworld了解图形渲染管道的流程。
第32周
计算机图形学进阶
学习为场景增加光照,以此来增加场景的真实感。重点理解图形学渲染核心算法:光线追踪算法,并带领同学通过实际编程解决问题去理解这个算法。最后实现一个3D类的射击游戏,帮助学员巩固和提高对图形学的理解。