课程教学大纲(黑体加粗,小2号)
《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安装
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下的编程
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守护进程
1.守护进程及其特性
2.编写守护进程的要点
3.守护进程的编写
思考与实验
(二)学习目的要求
1.了解进程的状态及其状态转换;
2.了解进程的调度;
3.熟悉进程的一般操作;
4.熟悉进程的特殊操作。
(三)重点和难点
教学重点:进程的状态,进程调度,进程的一般操作和特殊操作。
教学难点:fork创建进程,exec函数家族。
第五章 进程间的通信
(一)主要教学内容
第一节信号
1.信号及其使用简介
2.信号操作的相关函数
3.父子进程的信号处理
第二节管道
1.低级管道操作
2.高级管道操作
3.命名管道
第三节消息队列
第四节共享内存
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多路复用。
学生通过学习网络编程相关的技术,可以做到攻入他人计算机,从而窃取计算机中资源,或控制该台计算机。因此,对学生的正确引导非常重要。在网络安全领域中,有“白帽”和“黑客”之分,前者是拥有网络安全技术,从事的是合法的操作,如在相关企业的授权下,对企业的安防进行渗透测试,提高企业网络的安全防护,这是正当的用途。而后者是运用学习的技术,在别人未授权情况下,进入他人计算机,窃取有价值的信息或夺取该计算机的控制权限,从而给他人带来一定的经济损失。因此,选择做“白帽”还是“黑客”,需要引导,需要从思想意识形态上去规范。在学习阶段就告诉学生,在网络虚拟环境下,也有国家的法律法规存在,不要认为所学习的技术可以让我们隐身,可以肆无忌惮地做违法的事情,给国家、社会带来危害。
第八章 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 | | | |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著,张宁等译,电子工业出版社。
八、其他说明
大纲修订人: 修订日期:
大纲审定人: 审定日期:
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.