程序设计基础(C语言) -教学大纲.docx

上传人:太** 文档编号:86543070 上传时间:2023-04-14 格式:DOCX 页数:10 大小:31.13KB
返回 下载 相关 举报
程序设计基础(C语言) -教学大纲.docx_第1页
第1页 / 共10页
程序设计基础(C语言) -教学大纲.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《程序设计基础(C语言) -教学大纲.docx》由会员分享,可在线阅读,更多相关《程序设计基础(C语言) -教学大纲.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、高级语言程序设计课程教学大纲一、课程基本信息课程编号:课程名称:高级语言程序设计英文名称:High-level Language Programming课程学时:48讲课学时:32实验学时:16 上机学时:习题学时:课程学分:3开课单位:计算机科学与技术学院,电信学院授课对象:计算机大类专业(包括计算机科学与技术、物联网工程、生物信息学、信息安全),软件 工程大类专业,电信学院相关专业开课学期:1秋先修课程:计算机专业导论二、课程目标高级语言程序设计是计算机大类/软件工程大类的一门重要的专业基础课程。设置本课程的 主要目的是使学生掌握用计算机分析和解决问题的思维方法以及程序设计的基本方法,建立

2、从问题 到算法再到程序的认知,在从问题到算法再到程序的问题求解及程序构造和实现的过程中理解高级 语言的基本构造要素以及算法和数据结构在程序构造中的作用,具备良好的编程素养,以及综合运 用所学程序设计语言和程序设计方法,设计、构造和应用计算系统求解科学或工程问题的程序设计 和实现能力,为后继课程的学习和将来从事软件开发、解决复杂工程问题奠定编程能力基础。课程 具体目标如下:课程目标1:掌握程序设计的方法学基础,培养学生阅读程序、编写程序和调试程序的能力, 使学生能够选择与熟练运用现代化集成开发工具编写、测试和调试程序,了解鲸鹏体系和鲸鹏平台 应用开发的流程,鲸鹏平台和X86平台的差异,以及针对编

3、译型语言(C语言),掌握龌鹏平台和 X86平台代码编写及编译的差异。课程目标2:掌握程序设计所需的问题求解基础,培养学生从问题抽象为数学模型或算法再转 化为计算机可实现的程序的能力,使学生针对计算、统计、分类等相关的实际问题,能够有效使用 程序设计语言和结构化程序设计方法,并恰当使用枚举、递推、分治或递归等常用问题求解方法, 完成经典问题求解程序的设计与实现。课程目标3:掌握程序设计所需的算法和数据结构基础,培养学生利用算法和数据结构构造程 序的能力,使学生针对科学计算/文本处理/人工智能相关的复杂工程问题,能够使用恰当的算法和数据结构以及模块化程序设计方法,完成涉及排序、检索、匹配等算法的实

4、际生活问题或与专业背景相关的工程实际问题的程序设计与实现。三、课程目标与毕业要求对应关系U!U!、课程目标与课程内容对应关系毕业要求毕业要求具体描述课程目标2-4-1现代工具运用 能力能够针对计算相关的复杂工程问题,开发、选择与使用 恰当的工具类计算系统,预测、模拟或求解问题,并能 够理解其局限性。课程目标12-3-1程序设计与实 现能力有效使用程序设计语言,完成相关算法或解决方案的程 序设计并实现。课程目标2, 3序号教学内容教学要求学时教学方式对应课程 目标11 .程序设计的方法学基础基本运算和基本I/O计算产业的最新发展; 计算机和程序设计的基础知识;计算机的基本工作原理;(4) Int

5、el x86系列处理器与CISC复杂指令 集(5) ARM系列处理器与RISC精简指令集(6)华为蛆鹏平台与X86平台的差异软件开发的基本过程,现代集成开发 环境,X86平台下程序的编辑、编译、 链接和运行;(8)编译型语言与解释型语言及其运行 差异;C语言在鲸鹏平台的开发运行;(10)基本运算;(11)基本 l/OoL计算机和程序设计的基础知 识,了解龌鹏平台和X86平台 差异;2 .掌握常用的集成开发环境, 以及程序在计算机中编辑、编 译、链接和运行的过程;3 .针对编译型语言(C语言), 掌握鳏鹏平台和X86平台代码 编写及编译的差异;4 .掌握编译型语言与解释型语 言的运行差异;5 .

6、掌握鲸鹏平台上的开发过 程;6 .掌握基本数据类型的基本运 算,以及键盘输入和屏幕输出 等简单的I/O操作,能够用基 本数据类型、基本运算构造顺 序结构的程序。2慕课自学/ 课堂讲授/ 讲练结合/ 边讲边练课程目标1, 221.程序设计的方法学基础 基本控制结构与基本程序设计方法 算法的基本概念,算法的流程图描述;(2)单分支/双分支/多分支选择结构,条 件语句,开关语句;当型/直到型循环,计数控制/条件控 制/标记控制的循环,循环语句。(4)三种基本控制结构的嵌套,嵌套循环 的执行过程,三种基本控制结构应用于求 解累加求和、连乘求积、统计、分类等实 际问题;1 .掌握算法的基本概念和流 程图

7、描述方法;2 .掌握选择结构和循环结构 的基本控制方法,面向累加求 和、连乘求积、统计等应用问 题,能够用顺序、选择和循环 三种基本控制结构构造结构 化的程序。3 .理解结构化程序设计的基 本思想,以及好结构对提高程 序可读性的重要性;8慕课自学/ 课堂讲授/ 讲练结合/ 边讲边练课程目标1, 2结构化程序设计的基本思想和方法;(6)测试用例的基本概念,程序测试的目 的,程序测试的基本方法;常用的程序排错方法,利用现代集成 开发环境的可视化调试工具调试程序的 基本方法。(8)信息隐藏,过程抽象,函数封装,函 数复用,模块分解,自顶向下、逐步求精 的模块化程序设计方法;(9)函数定义、调用,参数

8、传递,简单变 量做函数参数重构代码;(10)龌鹏平台C函数调用差异、内联函数 及函数优化;(11)防御式编程,程序的健壮性、可读性 和可维护性;(12)代码风格,华为企业编程规范。4 .掌握程序测试和程序调试 的基本方法和技巧。5 .掌握模块分解的基本原则, 以及自顶向下、逐步求精的模 块化程序设计方法;6 .掌握用函数封装和过程抽 象重构或复用代码的基本方 法7 .掌握蛆鹏平台C函数调用 的特点;8 .掌握防御式编程的基本方 法9 .理解良好的代码风格对提 高程序可读性的重要性32.程序设计的问题求解基础枚举与递推,分治与递归枚举、递推/迭代等常用问题求解策 略,算法效率,程序优化;(2)递

9、归函数的定义、调用和执行过程, 条件递归的基本要素;(3)分治与递归之间的关系,递归与迭代 的优缺点分析。1 .掌握枚举、递推/迭代、递 归等常用问题求解方法的基 本原理思想及其程序实现方 法,针对给定的问题,能够选 择恰当的策略来求解问题并 对程序进行优化2 .理解分治、递归等问题求解 方法的基本思想,理解分治与 递归、递归与迭代之间的关系2慕课自学/ 课堂讲授/ 讲练结合/ 边讲边练课程目标1, 243.程序设计的算法和数据结构基础一一 一般线性表与排序查找算法一般线性表的顺序存储结构,数组下 标越界的错误案例分析;一般线性表的遍历和求最值等基本算 法及其函数程序实现,传值调用与模拟传 引

10、用调用; 顺序查找、二分查找的基本思想,一 般线性表上的查找算法的函数程序实现; (4)选择排序、冒泡排序、插入排序的基 本思想,一般线性表上的排序算法的函数 程序实现;(5)算法的时间复杂度1 .掌握一般线性表的遍历、求 最值和排序和查找算法,针对 给定的问题,能够选择恰当的 算法构造程序3 .掌握传值调用与模拟传引 用调用的区别,理解数组下标 越界产生的危害和后果4 .初步了解算法时间复杂度 的概念4慕课自学/ 课堂讲授/ 讲练结合/ 边讲边练课程目标353.程序设计的算法和数据结构基础一一 指针与数据的间接寻址(1)直接寻址与间接寻址,指针的基本概 念,指针变量作函数参数; 字符指针和字

11、符数组,字符串的表示1.掌握指针与间接寻址的概 念,理解用指针变量作函数参 数的特殊性,掌握指针做函数 参数的参数传递方式,掌握指 针做函数参数的程序设计和6慕课自学/ 课堂讲授/ 讲练结合/ 边讲边练课程目标3和存储、输入和输出; 字符指针或字符数组做函数参数,实 现字符串的复制、连接、比较、检索、匹 配等基本文本处理操作,缓冲区溢出,缓 冲区溢出攻击;(4) X86和鲸鹏平台char类型的差异;函数指针及其应用;(6)指针和数组间的关系; 指针数组与索引存储结构,字符串的 物理排序与索引排序。实现方法2 .掌握字符串的表示与存储 方式,以及输入输出方法,掌 握向函数传递字符串实现字 符串复

12、制、连接、比较、检索、 匹配等基本操作,了解缓冲区 溢出与缓冲区溢出攻击3 . 了解函数指针及其在编写 通用函数中的应用4 .理解数组与指针之间的关 系5 .掌握指针数组的概念及其 在字符串表示和处理中的应 用,了解索引结构与索引排序73.程序设计的算法和数据结构基础一一 结构体与构造数据类型的应用 从定长数组到动态数组,内存映像, 动态内存分配函数,动态数组的程序实 现; 结构体类型,共用体类型,枚举类型; 用结构体封装函数参数,向函数传递 批量数据,结构体和共用体的应用实例; (4)结构体用于对复杂静态数据结构按关 键字查找和排序的函数程序实现; 抽象数据类型,从结构体到类,从面 向过程到

13、面向对象。1 .理解定长数组和动态数组 的区别,掌握动态内存分配函 数以及动态数组的程序实现2 .掌握用结构体封装函数参 数向函数传递结构体数据的 程序实现3 .理解抽象数据类型,了解结 构体和共用体类型的不同特 点和应用场景(如稀疏矩阵的 压缩存储与转置计算等)4 .针对复数、有理数运算等应 用问题,能够恰当地定义结构 体类型并进行程序实现,掌握 用结构体对复杂静态数据结 构按关键字进行查找和排序 的程序实现4慕课自学/ 课堂讲授/ 讲练结合/ 边讲边练课程目标383.程序设计的算法和数据结构基础一一 动态数据结构 数据的逻辑结构和存储结构,从静态 数据结构到动态数据结构,从线性表的顺 序存

14、储到链式存储结构; 单向链表的创建、节点的遍历、插入、 删除等基本操作及其函数程序实现,单向 链表的冒泡排序算法及其函数程序实现; 双向链表、循环链表与单向链表的不 同特点,单循环链表应用实例;(4)限定性线性表,栈和队列的数据访问 方式,栈和队列的顺序存储与链式存储, 栈和队列的应用实例;1 .掌握静态数据结构和动态 数据结构,以及线性表的顺序 存储到链式存储的优缺点,针 对给定的问题,能够选择恰当 的数据结构构造程序2 .掌握单向链表的基本操作 及其程序设计和实现方法3 . 了解双向链表、循环链表的 基本特点4 .掌握栈和队列的数据访问 方式、存储方式及其应用5 .初步了解树和图等其他数

15、据结构6慕课自学/ 课堂讲授/ 讲练结合/ 边讲边练课程目标3注:针对不同专业,教师可以选择不同的实例进行讲解树和图等其他数据结构简介,二叉树 的顺序存储与链式存储,二叉树的遍历、 查找等基本操作;(6)内存管理与文件I/O;选学:鲸鹏多核体系、多线程编程以及 弱内存模型。6. 掌握二叉树的顺序存储与 链式存储,二叉树的遍历算法 及其程序实现7. 了解内存泄漏、非法内存访 问等常见内存错误及其解决 对策8. 了解文件I/O的基本操作实验1实现程序:大小写字母转换、平方根求和 分别在X86平台下编译和运行C语言程 序;以及在龌鹏openEule系统下编译和 运行C语言程序。了解鲸鹏和X86平台C

16、程序差 异。X86平台下编译和运行C 语言程序。在鳏鹏平台下搭建 C语言开发运行环境,编译和 运行C语言程序。3实验2实验上机随堂测试+实验课堂小翻转。 测试内容:穷举/递推/迭代/递归掌握结构化程序的设计方法, 能够选择恰当的控制结构和 问题求解策略求解实际问题3过程评价/ 以考促练/ 生讲生评课程目标12实验3实验上机随堂测试+实验课堂小翻转。测试内容:一般线性表的排序查找算法掌握一般线性表的遍历、排序 和查找等算法,能够选择和应 用恰当的算法求解实际问题3过程评价/ 以考促练/ 生讲生评课程目标12实验4实验上机随堂测试+实验课堂小翻转。测试内容:字符串/指针/结构体/链表掌握字符串的复

17、制、连接、比 较、检索、匹配等基本操作, 能够选择和应用恰当的数据 结构求解实际问题3过程评价/ 以考促练/ 生讲生评课程目标12实验5开放式综合设计型实验大作业:学生成绩 管理系统(鲸鹏实验例程)的升级版、小 型信息管理系统、游戏程序设计分别在X86平台和鳏鹏openEule系统下 实现掌握模块化程序设计方法,并 进行综合应用型程序设计3实践研学课程目标13实验6实验主题研讨。采用“生讲生评、互动研 学的方式”分小班对算法/数据结构等相 关的不同实验主题进行研讨,包括鲤鹏平 台软件开发经验分享。培养查阅资料的能力、自学能 力、团队合作能力与语言表达 能力2实践研学/ 互动展学/ 生讲生评课程

18、目标13实验7实验主题研讨。采用“生讲生评、互动研 学的方式”分小班对算法/数据结构等相 关的不同实验主题进行研讨,包括鲤鹏平 台软件开发经验分享。培养查阅资料的能力、自学能 力、团队合作能力与语言表达 能力2实践研学/ 互动展学/ 生讲生评课程目标13五、开放式综合设计型实验大作业实验目的: 掌握程序设计的基本算法和简单数据结构基础,能够综合运用基本控制语句、算法和数据 结构,以及自顶向下、逐步求精的模块化设计方法,能够设计具有一定规模的系统级C语言 程序,提高系统编程能力;针对计算相关的复杂工程问题,能够使用恰当的算法和数据结构,完成计算、统计、排序、 检索、匹配等相关的软件系统的构造、测

19、试与实现; 掌握常用的程序调试和测试方法; 掌握C语言程序基于鲸鹏平台下openEule编译和运行的等操作; 掌握对指针的使用方法以及对动态内存的管理方法。实验要求: 采用自顶向下、逐步求精的模块化设计思想设计一个学生成绩管理系统(鳏鹏实验例程) 的升级版、小型信息管理系统、游戏程序设计;要求解释说明采用了什么数据结构和算法,为什么选择这种数据结构或算法,系统实现过 程中遇到了哪些问题,这些问题是如何解决的,还有什么问题尚未解决,今后打算从哪几 个方面进行改进,本设计的亮点和难点在哪里,实验结果如何,有哪些收获和学习体会; 要求解释鲸鹏平台C语言开发的特点和注意事项 编写程序完成以下实验大作业

20、内容并完成实验大作业反思报告。实验设计: 学生成绩管理系统的升级版:按照算法、数据结构和简单应用的各个知识模块进行组合应 用,进一步增强学生成绩管理系统的功能数据结构增强:结构体数组、结构体数组+指针、链表等动态数据结构; 功能要素增强:枚举/递推/迭代/分类统计、排序/查找、模糊匹配、文件操作、加入音 效、递归、与树或图等数据结构相关的算法、或其他人工智能算法;跨平台增强:X86平台和鳏鹏平台兼容; 小型信息管理系统:仿照华为鲸鹏实验例程即学生成绩管理系统,循序渐进设计增量式设 计手机通讯录等其他小型信息管理系统; 游戏程序设计:设计具备一定算法实现的游戏,例如迷宫游戏、扫雷游戏、数独游戏等

21、; 鼓励使用x86和鲸鹏平台上进行实现,尤其在鳏鹏平台的实现会得到额外加分。六、课程教学方法1 .强调编程方法,淡化语言语法:作为一门高级语言程序设计的入门课程,与以往不同的是以 讲解编程方法为主,不要纠结语言语法的细节,避免学生在学习完程序设计后“只见树木、不见森 林”,只会语法,不会编程。2 .面向应用,问题驱动,以点带面,突出重点和难点,编程能力培养为主,算法和数据结构为 辅:考虑到课时有限,本课程不能对所有知识点面面俱到的讲解,要能够以点带面,针对具体的应 用,以从问题抽象为数学模型或算法再转化为计算机可实现的程序为重点,培养学生选择恰当的问 题求解策略或算法以及适合问题求解的数据结构

22、,进行程序设计和实现的能力。3 .讲练结合,精讲多练,边讲边练,以练为主:本课程的特点是实践性强,因此教学方法要以 练为主,教师要带领学生一起读程序、写程序和调试程序,让学生边学边用,学以致用,让学生在 做中学和练中悟,目标是“能读懂优秀的范例代码,能编写规范的程序,能调试有错误的程序”。4 .先学后讲,先学后练,课前预习,课上内化,课后强化:本课程有配套的MOOC课程,因此 将学生易于理解和需要记忆的内容放到MOOC课程里,通过课前布置学习任务单,引导学生课前先在MOOC课程中自学,然后在课堂上通过精讲多练和边讲边练达到让学生将知识内化的目的,课后 通过大量的代码阅读和编写训练达到强化其编程

23、能力的目的。5 .以考督学,以考促练,引导学生自主学习和编程训练:本课程有完备的教学辅助平台,包括 面向学生自主学习的高级语言程序设计能力训练平台、编程题考试自动评分系统、试卷和题库管理 系统,因此可以借助这些平台和阶段考核引导和促进学生自主学习和编程训练。6 .目标导向,分级教学:针对学生编程基础参差不齐的问题,通过分级教学,针对零基础班、 标准班和高级班的学生分别采取不同的教学方法。对于零基础班的学生,采用“多讲多练,加学时, 教师手把手领着学生练,强化基础+项目实践”的教学方法,使其尽快入门,进入最佳学习状态。对 于标准班的学生,采用“精讲多练,系统学习+项目实践”的教学方法,主要侧重程

24、序设计基础,训 练学生的基本编程能力”。对于高级班的学生,采用“专讲专练,自主学习+技巧训练”的教学方法, 以强化算法和编程技巧训练,培养学生高级编程能力。7 .适当课堂翻转,注重项目实践:1)课堂随机互动小翻转,通过快问快答、纸上练兵、你写 我评、奇思妙想、程序打擂台等方式,实现教师导学。2)实验上机随堂测试后,通过“生讲生评” 方式分享不同的编程方法或剖析程序错误的根源。3)小班主题研讨采用“生讲生评、互动研学、同 伴助学”的方式,分小班针对不同的实验主题进行实践研学、同伴助学、互动展学。8 .辅导答疑,授人以渔:包括线上答疑和线下答疑,及时与学生沟通,解决学生的疑难问题, 但耍求学生在问

25、问题之前要先自己思考,先尝试自己找到问题的答案,例如先自己尝试通过调试工 具发现程序中存在的错误,教师不要直接告诉学生错在哪里,要引导学生自己学会调试错误程序的 方法。六、课程考核方法考核环节所占分值考核与评价细则对应课程目 标自主自 助式作业20%自主自助式作业,占总成绩的20%。课程目标广2(2)实验上机随堂测试50%实验上机随堂测试,占总成绩的50%o课程目标12(3)开放式 实验大作业20%开放式实验大作业,占总成绩的20%o在鲸鹏平台上开发程序者有加分。不提交实验大作业者,课程总成绩按0分计。课程目标13(4)小班主 题研讨10%小班主题研讨,占总成绩的10%。课程目标13(5)附加

26、分(1)完成实验上机随堂测试的附加题,获得附加分。(2)参加实验上机随堂测试后的生讲生评环节,获得附加分。课程目标13课程免修(1)参加ACM/ICPC、NOI/NOIP竞赛并获得省级或省级以上奖项者, 在中国大学MOOC平台上选修C语言程序设计精髓MOOC课程 并获得合格认证证书者,或选修程序设计基础MOOC课程(含 大学先修课)并获得优秀认证证书者,均有资格参加免修考试。(2)免修考试成绩在90分及以上者,可以免修本课程。(3)具有参加免修考试资格但未参加免修考试或免修考试未达到 90分者,可以免自主式作业,均按满分计。(4)参加ACM/ICPC.NOI/NOIP竞赛并获得省级或省级以上奖

27、项者, 可以免自主自助式作业和实验上机随堂测试。课程最终成绩=(1) + (2) + (3) + (4) + (5)七、主要教材与参考书1 .苏小红,王宇颖,孙志岗等.C语言程序设计(第4版),高等教育出版社,2019年7月2 .C语言程序设计精髓MOOC课程,爱课程中国大学MOOC平台3 .程序设计基础MOOC课程,爱课程中国大学MOOC平台主要参考书:1 .苏小红,王甜甜,车万翔等.C语言程序设计学习指导(第4版),高等教育出版社,2019 年9月2 . P. J. Deitel, H.M. Deitel 等,C How to Program, Eighth Edition,电子工业出版社,2017 年大纲审核人:大纲撰写人:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁