《C语言程序设计专题实验(Experiments of C Language Programming)》教学大纲
制定时间:2025 年 4 月
一、课程基本信息
(一)适用专业:计算机科学与技术专业等
(二)课程代码:3DX1012A
(三)学分/课内学时:1学分/16学时
(四)课程类别:专业教育
(五)课程性质:必修/实践课
(六)先修课程:C语言程序设计与应用
(七)后续课程:数据结构与算法(上)、面向对象程序设计
二、课程教学目标
本课程是《C语言程序设计与应用》课程的重要实践环节,学生通过实验将学到的C语言程序设计的理论应用于实践。本课程的主要教学内容是C语言的基本语法,结构化程序设计的基本思想,常用的C语言标准库。通过本课程的学习,使学生掌握C程序设计语言的基本语法规则,理解结构化程序设计的基本方法;能编写和调试一般实用程序;为进一步学习后续程序设计和系统开发课程打下基础。在本课程的训练过程中,学生自行分析问题,编写程序,并结合学习过的理论知识调试序,提高学生解决实际问题的能力。本课程是计算机科学与技术专业必修课,可以很好的培养学生创新精神和实践能力,提高程序设计能力。
通过实验培养学生实践动手能力,加深理解并切实掌握《C语言程序设计与应用》的知识和技术,发现并解决实验中出现的问题,培养独立开展设计实验的能力,积累实践经验。通过实验培养学生编程能力,使学生巩固理论学习的内容,掌握结构化程序设计的基本思想,为后续各专业课程的学习打下坚实基础。具体细化为:
(一)具体目标
目标1:学生具备了基本的程序设计能力后,经过较具综合性和复杂性的C语言程序设计的开发实践训练,以期更准确更有效地运用C语言进行软件开发的方法,能将学过的循环、数组、函数、指针和自定义数据类型综合用到解决较复杂的实际问题中。
目标2:能正确运用C语言处理实际开发应用中遇到的问题,能从软件工程的角度思考程序的组织,尽可能提高程序的易读性,可维护性,可移植性,同时在用C语言编程解决问题时体现出一定的创新意识。
(二)课程目标与毕业要求的对应关系
毕业要求 |
毕业要求指标点 |
课程目标 |
教学单元 |
评价方式 |
1. 设计/开发解决方案:能够针对软件领域复杂工程问题设计和开发解决方案,设计满足特定需求的软件应用系统,体现创新性,并从健康、安全与环境、全生命周期成本与净零碳要求、法律与伦理、社会与文化等角度考虑可行性。 |
毕业要求指标点3.1,掌握软件工程设计和产品开发全周期、全流程的设计/开发方法和技术,了解影响设计目标和技术方案的各种因素,进行需求分析; 毕业要求指标点3.2 能够针对特定需求,进行软件应用系统的解决方案设计,完成软件单元(部件)和软件体系架构的设计,在设计中体现创新意识; |
目标1 |
C语言和单片机Arduino单片机结合——通过C语言程序控制或驱动硬件单片机做一些简单有趣味的实验; C语言和图形库RayLib结合起来——通过C语言调用图形库RayLib实现一些简单的有趣的游戏。 |
课内实验 期末考试 |
目标2 |
从软件工程的角度思考程序的组织,尽可能提高程序的易读性,可维护性,可移植性,同时在用C语言编程解决问题时体现出一定的创新意识。 |
课内实验 期末考试 |
三、教学内容与方法
(一)教学内容及要求
序 号 |
教学单元 |
教学内容 |
学习产出要求 |
推荐学时 |
推荐教学方式 |
支撑 课程目标 |
备注 |
1 |
Arduino IDE的安装和中文设置及点灯程序 |
如何安装和配置Arduino的开发环境,并辅以一个简单的电灯程序(用C语言代码编程点亮一个LED)进行测试,演示如何编写程序、上传程序及独立执行。 可在完成实验题目的基础上,让学生自主尝试去实现“一闪一闪亮晶晶”“双灯闪烁和流水灯”到“单路乃至双路红绿灯”等。 |
通过简单的单片机程序能正确地将顺序程序设计和循环思想应用于实际的应用问题,并能进一步地进行优化和复杂逻辑的设计与实现。 |
2 |
讲授、 实操 |
目标1 |
C语言和Arduino单片机结合——通过C语言程序控制或驱动硬件单片机做一些简单有趣味的实验,能为学生后续的专业方向选择或发展能提供一种引导或引领。 |
2 |
基于Arduino的单路温度监测器 |
利用Arduino来实现温度的测量。主要思路:Arduino Uno控制器通过模拟输入端口测量串联电阻上的电压值,然后通过电流相等的原理计算出热敏电阻的阻值,最后利用公式计算出温度值。可在完成实验题目的基础上,让学生自主尝试去实现多路温度测量。 |
通过简单的单片机程序能正确地将顺序程序设计和循环思想应用于实际的应用问题,并能进一步地进行优化和复杂逻辑的设计与实现。 |
2 |
讲授、 实操 |
目标1 |
3 |
基于Arduino的简单MP3播放器 |
经由Arduino的串口控制国产的MP3播放模块JQ6500等,通过简单指令完成音乐播放。 |
通过简单的单片机程序能正确地将顺序程序设计和循环思想和存储众多同类型数据的方法——数组,应用于实际的应用问题,并能进一步地进行优化和复杂逻辑的设计与实现。 |
2 |
讲授、 实操 |
目标1 |
4 |
基于Raylib的大富翁游戏的实现 |
加载和显示游戏背景图,然后以回合制游戏的方式,用生成随机数来推进游戏进程; 可在完成实验题目的基础上,让学生自主尝试去应用RayLib实作完成传统实验中的求素数的埃氏筛选法或选择排序等 |
能正确地复述存储众多同类型数据的方法——数组的特点,并能在实际应用中正确的使用数组,有效解决问题。 |
2 |
讲授、 实操 |
目标1 |
C语言和图形库RayLib结合起来——通过C语言调用图形库RayLib实现一些简单的有趣的小游戏,希望尽量帮助同学们消除一种印象——C语言只是一种在黑底白字的窗口中做一些看似非常枯燥无趣的。 |
5 |
基于Raylib的扫雷游戏的实现 |
运用随机值初始化二维数组完成雷场,之后实现扫雷游戏的逻辑 |
能正确地复述存储众多同类型数据的方法——数组的特点,并能在实际应用中正确的使用所谓二维数组,有效解决问题。 |
2 |
讲授、 实操 |
目标1 |
6 |
基于Raylib的简单图像编辑 |
利用Raylib的库函数加载一幅图像,得到图像数据的二维数组,之后对二维图像数据应用简单算法,最后将截图数据显示或写入文件;可在完成实验题目的基础上,让学生自主尝试去应用RayLib实作一些图像空域处理算法(例如取边缘、模糊化、锐化) |
能正确地复述存储众多同类型数据的方法——数组的特点,并能在实际的图像编辑的应用中正确的使用所谓二维数组存储图像数据,然后按要求完成数据的变换处理并写成问题,在有效解决问题的过程中更深刻地把握数组的内涵。 |
2 |
讲授、 实操 |
目标2 |
7 |
基于Raylib的梯形法定积分求解过程演示程序 |
根据给定的被积函数(以指向函数的指针方式传入)以及积分上下限,绘制图像,然后根据人为指定的小梯形数量,动态化梯形法求积分的过程 |
将C语言中指向函数的指针和高等数学中的定积分结合起来,让学生准确讲述指针的内涵,并通过图示将过程展示出来,深化对指针的学习和理解。 |
2 |
讲授、 实操 |
目标2 |
8 |
基于Raylib的简单英文打字游戏 |
以前面的实验学习为基础,应用struct封装必要的数据结构,实作一个英文打字游戏。 |
将C语言中自定义数据类型和现实应用需求结合起来,让学生准确讲述程序设计的内涵,并通过图示将过程展示出来,深化对程序设计和对C语言的学习和理解。 |
2 |
讲授、 实操 |
目标2 |
|
(二)教学方法
《C语言程序设计专题实验》是一门实践性很强的课程,需通过上机操作才能掌握所学的知识,所以要特别强调程序开发和调试,要保证学生有充分的上机条件。任课教师可适当调整教学时间分配和内容顺序,鼓励新设计实验题目。实验成绩的考核以实验成果为评价标准,收取实验报告或上机报告。
四、考核及成绩评定
(一)考核内容及成绩构成
课程目标 |
考核内容 |
成绩评定方式 |
成绩占总评分比例 |
目标成绩占当次考核比例 |
学生当次考核平均得分 |
目标达成情况计算公式 |
学生具备了基本的程序设计能力后,经过较具综合性和复杂性的C语言程序设计的开发实践训练,以期更准确更有效地运用C语言进行软件开发的方法,能将学过的循环、数组、函数、指针和自定义数据类型综合用到解决较复杂的实际问题中。 |
多重循环、简单算法的实现、一维数组的使用、二维数组编程 |
上机考试 |
21% |
70% |
A1 |
|
实验1~实验5的实验成绩 |
实验 |
49% |
70% |
B1 |
能正确运用C语言处理实际开发应用中遇到的问题,能从软件工程的角度思考程序的组织,尽可能提高程序的易读性,可维护性,可移植性,同时在用C语言编程解决问题时体现出一定的创新意识。 |
函数、指针、结构体的使用、文件操以及指针与结构体的关系 |
上机考试 |
9% |
30% |
A2 |
|
实验6~实验8的实验成绩 |
实验 |
21% |
30% |
B2 |
总评成绩(100%)=实验(70%)+上机考试(30%) |
100% |
—— |
—— |
|
(二)平时考核成绩评定
1.实验:必做实验8次,支撑目标1、目标2,共占总评分70%,目标1占
49%、目标2占21%。对应目标的评分标准如下:
对应目标 |
目标1. 学生具备了基本的程序设计能力后,经过较具综合性和复杂性的C语言程序设计的开发实践训练,以期更准确更有效地运用C语言进行软件开发的方法,能将学过的循环、数组、函数、指针和自定义数据类型综合用到解决较复杂的实际问题中。 |
目标2:能正确运用C语言处理实际开发应用中遇到的问题,能从软件工程的角度思考程序的组织,尽可能提高程序的易读性,可维护性,可移植性,同时在用C语言编程解决问题时体现出一定的创新意识。 |
考查点 |
必做实验8次,根据相应理论课知识点,在教师集中讲解和实验指导书的协助下完成实验并提交实验报告。 |
总评分占比 |
100% |
评分标准 |
100% 至 90% |
|
89.9% 至 80% |
|
79.9 至 70% |
|
69.9% 至 60% |
|
59.9%至 0 |
|
五、参考学习资料
(一)推荐教材:
(美)Paul Deitel(保罗. 戴特尔)、Harvey Deitel. C语言大学教程(第八版),ISBN:9787121316814. 北京:电子工业出版社,2017-06.
(美)K. N. King. C语言程序设计:现代方法:第2版,ISBN:9787115219572. 北京:人民邮电出版社 ,2010-3-16.