体系课
下载APP
2588.00 3200 优惠价

7天可退款

服务
系统学习
32周
教学服务
17个月
教学模式
学练一体化
课程证书
通过得证书

课程大纲及学习周期安排

坚持学习的路上,我们为你画好成长路标

为保证课程紧跟市场变化,课程章节将逐步开放至完结

阶段一:Java从入门到进阶

  • 第1周
  • 第2周
  • 第3周
  • 第4周
  • 第5周
  • 第6周
  • 第7周
计算机导论与开发环境搭建

本周是Java入门的第一步,学习Java语法规则,锻炼编程思维。学会环境搭建,掌握Java程序的执行流程,能够使用运算符和选择与循环结构进行编程。

课程安排
  1. 1、计算机导论
  2. 2、Java基本概念介绍
  3. 3、Windows和Mac下开发环境搭建
  4. 4、数据类型、变量和常量的使用
  5. 5、Java中多种运算符的应用
  6. 6、选择结构的执行流程与应用
Java语法之循环、数组与方法

本周将继续学习语法基础,掌握循环结构、数组和方法的语法规则和应用,最后通过案例对所学知识进行综合应用。学完本周内容可以进行简单的程序逻辑开发。

课程安排
  1. 1、基础语法综合案例——数组移位与统计
  2. 2、while、do-while和for三种循环结构的使用
  3. 3、嵌套循环的应用
  4. 4、break和continue语句的特点及应用
  5. 5、如何进行程序的调试,debug的使用
  6. 6、一维数组和二维数组的应用
  7. 7、Java自定义方法和方法调用
面向对象之封装与继承

面向对象是开发中非常重要的思想,在本周我们将学习到面向对象三大特征中的封装与继承,开始运用面向对象思想进行程序开发。

课程安排
  1. 1、封装综合案例——学生信息管理
  2. 2、类的定义和对象的创建
  3. 3、理解构造方法的概念,并进行应用
  4. 4、封装的特点,应用代码实现程序的封装
  5. 5、包的创建和导入
  6. 6、静态变量和静态方法的应用
  7. 7、继承的概念和特点,父类和子类的概念及应用
  8. 8、方法重写的特点及使用
  9. 9、通过super关键字对父类方法进行调用
面向对象之单例模式与多态

本周将继续学习面向对象中重要的概念,并能够进行代码实现,学完后可以利用面向对象思想开发更复杂的应用。

课程安排
  1. 1、所有类的父类Object类的使用
  2. 2、使用final关键字定义最终类
  3. 3、现阶段开发中涉及到的常用注解的使用
  4. 4、单例模式的定义和使用
  5. 5、懒汉模式和饿汉模式的特点及代码实现
  6. 6、向上转型和向下转型的概念和应用
  7. 7、接口和抽象类的定义和使用
  8. 8、成员内部类、静态内部类、方法内部类和匿名内部类的应用
异常、包装类、字符串与集合

工具类是Java为我们提供的一些类,可以直接应用于程序开发中。学习工具类不但要学习常用工具类的使用,还要学会阅读工具类的文档,这是开发中非常重要的技能。

课程安排
  1. 1、使用try-catch-finally处理异常
  2. 2、理解throw和throws的区别,会使用自定义异常和异常链
  3. 3、包装类的基本使用,理解装箱和拆箱的概念
  4. 4、字符串处理类String和StringBuffer的基本使用和应用场景
  5. 5、集合List、Set、HashMap及实现类的特点和应用
集合排序、泛型与多线程

本周将继续学习常用工具类,应用集合排序、泛型和多线程解决问题。

课程安排
  1. 1、使用Comparator和Comparable两个接口对集合进行排序
  2. 2、泛型的使用,包括泛型作为方法参数、自定义泛型类和泛型方法
  3. 3、线程的创建,理解线程的生命周期
  4. 4、线程同步的使用和如何进行线程间通信
输入输出流与播放器管理案例

本周将继续学习常用工具类,通过案例学习复杂业务逻辑的开发,同时实现增删改的功能,为后续课程内容的学习打下扎实的基础。

课程安排
  1. 1、阶段综合案例——播放器管理
  2. 2、使用字节流和字符流进行数据传输
  3. 3、应用序列化和反序列化对对象进行读写

阶段二:数据库入门

  • 第8周
  • 第9周
MySQL基础

本周是数据库学习的第一步,能够理解数据库设计规范,并能够使用SQL语句进行表和数据的基本查询。

课程安排
  1. 1、根据数据库规范设计数据库
  2. 2、数据库的创建、表的创建和修改等操作
  3. 3、数据表的增删改查等基本操作
MySQL进阶

掌握高级查询、数据的增删改查以及函数的SQL语法,通过案例掌握数据库的设计与应用。

课程安排
  1. 1、数据库高级查询
  2. 2、数据库的数字、日期时间、字符等常用函数使用
  3. 3、事务的ACID属性和隔离级别
  4. 4、SQL文件的导入和导出

阶段三:算法与数据结构基础

  • 第10周
  • 第11周
  • 第12周
  • 第13周
  • 第14周
  • 第15周
线性查找法

开课第一周,我们将学习最简单的算法:线性查找法。在学习这样一个最简单的算法的过程中,我们也将接触诸多概念:循环不变量,复杂度分析,如何使用泛型让我们的算法更通用,以及简单的性能测试方式。

课程安排
  1. 1、什么是算法
  2. 2、为什么要学习算法和数据结构
  3. 3、线性查找算法
  4. 4、使用泛型让算法更通用
  5. 5、自定义类测试算法
  6. 6、循环不变量
  7. 7、复杂度分析
  8. 8、常见算法复杂度举例
排序基础

在这一周,我们将接触两个最基础的排序算法:选择排序法和插入排序法。虽然这两个排序算法很简单,但在这一周,我们将巩固我们之前学习的知识,将循环不变量的思路和复杂度分析应用在这些算法中。

课程安排
  1. 1、选择排序法
  2. 2、原地排序
  3. 3、使用泛型约束
  4. 4、Comparable 接口的使用
  5. 5、插入排序法
  6. 6、插入排序法的优化
  7. 7、排序算法的测试数据生成
  8. 8、排序算法的性能测试和比较
数据结构基础:动态数组,栈和队列

这一周,我们开始接触最基础的数据结构:线性数据结构。这些数据结构看似简单,但是通过对他们的学习,会接触很多新的概念,包括对静态数组的扩容和缩容;均摊复杂度分析;数据结构的接口设计;循环队列,等等。

课程安排
  1. 1、理解静态数组和动态数组
  2. 2、如何封装属于自己的数据结构
  3. 3、动态数组的扩容和缩容
  4. 4、均摊复杂度分析
  5. 5、数据结构的接口设计
  6. 6、栈和栈的应用
  7. 7、队列和队列的应用
  8. 8、队列的优化:循环队列
  9. 9、双端队列
  10. 10、Java 语言中的设计问题讨论
动态数据结构基础:链表

在这一周,我们将接触最基础的动态数据结构:链表。在学习链表的过程中,我们将更深入透彻地理解程序设计中“引用”的概念,更会开始接触程序设计中最常用的一种逻辑搭建方式:递归

课程安排
  1. 1、什么是链表
  2. 2、链表的更删改查
  3. 3、抽象数据接口
  4. 4、使用链表实现栈和队列
  5. 5、链表的性能问题
  6. 6、链表天然的递归结构
  7. 7、通过链表深入理解递归
  8. 8、经典链表相关的面试问题
归并排序法和快速排序法

我们将学习两种高级排序算法:归并排序法和快速排序法。将看到更通用的递归算法的设计方法,归并排序法的优化,归并排序思想的实际应用,完成四个版本的快速排序算法,并看到算法对不同数据表现出的差异。

课程安排
  1. 1、归并排序的算法思想
  2. 2、归并过程
  3. 3、复杂的递归算法运行机制解读
  4. 4、归并排序法的复杂度分析
  5. 5、归并排序法的优化
  6. 6、自顶向下和自底向上
  7. 7、使用归并排序法求逆序数对
  8. 8、快速排序算法的基本思想
  9. 9、随机化的快速排序算法
  10. 10、二路快排和三路快排
  11. 11、不同快速排序算法的性能比较
  12. 12、快排的复杂度分析
  13. 13、快排思想的实际应用
二分查找法和二分搜索树

本周我们将学一个看似基础但“变化多端”的算法:二分搜索法和第一个基础树结构:二分搜索树 ,还会接触两个最为常见的抽象数据类型:集合和映射。

课程安排
  1. 1、二分搜索法的基本思想
  2. 2、二分搜索的递归实现
  3. 3、二分搜索的非递归实现
  4. 4、刻理解程序设计中的边界问题
  5. 5、二分搜索在浮点数据中的应用
  6. 6、使用二分搜索解决寻界问题
  7. 7、避免死循环
  8. 8、二分搜索的模板
  9. 9、使用二分搜索法的思路解决实际问题
  10. 10、什么是树结构
  11. 11、在数据结构中使用递归
  12. 12、深度优先遍历和广度优先遍历
  13. 14、Hubbard Deletion
  14. 15、抽象数据结构:集合和映射
  15. 17、集合和映射的经典应用

阶段四:算法与数据结构进阶

  • 第16周
  • 第17周
  • 第18周
  • 第19周
  • 第20周
堆/优先队列/堆排序/冒泡排序和希尔排序

我们将学习一个特殊的树结构:堆。学习后我们将看到数组也可以表示树结构。同时我们还会引出另外一种高级排序算法:堆排序。此外我们将再学习两个排序算法:冒泡排序和希尔排序法。

课程安排
  1. 1、数组也可以表示树结构
  2. 2、堆的基本操作
  3. 3、Sift Up 和 Sift Down
  4. 4、Heapify
  5. 5、堆排序和优先队列
  6. 6、优先队列的应用
  7. 7、广义队列
  8. 8、冒泡排序的基本思想
  9. 9、冒泡排序的优化
  10. 10、希尔排序的基本思想
  11. 11、希尔排序的优化
  12. 12、什么是增量序列
  13. 13、基于比较的排序算法总结
  14. 14、稳定排序
线段树/Trie/并查集/AVL和红黑树

我们将学习三种应用在不同场合的树结构:线段树,Trie 和并查集和两种高级的二分搜索树结构:AVL 树和红黑树,此外我们还会学习一种树结构:2-3 树

课程安排
  1. 1、线段树的基本操作
  2. 2、区间查询问题
  3. 3、Trie 树的基本操作
  4. 4、使用 Trie 解决模式匹配问题
  5. 5、并查集的基本原理
  6. 6、不断优化六个版本的并查集
  7. 7、并查集的应用
  8. 8、什么是平衡树
  9. 9、左旋转和右旋转
  10. 10、AVL 树和2-3 树
  11. 11、2-3 树和红黑树的等价性
  12. 12、红黑树保持平衡的基本操作
  13. 13、红黑树的添加操作实现
  14. 14、二分搜索树,AVL 树和红黑树的性能对比
  15. 15、词频统计应用
  16. 16、使用真实数据测试不同底层封装的集合和映射结构
哈希表和 SQRT 分解

我们将首先学习哈希表这种重要的数据结构深入理解哈希的概念,并使用链地址法设计出属于我们自己的哈希表结构。同时将学习到分块这一概念并接触另外一个经典的使用分块的思想解决区间问题的数据结构:SQRT 分解

课程安排
  1. 1、哈希的基本思想
  2. 2、哈希函数的设计
  3. 3、链地址法
  4. 4、Java 中的哈希表
  5. 5、分块思想
  6. 6、SQRT 分解
  7. 7、使用 SQRT 分解处理区间问题
非比较排序

在这一周,我们将看到:排序算法不一定基于比较,不进行元素的比较也可以对某类特殊的对象进行排序,即非比较排序算法。我们将学习计数排序法,桶排序法和基数排序法。

课程安排
  1. 1、非比较排序
  2. 2、计数排序法
  3. 3、桶排序法
  4. 4、基数排序法
  5. 5、LSD 和 MSD
  6. 6、非比较排序的性能测试
  7. 7、非比较排序和比较排序的性能对比
模式匹配

我们将学习一类重要的算法:模式匹配。从基本的模式匹配出发,引出大名鼎鼎的 KMP 算法。对于 KMP 算法,我们会学习两种实现方式,并接触到计算机领域的一个重要的概念:状态机。

课程安排
  1. 1.朴素模式匹配算法
  2. 2.KMP 算法
  3. 3.KMP 算法中的 LPS 数组
  4. 4.状态机
  5. 5.状态机的其他应用
  6. 6.滚动哈希
  7. 7.RK 算法
  8. 8.RK 算法的经典问题

阶段五:操作系统与编译原理

  • 第22周
  • 第23周
  • 第24周
  • 第25周
  • 第26周
操作系统入门篇

本周开始接触并熟悉操作系统,了解操作系统的演进历史,了解操作系统的基本功能,了解操作系统并发、并行、虚拟性以及共享性等概念;了解操作系统进程管理、作业管理、文件管理、设备管理、存储管理的功能。

课程安排
  1. 1、操作系统概览
  2. 2、进程管理之进程实体/五状态模型/进程同步
  3. 3、Linux的进程管理
  4. 4、作业管理之进程调度/死锁
  5. 5、存储管理之内存分配与回收
  6. 6、Linux的存储管理
  7. 7、存储管理之段页式存储管理
  8. 8、存储管理之虚拟内存
  9. 9、操作系统的文件管理
  10. 10、Linux文件的基本操作和文件系统
  11. 11、操作系统的设备管理
操作系统提升篇+操作系统实践

本周将首先学习在编程中常见的操作系统知识,包括进程通信、线程同步等的知识;然后再此基础上,完成综合的实践项目,进一步巩固操作系统的相关知识。

课程安排
  1. 1、线程同步之互斥量/自旋锁/读写锁
  2. 2、线程同步之条件变量
  3. 3、使用fork系统调用创建进程
  4. 4、进程同步之共享内存/Unix域套接字
  5. 5、实践环节-实现线程安全的队列Queue
  6. 6、实践环节-编写测试用例
  7. 7、实践环节-抽象异步任务AsyncTask
  8. 8、实践环节-实现任务处理现场ProcessThread
  9. 9、实践环节-封装任务处理线程池ThreadPool
  10. 10、实践环节-异步任务执行测试
  11. 11、实践环节-异步任务结果的实现与测试
编译原理入门

本周串讲编译器的主要流程,介绍编译器和自然语言翻译的差异性,以及对编译原理的课程提供一个整体介绍。接着快速进入到动手coding部分,将采用先设计后实现逻辑,采用Java+Js双语式教学实现。

课程安排
  1. 1、重点理解:编译器的主要流程
  2. 2、掌握:编译器的基本功能设计
  3. 3、了解:词法分析器基本原理
  4. 4、Coding:实现流的peek和putBack操作(Java+Js双语言实现)
  5. 5、掌握:词法相关理论和正则
  6. 6、Coding:词法分析器核心-有穷状态机的词语提取功能实现(Java+Js双语言实现)
编译原理中级

本周介绍语法分析的基本概念,如产生式、抽象语法树、递归向下方解析法等,并且在实战中帮助学员理解和处理更复杂的问题,如多级优先级表达式等。同时,向学员渗透跳跃结构——树和图的遍历算法以及相关理论知识。

课程安排
  1. 1、 数据结构引导:树和抽象语法树
  2. 2、 Coding:定义抽象语法树(Java版+Js版)
  3. 3 、理解:最简表达式分析过程
  4. 4 、Coding:实现最简Parser(Java版+Js版)
  5. 5、 理解: TinyScript表达式解析:优先级和去左递归
  6. 6、 Coding:TinyScript表达式解析(Java版+Js版)
  7. 7、 Coding:树的后序遍历——表达式验证(Java版+Js版)
  8. 8、理解:语法分析的整体程序
  9. 9、Coding:语法分析整体程序(Java版+Js版)
  10. 10、拾遗——那些穿插在迭代中的重构
  11. 11、补课——大批递归来袭之应对
  12. 12、词法语法部分总结——领域驱动视角
编译原理高级

本章讲解语法树翻译的基本方法和理论、TinyScript编译成中间语言,涉及:如到符号表、作用域如何被实现?类型检查如何进行?重点渗透树、图、哈希表等关键数据结构,算法;终极目标是:完成编译器的实现。

课程安排
  1. 1、 三地址代码相关知识
  2. 2、 构造三地址代码——基于SDD的翻译
  3. 3、词法作用域和符号表
  4. 4、Coding:实现符号表(Java+Js双语)
  5. 5、三地址代码的表示
  6. 6、Coding:三地址代码的表示(Java+Js双语)
  7. 7、Coding:翻译的整体过程和表达式(Java+Js双语)
  8. 8、翻译——作用域的处理
  9. 9、(编程 trans 04 java)翻译——作用域和整体程序(Java+Js双语)
  10. 10、冲刺——用虚拟机执行TinyScript程序
  11. 11、Coding:指令和程序表示
  12. 12、理解:生成器——将三地址代码转化成指令
  13. 13、Coding:指令翻译过程讲解
  14. 14、 Coding:补课——神奇的位运算
  15. 15、 Coding:虚拟机—— 指令的编码和解码
  16. 16、 Coding:虚拟机执行程序
  17. 17、 课程总结——如何做一个优秀的架构师

阶段六:计算机网络+组成原理+图形学

  • 第27周
  • 第28周
  • 第29周
  • 第30周
  • 第31周
  • 第32周
计算机组成原理入门+组成篇

本周开始接触并计算机组成原理,发展历史,计算机的分类,层次结构,能够对计算机体系有全面的认识;在此基础上,掌握计算机内部结构,深入冯诺依曼体系下的计算机组成,了解各个部分的工作原理及细节。

课程安排
  1. 1、计算机的发展历史和分类
  2. 2、计算机的体系与结构
  3. 3、计算机的层次与编程语言/速度单位
  4. 4、计算机的字符与编码集
  5. 5、计算机的总线和输入输出设备
  6. 6、计算机的存储器概览
  7. 7、计算机的主存储器与辅助存储器
  8. 8、计算机的高速缓存
  9. 9、计算机的指令系统
  10. 10、计算机的控制器
  11. 11、计算机的运算器
  12. 12、计算机指令的执行过程
计算机组成原理计算篇+实践

本周开始讲计算机内部运算的原理,二进制、原码、补码、反码,再了解计算机定点数、浮点数的运算原理,掌握计算机内部运算的细节;接着对计算机组成原理笔试常见知识点缓存置换算法进行加深理解的实践

课程安排
  1. 1、进制运算的基础
  2. 2、有符号数与无符号数
  3. 3、二进制的补码和反码表示法
  4. 4、小数的二进制补码表示法
  5. 5、定点数的加减法运算
  6. 6、浮点数的加减法运算和乘除法运算
  7. 7、实践环节-实现双向链表的节点类
  8. 8、实践环节-实现双向链表添加/删除节点
  9. 9、实践环节-双向链表的功能测试
  10. 10、实践环节-实现FIFO缓存置换算法
  11. 11、实践环节-实现LRU缓存置换算法
  12. 12、实践环节-实现LFU缓存置换算法
计算机网络入门+网络层

本周开始接触并计算机网络发展历史,了解计算网络的模型,现代互联网的网络结构,掌握物理层、数据链路层的基础知识;重点学习网络层的相关概念,包括IP地址、IP协议、路由算法、ICMP协议等知识点。

课程安排
  1. 1、计算机网络层次设计的基本原则
  2. 2、现代互联网的网络拓扑
  3. 3、物理层/数据链路层讲解
  4. 4、数据链路层的差错检测
  5. 5、最大传输单元MTU
  6. 6、以太网协议详解和IP协议的转发流程
  7. 7、ARP协议与RARP协议
  8. 8、IP地址的子网划分和网络地址转换NAT技术
  9. 9、ICMP协议的应用
  10. 10、内部网关路由协议之 RIP协议
  11. 11、Dijkstra(迪杰斯特拉)算法
  12. 12、内部网关路由协议之OSPF协议
  13. 13、外部网关路由协议之BGP协议
计算机网络传输层篇+应用层篇+实践

本周继续学习计算机网络,按照有下到上的层次,掌握TCP协议的工作原理,应用层掌握HTTP协议、DNS服务等的原理;最后,设置抓包的编程实践,对网络不同协议的报文进行抓包和解包,了解报文结构,加深理解。

课程安排
  1. 1、UDP协议详解、协议详解
  2. 2、可靠传输的基本原理
  3. 3、TCP协议的可靠传输、流量控制、拥塞控制
  4. 4、TCP连接的三次握手和四次挥手
  5. 5、DNS、DHCP和HTTP协议详解
  6. 6、HTTP工作的结构和HTTPS协议详解
  7. 7、实践环节-实现PcapSniffer
  8. 8、实践环节-以太网报文和ARP报文的抓包和分析
  9. 9、实践环节-IP报文的抓包和分析
  10. 10、实践环节-ICMP报文的抓包和分析
  11. 11、实践环节-UDP报文的抓包和分析
  12. 12、实践环节-TCP报文的抓包和分析
计算机图形学初级

本周开启图形学的新世界,掌握计算机中如何表示图形的,包含:3d模型、世界描述、光照等图形学重要的内容。学习OpenGL标准、生态以及写一个webgl的helloworld了解图形渲染管道的流程。

课程安排
  1. 1、如何入门图形学
  2. 2、图形学的基本概念和应用场景
  3. 3、图形学历史概述
  4. 4、向量的世界
  5. 5、圆的世界
  6. 6、向量的点乘和叉乘
  7. 7、矩阵的乘法
  8. 8、三角形网格
  9. 9、渲染图形:从顶点到视区
  10. 11、webgl入门与图形渲染管道
  11. 12、传递数据给GLSL——Buffer管理
  12. 13、 绘制3d图形——旋转的立方体
  13. 14、2d变换和实战
  14. 15、3d观察——投影和透视
  15. 16、简单三维变换和模型的封装
  16. 17、3D观察——眼睛和摄像头
计算机图形学进阶

学习为场景增加光照,以此来增加场景的真实感。重点理解图形学渲染核心算法:光线追踪算法,并带领同学通过实际编程解决问题去理解这个算法。最后实现一个3D类的射击游戏,帮助学员巩固和提高对图形学的理解。

课程安排
  1. 1、学习GLSL
  2. 2、为模型增加直线光源
  3. 3、点光源
  4. 4、制作手电筒效果
  5. 6、游戏开发部分导学
  6. 7、构造游戏地图——2.5D网格和基础架构
  7. 8、为角色创建AI——Agent设计模式
  8. 9、多个GLSL之间切换和Framebuffer
  9. 10、用户交互——选择3D模型
  10. 11、多状态切换——战斗效果
  11. 12、 图形学总结和后续学习建议

评价 好评

  • 讲的非常仔细!很好地课程

  • 老师讲得非常到位,非常适合学习

  • 先是语言和数据库,看得见输出才能有兴趣继续;然后是算法,学会代码基础以后,算法学习会继续激发兴趣;最后才是计算机基础。这种安排非常合理,而且导论安排在开头,相当于一个目录了,很用心。PPT数量巨大,每一个点都精心设计,某个语法点短暂的两小节后,马上接一个编程练习,动手加深学习效果。网页的功能也非常好,记笔记的时候可以直接截取视频帧;在线的IDE还有提问。反正学到现在,每个担心的点都被照顾到了,满分。

预售规则

1. 定金支付成功后,可在“我的订单”-“未支付”栏查看所要支付尾款的订单。
2. 尾款支付开启后,请在规定时间内支付尾款,若超出尾款支付时间,订单将自动关闭。请关注短信、慕课网平台及慕课网微信号等渠道推送的提醒消息。
3. 定金可在课程原价基础上抵扣页面显示金额,具体数额及计算方式见详情页。
4. 定金可退,已支付定金但未在规定时间支付尾款的用户,请联系kf@imooc.com退定金。
5. 如您对预售活动有其它疑问,请联系客服:kf@imooc.com。