高级语言程序设计
高级语言程序设计
6万+ 人选课
更新日期:2025/04/26
开课平台爱课程(中国大学MOOC)
开课高校吉林大学
开课教师张长海
学科专业工学计算机类
开课时间2025/02/24 - 2025/05/30
课程周期14 周
开课状态开课中
每周学时-
课程简介

‍‍荷兰著名计算机学家Edsger W. Dijkstra曾说过,“我们所使用的工具深刻地影响着我们的思维方式和思维习惯,进而也将深刻地影响着我们的思维能力”。 计算机技术的普及已经深刻影响了现代人类生活的各个方面。“计算思维”就如同读、写、算能力一样,是所有人必须具备的思维能力。


计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。编程能力即是这种思维能力的一种体现。


本课程目标是通过对C语言的学习和使用,使您掌握结构化程序设计语言的基本概念、思想和方法,从而获得初步的程序设计能力(能够编写小规模程序解决实际问题),逐步养成并具备一定的计算思维能力。


课程以实际应用为背景,以“案例驱动”不断引入相关知识点,随着案例不断深入,将程序设计各相关知识点展现在读者面前,形成一条完整知识链条。因案例都是常见实际应用或初等数学问题,和生活密切相关,所以您大可不必担心学不会。


课程注重计算思维训练,即对实际问题求解过程、逻辑过程的抽象、理解和应用;因此大量使用PAD(Problem Analysis Diagram)描述程序逻辑结构,而非直接使用代码讲解;目的是帮助您不受编程语言限制,理解抽象过程;最终达到举一反三,融会贯通,掌握结构化程序设计的思想和方法,形成初步的编程和计算思维能力。


为什么选C语言作为载体语言?C语言作为当代最优秀的程序设计语言之一,它的优点远远超过了它的缺点。经验表明,程序设计人员一旦学会使用C语言之后,就会对它爱不释手;而且很多语言都是在它基础上发展起来的;所以C语言当之无愧地成为思想交流的首选载体语言。

       

时间安排:我们将用12周时间来学习具体的C语言语法、结构化程序设计基本概念、思想和方法(观看视频、随堂测验、参与讨论等进行学习),客观题周测用来检验您对基本概念的掌握情况,主观编程题周测用来训练您的编程和计算思维能力。期末主讲教师会用1周左右的时间,通过公告在网上带领大家进行知识梳理回顾,帮助您对所学知识进行整理、归纳形成一个完整的知识体系。最后1周则是期末考试(包含客观和主观编程题),检验总体学习情况。

  

课程大纲

第一讲:绪论与程序初步

1.1 鸡兔同笼——计算

1.2 算法

1.3 程序

2.1 求绿化带宽度

2.2 基本符号

第一讲:绪论与程序初步--客观题

第一讲:绪论与程序初步--编程题

第二讲:顺序程序设计

2.3 数据

2.4 语句

2.5 表达式

2.6 顺序控制结构

2.7 数据类型

2.8 输入输出

第二讲:顺序程序设计--客观题

第二讲:顺序程序设计--编程题

第三讲:分支和循环初步

3.1 判断成绩是否及格——双分支程序设计

3.2 成绩加上获奖信息——单分支程序设计

3.3 逻辑判断——布尔类型

3.4 获奖分等级——多分支程序设计

4.1 计算平均成绩——循环程序设计

第三讲:分支和循环初步--客观题

第三讲:分支和循环初步--编程题

第四讲:循环进阶

4.2 计算全班每人平均成绩——多重循环

4.3 程序设计实例

第四讲:循环进阶--客观题

第四讲:循环进阶--编程题

第四讲:循环进阶--编程题--拓展篇(不计入成绩)

第四讲:循环进阶--编程题--反弹距离(修正)(不计入成绩)

第五讲:函数和数组初步

5.1 求给定三角形重心

5.2 函数

6.1 成绩统计——数组类型

6.2 统计多科成绩——多维数组

6.3 程序设计实例

第五讲:函数和数组初步--客观题

第五讲:函数和数组初步--编程题

第六讲:数组应用

6.4 线性表——分类与检索

6.5 带学号的成绩排序——数组初值

6.6 表示姓名——字符串

第六讲:数组应用--客观题

第六讲:数组应用--编程题

第六讲:数组应用--编程题--拓展篇(不计入成绩)

第七讲:数组进阶与指针初步

6.7 类型定义

6.8 线性表——栈和队列

7.1 指针与变量

第七讲:数组进阶与指针初步--客观题

第七讲:数组进阶与指针初步--编程题

第八讲:指针应用与结构体

7.2 指针操作

7.3 指针与数组

7.4 指针与字符串

8.1 成绩单管理

8.2 保存成绩单——结构体

8.3 程序设计实例

第八讲:指针应用与结构体--客观题

第八讲:指针应用与结构体--编程题

第八讲:指针应用 & 结构体--编程题--拓展篇(不计入成绩)

第九讲:函数进阶与递归程序设计

9.1 参数

9.2 函数值

10.1 递归程序设计

10.2 程序设计实例

第九讲:函数进阶与递归程序设计--客观题

第九讲:函数进阶与递归程序设计--编程题

第九讲:函数进阶与递归程序设计--编程题--拓展篇(不计入成绩)

第九讲:函数进阶与递归程序设计--编程题--递归求解最大字符串(修正)(不计入成绩)

第十讲:文件

11.1 户籍管理

11.2 文件概述

11.3 文件打开关闭

11.4 文件IO操作

第十讲:外部数据组织--文件--客观题

第十一讲:程序开发与动态变量

12.1 自顶向下逐步求精

12.2 结构化程序设计原则

12.3 程序风格

13.1 保存实数序列——动态数据结构

13.2 动态变量

第十一讲:程序开发与动态变量--客观题

第十一讲:程序开发与动态变量--编程题

第十二讲:动态变量应用——链表

13.3 链表

13.4 程序设计实例

第十二讲:动态变量应用--客观题

第十二讲:动态变量应用--编程题