Linux软件工程师掌握Linux环境下程序调试方法,例如gcc编译器、gdb调试器、make的使用。掌握Linux环境下用C语言实现的文件操作、标准I/O库、进程控制、进程间的通信、Linux的图形编程、网络编程以及数据库编程。掌握Linux操作系统下C程序开发的方法和技巧,并具备开发大型应用程序的能力。可以从事软件测试、软件编程,软件架构等工作。61《Linux软件工程师》教学大纲1、课程基本情况课程代码:总学时数:60-80课程类型:考试课适用对象:理工科各专业、计算机专业本、专科学生及计算机软件工程师先导课程:Linux程序员(C语言)后续课程:Linux数据库工程师,Linux嵌入式工程师。二、课程性质和目标1、课程的基本特性本课程是一门为计算机软件人员开设的一门计算机专业课程。Linux作为具有良好特性的操作系统,C语言作为广泛使用的编程语言,两者的结合为用户提供了一个强大的编程环境。2、课程的教学目标通过本课程的学习,学生能够熟悉Linux操作系统下C编程环境,掌握Linux操作系统下C语言编程的文件操作、标准I/O库、进程控制、进程间的通信、curses编程、网络编程等。使学生掌握Linux操作系统下C程序开发的方法和技巧,并具备开发大型应用程序的能力。三、课程教学方法与手段本课程的教学主要以理论教学和上机实践教学相结合的方式进行。四、课程教学内容、要求及重点、难点第一章Linux下C语言编程简介(一)主要教学内容第一节Linux系统简介第二节C语言的简介和特点第三节Linux程序设计基础知识第四节Linux下C语言编程环境第五节Linux程序设计的特点62第六节Linux下C语言编码的风格(二)学习目的要求1.了解Linux的发展;2.了解Linux的特点;3.了解C语言的特点;4.熟悉Linux下C语言编程环境;5.熟悉Linux下C语言编码风格。(三)重点和难点教学重点:Linux下C语言编程环境、Linux下C语言编码风格。教学难点:Linux下C语言编程环境。第二章Linux环境下程序调试基础(一)主要教学内容第1节Gcc编译器1.使用gcc2.gcc警告提示功能3.库依赖4.gcc代码优化5.加速6.gcc常用选项7.gcc的错误类型及对策第2节gdb调试器1.gdb概述2.使用gdb第3节使用make1.Makefile实例文件分析2.Makefile文件概述3.Make书写规则4.使用命令第四节实验内容(二)学习目的要求1.熟悉gcc的使用;2.熟悉gcc的常用选项;3.gdb的调试方法。(三)重点和难点教学重点:gcc的使用和常用选项;gdb的调试方法;makefile文件的书写规则、make命令的使用。第三章简单程序调试示例(一)主要教学内容第1节分支程序的设计第2节循环程序的设计63第3节函数第4节实验内容(二)学习目的要求熟悉程序设计的规则。(三)重点和难点教学重点:分支、循环程序的设计特点,函数的编写特点等。第四章文件的操作(一)主要教学内容第一节Linux的文件结构第2节基于文件描述符的I/O操作1.文件的创建、打开与关闭2.文件的读写操作3.文件的定位第3节基于流的I/O操作1.流的打开与关闭2.缓冲区的操作3.直接输入与输出4.格式化输入与输出第4节文件和目录的维护第5节实验内容(二)学习目的要求1.了解Linux的文件结构;2.熟悉系统调用;3.了解流和FILE对象;4.熟悉流的打开、读和写操作;5.熟悉文件和目录的维护。(三)重点和难点教学重点:系统调用,文件和目录的维护,流的打开,读和写等操作。教学难点:系统调用,流的打开、读和写等操作。第五章进程控制(一)主要教学内容第1节进程概述第2节进程的一般操作第3节进程的特殊操作第4节实验内容(二)学习目的要求1.了解进程的状态及其状态转换;2.了解进程的调度;3.熟悉进程的一般操作;4.熟悉进程的特殊操作。(三)重点和难点64教学重点:进程的状态,进程调度,进程的一般操作和特殊操作。教学难点:进程的一般操作和特殊操作。第六章进程间的通信(一)主要教学内容第1节Linux下进程通信概述第2节管道及有名管道第3节信号及其处理第4节消息队列第5节信号灯概述第6节共享内存第7节套接口通信第8节实验内容(二)学习目的要求1.掌握Linux下进程通信;2.了解管道的概念;3.了解消息队列与信号灯;4.了解各个进程间如何实现共享内存。(三)重点和难点教学重点:管道、消息队列、信号灯、各个进程间实现共享内存。教学难点:管道、消息队列、信号灯、各个进程间实现共享内存。第七章Linux的图形编程(一)主要教学内容第1节Linux的图形编程简解第2节初始化图形模式第3节基本绘图函数的应用第4节图片与文字显示第5节动画第6节三维绘图第7节游戏程序入门第8节实验内容(二)学习目的要求1.了解Linux图形编程的基本特点;2.熟悉图形编程的基本操作。(三)重点和难点教学重点:图形编程的基本操作和实例。教学难点:图形编程的基本操作和实例。第八章网络编程(一)主要教学内容第1节TCP/IP简介65第2节Socket编程简介第3节面向连接的客户机/服务机代码实例第4节ping命令的简单实现第5节实验内容(二)学习目的要求1.了解TCP/IP;2.掌握Socket编程;3.了解ping命令的简单实现。(三)重点和难点教学重点:Socket编程。教学难点:Socket编程。第九章数据库编程(一)主要教学内容第一节Linux环境下数据库简解第2节MySQL的使用第3节常用API函数简介第4节Linux下的MySQL数据库简单应用第6节Linux下Oracle数据库的简单应用第7节实验内容(二)学习目的要求1.了解数据库的基本概念;2.熟悉API函数的使用;3.掌握Linux下的MySQL数据库、Oracle数据库的简单应用。第10章综合设计实例一:Linux下CD播放器的实现(一)主要教学内容第1节音频CD第2节设备控制第3节音轨处理第4节CD播放第5节音量调节(二)学习目的要求掌握Linux下CD播放器程序的实现。(三)重点和难点教学重点:Linux下CD播放器程序的实现。教学难点:Linux下CD播放器程序的实现。实例二:一个简单的服务器端/客户端程序实现(一)主要教学内容第一节服务器端程序的实现第二节客户端程序的实现66(二)学习目的要求掌握服务器端/客户端程序的实现(三)重点和难点教学重点:服务器端/客户端程序的实现教学难点:服务器端/客户端程序的实现五、各教学环节学时分配(建议)内容课堂讲授课程实验习题或讨论其它教学环节小计Linux下C语言编程简介224Linux环境下程序调试基础224简单程序调试示例224文件的操作224进程控制426进程间的通信448Linux的图形编程6612网络编程426数据库编程448综合设计44总计342660制订日期:2006年9月67《Linux软件工程师》考试大纲基本要求:1.了解Linux系统程序设计的特点2.掌握Linux环境下程序调试3.掌握Linux操作系统下C语言编程的文件操作4.掌握Linux操作系统下C编程语言的标准I/O库、进程控制、进程间的通信5.掌握Linux的图形编程,网络编程以及数据库编程6.掌握Linux操作系统下C程序开发的方法和技巧7.具备开发大型应用程序的能力考试内容:一、基础知识:1.Linux系统与C语言2.Linux下C语言编程环境3.Linux程序设计的特点4.Linux环境下C程序的开发5.Linux环境下程序调试(gcc编译器,gdb调试器,make使用)6.简单程序调试(分支程序的设计,循环程序的设计,函数)二、文件的操作1.Linux的文件结构2.基于文件描述符的I/O操作(文件的创建、打开与关闭,文件的读写操作,文件的定位)3.基于流的I/O操作(流的打开与关闭,缓冲区的操作,直接输入与输出,格式化输入与输出)4.文件和目录的维护三、进程1.进程的一般操作与特殊操作2.进程间的通信,管道及有名管道3.信号处理和消息队列4.共享内存,套接口通信四、Linux的图形编程1.初始化图形模式2.基本绘图函数的应用3.图片与文字显示4.动画编程5.三维绘图编程6.游戏程序的编写五、网络编程1.TCP/IP和Socket编程2.面向连接的客户机/服务机的编写683.ping命令的简单实现六、数据库编程1.MySQL的使用2.常用API函数3.Linux下的MySQL数据库简单应用4.Linux下Oracle数据库的简单应用《Linux软件工程师》考试形式与题型考试形式:机考考试结构:基础知识(60%)+技能考试(40%)基础知识:编程环境6分语法规则12分线性进程18分文件I/O6分应用编程18分技能考试:69程序改错 10分程序填空 10分程序编程 20分考试类型:选择题(编程环境与语法规则):10题 20分程序阅读选择题:10题 20分程序填空题:10格 20分操作题:程序改错 2处10分程序填空2格10分程序编程1题20分70