《Linux应用开发》教学大纲 一、课程基本信息 课程代码:16238402 课程名称:Linux应用开发 英文名称:Linux application developmen 课程类别:专业课 时:32 学 分:2 适用对象:计算机科学与技术 老核方式:老试 先修课程:《程序设计基础》、《数据结构》、 《操作系统》 二、课程简介 本课程是一门为计算机软件人员开设的一门计算机专业课程。Liux作为具有良 好特性的操作系统,c、python语言作为广泛使用的编程语言,两者的结合为用户提 供了一个强大的编程环境。通过本课程的学习,使学生掌握Liux操作系统下C python程序开发的方法和技巧,并具备开发大型应用程序的能力。 This is a computer course for computer software developement.Linux as a good feature of the operating system,and C,python language as a widely used programming language,the combination of the above two provides users with a strong programming environment.Through the study of this course,students can master the Linux operating system under the C,python program development methods and techniques,and have the ability to develop large-scale applications. 三、课程性质与教学目的 通过本课程的学习,学生能够热悉Linux操作系统下C、python编程环境,掌握 Linux操作系统下C、python语言编程的文件操作、标准I/O库、进程控制、进程间 的通信、线程编程、网络编程等。使学生掌握Linux操作系统下C、python程序开发 的方法和技巧,并具备开发大型应用程序的能力。 四、教学内容及要求 第一章Linux基础 (一)主要教学内容
1 《Linux 应用开发》教学大纲 一、课程基本信息 课程代码:16238402 课程名称:Linux 应用开发 英文名称:Linux application development 课程类别:专业课 学 时:32 学 分:2 适用对象:计算机科学与技术 考核方式:考试 先修课程:《程序设计基础》、《数据结构》、《操作系统》 二、课程简介 本课程是一门为计算机软件人员开设的一门计算机专业课程。Linux 作为具有良 好特性的操作系统,c、python 语言作为广泛使用的编程语言,两者的结合为用户提 供了一个强大的编程环境。通过本课程的学习,使学生掌握 Linux 操作系统下 C、 python 程序开发的方法和技巧,并具备开发大型应用程序的能力。 This is a computer course for computer software developement. Linux as a good feature of the operating system, and C,python language as a widely used programming language, the combination of the above two provides users with a strong programming environment. Through the study of this course, students can master the Linux operating system under the C,python program development methods and techniques, and have the ability to develop large-scale applications. 三、课程性质与教学目的 通过本课程的学习,学生能够熟悉 Linux 操作系统下 C、python 编程环境,掌握 Linux 操作系统下 C、python 语言编程的文件操作、标准 I/O 库、进程控制、进程间 的通信、线程编程、网络编程等。使学生掌握 Linux 操作系统下 C、python 程序开发 的方法和技巧,并具备开发大型应用程序的能力。 四、教学内容及要求 第 一章 Linux 基础 (一)主要教学内容
第一节什么是Linux? 1 Linux操作系统特点 2 Linux操作系统组成部分 3 Linux版本 3.1 Linux内核版本 3.2 Linux发行版 第二节centos操作系统的安装 1 centos7系统安装基本要求 2虑拟机下的centos7的安装准备 3 centos7安装 4ssh客户端连接 第三节Linux常用命令 1文件目录命令 2用户管理命令 3进程管理命令 4网络管理命令 5应用软件的安装 5vi编辑器的使用 (二)学习目的要求 1.了解Linux各种发行版本 2.熟悉vmware下centos7的安装和使用: 3.熟悉shel1下各种常用命令: (三)重点和难点 教学重点:centos7的安装,ssh客户端的连接,shel1命令。 教学难点:文件和目录操作命令、vi编辑器的使用。 在介绍liux系统的发展历史,引入习总书记的讲话,没有网络安全就没有国家 安全,没有信息化就没有现代化。建设网络强国,要有自己的技术,要有过硬的技术 要有良好的信息基础设施,形成雄厚的信息经济:要有高素质的网络安全和信息化人 才队伍。并介绍国产操作系统的开发进程和现状,鼓励同学们积极使用国产操作系统 和国产软件,将国产操作系统和应用生态做大做强。 第二章Linux编程环境 (一)主要教学内容 第一节第一个Linux c程序 第二节gcc编译器
2 第一节 什么是 Linux ? 1 Linux 操作系统特点 2 Linux 操作系统组成部分 3 Linux 版本 3.1 Linux 内核版本 3.2 Linux 发行版 第二节 centos 操作系统的安装 1 centos7 系统安装基本要求 2 虚拟机下的 centos7 的安装准备 3 centos7 安装 4 ssh 客户端连接 第三节 Linux 常用命令 1 文件目录命令 2 用户管理命令 3 进程管理命令 4 网络管理命令 5 应用软件的安装 5 vi 编辑器的使用 (二)学习目的要求 1.了解 Linux 各种发行版本 2.熟悉 vmware 下 centos7 的安装和使用; 3.熟悉 shell 下各种常用命令; (三)重点和难点 教学重点:centos7 的安装,ssh 客户端的连接,shell 命令。 教学难点:文件和目录操作命令、vi 编辑器的使用。 在介绍 linux 系统的发展历史,引入习总书记的讲话,没有网络安全就没有国家 安全,没有信息化就没有现代化。建设网络强国,要有自己的技术,要有过硬的技术; 要有良好的信息基础设施,形成雄厚的信息经济;要有高素质的网络安全和信息化人 才队伍。并介绍国产操作系统的开发进程和现状,鼓励同学们积极使用国产操作系统 和国产软件,将国产操作系统和应用生态做大做强。 第二章 Linux 编程环境 (一)主要教学内容 第一节 第一个 Linux c 程序 第二节 gcc 编译器
1.使用gcc 2.gcc编译流程 3.gcc编译器的主要参数 第三节 gdb调试器 1.gdb概述 2.使用gdb调试程 第四节python3在linux下的编程 l.python3和pip3的安装 2.python3程序的交互解释执行方式 3.python3程序的命令行执行方式 (二)学习目的要求 .了解Linux下c、python程序的编辑、编译和运行 2.熟悉gcc编译器的使用 3.熟悉gd山调试器的使用: (三)重点和难点 教学重点:Linux下C、python语言编程环境、Linux下C、python语言程序的 调试。 教学难点:Linux下C、python:3语言编程环境 第三章 文件的I/0操作 (一)主要教学内容 第一节文件I/0操作 1.文件的创建、打开和关闭 2.文件的读取和写入 3.文件的定位 第二节目录操作 1.文件系统基本结构 2.目录操作相关API 3.标准文件I0 (二)学习目的要求 l.了解Linux的文件结构: 2.熟悉文件和目录的相关系统调用: (三)重点和难点 3
3 1.使用 gcc 2.gcc 编译流程 3.gcc 编译器的主要参数 第三节 gdb 调试器 1.gdb 概述 2.使用 gdb 调试程序 第四节 python3 在 linux 下的编程 1.python3 和 pip3 的安装 2.python3 程序的交互解释执行方式 3.python3 程序的命令行执行方式 (二)学习目的要求 1.了解 Linux 下 c、python 程序的编辑、编译和运行 2.熟悉 gcc 编译器的使用; 3.熟悉 gdb 调试器的使用; (三)重点和难点 教学重点:Linux 下 C、python 语言编程环境、Linux 下 C、python 语言程序的 调试。 教学难点:Linux 下 C、python3 语言编程环境。 第三章 文件的 I/O 操作 (一)主要教学内容 第一节 文件 I/O 操作 1.文件的创建、打开和关闭 2.文件的读取和写入 3.文件的定位 第二节 目录操作 1.文件系统基本结构 2.目录操作相关 API 3. 标准文件 IO (二)学习目的要求 1.了解 Linux 的文件结构; 2.熟悉文件和目录的相关系统调用; (三)重点和难点
教学重点:文件的打开,读和写和定位等操作,目录相关的API调用。 教学难点:tail程序的实现原理。 第四章 进程控制 (一)主要教学内容 第一节进程简介 第二节Liunx进程控制 1.进程的相关函数 2.讲程创律 3.进程终止 4.僵尸进程 第三节Linux守护进程 L.守护进程及其特性 2.编写守炉进程的要点 3.守护进程的编写 思考与实验 (二)学习目的要求 1.了解进程的状态及其状态转换: 2. 了解进程的调度 3.熟悉讲程的一般操作: 4.熟悉进程的特殊操作 (三)重点和难点 教学重点:进程的状态,进程调度,进程的一般操作和特殊操作。 教学难点:fork创建进程,exec函数家族。 第五章进程间的通信 (一)主要教学内容 第一节信号 1.信号及其使用简介 2.信号操作的相关函期 3.父子进程的信号处理 第一节管道 1.低级管道操作 2.高级管道操作 3.命名管道 4
4 教学重点:文件的打开,读和写和定位等操作,目录相关的 API 调用。 教学难点:tail 程序的实现原理。 第四章 进程控制 (一)主要教学内容 第一节进程简介 第二节 Liunx 进程控制 1.进程的相关函数 2.进程创建 3.进程终止 4.僵尸进程 第三节 Linux 守护进程 1.守护进程及其特性 2.编写守护进程的要点 3.守护进程的编写 思考与实验 (二)学习目的要求 1.了解进程的状态及其状态转换; 2.了解进程的调度; 3.熟悉进程的一般操作; 4.熟悉进程的特殊操作。 (三)重点和难点 教学重点:进程的状态,进程调度,进程的一般操作和特殊操作。 教学难点:fork 创建进程,exec 函数家族。 第五章 进程间的通信 (一)主要教学内容 第一节信号 1.信号及其使用简介 2.信号操作的相关函数 3.父子进程的信号处理 第二节管道 1.低级管道操作 2.高级管道操作 3.命名管道
第三节消息队列 第四节共享内有 1.mmaD系统调用 2.系统v共享内存 思考与实验 (二)学习目的要求 l.掌握Linux下进程通信 了解管道的概念 3.了解消息队列和管道: 4.了解各个进程间如何实现共享内存。 (三)重点和难点 教学重点:管道、消息队列、各个进程间实现共享内存。 教学难点:通过管道通信、生产者消费者模型。 在介绍现代操作系统对高并发访问的应当方法时,介绍阿里的飞天操作系统,该 系统可将遍布全球的百万级服务器连成一台超级计算机,单集群可达1万台规模,10 万个进程达毫秒级响应,十亿级文件数,B级别存储空间,填补了中国大规模操作 系统历史上的空白,打破了欧美长达40多年的技术垄断。告诉学生自主研发才是中 国崛起的中坚力量!如果中兴不依赖他人,就没有今日的“狼狈”,一条禁令出来, 直接让科技巨头进入“休克”状态,可见独立自主的重要性! 第六章线程及线程间的通信 (一)主要教学内容 第一节线程 1.线程的概念 2.线程相关函数 第二节线程间通信 l.Lock、信号量、Event的使用 2.协程 3.线程局部变量ThreadLocal (二)学习目的要求 1.掌握线程的创建 2.掌握各种同步控制API: 2.了解线程、协程的概念:
5 第三节消息队列 第四节共享内存 1.mmap 系统调用 2.系统 V 共享内存 思考与实验 (二)学习目的要求 1.掌握 Linux 下进程通信; 2.了解管道的概念; 3.了解消息队列和管道; 4.了解各个进程间如何实现共享内存。 (三)重点和难点 教学重点:管道、消息队列、各个进程间实现共享内存。 教学难点:通过管道通信、生产者消费者模型。 在介绍现代操作系统对高并发访问的应当方法时,介绍阿里的飞天操作系统,该 系统可将遍布全球的百万级服务器连成一台超级计算机,单集群可达 1 万台规模,10 万个进程达毫秒级响应,十亿级文件数,EB 级别存储空间,填补了中国大规模操作 系统历史上的空白,打破了欧美长达 40 多年的技术垄断。告诉学生自主研发才是中 国崛起的中坚力量!如果中兴不依赖他人,就没有今日的“狼狈”,一条禁令出来, 直接让科技巨头进入“休克”状态,可见独立自主的重要性! 第六章 线程及线程间的通信 (一)主要教学内容 第一节 线程 1.线程的概念 2.线程相关函数 第二节 线程间通信 1.Lock、信号量、Event 的使用 2.协程 3.线程局部变量 ThreadLocal (二)学习目的要求 1.掌握线程的创建 2. 掌握各种同步控制 API; 2.了解线程、协程的概念;
(三)重点和难点 教学重点:线程的创建、同步控制技术 教学难点:事件和信号量的区别。 第七章Socket网络程序设计 (一)主要教学内容 第一节TCP/IP简介 1.TCP/IP概述 2.TCP/IP模块结构 第二节网络编程 1.socket简介 2.socket套接▣简介 3.socket套接口的数据结构 4.TCP编程 5.UDP编程 第三节网络高级编程 思考与实验 (二)学习目的要求 1.了解TCP/IP: 2.掌握TCP、UDP服务器和客户端的编程 3.了解多进程、多线程服务器的编程。 (三)重点和难点 教学重点:TCP、UDP服务器和客户端的编程模式 教学难点:Select多路复用、Epoll多路复用。 学生通过学习网络编程相关的技术,可以做到攻入他人计算机,从而窃取计算机 中资源,或控制该台计算机。因此,对学生的正确引导非常重要。在网络安全领域中, 有“白帽”和“黑客”之分,前者是拥有网络安全技术,从事的是合法的操作,如在 相关企业的授权下,对企业的安防进行渗透测试,提高企业网络的安全防护,这是正 当的用途。而后者是运用学习的技术,在别人未授权情况下,进入他人计算机,窃取 有价值的信息或夺取该计算机的控制权限,从而给他人带来一定的经济损失。因此, 选择做“白帽”还是“黑客”,需要引导,需要从思想意识形态上去规范。在学习阶 段就告诉学生,在网络虚拟环境下,也有国家的法律法规存在,不要认为所学习的技 术可以让我们隐身,可以肆无忌惮地做违法的事情,给国家、社会带来危害
6 (三)重点和难点 教学重点:线程的创建、同步控制技术。 教学难点:事件和信号量的区别。 第七章 Socket 网络程序设计 (一)主要教学内容 第一节 TCP/IP 简介 1.TCP/IP 概述 2.TCP/IP 模块结构 第二节网络编程 1.socket 简介 2.socket 套接口简介 3.socket 套接口的数据结构 4.TCP 编程 5.UDP 编程 第三节网络高级编程 思考与实验 (二)学习目的要求 1.了解 TCP/IP; 2.掌握 TCP、UDP 服务器和客户端的编程; 3.了解多进程、多线程服务器的编程。 (三)重点和难点 教学重点: TCP、UDP 服务器和客户端的编程模式。 教学难点:Select 多路复用、Epoll 多路复用。 学生通过学习网络编程相关的技术,可以做到攻入他人计算机,从而窃取计算机 中资源,或控制该台计算机。因此,对学生的正确引导非常重要。在网络安全领域中, 有“白帽”和“黑客”之分,前者是拥有网络安全技术,从事的是合法的操作,如在 相关企业的授权下,对企业的安防进行渗透测试,提高企业网络的安全防护,这是正 当的用途。而后者是运用学习的技术,在别人未授权情况下,进入他人计算机,窃取 有价值的信息或夺取该计算机的控制权限,从而给他人带来一定的经济损失。因此, 选择做“白帽”还是“黑客”,需要引导,需要从思想意识形态上去规范。在学习阶 段就告诉学生,在网络虚拟环境下,也有国家的法律法规存在,不要认为所学习的技 术可以让我们隐身,可以肆无忌惮地做违法的事情,给国家、社会带来危害
第八章QT编程 (一)主要教学内容 第一节Qt简介 1.Qt的安装 2.Qt的编译器qmake 3.Qt中的Action 4.Qt中的信号-槽机制 第二节Qt Designer设计器 l.启动Qt Designer设计器 2.Qt Designer设计器的应用 第三节Qt应用实例 思考与实验 (二)学习目的要求 1.了解Qt的安装: 2.熟悉Qt Designer设计器: 3.学握使用Qt设计编写程序的简单应用。 第九章综合设计 实例一:网易新闻排行榜的爬虫设计与开发 (一)主要教学内容 第一节Requests和BeautifulSoup的简介 第二节网易新闻排行版的html结构分析 第三节爬虫的设计及开发 第四节结果及展示 (二)学习目的要求 掌握Linux下爬虫程序的实现。 (三)重点和难点 教学重点:requests库和BeautifulSoup库的使用。 教学难点:网页结构查询API,多线程爬虫的设计。 实例二:基于QT和UDP的多人聊天室设计与开发 (一)主要教学内容 第一节协议设计 第二节设计UDP服务器 第三节设计客户端 7
7 第八章 QT 编程 (一)主要教学内容 第一节 Qt 简介 1.Qt 的安装 2.Qt 的编译器 qmake 3.Qt 中的 Action 4.Qt 中的信号-槽机制 第二节 Qt Designer 设计器 1.启动 Qt Designer 设计器 2.Qt Designer 设计器的应用 第三节 Qt 应用实例 思考与实验 (二)学习目的要求 1.了解 Qt 的安装; 2.熟悉 Qt Designer 设计器; 3.掌握使用 Qt 设计编写程序的简单应用。 第九章 综合设计 实例一:网易新闻排行榜的爬虫设计与开发 (一)主要教学内容 第一节 Requests 和 BeautifulSoup 的简介 第二节网易新闻排行版的 html 结构分析 第三节爬虫的设计及开发 第四节结果及展示 (二)学习目的要求 掌握 Linux 下爬虫程序的实现。 (三)重点和难点 教学重点:requests 库和 BeautifulSoup 库的使用。 教学难点:网页结构查询 API,多线程爬虫的设计。 实例二:基于 QT 和 UDP 的多人聊天室设计与开发 (一)主要教学内容 第一节 协议设计 第二节 设计 UDP 服务器 第三节 设计客户端
(二)学习目的要求 掌握UDP和QT程序的设计及开发 (三)重点和难点 教学重点:多人聊天客户端的实现 教学难点:聊天室程序通信协议的设计和交互图。 五、各教学环节学时分配 内容 课堂讲授课程实验 习题或讨论 其它教学 不措 小计 Linux基础 2 Linux编程环境 2 2 文件的I/0操作 进程控制 2 4 进程间的通信 2 4 线程及线程间的通信 2 网络程序设计 2 QT编程 2 2 综合设计 总计 16 16 32 六、课程考核 本课程为考试课程,由课堂提问、实验报告、签到、书面考试组成。课堂提问、实验 报告、签到构成平时成绩,占总评的30%:期末书面考试占总评的70%。 七、推荐教材和教学参考资源 课程教材: 《Liux编程基础》,李养群,王攀,周梅(编著),人民邮电出版社。 参考书: 《UNIX环境高级编程》,W.Richard Stevens著,尤晋元等译,机械工业出版社。 《UNIX进程间通信》,John Shapley Gray若,张宁等译,电子工业出版社
8 (二)学习目的要求 掌握 UDP 和 QT 程序的设计及开发 (三)重点和难点 教学重点:多人聊天客户端的实现 教学难点:聊天室程序通信协议的设计和交互图。 五、各教学环节学时分配 内 容 课堂讲授 课程实验 习题或讨论 其它教学 环节 小计 Linux 基础 2 2 Linux 编程环境 2 2 4 文件的 I/O 操作 2 2 4 进程控制 2 2 4 进程间的通信 2 2 4 线程及线程间的通信 2 2 4 网络程序设计 2 2 4 QT 编程 2 2 综合设计 4 4 总 计 16 16 32 六、课程考核 本课程为考试课程,由课堂提问、实验报告、签到、书面考试组成。课堂提问、实验 报告、签到构成平时成绩,占总评的 30%;期末书面考试占总评的 70%。 七、推荐教材和教学参考资源 课程教材: 《Linux 编程基础》,李养群 , 王攀 , 周梅(编著),人民邮电出版社。 参考书: 《UNIX 环境高级编程》,W. Richard Stevens 著,尤晋元等译,机械工业出版社。 《UNIX 进程间通信》,John Shapley Gray 著,张宁等译,电子工业出版社
八、其他说明 大纲修订人: 修订日期: 大纲审定人: 审定日期:
9 八、其他说明 大纲修订人: 修订日期: 大纲审定人: 审定日期: