高级语言程序设计是电软系四个专业开设的一门专业基础课程,是一门实践性、技术性强的课程;该具有基础性、专业性、应用性和先进性;对形成学生的职业能力、提高实践水平影响很大。本课程的主要任务是训练学生对C语言基本技能的灵活运用,旨在培养学生设计程序、编写程序和调试程序的技能,培养学生综合运用所学知识进行综合实验的能力,让学生提高分析问题并运用计算机技术解决问题的能力。
C语言是一种通用的高级程序设计语言,同时又具有其它高级语言所不具备的低级语言功能,不但可用于编写应用程序,还可用于编写系统程序,可实现对底层硬件平台的编程。电软系融合信息技术领域四个专业:计算机科学与技术、电子信息科学与技术、通信工程和电气工程及其自动化,根据四个专业对应用型人才培养的要求,高级语言程序设计课程采用增量式项目驱动一体化的教学方法,将具体的应用案例贯穿至整个教学过程,让学生在学习C语言的同时,学会多角度、综合分析问题,学习如何将C语言的技能应用至实际应用。该课程不仅有助于学生对后续课程如《Java程序设计》、《数据结构与算法》、《单片机》、《嵌入式》等课程的学习,更可帮助学生学习和掌握程序设计语言的使用方法和技巧,提高多角度分析和解决问题的能力、以及综合实践的能力。
[高级语言程序设计]
本科课程教学大纲(理工医类/电气学院)
课程信息 | |||
开课单位 | 电气与计算机工程学院 | 开课学年学期 | 2018-2019学年第1学期 |
授课年级 | 2018级 | 授课对象专业 | 计算机类、电子信息类、电气 |
课程学分 | 3 | 课程学时 | 60 |
课程性质 | √专业必修 ¨专业选修 ¨公共必修 ¨公共选修 ¨成长必修 ¨专业限选 ¨公共限选 | ||
先修课程要求 | 无 | ||
教师信息 | |||
授课教师 | 陈海山、温泉思、谭志国等 | 联系电话 | 020-61787345 |
答疑地点 | 2教104 | 答疑时间 | 周三下午2:30 |
电子邮件 | cihisa@126.com |
主 审:
一、课程描述及课程目标
(一)课程描述
高级语言程序设计是电软系四个专业开设的一门专业基础课程,是一门实践性、技术性强的课程;该课程具有基础性、专业性、应用性和先进性;对形成学生的职业能力、提高实践水平影响很大。本课程的主要任务是训练学生能灵活运用C语言的基本技能设计程序、编写程序和调试程序的能力,培养学生综合运用所学知识进行综合实验的能力,最终让学生提高分析问题、并运用计算机技能解决实际问题的能力。
C语言是一种通用的高级程序设计语言,同时又具有其它高级语言所不具备的低级语言功能,不但可用于编写应用程序,还可用于编写系统程序,可实现对底层硬件平台的编程。电软系融合信息技术领域四个专业:计算机科学与技术、电子信息科学与技术、通信工程和电气工程及其自动化,根据四个专业对应用型人才培养的要求,高级语言程序设计课程采用增量式项目驱动一体化的教学方法,将具体的应用案例贯穿至整个教学过程,让学生在学习C语言的同时,学会多角度、综合分析问题,学习如何将C语言的技能应用至实际应用。该课程不仅有助于学生对后续课程如《Java程序设计》、《数据结构与算法》、《单片机》、《嵌入式》等课程的学习,更可帮助学生学习和掌握程序设计语言的使用方法和技巧,提高多角度分析和解决问题的能力、以及综合实践的能力。
毕业要求 | 具体指标点 | 课程教学目标 |
1.工程知识 | 1.2 掌握计算机专业的基础知识,能够运用所学知识对实际问题进行分析。 | 目标1:掌握C语言基本技能,能够使用C语言基本知识完成专项实验和综合实验,以解决实际问题。 |
2.问题分析 | 2.1 能够针对某个问题,使用已学的专业理论知识与方法进行抽象分析与识别,通过某种模型抽象表达实际问题,能进行正确的推理、求解和证明; 2.3 能够使用计算机工程的方法对某个实际项目进行问题描述和需求分析。 | 目标2:能够对具体问题进行分析,找到解决该问题所用的方法,使用增量式项目开发方法设计该问题的解决方案。 |
3.设计/开发解决方案 | 3.3能够根据实验(或实训)要求,综合运用所学计算机知识与技能,设计出具体的、符合实际复杂工程问题的解决方案(或算法),并能设计满足实际条件的软、硬件实验装置或系统。 | 目标3:能够综合运用所学C语言基本知识,使用增量式的项目开发方法,编写程序完成专项实验和综合实验;设计能够解决实际问题的小型软件;将实验或实训的完成情况,撰写一份完整的实验报告。 |
主要知识点:
1.1 C语言概述
1.2 C语言开发环境
1.3 算法的理解
教学要求:通过本章的学习,使学生了解C语言,掌握C语言编程环境的搭建及使用,掌握运行C语言程序的步骤和方法。
重点:C语言编程环境的搭建及使用,运行C语言程序的步骤和方法。
难点:动手实践。
采用的教学方法:案例演示、知识点讲解、实践指导、动手实验。
参考案例:C语言编程环境CodeBlocks的安装、配置和使用。
讲授学时:2学时
实践学时:2学时
(二)第2章 C语言知识在实践中的应用
主要知识点:
2.1 案例介绍:LED数码管
2.2 问题分析
2.3 LED数码管增量划分与进度安排
教学要求:通过本章的学习,使学生了解本课程教学案例:LED数码管,学习针对实际应用进行分析问题和解决问题的步骤,理解本课程增量式项目驱动一体化的教学模式。
重点:增量式项目驱动方法。
难点:分析实际问题。
采用的教学方法:案例演示、小组讨论。
参考案例:LED数码管。
讲授学时:1学时
(三)第3章 基本数据类型
主要知识点:
3.1 基本技能:数据类型、标识符、常量、变量、输入和输出
3.2 增量1:LED数码管的定义
3.3 增量2:LED数码管的初始化
教学要求:通过本章实际案例LED数码管的定义和初始化,使学生掌握C语言基本数据类型的使用方法。
重点:增量式项目驱动方法、C语言基本数据类型、输入和输出。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:3学时
实践学时:2学时
(四)第4章 运算符和表达式
主要知识点:
4.1 基本技能:C语言中的运算符与表达式、数据类型的转换、顺序结构程序设计
4.2 增量3:LED数码管实现依次显示数字0~9
教学要求:通过本章实际案例LED数码管的数字显示过程,使学生掌握C语言运算符的使用,以及理解什么是顺序结构。
重点:增量式项目驱动方法、运算符和表达式。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:2学时
讲解习题:1学时
(五)第5章 选择结构程序设计
主要知识点:
5.1 基本技能:单分支if、双分支if-else、if-else-if、if嵌套、switch
5.2 增量4:LED数码管实现根据选择显示任意数字0~9
教学要求:通过本章实际案例LED数码管:根据用户选择显示任意数字0~9,使学生掌握不同的选择语句的使用方法。
重点:增量式项目驱动方法、选择结构。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:2学时
讲解习题:1学时
(六)第6章 循环结构程序设计
主要知识点:
6.1 基本技能:三种循环结构、循环嵌套、break和continue
6.2 增量5:LED数码管实现无限次(或有限次)循环显示数字0~9
教学要求:通过本章实际案例LED数码管:无限次(或有限次)循环显示数字0~9,使学生掌握不同的循环语句的使用方法。
重点:增量式项目驱动方法、循环结构。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:2学时
讲解习题:1学时
(七)第7章 函数调用
主要知识点:
7.1 基本技能:函数分类和定义、函数类型、函数参数、函数值、函数调用、函数嵌套和递归调用、变量的作用域
7.2 增量6:用函数实现上述增量中数字的显示过程
教学要求:通过本章实际案例LED数码管:用函数实现上述增量中数字的显示过程,使学生学习函数的定义、能灵活运用函数解决问题。
重点:增量式项目驱动方法、函数的使用。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:2学时
讲解习题:1学时
(八)第8章 数组
主要知识点:
8.1 基本技能:一维数组、二维数组、数组作函数参数
8.2 增量7:LED数码管实现用数组存储打印数字
教学要求:通过本章实际案例LED数码管:将打印数字保存至数组并显示,使学生理解并灵活运用数组。
重点:增量式项目驱动方法、数组的使用。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:2学时
讲解习题:1学时
(九)第9章 指针
主要知识点:
9.1 基本技能:什么是指针、指针变量、指针与数组、指针与函数、指针的内存处理
9.2 增量8:LED数码管中用指针实现数字显示
教学要求:通过本章实际案例LED数码管:用指针实现数字的显示,使学生初步理解并学习指针的使用。
重点:增量式项目驱动方法、初步理解并学会使用指针。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:1学时
讲解习题:1学时
(十)第10章 字符串处理
主要知识点:
10.1 基本技能:字符串、字符数组、字符数组的输入输出
教学要求:通过课堂小程序理解并掌握字符串的处理方法。
重点:字符串的处理方法。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:1学时
讲解习题:1学时
(十一)第11章 结构体、共用体和枚举
主要知识点:
11.1 基本技能:结构体类型、结构体数组、共用体、枚举
11.2 增量9:LED数码管显示多位整数和多位小数
教学要求:通过本章实际案例LED数码管:显示多位整数和多位小数,使学生理解并学习用户自定义数据类型的使用。
重点:用户自定义数据类型的定义及使用。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:1学时
讲解习题:1学时
(十二)第12章 读写文件
主要知识点:
12.1 基本技能:文件类型、各类读写文件操作
12.2 增量10:数字的永久保存与读取
教学要求:通过本章实际案例LED数码管:实现数字的永久保存与读取,使学生理解并学习使用文件存储与读取数据。
重点:文件的读写操作。
难点:知识点的灵活运用。
采用的教学方法:案例演示、知识点讲解、小组讨论、动手实验。
参考案例:LED数码管。
讲授学时:2学时
实践学时:1学时
(十三)综合实验
主要实验内容及要求:详见《高级语言程序设计实验教程》的综合实验
课堂实践学时:10学时
布置时间:根据教学进度,可在讲解第2章时布置综合实验,指导学生课下实践,在第18周验收综合实验。
1、掌握高级语言程序设计基本技能;
2、能针对具体的问题,从多角度、整体上进行分析和设计;
3、提高分析问题和解决问题的能力;
4、提高查阅资料的能力;
5、提高综合运用所学知识和技能进行综合程序实践的能力;
6、提高团队合作的能力。
(一)出勤与作业
学生应积极参与课堂教学并完成相关的作业、实验。
(二)阅读资料
学生应认真进行课前预习,阅读教材和指定参考书及重要的参考文献。
(三)课堂展示
在实验课,安排各小组进行实验题目的讨论,以及实验效果演示。
(四)课程实践
本课程是理论与实验结合的课程,理论课通过案例的形式重点讲方法、讲知识点的应用;实验课根据课程进度安排专项实验和综合实验。
(五)小考与期末考
安排课堂测验、期末考试。
(六)学术诚信
按中山大学南方学院相关规定执行。
(七)剽窃的定义以及相应的惩罚
剽窃是严重违反学校规章制度的行为。一经发现,将上报相关部门,并受到包括开除学籍在内的严厉处罚。
(一)教科书-必读
1、苑俊英,谭志国等. 《C语言程序设计——增量式项目驱动一体化教程》,电子工业出版社,2015年8月.
2、苑俊英,陈海山等. 《C语言程序设计实验及习题指导》,电子工业出版社,2016年4月.
(二)教科书-强烈推荐
1、耿祥义等. C程序设计教学做一体化教程,清华大学出版社,2013年4月.
(三)文章-必读
1、C/C++语言论坛,http://bbs.csdn.net/forums/CPPLanguage/。
2、伯乐在线博客,http://blog.jobbole.com/tag/c/。
3、百度传课,http://www.chuanke.com/。
(四)文章-强烈推荐
(五)其他参考资料
1、[美]汉利,[美] 科夫曼著;潘蓉等译. C语言详解(第6版), 人民邮电出版社,2010年4月.
2、谭浩强. C程序设计(第四版),清华大学出版社, 2010年 6月.
3、谭浩强. C程序设计教程学习辅导(第四版),清华大学出版社,2010年7月.
(一)教学活动
1、个人预习
2、课堂讲授
3、课堂问答
4、习题讲解
5、案例讨论
6、课堂实验
7、课后实践
8、期末考试
(二)对预期学习成果的考察
预期学习成果 | 教学活动 | |
第1章 初识C程序 | 1、2、3、5、6、7 | 实验内容:C语言的运行环境和运行方法。 |
第2章 C语言知识在实践中的应用 | 1、2、3、5 | 实验内容:以LED数码管的应用为例分析解决实际问题的方法,并安排综合实验。 |
第3章 基本数据类型 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验2。 课后作业:课后习题13、14。 |
第4章 运算符与表达式 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验3。 课后作业:课后习题16、17。 |
第5章 选择结构 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验4、实验5。 课后作业:课后习题14、15。 |
第6章 循环语句 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验6。 课后作业:课后习题13、16。 |
第7章 函数 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验7、实验8。 课后作业:课后习题13、15。 |
第8章 数组 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验9。 课后作业:课后习题12、13。 |
第9章 指针 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验10。 课后作业:课后习题12。 |
第10章处理字符串 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验11。 课后作业:课后习题11、13。 |
第11章 结构体、共用体与枚举 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验12。 课后作业:课后习题12。 |
第12章 读写文件 | 1、2、3、4、5、6、7、8 | 实验内容:实验教材的实验13。 课后作业:课后习题10、11。 |
(一)评分体系
1、出勤率: 10%
2、课堂参与: 加分
3、课后作业: 6%
4、课堂实验: 24%
5、期末考试: 42%
6、综合实验: 18%
(二)课程的教学目标与评估方式的对应关系
编号 | 课程教学目标 | 评估方式 |
1 | 目标1:掌握C语言基本技能,能够使用C语言基本知识完成专项实验和综合实验,以解决实际问题。 | 随堂提问、课堂实验、期末综合实验。 |
2 | 目标2:能够对具体问题进行分析,找到解决该问题所用的方法。 | 随堂提问、课堂实验、期末考试(编程等题型)。 |
3 | 目标3:能够综合运用所学C语言基本知识,使用增量式的项目开发方法,编写程序完成专项实验和综合实验;设计能够解决实际问题的小型软件;将实验或实训的完成情况,撰写一份完整的实验报告。 | 随堂提问、课堂实验、课后作业、期末考试(编程题)。 |
(三)评分标准及要求
1)考勤:至少5次考勤,缺勤一次扣1-2分。 |
加分项 |
1)主动参与课堂讨论、回答问题:一次加1分,最多5分。 |
作业、实验 (30%) |
1)课后作业:占本项的20%,按时按质量完成课后作业; 2)课堂实验:占本项的80%,完成每次实验课程任务,根据完成情况评定A+、A-、B+、B-。 |
期末考试 (60%) |
1)综合实验:占本项的30%,分组完成综合实验任务 2)期末考试:占本项的70%,参加期末的闭卷考试 |
周次 | 课程要点 | 理论学时 | 实验学时 | 习题学时 |
6 | 理论: (1)第1章 初始C语言 (2)第2章 C语言知识在实践中的应用 实验1:C语言程序的运行环境和运行方法 | 3 | 2 | |
7 | 理论: (1)第3章 数据类型 实验2:数据类型 | 3 | 2 | |
8 | 理论: (1)讲解第3章习题 (2)第4章 运算符与表达式 实验3:运算符和表达式 | 2 | 2 | 1 |
9 | 理论: (1)讲解第4章习题 (2)第5章 选择结构程序设计 实验4、实验5:选择结构程序设计 | 2 | 2 | 1 |
10 | 理论: (1)讲解第5章习题 (2)第6章 循环结构程序设计 实验6:循环结构程序设计 | 2 | 2 | 1 |
11 | 理论: (1)讲解第6章习题 (2)第7章 函数:函数定义、函数类型、函数参数、函数值 实验7:函数的结构和函数调用 | 2 | 2 | 1 |
12 | 理论: (1)第7章 函数:函数的嵌套调用和递归调用、变量的作用域 (2)第8章 数组 实验8:函数的综合应用 | 3 | 2 | |
13 | 理论: (1)讲解第7章习题 (2)讲解第8章习题 (3)课题案例讲解 实验9:数组 | 3 | 2 | |
14 | 理论: (1)第9章 指针:什么是指针、指针变量、指针与数组、指针与函数、指针的内存处理 实验10:指针与数组 综合实验 | 3 | 2 | |
15 | 理论: (1)讲解第9章习题 (2)第10章 字符串处理 实验11:处理字符串 综合实验 | 2 | 2 | 1 |
16 | 理论: (1)第11章 结构体、共用体与枚举 实验12:结构体、共用体和枚举 综合实验 | 3 | 2 | |
17 | 理论: (1)第12章 读写文件 (2)讲解第10章、11章、12章习题 实验:读写文件 综合实验 | 2 | 2 | 1 |
18 | 考试 | |||
19 | ||||
20 | ||||
总学时 | 30 | 24 | 6 |
注:此表一式三份,于开学两周内填好,一份送教务与科研部,一份开课单位留存,一份自留。