还剩6页未读,继续阅读
文本内容:
《C语言程序设计》课程教学大纲
一、课程基本信息课程中文名称C语言程序设计课程英文名称C LanguageProgramming课程编号33422101课程模块口思想政治理论课口通识教育课■专业基础课□专业课课程性质■必修口限选口专业任选口任选实验(专题辅导)总学时48讲授学时2424学时电子与信息电子、电科、自动总学分3开课单位开课系(室)工程学院化授课对象本科适用专业电子信息工程、电子科学与技术、自动化、电气工程及其自动化先修课程无
二、课程简介和教学目标
1.课程简介《C语言程序设计》是针对大学一年级本科生的通识教育拓展课,适用于电子与信息工程学院的电子信息工程、电子科学与技术、自动化、电气工程及其自动化等专业,为后续的涉及编程开发课程提供了程序开发基础其教学目的在于掌握c语言的概念、语法和结构化程序设计方法等相关知识、熟练使用C语言IDE(Integrated DevelopmentEnvironment,集成开发环境)软件、以及能够运用C语言完成某些小型综合项目的程序编程,培养学生的编程实践能力其主要内容包括输入输出、选择结构程序设计、循环结构程序设计、数组、函数、指针以及结构体等概念和语法、以及项目设计过程的介绍等等作为一门实践性较强的课程,在学习过程中从理解概念和语法入手,结合案例学习由浅至深逐步升级,通过在IDE软件中对案例代码进行修改、编译、调试以及运行,培养学生的实践动手能力
2.教学目标教学目标1C语言程序语法与编程设计知识点学习掌握C语言工程基础知识,并有效将其应用于软件分析与设计
(1)理解C语言的输入输出、选择结构程序设计、循环结构程序设计、数组、函数、指针以及结构体等基础概念与语法,能够以区别、解释或者举例的方式进行阐述以下知识点,例如
①整数、单精度小数以及双精度小数的二进制表达形式与数值范围的区别;
②字符与整数的运用相似性与差异性
③执行文件的生成过程,
④输入输出语句的格式字符运行效果;
⑤逻辑表达式的值与条件判断;
⑥while、do-while,for循环结构的使用差异性;
⑦数组的初始化;
⑧函数在调用过程的参数传递方式、以及函数嵌套,•
⑨静态变量的特殊性;⑩结构体的定义与初始化
(2)通过案例与实验学习培养独立编程能力,在编程实践中能够使用以下程序编程技巧,例如
①在多文件项目避免头文件的嵌套和交叉引用;
②分段线性函数的嵌套if-else if-else语句实现方法;
③离散函数的switch-case语句实现方法;
④数组与指针的相互转换及其限制;
⑤函数通过指针参数返回结果的方法;
⑥指针的游标法与数组的下标法之间的相互转换;
⑦基于一维数组与多维数组的内存布局互通性,利用一维指针访问多维数组;
⑧基于结构体指针实现函数返回多个结果;
⑨变量与函数的驼峰与匈牙利命名规则;⑩代码的安全编码与漏洞检测;⑪单元的可测性规则教学目标2基于IDE工具的软件开发、调试与测试技能目标培养使用软件工具对复杂软件工程问题进行调试与测试的能力熟练使用c-Free、Dev-C、CodcBlocks VC++、VS-2015等常用C语言IDE软件,及其一系列辅助设计工具,例如
①代码编辑的辅助功能使用方法,例如文本彩色加亮、代码输入提示、智慧输入、代码模板插入、变量与函数的查找与位置索引、缩进对齐、格式自动化以及代码分析等功能;
②项目编译的辅助功能使用方法,例如语法预先自动检测、编译器版本选择以及未使用函数提示等功能;
③项目调试的辅助功能使用方法,例如基于内存地址的变量管理、基于调用栈的变量管理、基于运行环境的变量管理以及基于查找监视的变量管理等功能教学目标3软件项目开发综合素质训练目标培养编程语言的自主学习和终身学习的意识,掌握计算机语言学习与项目开发实践的基本方法和途径在项目的参与过程,不断培养良好的软件工程思维,理解软件运行的内在原理,例如
①在从需求分析到系统设计的转换过程中,能够运用数学模型、通用协议或者现有解决方案等多种方式的集成;
②在架构设计中能够采用自顶向下思维设计功能模块架构树状图;
③在关系型数据库设计过程尽量采用数据库设计三大范式进行约束;
④在模块设计过程能够运用流程图或者伪程序代码;
⑤运用项目管理的增量与迭代理念进行项目实施,从需求分析、概要设计、详细设计、编码实现、软件调试、模块单元测试、系统测试以及项目文档书写等多个环节教学目标4(课程思政)引导学生树立正确的人生观、世界观和价值观,培育学生创新精神以及历史使命感通过案例以及科技发展史历程,阐述软件对电子行业发展的推动作用、软件安全对电子产品的重大意义、以及年轻人对软件行业发展的历史使命等内容,帮助学生完善“三观”、树立“伟大复兴”的使命感
3.教学目标与毕业要求指标点的支撑关系教学目标支撑毕业要求对应指标点
1.2掌握计算机、电子、信息、通信、测控及其它工程基础知识,并有效将其应用教学目标1于电子信息领域工程问题(含海洋电子信息领域)的软硬件分析与设计
5.2具备使用实验设备、现代工程工具和信息技术工具对复杂工程问题进行模拟或教学目标2仿真的能力,并能够理解其局限性教学目标
312.1具有自主学习和终身学习的意识,掌握拓展知识和能力的基本方法和途径教学口标4
三、理论教学表1理论教学安排序号章节(学学习内容(含重点、支撑教教学方法、手段其他时)难点)学目标
1.了解计算机基本作业原理;讲授式、讨论式与案例
1.了解c语言的IDE
2.理解程序设计语式相结合环境本地与在线两种句简介;算法设计讨论与案例模式;程序设计及程序设计思想;
1.计算机是怎么跑起来
1、
3、
2.在本地安装C语言1和C语言
3.掌握软件项目开的4的IDE;
(2)发的C语言设计流
2.程序是怎么将跑起来
3.网上查阅资料,了解程(★)的C语言在线编辑与编译
4.了解电子专业软
3.目前有哪些流行的编环境;件学习的行业前景程语言与历史使命作业讲授式、讨论式与案例式相结合
1.编程实现圆柱体的半径与高度输入、体积和
1.了解数据类型,讨论与案例最简单的C常量,变量;(★)
1.char和int的相似性面积的计算以及计算结程序设计果的输出,数据类型假设
2.理解标识符概与差异性2一一顺序
1、2为双精度浮点数;念;
2.为什么有的语言没有结构
2.在本地安装的IDE软
3.掌握数据的输入“数据类型”
(4)件中输入课本的案例,掌输出(★)
3.C语言的打印语句握C语言的编辑、编译、“格式控制”的使用价与调试方法值是什么
1.了解逻辑表达式讲授式、讨论式与案例作业的数值;式相结合
1.利用if语句实现4个选择结构
2.理解if与switch讨论与案例数据从大到小排序;3程序设计的语法规则;(★)
1.起泡法排序怎么通过
12.分别用if...
(2)
3.掌握嵌套条件语数据交换实现排序?elsif...else..句的应用(▲)
2.if...else if...・嵌套语句和switch语句实现百分制成绩转序号章节学时学习内容含重点、支撑教教学方法、手段其他难点学目标else条件嵌套语句有哪换为等级成绩;些优点?
3.绘制课本中闰年案例
3.多个if语句之后的的条件嵌套算法的流程else如何理解图
4.条件嵌套语句适合采用单一条件二分法还是复合条件二分法?
1.了解几种循环结构的相似性与差异讲授式、讨论式与案例性,以及for循环的特式相结合作业殊省略写法;讨论与案例
1.编程找出所有的“水
2.理解三种循环结1•循环算法的差异性?仙花数”;循环结构构状态控制的语法规
2.循环过程的溢出危
2.采用嵌套循环结构编4程序设计则;★
1、4险?程实现菱形图案的输出;
43.掌握循环嵌套结
3.循环与数学递推模型
3.绘制课本中F ibonacc构的执行过程;的关联性?i数列案例的循环递归算▲
4.复杂问题如何转换为法的流程图
4.了解科技发展、简单问题?数学模型与软件开发的关联性作业讲授式、讨论式与案例
1.通过数组和循环实现式相结合10个整数的输入、排序
1.了解一维、多维讨论与案例以及打印数组以及字符数组
2.通过数组和循环实现1,数组的使用场景?的定义与初始化;字符串比较函数strcmp
2.数组在排序算法的应利用数组★的功能;用?5处理批量
2.理解数组基于偏
13.用一个循环结构实现
3.多维数组的使用场数据4移量的访问方式;二维数组所有元素的矩景?▲阵形式打印;
4.多维数组的数据定位
3.掌握数组与循环4,使用调试工具的内存方式?结构联合运用窗口查看整数、一维数组
5.多维数组如何简化图与多维数组的空间分配,像打印?理解数组“越界访问”的危险
1.了解函数、全局讲授式、讨论式与案例作业用函数实变量与静态变量的式相结合L课程考试成绩管理,现模块化概念;讨论与案例书写主函数,然后用函6程序设计
12.理解函数的参数
21.函数的运行代价是什数实现成绩输入、排传递与调用过程、么?序、平均分、及格率计以及函数嵌套调用算以及打印输出等其
2.数组的参数传递过序号章节学时学习内容含重点、支撑教教学方法、手段其他难点学目标的执行过程;★
3.程?中的某些功能;掌握掌握基于函数的3,静态变量的使用价
2.针对函数嵌套调用,功能模块设计理念和值?通过调试工具的单步执架构图绘制方法行进行跟踪,理解程序▲的执行过程;
1.了解指针的访问讲授式、讨论式与案例作业方式;式相结合
1.用指针的游标方式编
2.理解指针与数讨论与案例程实现“选猴王”;
2.定组、函数的关系;
1.指针和地址的区别?义swap函数并使用指针▲
2.指针的数据交换模作为参数实现两个整数
3.掌握指针与数组式?的交换,然后使用swap善于利用7的相互转换,以及
3.数组与指针的下标法实现数组的排序;
1、4指针4指针的运用方式;与游标法的差异性?
3.自行设计一个指针越★
4.多维数组的地址是一界访问的例子,通过调试
4.了解国家网络安维的还是多维的?工具观察使用指针可能全与指针的“越界”
5.字符数组与字符指针产生的不安全性,理解代访问之间的关联的使用区别?码漏洞的产生原因作业讲授式、讨论式与案例
1.编写班级成绩管理程
1.了解结构体、共式相结合序,利用结构体定义学生同体与数组的区别讨论与案例的个人信息与课程信息,*用户自己
1.如何利用结构体表述实现成绩输入、平均成绩
2.理解结构体指针8建立数据一个对象?1计算以及成绩排序等其的访问方式▲类型22,结构体数组的索引方中某一个功能
3.掌握结构体数组法?
2.定义一个结构体,描述的定义与访问方
3.枚举类型的使用优学校成绩管理系统需要式点?具备的所有属性
四、实验教学表2实验教学安排实验项目名实验支撑教其序号实验内容称学时类型学目标他1查看IDE软件的帮助文件与网页,学习IDE的编辑、编译与调试菜单;数据类型、2输入实验指导书提供的案例代码;
③编译代码,运算符和简依据编译结果修改代码,直至代码编译完全无误;1验证
2、3单的输入输3运行代码,记录程序运行结果;出44修改数据类型,理解不同数据类型的输入格式控制;实验项目名实验支撑教其他序号实验内容称学时类型学目标5按照实验题目要求,设计流程与编写代码,并测试其运行是否正确要求1掌握C语言数据类型,了解字符型数据和整型数据的内在关系2掌握对各种数值型数据的正确输入方法3学会使用c的有关算术运算符,以及包含这些运算符的表达式,特别是自加++和自减-运算符的使用4学会编写和运行简单的应用程序5进一步熟悉C程序的编辑、编译、连接和运行的过程1输入实验指导书提供的案例代码;2编译代码,依据编译结果修改代码,直至代码编译完全无误;3运行代码,记录程序运行结果;最简单的c程4修改输入输出格式控制符,观察输出结果;序设计——5按照实验题目要求,设计流程与编写代码,2顺序程序设并测试其运行是否正确设计
2、3计4要求1掌握c语言中使用最多的一种语句——赋俏S五名1Mi d市田方寸2掌握各种黄量数据的输入输出的方法,能正确使用各种格式转换符3进一步掌握编写程序和调试程序的方法1按照实验指导书提供的实验题目要求,绘制条件结构流程图,编写相应代码;2编译代码,依据编译结果修改代码,直至代码编译完全无误;3运行代码,记录程序运行结果;4通过调试工具的单步执行跟踪,观察代码的实际运行过程;
④学习并掌握调试工具的其他功能选择结构程要求31了解C语言表示逻辑量的方法以代表设计
2、3序设计4“假”,以非0代表嗔”;2学会正确使用逻辑运算符和逻辑表达式;3熟练掌握if语句的使用包括if语句的嵌套;4熟练掌握多分支选择语句-switch语句;5结合程序掌握一些简单的算法;6进一步学习调试程序的方法1按照实验指导书提供的实验题目要求,绘制循循环结构程环结构流程图,编写相应代码;4设计
2、3序设计22编译代码,依据编译结果修改代码,直至代码编译完全无误;
③运行代码,记录程序运行实验项目名实验支撑教其他序号实验内容称学时类型学目标结果/3通过调试工具的单步执行跟踪,观察代码的实际运行过程;4在调试过程中在监视或者环境变量窗口修改循环控制变量,观察其修改所产生的后果;5学习并掌握调试工具的其他功能要求1熟悉掌握用while语句、do-------while语句和for语句实现循坏的方法;2掌握在程序设计中用循环的方法实现一些常用算法如穷举、迭代、递推等;3进一步学习调试程序1按照实验指导书提供的实验题目要求,绘制遍历数组的循坏结构流程图,编写相应代码;2编译代码,依据编译结果修改代码,直至代码编译完全无误;3运行代码,记录程序运行结果;4通过调试工具的单步执行跟踪,观察数组的下标与循环的同步变化;5数组45在调试过程中在监视和环境变量窗口同时观设计
2、3察数组元素的变化,掌握数组与循环结构的配合使用方法要求1掌握一维数组和二维数组的定义、赋值和输入输出的方法;2掌握字符数组和字符串函数的使用;3掌握与数组有关的算法特别是排序算法1按照实验指导书提供的实验题目要求,绘制函数的代码流程图,编写相应代码;2编译代码,依据编译结果修改代码,直至代码编译完全无误;3运行代码,记录程序运行结果;4通过调试工具的单步执行跟踪,观察函数的参数传递、调用与返回;6函数25将函数保存在一个独立的文件中,由main函数设计
2、3所在的文件通过竽include…”语句实现引用,构建由多个C文件和H文件组成的项目要求1熟悉定义函数的方法;2熟悉声明函数的方法;3熟悉调用函数时实参与形参的对应关系,以及“值传递”的方式;4学习对多文件的程序的编译和运行1按照实验指导书提供的实验题目要求,绘制函7指针4数的代码流程图,编写相应代码;设计
2、32编译代码,依据编译结果修改代码,直至实验项目名实验支撑教其他序号实验内容称(学时)类型学目标代码编译完全无误;
(3)运行代码,记录程序运行结果;
③通过调试工具的单步执行跟踪,观察函数的指针参数传递的效果;
(4)分别按照游标法和下标法使用指针,观察其差异性要求
(1)掌握指针和间接访问的概念,会定义和使用指针变量;
(2)能正确使用数组的指针和指向数组的指针变量;
(3)能正确使用字符串的指针和指向字符串的指针变量
五、考核与成绩评定方法表3课程考核及评价细则成绩组成考核/评价环节分值考核/评价细则支撑教学目标考核学生对每章节知识点的理解和作业8掌握程度,并通过IDE软件编写与1平时成绩验证代码,满分8分40%依据实验课堂提问验收成绩(4分*7实验32次=28分),以及实验报告质量评
2、3分(4分),满分32分卷面成绩100分,按比例换算课程总评成绩60分试卷内容符合教学大纲要求,考核期末成绩闭卷考试60目标明确清晰试卷包含选择、填1(60%)空、程序运行、程序设计,题量适中作为一门注重实践的课程,程序设计题目应该分配较多的分值,建议不少于30分
六、建议教材及相关教学资源
[1]谭浩强C程序设计(第四版)[M],北京清华大学出版社,2016-
06.
[2]谭浩强C程序设计(第四版)学习辅导[M],北京清华大学出版社,2017-03
[3]杨路明C语言程序设计教程(第二版)[M],北京北京邮电大学出版社,2016-
08.
[4]高可宁.程序设计基础(C语言)第2版[M],北京清华大学出版社,2014-
09.。