程序设计基础《程序设计基础》教学大纲刘喜平31 教学大纲.docx
- 文档编号:25347101
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:17
- 大小:22.34KB
程序设计基础《程序设计基础》教学大纲刘喜平31 教学大纲.docx
《程序设计基础《程序设计基础》教学大纲刘喜平31 教学大纲.docx》由会员分享,可在线阅读,更多相关《程序设计基础《程序设计基础》教学大纲刘喜平31 教学大纲.docx(17页珍藏版)》请在冰豆网上搜索。
程序设计基础《程序设计基础》教学大纲刘喜平31教学大纲
《程序设计基础》
课程教学大纲
课程编号:
03045
制定单位:
信息管理学院
制定人(执笔人):
刘喜平
审核人:
万常选
制定(或修订)时间:
2016年02月28日
江西财经大学教务处
《计算机组成原理》课程教学大纲
一、课程总述
本课程大纲是以2014年计算机科学与技术专业本科专业人才培养方案为依据编制的。
课程名称
程序设计基础
课程代码
03045
英文名称
ProgrammingFundamentals
开课阶段
第一阶段,第2学期
课程性质
学科基础课
先修课程
计算机科学导论
总学时数
96
周学时数
6
开课院系
信息管理学院
任课教师
万常选,刘喜平
编写人
刘喜平
编写时间
2016年02月
课程负责人
大纲主审人
万常选
使用教材
刘喜平,万常选,舒蔚,骆斯文,《C程序设计:
方法与实践》,高等教育出版社,2016
教学
参考资料
《C语言与程序设计方法》第二版,万常选等编著,科学出版社,2009年出版
《从问题到程序:
程序设计与C语言引论》,裘宗燕,机械工业出版社,2011.5
《C程序设计导引》,尹宝林著,机械工业出版社,2013.
课程
教学目的
程序设计基础是计算机科学与技术专业的核心专业基础课之一。
程序设计课程不仅仅是知识的讲述,更重要的是一种基本技能的训练。
因此本课程的目的是:
(1)使学生掌握程序及程序设计的基本概念。
(2)使学生掌握结构化程序设计的基本方法。
(3)使学生掌握C语言的基本语法、基本概念和基础知识。
(4)初步掌握程序设计的基本算法
(5)通过训练使学生具备较强的C程序设计的能力。
(6)通过实践环节使学生具有较强的调试程序的能力。
(7)通过本课程的教学,逐步培养学生的运用计算思维方式解决实际问题的能力。
课程
教学要求
1. 本课程以计算机导论为先修课;
2. 本课程是计算机科学与技术专业的基础课,是后序课程如数据结构、操作系统的基础,也是深刻理解软件设计类课程内容的保障。
因此,在讲授该课程时,需要适当结合学生已有的软件知识,培养学习热情;
3. 本课程的重点是培养学生从计算机的角度来思考问题,引导学生如何思考、分析问题,培养学生的计算思维。
在教学过程中,要讲解C语言的语法,但更应强调思维方式的转变。
4.本课程涉及到计算机程序的编写,在教学过程中要强调动手能力,要通过上机来锻炼学生的动手能力和调试能力。
5.本课程要加强平时的考核,建议安排3~4次左右的测验和考试。
本课程的重点和难点
重点:
C语言的运算符与表达式、分支结构、循环结构、函数、结构体、指针和文件操作。
难点:
指针的理解和运用,复杂条件的表示,复杂循环程序,文件操作
课程考试
考试以到课和完成日常作业为必要条件,期末考试采用闭卷笔试。
课程成绩评定由三部分组成:
期末考试占60%;平时作业和测验占30%;课堂考勤10%;
二、
教学时数分配
章目
教学内容
教学时数分配
课堂讲授
实验(上机)
第一章
程序设计与软件开发
2学时
2学时
第二章
C语言概述
4学时
2学时
第三章
数据类型与输入输出
6学时
2学时
第四章
运算符与表达式
6学时
2学时
第五章
分支结构
6学时
2学时
第六章
循环结构与程序设计基本算法
8学时
2学时
第七章
函数与结构化程序设计
8学时
2学时
第八章
指针与数组
8学时
2学时
第九章
C程序运行原理
2学时
2学时
第十章
复杂问题的求解算法
4学时
2学时
第十一章
结构体、联合共用体与枚举类型
4学时
2学时
第十二章
文件
4学时
2学时
第十三章
指针进一步讨论与位运算
2学时
2学时
三、单元教学目的、教学重难点和内容设置
第一章程序设计与软件开发
【教学目的】
本章介绍程序设计的基本背景,如什么是程序,程序是如何设计的,算法、数据结构是什么,什么是软件,为什么提出了软件工程的概念等。
【重点难点】
重点:
程序设计语言的理解,算法和数据结构的理解
难点:
数据结构的概念
【教学内容】
1.1程序设计的基本概念
介绍什么是程序,什么是程序设计语言,以及什么是程序设计
1.2算法与数据结构
介绍算法及其特征、算法的结构、算法的描述,以及数据结构的概念。
1.3软件开发
介绍什么是软件,软件与程序之间的区别,讲解软件工程的必要性。
第二章C语言概述
【教学目的】
本章将描述C语言的一个子集,这个子集中的内容是C语言中最基础、最常用的部分。
通过本章,读者对C语言和C程序将有一个较为全面的了解;学习完本章后,读者可以阅读和编写简单的程序,为学习其他章节打下基础;再次,对于有其他语言基础的读者而言,通过本章可以快速地进入到C语言的角色中来。
本章首先介绍C语言的发展历史,以及C语言的特点。
然后,将通过实例介绍C程序的构成。
之后,将介绍C语言中最基本的知识点:
常见数据类型、表达式、输入和输出、语句和函数。
【重点难点】
重点:
C程序的构成、变量、常见数据类型、printf和scanf函数、if语句、for和while语句、函数
难点:
printf和scanf函数、for和while语句、函数
【教学内容】
2.1C语言的发展与特点
介绍C语言产生的背景和特点。
2.2一个C程序实例
通过一个实例介绍C程序的构成。
2.3C语言的字符集与标识符
介绍C语言字符集的组成和标识符的注意事项
2.4数据类型
介绍集中最常见的数据类型:
int、float、double和char
2.5常量和变量
介绍常量和变量的概念,常见数据类型常量的表示方法,变量的声明与初始化
2.6运算符和表达式
介绍算术运算符、赋值运算符、关系运算符等常见的运算符,以及这些运算符组成的表达式
2.7输入与输出
介绍printf和scanf函数输入输出一般格式,并举例说明。
2.8语句
介绍简单语句、语句块、if语句、for语句和while语句。
2.9函数
介绍函数调用的方法和注意事项。
第三章数据类型与输入输出
【教学目的】
本章详细介绍C语言中的基本数据类型,以及这些数据的输入和输出。
【重点难点】
重点:
整型、浮点型和字符型变量的存储单元的宽度、精度和允许进行的操作,用printf和scanf实现基本数据类型的输入和输出;数组的表示和使用方法,用数组表示字符串的原理;用fprintf和fscanf实现文件的输入和输出。
难点:
用printf和scanf实现格式化输入和输出,字符串的不同输入和输出方法的异同,用fprintf和fscanf实现文件的输入和输出
【教学内容】
3.1整型
介绍整型数据的存储方式和输入、输出方式。
3.2浮点型
介绍浮点型数据的存储方式和输入、输出方式,以及浮点数的比较方法。
3.3字符型
介绍浮点型数据的存储方式和输入、输出方式,以及常见的字符处理方法。
3.4数组
介绍数组的表示方式、数组元素的访问和初始化。
3.5字符串
介绍字符串常量的表示方法,如何用数组表示字符串,以及字符串的输入和输出。
3.6文本文件输入与输出
介绍文本文件使用的步骤,以及读写文本文件的方法。
3.7变量的进一步讨论
介绍标识符的命名规则、变量的定义与初始化,以及变量限定词const。
第四章运算符与表达式
【教学目的】
本章讨论算术运算符、赋值运算符、增量减量运算符、强制类型转换运算符和逗号运算符以及相应的表达式。
【重点难点】
重点:
赋值运算符和赋值表达式、增量减量运算符、数据类型的转换
难点:
各种运算符的优先级和结合性,数据类型转换过程中值的变化,表达式的值的计算过程
【教学内容】
4.1运算符与表达式概述
概述C语言运算符和表达式
4.2算术运算符和算术表达式
介绍算术运算符和算术表达式。
4.3赋值运算符和赋值表达式
介绍赋值运算符、复合赋值运算符和赋值表达式。
4.4增量减量运算符
介绍前置、后置增量和减量运算符。
4.5子表达式的求值顺序
介绍一个表达式或者语句中多个子表达式的运算顺序。
4.6数据类型的转换
介绍式类型转换、赋值表达式两侧数据的类型转换以及强制类型转换。
4.7逗号运算符和逗号表达式
介绍逗号运算符和逗号表达式。
第五章分支结构
【教学目的】
首先介绍关系运算符、逻辑运算符,以及对应的表达式,它们可以用来表示条件;接着,我们介绍条件运算符和条件表达式、if语句和switch语句,用它们可以表示含有分支的程序结构。
【重点难点】
重点:
关系运算符和关系表达式、逻辑运算符和逻辑表达式、if语句、switch语句
难点:
逻辑表达式的运算过程,根据题目要求写出逻辑表达式和分支语句。
【教学内容】
5.1关系运算符和关系表达式
5.2逻辑运算符和逻辑表达式
5.3条件运算符和条件表达式
5.4C语句概述
5.5if语句
5.6switch语句
5.7应用举例
第六章循环结构与程序设计基本算法
【教学目的】
介绍循环控制结构,然后介绍以循环结构为核心的几个程序设计基本算法。
【重点难点】
重点:
while语句、for语句和dowhile语句,
难点:
使用循环语句解决实际问题
【教学内容】
6.1循环结构与控制语句
介绍while语句、for语句、do-while语句、循环嵌套和流程控制语句(break语句、continue语句和goto语句)。
6.2穷举算法
介绍穷举算法的思想及其应用。
6.3迭代与递推算法
介绍迭代、递推算法的思想及其应用
6.4根据状态变量控制循环
介绍根据状态变量控制循环这一类程序的应用。
6.5程序设计实例
介绍一些有代表性的例子。
第七章函数与结构化程序设计
【教学目的】
介绍C语言程序的基本结构之函数的基本知识,以及如何用函数构建C语言的结构化程序。
【重点难点】
重点:
函数的定义、调用和声明方法,函数的执行过程,函数的递归调用过程,程序的函数分解
难点:
递归调用的过程,利用递归算法解决实际问题,如何将程序分解为多个函数
【教学内容】
7.1函数
介绍程序中使用函数的必要性,函数定义、调用的方法,介绍函数原型与函数声明,介绍函数的执行过程,以及函数设计的思路。
7.2递归调用与递归算法
介绍递归调用的执行过程、递归算法,并以Hanoi塔问题为例,介绍递归算法的应用
7.3程序的函数分解
通过一个实例介绍程序的函数分解过程
7.4C程序结构
介绍C程序的结构,包括编译预处理命令、全局声明和函数,以及C程序的物理构成。
第八章指针与数组
【教学目的】
本章将介绍指针类型。
首先,介绍指针的概念和指针访问存储单元的机制、指针变量的声明与初始化、有关指针的基本运算等;其次,讨论数组的指针,介绍如何通过指针(变量)访问一维数组元素,二维数组的声明、引用及初始化,如何通过指针(变量)访问二维数组元素,以及指向一维数组的指针变量(即行指针变量)的概念和使用方法;第三,介绍通过字符指针处理字符串的方法以及常用的字符串处理函数;第四,介绍指针作为函数参数的使用方法,包括变量的指针、一维数组的指针和二维数组的指针作为函数参数;第五,介绍返回指针的函数;最后,介绍指针数组。
在第13章中我们还将对指针作进一步的讨论。
【重点难点】
重点:
指针的基本运算、数组中元素的指针与行指针、字符指针与字符串,以及指针作为函数参数
难点:
行指针的理解,用字符指针变量处理字符串,用指针作为函数参数。
【教学内容】
8.1指针与指针变量
介绍指针的概念、指针变量的声明与初始化和指针的基本运算。
8.2数组的指针
介绍一维数组的指针、二维数组、二维数组的元素指针和行指针,以及指向一维数组的指针变量(行指针变量)。
8.3字符指针与字符串
介绍字符串处理函数和用指向字符的指针变量处理字符串。
8.4指针作为函数参数
介绍变量的指针作为函数参数、一维数组的指针作为函数参数,以及二维数组的指针作为函数参数。
8.5返回指针的函数
介绍返回指针的函数和返回行指针的函数。
8.6指针数组
介绍指针数组的概念及其应用,指针数组作main函数的形参,以及行指针数组。
第九章C程序运行原理
【教学目的】
本章揭示一个C程序运行背后的原理,讲述C程序运行所经历的编译、连接、运行等阶段的故事,展示程序运行中存储器是如何使用如何布局的。
然后,介绍程序运行时如何管理内存,不同作用域和生存期的变量是如何存在的。
通过本章的内容,可以让我们透过现象,看清本质,更深入地理解C程序,对于深入理解程序的运行、操作系统乃至计算机系统的运行有很大帮助,对于优化程序、减少错误、提高调试能力、避免安全漏洞也大有裨益。
【重点难点】
重点:
C程序的执行过程、程序的内存布局、变量的存储类型。
难点:
程序在内存中是如何存在的,变量的作用域、存储期限和链接类型。
【教学内容】
9.1一个C程序的运行之旅
介绍C程序运行中的各个阶段。
9.2计算机指令的执行过程
结合计算机原理,介绍一条计算机指令的执行过程。
9.3计算机的存储模型
介绍计算机各级存储器形成的层次模型
9.4程序的内存布局
介绍内存中的堆、栈等区域,以及可执行文件映像。
9.5变量的存储类型
介绍局部变量与全局变量、变量的存储期限,以及链接等属性。
第十章复杂问题的求解算法
【教学目的】
本章介绍程序设计中的一些经典算法和经典问题,通过这些问题一方面让学生体会算法的奥秘,培养学生的兴趣;另一方面,向学生讲授常见算法的思路,让学生学会应用这些算法解决问题。
【重点难点】
重点:
每种算法的特点、应用场景,学会应用这些算法解决问题
难点:
如何应用这些算法解决实际问题
【教学内容】
10.1分治法
介绍分治法的基本思想,并介绍两个应用实例:
折半查找和循环赛赛程安排问题。
10.2贪心算法
介绍贪心算法的基本思想,并介绍两个应用实例:
活动安排问题和背包问题。
10.3动态规划算法
介绍动态规划算法的基本思想,并介绍两个应用实例:
最长公共子序列问题和0-1背包问题。
10.4回溯法
介绍回溯法的基本思想,并介绍两个应用实例:
n皇后问题和0-1背包问题。
第十一章结构体、联合共用体与枚举类型
【教学目的】
本章介绍C语言中构造自定义数据类型的几种机制,它们是结构体、联合公用体和枚举。
这几种机制大大丰富了C语言的数据类型。
学习本章后,在实际应用中可以构造自己需要的数据类型。
【重点难点】
重点:
结构体类型的定义、结构体变量的声明和初始化,结构体指针、结构体数组、结构体与函数、线性链表。
难点:
线性链表的创建和使用
【教学内容】
11.1数据类型的再讨论
介绍数据类型与事物属性之间的关系,数据类型的分类。
11.2结构体
介绍结构体类型的定义、结构体变量的定义与存储、结构体变量的引用与初始化。
11.3结构体数组
介绍结构体数组的声明、初始化,并举例。
11.4结构体指针
介绍结构体指针的定义以及使用。
11.5结构体与函数
介绍函数的结构体类型参数,以及结构体类型的函数。
11.6结构体嵌套
介绍通过结构体嵌套构造更加复杂的数据类型。
11.7线性链表
介绍线性链表的概念,以及如何用C语言实现线性链表。
11.8联合共用体
11.9枚举类型
介绍枚举类型定义与变量声明,以及枚举类型的使用方法;介绍类型名重新定义typedef使用。
第十二章文件
【教学目的】
本章介绍C语言文件操作的基础知识和基本方法。
学习本章后,学生要了解二进制文件和文本文件之间的区别,掌握如何读写两种类型的文件。
【重点难点】
重点:
C文件的基本概念,文本文件与二进制文件,二进制文件的操作,文件的定位与随机读写
难点:
二进制文件的操作,文件的定位与随机读写
【教学内容】
12.1C文件概述
介绍C文件的基本概念、文本文件与二进制文件,以及文件的处理方法。
12.2流与文件类型的指针
介绍流的概念,以及FILE*数据类型。
12.3二进制文件的操作
介绍二进制文件打开、文件的关闭,以及数据块方式的输入和输出。
12.4文件的定位与随机读写
介绍文件的定位和随机读写。
12.5文件操作的出错检测
12.6文件访问方式与读写操作应用实例
通过实例介绍文件中数据的修改、删除,以及向文件中追加或插入数据。
第十三章指针进一步讨论与位运算
【教学目的】
本章介绍更加复杂的指针用法,以及C语言的位运算。
本章的内容虽然不是很常用,但是在适当的场合能够大幅提高效率。
通过本章的学习,要让学生体会到指针应用的灵活性,掌握位运算的一些常见技巧。
【重点难点】
重点:
函数的指针、位运算。
难点:
复杂C声明的理解。
【教学内容】
13.1多级指针
介绍多级指针的概念和例子。
13.2函数的指针
介绍函数的指针的概念,包括指向函数的指针变量、指向函数的指针数组、指向返回指针的函数的指针变量、指向返回指针的函数的指针数组、指向返回行指针的函数的指针变量、指向返回行指针的函数的指针数组。
13.3位运算
介绍二进制位运算符,以及位段的概念。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础 程序设计基础程序设计基础教学大纲刘喜平31 教学大纲 程序设计 基础 刘喜平 31