Linux C++软件工程师全科班--课程概况 $VP\Ac,!
&LG|YvMY6
* 培养目标:Linux/UNIX C++高级软件工程师 #)i+'L8
专注Linux/UNIX服务器端的软件开发(后台开发),培养企业所需的专业Linux/UNIX C++软件工程师。 '
QjJ^3A
#s#BYbF
课程概况 *5 \'$;Rg
一、Linux操作系统 hQz1zG`z7
=s*4y$%I
涉及技术:Ubuntu GNU/Linux、RedHat Linux AS5 UZ6y3%G3^
W<TfDEEa
课程要求:熟练使用常用的Linux/UNIX命令。 &OkPO|
|VjD. ]I
时间:1周 5 /T#>l<
二、Linux C++开发环境搭建、开发工具的使用 hZ/p'
7AqbfLO
涉及技术:vi、GCC、GDB、Make、CVS、Subversion、Eclipse CDT z5D*UOy5M
C[l5[DpH
课程要求: J l{My^I5
熟练使用vi文本编辑器; e2>AL
>5TXLOYZ
熟练使用GCC工具链进行编译、调试、构建可执行文件或共享库/静态库;
><.*5q
)nq(XM7
熟练编写Makefile; :22wq{
%h;1}SFl0
熟练配置、使用CVS和Subversion两种版本控制工具; 'Q=(1a11
b/\l\\$-
熟练配置、使用Eclipse CDT开发工具 3<[q>7X
}AiF 7N0
时间:1周 'geN
dx
三、C++语言(8周) J/,m'wH
C++是一门多范型编程语言,相对于C、Java、C#等C系语言,复杂度高,但一旦领悟C++的精髓,则能发挥C++语言的强大威力,为了让学员掌握C++语言编程技术,我们将这部分的课程分为四大块: I>6zX
1、面向过程编程: Core C++
m;TekJXm
5^CWF|
涉及技术:C++基础:类型和声明、指针与数组、表达式与语句、函数、名字空间、异常、代码文件的组织 gR_Exs'K
w'y,$gtX/
课程要求:掌握扎实的C++基础知识 k!x`cp
g706*o)h
时间:2周 g5x>}@ONq7
2、面向对象编程: 类与继承(Class & Polymorphism) 5zyd;y)|'
S!^I<#d K
涉及技术:类设计、运算符重载、继承与多态 x^cJ~e2
Fiw^twz5
课程要求:正确理解面向对象的概念,用面向对象的思维和方法构建软件,正确地设计和使用类以及继承体系。 3Tc90p l*t
?%D nIl>
时间:2周 Z^%HDB9^
3、泛型编程: C++模板(Template) 0Pt%(^
(h[.
Ie
涉及技术:类模板、函数模板、函数对象(Function object) {Q`Q2'@
QF22_D<.}J
课程要求:C++模板是C++强大威力的技术支撑,是构建C++标准库、Boost类库、ACE框架等的基础,必须熟练掌握C++模板技术。 0HQTe>!
b&d4(dk
时间:2周 )(c%QWz
4、C++标准库应用 |TF6&$>d
-q
nOq[
涉及技术:标准容器(STL容器):vector、list、map、set等等;迭代器、算法库、IO流、C语言数学库等 0,8RA_Ca}
课程要求:对常用的部分如容器、迭代器、常用的算法、IO流,必须牢固掌握、熟练使用,对其它部分必须有认识,以免日后工作中频繁的编写标准库中存在的内容,重复制造轮子。 C~nL3w
3{Zd<JYg4-
时间: 2周 ZsYY)<n
四、C++ Boost模板库 l&mY}k
Boost是由C++标准委员会成员发起、众多C++界高手参与设计并实现的一个涉及面广、质量高且业已广泛使用的C++标准后备库,其中TR1已经被纳入C++0x标准库。这部分的课程将涉及其中一些常用的类库。 ~jz51[{v
~E vGNnTL
涉及技术:Aiso、Thread、Interprocess、System、File System、Date Time、Format、Array、Lambda、Signals、TR1中的部分(Regex、Tuple、Smart Point、Hash Map、Hash Set等) 9Sa6v?sRor
xK5~9StP
课程要求:必须掌握的类库有:Aiso、Thread、Date Time以及TR1中部分内容。 6TXTJ]er
7&w[h4Lw
时间:2周 n;:C{5
五、ACE框架 a1Q W0d
ACE是一个被广泛使用、设计优雅、高性能的C++通信框架(不仅仅是通信框架),其设计及实现被众多开源框架所借鉴。是构建稳定、高性能、高吞吐量、跨平台的服务器端程序的优秀框架。 g@>93j=cZU
myd:"u,}9
涉及技术:ACE Reactor框架、ACE Proactor框架、MultiThread支撑、Timer(Scheduler)、ACE Service Configurator nyOmNvZf
PeLzZ'$D
课程要求:以上列举的部分是服务器端编程必不可少的部分,均需熟练使用。 Gq%,'amf
N0ef5J
JM`
时间:2周 :KGPQ@:O
六、数据库开发 hx4c`fOs
X+N8r^&
专注Oracle 10g、MySQL5.0+。这部分的课程分为以下三大块: k@gQY _
1、SQL语言: @~&^1%37)
m,}GP^<1i
涉及技术:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL U]9k,#
WZP1g kX&M
课程要求:熟练使用SQL语言。 b?,=|H
QNx xW2+
时间:1周 [8Z
!dj
2、Oracle和MySQL存储过程、函数、触发器 w02C1oGfx
^oClf(
涉及技术:PL/SQL _~}2@&*G"
H7meI9L
课程要求:熟练编写Oracle和MySQL存储过程、函数、触发器 a6;5mx
S&D8Rao5
时间:1周 x`2du/
C
3、C++数据库开发 SDk^fTV8x
{M\n
涉及技术:OTL或DTL(两个高性能、易用的C++模板类,针对各大主流数据库如:Oracle、DB2、SqlServer、MySQL等) ;0uiO.
8kE3\#);\
课程要求:熟练使用OTL和DTL进行数据库编程。 l?Ibq} [~
7?);wh 7`
时间:0.5周 T`]P5Bk8r
七、软件工程 R D?52\
一个优秀的软件工程师不仅具备优秀的编码能力,更应该拥有优秀的软件设计思维和方法,以下课程也是轩辕学员必修的内容。 m3&