Linux软件工程师环境下程序调试方法方法,编译器、调试器、掌握Linux环境下程序调试方法,例如gcc编译器、gdb调试器、make的使用。掌握Linux环境下用C语言实现的文件操作、环境下语言实现的文件操作标准I/O库、的文件操作、进程控制、的使用。进程控制、进程间的通信、的图形编程、网络编程以及数据库编程。进程间的通信、Linux的图形编程、网络编程以及数据库编程。掌握Linux操程序开发的方法和技巧,并具备开发大型应用程序的能力。作系统下C程序开发的方法和技巧,并具备开发大型应用程序的能力。可以从事软件测试、软件编程,软件架构等工作。事软件测试、软件编程,软件架构等工作。61软件工程师》《Linux软件工程师》教学大纲一、课程基本情况课程代码:总学时数:60-80课程类型:考试课适用对象:理工科各专业、计算机专业本、专科学生及计算机软件工程师先导课程:Linux程序员(C语言)后续课程:Linux数据库工程师,Linux嵌入式工程师。二、课程性质和目标1、课程的基本特性本课程是一门为计算机软件人员开设的一门计算机专业课程。Linux作为具有良好特性的操作系统,C语言作为广泛使用的编程语言,两者的结合为用户提供了一个强大的编程环境。2、课程的教学目标通过本课程的学习,学生能够熟悉Linux操作系统下C编程环境,掌握Linux操作系统下C语言编程的文件操作、标准I/O库、进程控制、进程间的通信、curses编程、网络编程等。使学生掌握Linux操作系统下C程序开发的方法和技巧,并具备开发大型应用程序的能力。三、课程教学方法与手段本课程的教学主要以理论教学和上机实践教学相结合的方式进行。四、课程教学内容、要求及重点、难点第一章Linux系统程序设计基础(一)主要教学内容第一节第一个Linuxc程序第二节gcc编译器1.使用gcc2.gcc编译流程3.gcc编译器的主要参数第三节gdb调试器1.gdb概述2.使用gdb调试程序思考与实验(二)学习目的要求学习目的要求1.了解Linux下c程序的编辑、编译和运行622.熟悉gcc编译器的使用;3.熟悉gdb调试器的使用;(三)重点和难点三教学重点:教学重点:Linux下C语言编程环境、Linux下C语言程序的调试。重点教学难点:教学难点:Linux下C语言编程环境。难点第二章文件分割和多文件编译(一)主要教学内容第一节函数4.使用gcc5.gcc警告提示功能6.库依赖7.gcc代码优化8.加速9.gcc常用选项10.gcc的错误类型及对策第二节文件分割第三节Make工程管理器1.Makefile实例文件分析2.Makefile文件概述3.Make书写规则4.使用命令第四节autotools的使用思考与实验(二)学习目的要求1.熟悉gcc的使用;2.熟悉gcc的常用选项;3.gdb的调试方法。(三)重点和难点三教学重点:教学重点:gcc的使用和常用选项;重点gdb的调试方法;makefile文件的书写规则、make命令的使用。第三章Linux环境下系统函数的使用(一)主要教学内容第一节数学函数的使用63第二节字符函数的使用第三节系统时间与日期函数的使用第四节环境控制函数第五节内存分配函数第六节数据结构中常用函数思考与实验(二)学习目的要求熟悉程序设计的规则。(三)重点和难点三教学重点:教学重点:系统函数的使用。重点第四章(一)主要教学内容第一节Linux系统文件的属性1.Linux文件类型2.Linux文件权限文件的操作3.Linux文件的其他属性第三节不带缓存的文件I/O操作1.文件的创建2.文件的打开和关闭3.文件的读写操作4.文件上锁第四节带缓存的流文件I/O操作1.流文件的打开与关闭2.流文件的读写操作3.文件的定位第五节特殊文件的操作1.目录文件的操作2.链接文件的操作思考与实验(二)学习目的要求1.了解Linux的文件结构;2.熟悉系统调用;3.了解流和FILE对象;4.熟悉流的打开、读和写操作;5.熟悉文件和目录的维护。(三)重点和难点三64教学重点:教学重点:系统调用,文件的维护,流的打开,读和写等操作。重点教学难点:教学难点:系统调用,流的打开、读和写等操作。难点第五章(一)主要教学内容第一节串行通信概述第二节串行通信程序的设计1.串行通信程序设计流程2.打开通讯端口3.设置串口属性串行通信4.串口通信程序设计主要语句说明思考与实验(二)学习目的要求1.了解通讯端口;2.了解串口属性;3.熟悉串行通信程序设计流程;(三)重点和难点三教学重点:教学重点:串行通信程序设计流程,通讯端口,串口属性。重点教学难点:教学难点:串行通信程序设计流程。难点第六章进程控制(一)主要教学内容第一节进程简介第二节Liunx进程控制1.进程的相关函数2.进程创建3.进程终止4.僵尸进程第三节Linux守护进程1.守护进程及其特性2.编写守护进程的要点3.守护进程的编写思考与实验(二)学习目的要求1.了解进程的状态及其状态转换;2.了解进程的调度;653.熟悉进程的一般操作;4.熟悉进程的特殊操作。(三)重点和难点三教学重点:教学重点:进程的状态,进程调度,进程的一般操作和特殊操作。重点教学难点:教学难点:进程的一般操作和特殊操作。难点第七章进程间的通信(一)主要教学内容第一节信号1.信号及其使用简介2.信号操作的相关函数第二节管道1.低级管道操作2.高级管道操作3.命名管道第三节消息队列第四节共享内存1.mmap系统调用2.系统V共享内存思考与实验(二)学习目的要求1.掌握Linux下进程通信;2.了解管道的概念;3.了解消息队列和管道;4.了解各个进程间如何实现共享内存。(三)重点和难点三教学重点:教学重点:管道、消息队列、各个进程间实现共享内存。重点教学难点:教学难点:管道、消息队列、各个进程间实现共享内存。难点第八章网络程序设计(一)主要教学内容第一节TCP/IP简介1.TCP/IP概述2.TCP/IP模块结构第二节网络编程1.socket简介662.socket套接口简介3.socket套接口的数据结构4.TCP编程5.UDP编程第三节网络高级编程思考与实验(二)学习目的要求1.了解TCP/IP;2.掌握Socket编程;3.了解ping命令的简单实现。(三)重点和难点三教学重点:教学重点:Socket编程。重点教学难点:教学难点:Socket编程。难点第九章Linux的图形编程(一)主要教学内容第一节Linux的图形编程简介第二节安装和使用SDL图形开发库第三节初始化图形模式第四节基本绘图函数的应用第五节图片与文字显示第六节动画第七节三维绘图第八节游戏程序入门思考与实验(二)学习目的要求1.了解Linux图形编程的基本特点;2.熟悉图形编程的基本操作。(三)重点和难点三教学重点:教学重点:图形编程的基本操作和实例。重点教学难点:教学难点:图形编程的基本操作和实例。难点第十章数据库编程(一)主要教学内容第一节Linux环境下数据库简介第二节MySQL的使用67第三节常用API函数简介第四节Linux下的MySQL数据库简单应用思考与实验(二)学习目的要求1.了解数据库的基本概念;2.熟悉API函数的使用;3.掌握Linux下的MySQL数据库的简单应用。第十一章QT编程(一)主要教学内容第一节Qt简介1.Qt的安装2.Qt的编译器qmake3.Qt中的Action4.Qt中的信号-槽机制第二节QtDesigner设计器1.启动QtDesigner设计器2.QtDesigner设计器的应用第三节Qt应用实例思考与实验(二)学习目的要求1.了解Qt的安装;2.熟悉QtDesigner设计器;3.掌握使用Qt设计编写程序的简单应用。第十二章综合设计实例一:实例一:记事本程序设计(一)主要教学内容第一节创建工程第二节创建主窗体第三节创建actions第四节添加工具条、菜单和文本编辑区域第五节消息映射第六节消息处理函数第七节编译运行及测试思考与实验(二)学习目的要求68掌握Linux下记事本程序的实现。(三)重点和难点三教学重点:教学重点:Linux下记事本程序的实现。重点教学难点:教学难点:创建actions,消息处理函数。难点实例二:实例二:编写FTP客户端(一)主要教学内容第一节设计地址簿模块第二节设计本地端口扫描模块第三节设计FTP客户端模块(二)学习目的要求学习目的要求掌握FTP客户端程序的实现(三)重点和难点三教学重点:教学重点:FTP客户端的实现重点教学难点:教学难点:设计本地端口扫描模块,设计本地端口扫描模块。难点69五、各教学环节学时分配(建议)内容课堂讲授222222444424总计3426课程实验22222242242习题或讨论其它教学环节小计44444486684460Linux系统程序设计基础文件分割和多文件编译Linux环境下系统函数的使用文件的操作串行通信进程控制进程间的通信网络程序设计Linux的图形编程数据库编程QT编程综合设计制订日期:2006年9月70软件工程师》《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.初始化图形模式712.基本绘图函数的应用3.图片与文字显示4.动画编程5.三维绘图编程6.游戏程序的编写五、网络编程1.TCP/IP和Socket编程2.面向连接的客户机/服务机的编写3.ping命令的简单实现六、数据库编程1.MySQL的使用2.常用API函数3.Linux下的MySQL数据库简单应用