3999.00 4699 优惠价

7天可退款

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

课程大纲及学习周期安排

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

阶段一:嵌入式开发基础之Linux C语言编程

  • 第1周
  • 第2周
  • 第3周
  • 第4周
嵌入式开发基石-计算机基础与C语言

C语言是嵌入式工程师主流开发语言,它是所有高级语言根基,它决定了一名工程师是否可以在本质上理解开发语言,非常重要,本周带领大家回顾重要计算机基础以及迈进C语言大门,带同学们系统入门。

课程安排
  1. 1、开发环境搭建,在虚拟机中安装ubuntu系统
  2. 2、计算机基础知识介绍,了解计算机工作原理,程序如何运行
  3. 3、Linux 基础命令,掌握在Linux命令行终端中如何实现文件操作
  4. 4、GCC编译器介绍及使用,掌握gcc编译程序的流程,学会使用gcc编译器编译C语言
  5. 5、二进制、八进制、十进制、十六进制之间的转换讲解
  6. 6、原码、反码、补码,彻底搞清楚数据是如何在计算机中进行存储
  7. 7、C语言数据类型,掌握如何使用C语言的数据类型描述实际生活中的各种数据
  8. 8、C语言运算符,掌握如何使用C语言的运算符完成实际生活中的各种数据计算
C语言进阶-编程思想

本周我们重点学习C语言编程思想,掌握模块儿化编程思想,存储、指针操作内存等内容。

课程安排
  1. 1、C语言控制语句,掌握在实际软件开发中如何使用C语言的控制语句做逻辑控制,完成功能需求
  2. 2、C语言数组,掌握在多个数据如何在C语言中进行存储
  3. 3、C语言函数,掌握模块化编程思想,如何用函数封装功能
  4. 4、C语言指针, 掌握C语言的精华,如何使用指针操作内存
C语言高级进阶

本周进一步是c语言高级内容讲解,彻底掌握C语言函数、指针、结构体、内存管理等进阶内容,为嵌入式工程师打下坚实的语言基础,相信你学完本周,内功也会更加深厚。

课程安排
  1. 1、C语言数组、函数、指针混合运用,重点内容,再次讲解,彻底掌握
  2. 2、C语言宏定义,使用宏提高代码的通用性和可读性
  3. 3、C语言结构体、联合体、枚举,生活中的复杂对象如人的信息,外卖订单的信息如何用C语言进行描述
  4. 4、C语言位域,在运行内存很小的场合,如何节省变量占用的内存空间
  5. 5、C语言程序运行内存剖析,彻底搞清楚变量的生命周期,内存的分配和释放
  6. 6、C语言static关键字,搞清楚static关键字修饰的全局变量、局部变量、函数的实际场景用法
  7. 7、C语言堆区内存管理,掌握在C语言中如何做动态内存管理
C语言项目实战与《阶段笔试》

本周我们通过项目实践来进一步巩固C语言基础,一来提升学习趣味,二来强化C语言在实际项目中的运用,从而彻底掌握C语言。

课程安排
  1. 项目一:日历系统,通过项目强化C语言的运用,主要功能如下:
  2. 1、输入一个年份,显示这一年的日历
  3. 2、输入一个年份和月份,显示这一个月的日历
  4. 3、输入一个年份,月份,日期,显示这一天是星期几
  5. 项目二:俄罗斯方块游戏,通过项目强化C语言的运用,掌握游戏开发编程思想,主要功能如下 :
  6. 1、在终端上面显示俄罗斯方块
  7. 2、通过按键控制俄罗斯方块变形
  8. 3、摞在一起的俄罗斯方块自动消除
  9. 4、随机出现俄罗斯方块
  10. 5、游戏速度随等级自动加快
  11. 6、实时显示玩家的游戏得分
  12. 《第一阶段企业笔试》
  13. 1、C语言基础语法默写,从企业面试官的角度,考察对C语言语法掌握的情况
  14. 2、C语言企业笔试题考试及讲解,从企业的角度考察C语言知识,让同学提前了解企业在人才招聘环节,对C语言的考察点

阶段二:嵌入式开发基础之数据结构

  • 第5周
  • 第6周
  • 第7周
  • 第8周
数据结构-线性结构

在嵌入式开发工程中,任何一个软件系统的开发都离不开数据结构相关的算法,数据结构也是大厂在人才招招聘环节主要考察点,掌握它非常重要,本周我们先从线性结构讲起,用C语言实现,再一次夯实C语言基础。

课程安排
  1. 1、顺序表,使用数组来存放数据,实现数据的增删改查等操作
  2. 2、链表,使用动态内存分配节点来存放数据,实现数据的增删改查等操作
  3. 3、栈,数据先进后出,实现顺序结构和链式结构的栈,实现出栈和入栈等操作
  4. 4、队列,数据先进先出,实现顺序结构和链式结构的队列,实现入队列和出队列等操作
数据结构-非线性结构

本周我们讲解非线性结构、图数据结构、哈希表等更多数据结构内容,带领同学们0到1实现。

课程安排
  1. 1、二叉树,讲解二叉树的创建、递归遍历算法和非递归遍历算法,以及哈夫曼树编解码算法
  2. 2、图,讲解图的创建,深度遍历和广度遍历算法,以及图中最短路径的遍历算法
  3. 3、哈希表,讲解使用哈希表进行快速的数据查询,以及哈希算法在冲突的时候解决方法
排序与复杂度

本周讲解排序与算法的时间、空间复杂度内容,从而学会分析一个算法的好坏。

课程安排
  1. 1、排序,讲解常用的冒泡、选择、快速排序、堆排序等常用排序算法
  2. 2、时间复杂度和空间复杂度,分析一个算法的好坏衡量方法
数据结构项目实战

本周我们安排了一个学生管理系统小型项目进行练手,让同学们再次熟悉和掌握数据结构相关算法的实际场景运用。

课程安排
  1. 1、基于VT100的菜单设计
  2. 2、学生信息录入系统
  3. 3、学生信息查询
  4. 4、学生信息修改
  5. 5、学生信息排序
  6. 6、学生信息删除

阶段三:嵌入式开发基础之Linux Shell和Makefile

  • 第9周
Shell编程和Makefile工程管理

在实际嵌入式Linux平台项目开发过程中,由于涉及到的开发平台众多,基本都是通过命令行操作,工程师需要掌握Linux下常用命令和shell脚本编写以及Makefile管理工程文件进行自动化编译,这也是我们本周的重点内容。

课程安排
  1. 1、Linux 常用命令,讲解文件管理、用户管理、网络管理、磁盘管理等相关的命令
  2. 2、awk和sed命令,强大的数据按列处理和按行处理命令
  3. 3、shell脚本编程,胶水融合剂,让固定的流程自动化起来
  4. 4、Makefile多文件工程管理,完成代码的自动化编译,掌握Makefile的编写方法是嵌入式工程师必须具备的能力
  5. 5、阶段企业笔试-常用命令默写,从企业面试的角度,考察学员对Linux常用命令的掌握
  6. 6、阶段企业笔试-从企业笔试的角度考察学员对shell脚本和Makefile的掌握情况,让学员提前了解企业对工程师在shell和Makefile两方面的要求

阶段四:嵌入式软件开发之Linux 文件操作

  • 第10周
  • 第11周
Linux文件IO和标准IO

在嵌入式开发过程中,涉及到的主流操作系统是Linux系统,在Linux系统中设计理念是"一切皆文件",所以掌握Linux下文件操作非常重要,本周我们先从文件IO和标准IO讲起。

课程安排
  1. 1、Linux系统调用实现原理讲解,掌握系统调用的工作原理,理解printf函数是如何将字符串输出到屏幕
  2. 2、基于文件描述符的文件打开、读写、关闭等操作,掌握Linux下文件的操作API,并熟练使用这些API完成文件操作
  3. 3、基于标准C库的文件打开、读写、关闭等操作,理解标准C库函数和系统调用之间的区别和联系,掌握如何使用标准C库API完成文件操作
  4. 4、动态库、静态库制作和使用,理解gcc编译器链接库的工作原理和Linux操作系统如何加载动态库,掌握Linux下动态库和静态库的制作和使用
Linux下文件操作项目实践与阶段评测

实现一个基础的shell程序,能完成ls 和 cp功能,通过实现ls命令和cp命令功能,再次强化学员对Linux下文件操作和常用系统调用API使用

课程安排
  1. 1、输入命令解析命令参数
  2. 2、根据输入的ls命令,读取目录下的文件属性信息,并显示
  3. 3、根据输入的cp命令,完成文件拷贝和递归目录下的所有文件拷贝
  4. 4、笔试安排:常用文件操作函数默写,从企业面试的角度,考察学员对Linux下常用文件操作API函数掌握情况

阶段五:嵌入式软件开发之 Linux 多进程、多线程、IO模型

  • 第12周
  • 第13周
Linux 多进程、多线程、IO模型

嵌入式开发的主流操作系统是Linux操作系统,这一阶段由一线12年经验的高级工程师进行授课,主要让学员掌握Linux 下多线程、多进程编程思想和常用的IO模型,让自己开发的软件能充分发挥多核CPU优势,提升软件性能。

课程安排
  1. 1、进程的概念,理解在Linux系统中进程是什么
  2. 2、进程相关的命令,掌握Linux系统中进程信息的查看
  3. 3、进程创建,掌握Linux系统中如何在一个程序中创建多个进程
  4. 4、进程间通信,掌握Linux系统中常用的进程间通信方法,如:管道、信号、5、消息队列、共享内存、信号灯集等
  5. 6、进程间同步,理解同步的概念,掌握Linux系统中进程间同步的方式
  6. 7、线程的概念,理解在Linux系统中线程是什么
  7. 8、线程相关的命令,掌握Linux系统中线程信息的查看
  8. 9、线程创建,掌握Linux系统中如何在一个程序中创建多个线程
  9. 10、线程间通信,掌握Linux系统中线程间通信的方法
  10. 11、线程间同步,掌握Linux系统中线程间同步机制,如:信号量、条件变量、互斥锁等
  11. 12、阻塞IO,理解阻塞IO的概念及工作原理
  12. 13、非阻塞IO,理解非阻塞IO的概念及工作原理
  13. 14、IO多路复用,理解IO多路复用的概念及工作原理,掌握Linux下IO多路复用的方法,如:select,poll,epoll等。
Linux 项目实战-实现并发服务器模型与企业笔试

通过上周的学习我们掌握了Linux 多进程、多线程、IO模型,本周通过带同学们0到1实现一个并发服务器模型彻底掌握嵌入式中重要的Linux知识实践。

课程安排
  1. 1、基于多进程、多线程实现并发服务器模型,主要功能如下:
  2. 2、服务器进程创建线程池,维护线程池中线程创建和销毁,创建子进程反馈3、数据处理结果
  3. 4、服务器进程创建消息队列,从消息队列获取其他客服端进程发来的任务数据,并从线程池中取线程处理任务
  4. 5、线程池中的任务线程处理完客户端的数据后,通知服务器进程子,由服务器子进程共享内存的方式获取处理的数据,然后反馈给客户端进程
  5. 6、客户端进程通过消息队列提交任务请求,通过共享内存获取任务处理结果
  6. 7、企业笔试:常用Linux操作系统知识默写,从企业面试的角度,考察学员对Linux操作系统多进程、多线程、IO模型的理解

阶段六:嵌入式软件开发之Linux 网络编程

  • 第14周
  • 第15周
  • 第16周
网络基础和UDP Socket编程

在物联网的时代,任何一款嵌入式产品都需要具备网络功能进行万物互联,掌握网络知识非常重要,从本周开始我们会从网络的基础知识讲起到带你走进Linux 网络编程的大门。

课程安排
  1. 1、IP地址、子网掩码、默认网关、DNS服务器,掌握网络的基础知识,理解常用网络通信参数的含义
  2. 2、数据包内网、外网传输方式,掌握局域网是如何搭建,理解交换机和路由器的工作原理,掌握数据包是如何在网络中进行传输
  3. 3、网络模型,理解网络协议栈的设计原理,掌握网络模型的分层含义
  4. 4、一帧数据包格式,通过分析网络数据包个格式,掌握网络通信的原理
  5. 5、TCP协议,掌握TCP协议的三次握手、四次挥手、数据包传输的原理
  6. 6、UDP协议,掌握UDP协议的特点,对比TCP协议的不同,理解TCP和UDP协议的各自优缺点
  7. 7、网络通信中常用协议,掌握网络通信中常用的一些通信协议使用场景和特点
  8. 8、udp客户端实现,掌握Linux系统中socket在udp客户端的使用及通信方法
  9. 9、udp服务器端实现,掌握Linux系统中socket在udp服务器端的使用及通信方法
  10. 10、udp并发服务器实现,掌握并发服务器的设计思想和在Linux系统中如何使用多进程、多线程的思想实现udp并发无服务器
  11. 11、基于udp协议的局域网聊天室软件开发,掌握多人聊天环境中群聊的实现思想
TCP Socket编程和WireShark抓包分析

本周继续深入网络编程的TCP Socket编程和WireShark抓包分析内容,让同学们更深层次的理解TCP Socket、TCP和UDP协议。 课程安排:

课程安排
  1. 1、TCP客户端实现, 掌握Linux系统中socket在tcp客户端的使用及通信方法
  2. 2、TCP服务器端实现, 掌握Linux系统中socket在tcp服务器端的使用及通信方法
  3. 3、TCP粘包分析,理解TCP粘包原理,掌握TCP粘包情况下如何正确解析数据包
  4. 4、TCP并发服务器实现,掌握并发服务器的设计思想和在Linux系统中如何使用多进程、多线程的思想实现TCP并发无服务器
  5. 5、基于TCP协议的文件传输服务器软件开发,通过文件的上传和下载功能,再次强化tcp socket的使用
  6. 6、WireShark抓包工具使用,学会抓包工具的使用,并使用抓包工具详细分析TCP协议和UDP协议的具体内容,让学员深层次理解TCP和UDP协议
网络编程项目实战-网络视频监控与企业笔试

本周通过实战网络视频监控项目,让学员掌握Linux网络编程知识在实际工程场景中的运用,掌握在Linux系统中如何获取视频流、编解码视频流,传输视频流,并掌握HTTP协议

课程安排
  1. 1、V4L2编程,在Linux系统中获取摄像头数据
  2. 2、HTTP协议,掌握HTTP协议工作原理,并通过编程实现HTTP协议数据传输
  3. 3、libjpg库使用, 掌握YUYV数据格式如何压缩成jpeg数据格式进行传输
  4. 4、远程视频监控,实现具体的远程视频监控功能,并通过浏览器查看视频流
  5. 5、企业笔试:常用网络基础知识默写,从企业面试角度,考察学员对网络基础知识掌握情况

阶段七:嵌入式软件开发之Linux C++编程

  • 第17周
  • 第18周
  • 第19周
从C到C++

嵌入式开发中,C和C++不分家,多掌握一种开发语言就业机会也更多,C++语言是所有编程语言中最复杂的一门语言,掌握的C++语言也就掌握了其他编程语言。本周开始带领同学们从主要从C语言角度剖析C++。

课程安排
  1. 1、C++与C的不同地方,讲解C++在C的基础上扩展了哪些语法
  2. 2、命名空间,分析C语言语法的缺点,理解C++为什么要命名空间
  3. 3、引用,理解引用的本质,掌握引用和指针的不同
  4. 4、函数重载,理解为什么可以进行函数重载,编译器是如何对函数名进行处理的
  5. 5、默认值参数,理解默认值参数函数的特点
  6. 6、内联,理解内联为什么可以提高程序的运行效率
  7. 7、封装,掌握面向对象的编程思想,如何通过封装的思想描述一个对象
  8. 8、继承,掌握如何通过继承实现代码的复用,已经继承使用的场合
  9. 9、多态,掌握多态的思想,如何做到一个接口多种实现,在运行时决定对象的行为
  10. 10、泛型编程,掌握泛型编程的思想,如何写出通用的代码,做到代码的复用
  11. 11、STL容器,掌握C++标准STL容器提供的API使用
软件设计模式与C++11新特性

常用设计模式的思想是必须掌握的,本周带同学们学习C++的设计模式通用思想,通过一线技术总监授课教学更深层次理解设计模式和C++11新特性。

课程安排
  1. 1、智能指针,掌握如何使用智能指针做到内存自动释放,减少内存泄漏的分享
  2. 2、lambda表达式,掌握在C++中如何使用匿名函数,实现快捷编程
  3. 3、auto自动推导,掌握C++11中提供的自动类型推导含义,避免编码过程中关注复杂的类型,实现快捷编程
  4. 4、基于范围for循环,掌握C++11标准的新型for循环,实现快捷编程
  5. 5、右值引用,理解左值和右值得概率,掌握右值引用的使用场景
  6. 6、move移动语义,掌握如何通过move移动语义,实现代码高效率运行
  7. 7、单例,理解单例的设计模式编程思想,掌握饿汉式和懒汉式两种单例的实现方法
  8. 8、工厂,理解工厂设计模式编程思想,掌握简单工厂、工厂方法、抽象工厂的实现方法
  9. 9、代理,理解代理设计模式的编程思想,掌握代理设计模式的实现方法
  10. 10、适配器,理解适配器设计模式的编程思想,掌握适配器设计模式的实现方法
  11. 11、观察者,理解观察者模式的编程思想,掌握观察者设计模式的实现方法
  12. 12、设计模式遵从原则,理解设计模式遵从的通用思想,更深层次理解设计模式
项目实战-C++语言实现五子棋游戏与企业笔试

本周带同学们C++语言实现五子棋游戏,融合设计模式的思想,在实战中理解C++语言的使用以及设计模式运用。项目中会运用到网络的知识,再次强化学员对网络编程的知识的掌握,为之后的嵌入式项目开发打下坚实基础。

课程安排
  1. 1、五子棋游戏界面绘制
  2. 2、黑白棋子显示
  3. 3、五星连珠算法实现
  4. 4、本地双人对战实现
  5. 5、网络双人对战实现
  6. 6、企业笔试:C++常用语法点默写,从企业面试角度,考察学员对C++语言掌握情况

阶段八:嵌入式软件开发之项目实战篇

  • 第20周
  • 第21周
  • 第22周
嵌入式产品人机交互必备-QT框架

在嵌入式产品中,也会涉及到人机交互界面,QT的免费,开源,夸平台特性,成为了很多嵌入式产品人机交互界面软件开发的不二之选。本周带同学们从0开始讲解QT的各种功能和操作,掌握QT框架开发。

课程安排
  1. 1、信号与槽,掌握信号与槽的实现原理及使用方法,这是QT的精华实现
  2. 2、事件,理解事件的含义,掌握常用事件在Qt软件开发中的处理方法
  3. 3、Qt界面设计,掌握软件界面布局,掌握QT中的常用软件布局管理的使用
  4. 4、QSS界面美化,掌握QT的样式设置,如何通过样式改变QT开发软件的外观
  5. 5、Qt 文件操作,掌握QT中文件操作的方式
  6. 6、Qt 多线程,掌握QT中创建线程的方法,理解夸线程的信号与槽通信原理
  7. 7、Qt 网络编程,掌握QT中网络编程的实现方法,让自己开发的软件具备网络通信的能力
  8. 8、Qt 数据库编程,理解数据库概率,掌握在QT中如何实现数据库操作
  9. 9、Qt 图形与图像,掌握QT中图形和图像的处理方法
  10. 10、QML,掌握在QT中如何使用QML实现界面的快捷开发
嵌入式项目1-QT开发音乐播放器

本周我们用QT开发一款在线云音乐播放器,从软件界面设计美化到软件功能实现,最后到软件发布。让学员掌握一款软件开发到上线的全流程,同时通过软件开发强化学员对QT知识的掌握,掌握嵌入式人机交互利器。

课程安排
  1. 1、云音乐播放器界面设计及美化
  2. 2、在线搜歌显示歌曲信息
  3. 3、歌曲专辑图片动画显示
  4. 4、歌词解析同步歌曲进度实时显示
  5. 5、爱心歌曲下载,数据库存储及本地显示
  6. 6、 企业笔试:QT常用类功能默写, 从企业面试角度,考察学员对QT掌握情况
嵌入式项目2-人脸指纹识别考勤机

实现指纹及人脸考勤功能,包含指纹模块及人脸模块的控制,语音播报提示,数据库考勤管理,考勤数据可视化分析统计及导出。

课程安排
  1. 1、实现指纹模块的控制;
  2. 2、指纹模块调试工具的编写;
  3. 3、数据库的创建,实现考勤数据的增删改查;
  4. 4、考勤数据的可视化图表显示及统计分析;
  5. 5、人脸模块的控制;
  6. 6、人脸图像的判定及识别;
  7. 7、人脸考勤及指纹考勤的统一接口;

预售规则

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