一、课程背景
GNU/Linux是自由软件的产物,作为一种自由且源代码开放的类UNIX操作系统,虽然诞生的时间较短,但已经成为现代操作系统的成功典范。
随着自由和开源思想的深入人心,开源软件层出不穷,到目前为止,已经开发出了大量的各类软件,其中包括系统工具和应用软件,在Linux环境下,已经形成了一系列较为完整的软件生态系统,为软件开发人员提供了丰富多彩的宝贵资源。
同时, Linux系统已被广泛运用到各个领域,从服务器、个人电脑到嵌入式系统,从航空航天、智能制造到消费电子,从云计算、大数据、物联网到人工智能,已经渗入到人类生活的各个方面。
二、课程特点
Linux编程是一门理论和实践并重的专业基础课,除课堂理论教学外,还需结合大量的上机实践,通过大量的编程,从中发现并解决遇到的实际问题,从而巩固并加深对所学知识的理解。
Linux编程的知识点会涉及到多个学科,例如,计算机体系结构、编译原理、计算机网络和软件开发方法等,因此,在学习过程中,应学会将所学知识串联起来,做到融会贯通,在实践中学会综合运用所学知识,解决遇到的各类复杂问题。
三、课程目标
通过本课程的学习,使学生掌握Shell命令的使用、Shell脚本的编写、GNU C开发工具的运用以及Linux/C编程,使学生熟悉并掌握Linux环境下软件开发的过程和一般方法。
通过该课程的学习,使学生对Linux的系统架构有深入的理解,通过大量的编程实例,结合具体的应用场景,使学生掌握在Linux环境下编写系统工具和应用软件的相关技术。
通过上机实践,激发学生的学习兴趣和探索精神,通过解决实践中遇到的各类实际问题,使学生养成独立思考和查阅文献资料的习惯,在实践中不断磨练意志,提高综合运用所学知识解决实际问题的能力。为开发高质量软件奠定坚实基础。
四、课程内容
(一)、基础部分:
1. Unix/Linux的诞生与发展
2. Shell命令
3. Shell命令语言
4. GNU C开发环境
(二)、编程部分
围绕Linux内核各子系统的编程接口,从软件体系架构的角度,在阐述其运作机制的基础上,结合大量的编程实例,演示相应接口函数的使用方法,同时,结合不同的应用场景,给出软件应采用的设计模式,为降低程序设计的复杂性,必要时,给出了相应的程序设计原则。
在教学活动中,将理论知识和具体应用实践相结合,通过丰富的实例,使学生熟悉Linux环境下软件的开发过程, 掌握Shell命令的使用、Shell脚本的编写、GNU C开发工具的运用以及Linux/C编程的一般方法。从而使学生对Linux的系统架构有深入的理解,从宏观和微观两个层面理解Linux系统的运作机制。结合实际应用场景,,激发学生的学习兴趣和探索精神,通过解决实践中遇到的各类问题,使学生养成独立思考和查阅文献资料的习惯,在实践中不断磨练意志,提高综合运用知识解决实际问题的能力。为开发高质量软件奠定坚实基础。
考试采用开卷形式,平时占30%,期末占70%,平时成绩包括出勤和上机实验等方面,期末考试为理论考试,内容涵盖授课计划所包含的内容,题型包括选择题、是非题、填空题/简答题、设计题、Shell脚本编写和Linux/C编程。
C语言程序设计、操作系统
教材
1] 郑谦益.GNU/Linux编程(第二版)[M] .北京:人民邮电出版社,2024。
参考书
[11 (德)凯利斯克.Linux/UNIX系统编程手册[M].孙剑译.北京:人民邮电出版社.2014。