Linux C + + programming




Linux C++软件工程师班


培养目标:Linux/UNIX C++软件工程师
专注Linux/UNIX服务器端的软件开发(后台开发),培养企业所需的专业Linux/UNIX C++软件工程师。
 

入学条件:理工科大专及以上学历
非理工科毕业的学员需通过主讲老师的评测。
 

班别及授课时间:脱产班历时5个月
 

开班计划:请留意网站首页的开课预告板块

http://www.xuanyuan-soft.cn


 

课程大纲


一、Linux操作系统

系统环境:Ubuntu
GNU/Linux
RedHat Linux AS5FreeBSD

课程要求:熟练使用常用的Linux/UNIX命令。

时间:1周。


二、Linux C++开发环境搭建、开发工具的使用

涉及内容:viGCCGDBMakeCVSSubversionEclipse
CDT

课程要求:

熟练使用vi文本编辑器;

熟练使用GCC工具链进行编译、调试、构建可执行文件或共享库/静态库;

熟练编写Makefile

熟练配置、使用CVSSubversion两种版本控制工具;

熟练配置、使用Eclipse
CDT
开发工具。

时间:1


三、C++语言

       
C++
是一门多范型编程语言,相对于CJavaC#C系语言,复杂度高,但一旦领悟C++的精髓,则能发挥C++语言的强大威力,为了让学员掌握C++语言编程技术,我们将这部分的课程分为五个部分:

面向过程编程: Core C++

涉及技术:C++基础:类型和声明、指针与数组、表达式与语句、函数、名字空间、异常、代码文件的组织

课程要求:掌握扎实的C++基础知识。

时间:1.5周。

面向对象编程: 封装、继承与多态(encapsulationinherit & Polymorphism

涉及技术:类设计、运算符重载、继承与多态。

课程要求:正确理解面向对象的概念,用面向对象的思维和方法构建软件,正确地设计和使用类以及继承体系。

时间:1.5周。

泛型编程: C++模板(Template

涉及技术:类模板、函数模板、函数对象(Function object)。

课程要求:C++模板是C++强大威力的技术支撑,是构建C++标准库、Boost类库、ACE框架等的基础,必须熟练掌握C++模板技术。

时间:1.5周。

数据结构与算法

涉及内容:常用数据结构(顺序容器、链表、树)和算法(排序与搜索)C++实现。

课程要求:能实现常规的数据结构(容器如vectorliststatckqueue等),排序和搜索算法。

时间:1.5周。

C++标准库应用

涉及技术:标准容器(STL容器):vectorlistmapset等等;迭代器、算法库、IO流、C语言数学库等

课程要求:对常用的部分如容器、迭代器、常用的算法、IO流,必须牢固掌握、熟练使用,对其它部分必须有认识,以免日后工作中频繁的编写标准库中存在的内容,重复制造轮子。

时间:2周。


四、C++ Boost模板库

       
Boost
是由C++标准委员会成员发起、众多C++界高手参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中TR1已经被纳入C++0x标准库。这部分的课程将涉及其中一些常用的类库。

涉及技术:AisoThreadInterprocessSystemFile SystemDate TimeFormatArrayLambdaSignalsTR1中的部分(RegexTupleSmart PointHash
Map
Hash Set等)。

课程要求:必须掌握的类库有:AisoThreadDate Time以及TR1中部分内容。

时间:2周。


五、ACE框架

       
ACE
是一个被广泛使用、设计优雅、高性能的C++通信框架(不仅仅是通信框架),其设计及实现被众多开源框架所借鉴。是构建稳定、高性能、高吞吐量、跨平台的服务器端程序的优秀框架。

涉及技术:ACE
Reactor
框架、ACE Proactor框架、MultiThread支撑、TimerScheduler)、ACE
Service Configurator

课程要求:以上列举的部分是服务器端编程必不可少的部分,均需熟练使用。

时间:2周。


六、数据库开发

       专注Oracle 10gMySQL5.0+。这部分的课程分为以下三大块:

SQL语言:

涉及技术:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL

课程要求:熟练使用SQL语言。

时间:1周。

OracleMySQL存储过程、函数、触发器

涉及技术:PL/SQL

课程要求:熟练编写OracleMySQL存储过程、函数、触发器。

时间:1周。

C++数据库开发

涉及技术:OTLDTL(两个高性能、易用的C++模板类,针对各大主流数据库如:OracleDB2SqlServerMySQL等)。

课程要求:熟练使用OTLDTL进行数据库编程。

时间:0.5周。


七、软件工程

       一个优秀的软件工程师不仅具备优秀的编码能力,更应该拥有优秀的软件设计思维和方法,以下课程也是轩辕学员必修的内容。

涉及技术:数据库建模、软件建模、GOF设计模式、文档编写

课程要求:掌握数据库建模、软件建模的思想和方法,熟练使用建模工具,尝试用设计模式来思考软件的架构。至少学会编写《详细设计说明书》、《概要设计说明书》、《数据库设计说明书》。

时间:1.5周。


八、项目实战

       轩辕提供多个企业级实战项目供学员选择,如:电信级IM
Server
、电信级Billing Server等基于UNIXLinux下的高负荷、大压力的C++ Server端项目,同时提供Client端程序以便联调及测试。

涉及技术:本项目将涉及学习阶段所有内容。

项目要求:学员按分组,分工、协作,共同完成项目,最终评估两个方面:软件架构设计、软件代码实现质量。

时间:4周。


Linux C++
软件工程师训练营
Q Q
570508473
主 页:http://www.xuanyuan-soft.cn
论 坛:http://www.xuanyuan-soft.cn/forums