《Linux程序员-C语言》教学大纲
一、课程基本情况
课程代码:
总学时数:60-80
课程类型:考试课
适用对象:理工科专业的本、专科学生及计算机程序员
先导课程:无
后续课程:Linux软件工程师,Linux数据库工程师,Linux嵌入式工程师
二、课程性质和目标
1.课程的基本特性
本课程是一门为计算机软件人员开设的一门计算机专业基础课程。Linux作为具有良好特性的操作系统,C语言作为广泛使用的编程语言,两者的结合为用户提供了广泛的应用前景。
2.课程的教学目标
通过本课程的学习,学生能够熟悉Linux操作系统下C 编程环境,掌握Linux操作系统下C语言编程的基本概念,包括编程环境(vi、gedit),编译工具gcc,调试方法gdb,库文件包含及多文件系统的编译,程序设计的三种逻辑结构,分支程序设计,循环程序设计,自定义数据类型的程序设计,模块化程序的设计,文件程序的设计,数组与指针,指针与函数,标准I/O库,动态链表等。使学生掌握Linux操作系统下C程序开发的方法和技巧,并具备开发应用程序的能力。
三、课程教学方法与手段
本课程的教学主要以理论教学和上机实践教学相结合的方式进行。
四、课程教学内容、要求及重点、难点
第一章 Linux下C语言编程简介
(一)主要教学内容
第一节 Linux C简介
第二节 C语言的简介和特点
第三节 Linux下C语言编程环境输入输出程序的设计
(二)学习目的要求
1. 了解Linux的发展;
2. 了解Linux的特点;
3. 了解C语言的特点;
4. 熟悉Linux下C语言编程环境输入输出程序的设计。
(三)重点和难点
教学重点:Linux下C语言编程环境输入输出程序的设计
教学难点:Linux下C语言编程环境输入输出程序的设计
第二章 Linux程序设计基础知识
(一)主要教学内容
第一节 程序的构成,main函数和其他函数
第二节 头文件、数据说明、函数的开始和结束标志
第三节 源程序的书写格式
第四节 C语言的风格
第五节 C语言的数据类型
第六节 输入、输出程序设计
第七节 运算符、运算符优先级和结合性
第八节 不同类型之间的转换与运算
第九节 C表达式类型和求值规则
第十节 表达式语句,空语句,复合语句
(二)学习目的要求
1.熟悉C程序的构成;
2.了解C语言的风格;
3.熟悉C语言的数据类型,运算符、运算符优先级和结合性;
4.熟悉C语言的不同类型之间的转换与运算。
(三)重点和难点
教学重点:C语言的数据类型,C语言的运算符,C表达式类型
教学难点:运算优先级和结合性,空语句,复合语句
第三章 Linux环境下程序调试基础
(一)主要教学内容
Gcc编译器
gdb调试器
(二)学习目的要求
1. 熟悉gcc的使用;
2. 了解gdb调试器。
(三)重点和难点
教学重点:如何使用gcc
教学难点:gcc常用选项
第四章 选择结构程序设计
(一)主要教学内容
第一节 用if语句实现选择结构
第二节 用if…else语句实现选择结构
第三节 用if…else if…else 语句实现选择结构
第四节 用switch语句实现多分支选择结构
第五节 选择结构的嵌套。
(二)学习目的要求
1. 熟悉if语句;
2. 熟悉 if…else语句;
3. 熟悉switch语句;
4. 了解选择结构的嵌套。
(三)重点和难点
教学重点:if语句,if…else语句,switch语句
教学难点:选择结构的嵌套
第五章 循环结构程序设计
(一)主要教学内容
第一节 for循环结构;
第二节 while和do while循环结构;
第三节 continue语句和break语句;
第四节 循环和嵌套。
(二)学习目的要求
1. 熟悉for循环结构;
2. 熟悉while和do while循环结构;
3. 学会使用continue语句和break语句,了解两者的区别;
4. 了解嵌套。
(三)重点和难点
教学重点:for结构,while与do while 结构
教学难点:continue和break语句的区别,循环嵌套程序的设计
第六章 数组初步
(一)主要教学内容
一维数组
二维数组
字符串与字符数组
(二)学习目的要求
1. 熟悉一维数组的定义、初始化以及引用;
2. 了解二维数组的定义、初始化以及引用;
3. 熟悉字符串与字符数组。
(三)重点和难点
教学重点:一维数组,,字符串与字符数组
教学难点:多维数组
第七章 函数的应用
(一)主要教学内容
第一节 库函数的正确调用
第二节 函数的定义方法
第三节 函数的类型和返回值
第四节 函数的参数
第五节 函数的调用
1) 嵌套调用
2) 递归调用
第六节 局部变量和全局变量
第七节 变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期
第八节 内部函数与外部函数
(二)学习目的要求
1. 了解点函数的定义;
2. 熟悉函数的使用;
3. 熟悉局部变量和全局变量。
(三)重点和难点
教学重点:函数的定义方法,形式参数与实在参数,参数值的传递,局部变量和全局变量
教学难点:参数值的传递,函数的调用
第八章 库文件包含及多文件系统的编译
(一)主要教学内容
第一节 宏定义的概念
第二节 不带参数的宏定义
第三节 带参数的宏定义
第四节 函数库的链接
第五节 库文件包含
第六节 头文件和系统求助
(二)学习目的要求节胜利
1、熟悉宏定义,不带参数的宏定义,带参数的宏定义;
2、 熟悉库文件包含。
(三)重点和难点
教学重点:不带参数的宏定义,带参数的宏定义,库文件包含
教学难点:函数库的链接
第九章 指针初步
(一)主要教学内容
第一节 指针与指针变量的概念
第二节 指针对一维数组的引用
第三节 用指针作函数参数
第四节 返回值为指针的函数
第五节 指向函数的指针
第六节 指针函数和函数指针的区别
第七节 指针数组与main函数的命令行参数
(二)学习目的要求
1. 了解指针变量的概念;
2. 熟悉指针对一维数组的引用;
3. 熟悉用指针作函数参数。
(三)重点和难点
教学重点:指针对一维数组的引用,用指针作函数参数
教学难点:用指针作函数参数,指针数组与main函数的命令行参数
第十章 结构体与共用体
(一)主要教学内容
第一节 结构体的概念
第二节 结构体类型的定义
第三节 结构体变量的定义和引用方法
第四节 结构体数组变量
第五节 结构体指针变量
第六节 链表的概念
第七节 堆栈
第八节 单向队列
第九节 链表的操作
(二)学习目的要求
1. 熟悉结构体类型的定义,结构体变量的定义和引用方法;
2. 了解用指针和结构体构成链表,堆栈,单链表的建立、输出、插入与删除。
(三)重点和难点
教学重点:结构体类型的定义,结构体变量的定义和引用方法。
教学难点:单链表的建立、输出、插入与删除。
第十一章 位运算
(一)主要教学内容
位运算符的含义及使用
简单的位运算
(二)学习目的要求
熟悉位运算的使用。
(三)重点和难点
教学重点:位运算符的含义及使用,简单的位运算
教学难点:简单的位运算
第十二章 文件操作
(一)主要教学内容
第一节 文件类型指针(FILE类型指针)
第二节 文件的创建、打开与关闭(fopen,fclose)
第三节 文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数)
第四节 文件的定位(rewind,fseek函数)
(二)学习目的要求
掌握文件的打开、关闭以及读写。
(三)重点和难点
教学重点:文件类型指针,文件的打开、关闭以及读写
教学难点:文件的定位
五、各教学环节学时分配 (建议)
内 容 | 课堂讲授 | 课程实验 | 习题或讨论 | 其它教学环节 | 小计 |
Linux下C语言编程简介 | 1 | 0 | 1 | ||
Linux程序设计基础知识 | 8 | 4 | 12 | ||
Linux环境下程序调试基础 | 2 | 2 | 4 | ||
选择结构程序设计 | 4 | 2 | 6 | ||
循环结构程序设计 | 6 | 4 | 10 | ||
数组初步 | 4 | 2 | 6 | ||
函数的应用 | 4 | 2 | 6 | ||
库文件包含及多文件系统的编译 | 2 | 2 | 4 | ||
指针初步 | 2 | 2 | 4 | ||
结构体与共用体 | 4 | 2 | 6 | ||
位运算 | 2 | 2 | 4 | ||
文件操作 | 4 | 2 | 6 | ||
总 计 | 43 | 26 | 69 |