hi,小慕
课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
高级语言程序设计
第9次开课
开课时间: 2022年02月27日 ~ 2022年07月17日
学时安排: 4
当前开课已结束 已有 2798 人参加
老师已关闭该学期,无法查看
课程详情
课程评价(358)
spContent=随着深空探测器、无人机、自动驾驶汽车等智能系统的发展,当今社会已经进入人工智能时代。计算机及其相关技术是构建人工智能系统中枢的基础。若将计算机硬件类比躯干,那计算机程序则是构建大脑的基础。在众多程序设计语言中,C语言为构建Unix操作系统而设计,后来的Windows、MacOS、Linux、Android等系统,以及众多应用软件均使用C语言开发。时到今日,C语言依然保持强大生命力,是新技术开发的利器。为了梦想,用程序改造世界,创造无限可能!欢迎大家与我们一起学习使用C语言程序设计!
随着深空探测器、无人机、自动驾驶汽车等智能系统的发展,当今社会已经进入人工智能时代。计算机及其相关技术是构建人工智能系统中枢的基础。若将计算机硬件类比躯干,那计算机程序则是构建大脑的基础。在众多程序设计语言中,C语言为构建Unix操作系统而设计,后来的Windows、MacOS、Linux、Android等系统,以及众多应用软件均使用C语言开发。时到今日,C语言依然保持强大生命力,是新技术开发的利器。为了梦想,用程序改造世界,创造无限可能!欢迎大家与我们一起学习使用C语言程序设计!
—— 课程团队
课程概述

      本课程的教学目标是通过学习C语言,建立起程序设计的概念,掌握程序设计的基本方法和技巧,养成良好的程序设计风格,从而具备应用程序设计解决相关专业领域内实际问题的基本能力。本课程在系统介绍程序设计语言基本知识的基础上,注重程序设计思想及能力培养,并引入专业应用的实际问题和工程案例。 

     现代计算机遵循了艾伦·麦席森·图灵(Alan Mathison Turing)提出”图灵机"模型,在冯·诺依曼(John von Neumann)提出的“存储程序式电子计算机“体系发展至今。人类设计的计算机程序(包括指令和数据)首先存储到内存中,然后自动执行,在执行过程中,可能需要从键盘、鼠标等输入设备获取信息,并向显示器、打印机等输出设备输出结果,其运算通过中央处理器完成。

     既然计算机程序要运行于存储程序是电子计算机中,因此我们必须了解构成程序的指令和数据如何表示和存储,也就是说为了能够编写程序,首先要学习一门计算机程序设计语言。在众多程序设计语言中,C语言为构建Unix操作系统而设计,后来的Windows、MacOS、Linux、Android等系统,以及众多应用软件均使用C语言开发。时到今日,C语言依然保持强大生命力,是新技术开发的利器。 因此本门课程选择了C语言作为学习程序设计的基础。

     计算机作为一种计算系统,其数值计算、非数值计算方法与数学、物理、化学、力学等等领域的方法不同,将专业领域的求解方法转换为计算机领域的算法,掌握典型问题的求解算法,是本门课程的另外一个任务。

     本课程围绕如何运算、如何表达逻辑、如何处理集合数据、如何实现代码的分解与重用、如何实现基于内存地址的数据访问、如何表达复杂对象、如何实现数据永久存储、如何实现程序移植,系统介绍表达式运算、输入输出、顺序结构、选择结构、循环结构、数组、函数、指针、结构体、文件、预编译处理等内容。

     按照课程计划,每周发布2个学时理论学习任务。建议各位另行安排2个学时完成上机实践。


授课目标

初步了解计算机,建立起程序设计的概念;通过学习用C语言编写程序,初步掌握程序设计方法,养成良好的程序设计风格;结合C语言,系统地学习面向过程和结构化程序设计的思想和方法;结合上机实践,使学生对程序设计有一个比较全面的、系统的了解,为学生学习程序设计打下一个良好基础。

课程大纲
程序设计入门
课时目标:学习目标:了解利用计算机及其程序求解问题的基本思想,以及现代存储程序式计算机的基本工作原理;了解数据、指令表示方法,以及如何编写程序;了解常用的程序设计语言;掌握问题求解与算法设计的基本思路与程序设计思想;通过实践掌握用C编写最简单程序。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
1.1 课程概要
1.2 计算机基本原理
1.3 指令与程序
1.4 程序设计语言
1.5 问题求解与算法设计
1.6 C语言概述
上机实践:
1.1 在PC机上,安装Codeblock软件,熟悉基本操作
1.2 在安卓手机,安装C4driod,熟悉基本操作
1.3 编写简单程序
信息编码与基本运算
课时目标:学习目标:掌握如何表示常量、变量;掌握C语言提供的基本数据类型;掌握如何实现包括加、减、乘、除在内的算术运算,如何实现大于、小于等比较相关的关系运算,如何实现包括与、或、非的逻辑运算,如何实现赋值运算;并掌握位运算、条件运算、逗号运算和类型转换等运算。课时安排:建议在线学习3学时,上机实践3学时。
在线学习:
2.1 基本信息与编码
2.2 基本数据类型
2.3 常量
2.4 变量
2.5 基本运算与表达式
2.6 算术运算
2.7 关系运算
2.8 逻辑运算
2.9 位运算
2.10 赋值运算
2.11 其它运算-类型转换运算、条件运算和逗号运算
上机实践:
2.1 编写简单程序
2.2 教材例3-1~3-8
常用函数库与顺序结构
课时目标:学习目标:掌握数学库、字符处理函数库和复数函数库;掌握如何通过语句实现基本逻辑步骤;掌握如何通过从前往后的语句编排实现顺序逻辑结构;掌握如何从键盘获取外部信息;掌握如何通过向显示器输出信息。课时安排:建议在线学习2学时,上机实践4学时。
在线学习:
3.1 数学函数库
3.2 字符处理函数库
3.3 复数运算函数库
3.4 标准输入输出函数库-输入输出设备
3.5 标准输入输出函数库-字符输入和输出函数
3.6 标准输入输出函数库-格式输出函数
3.7 标准输入输出函数库-格式输入函数
3.8 程序控制结构概述
3.9 基本语句
上机实践:
3.1 实现教材例3-9~3-13
3.2 实现案例-电影评分计算
3.3 学有余力的同学,完成例3-15、例3-16
逻辑判断与选择结构
课时目标:学习目标:掌握如何依据逻辑判断,例如比较,有选择的执行逻辑步骤,即实现选择结构;掌握实现单分支的if语句;掌握实现双分支的if...else语句;掌握实现多分支的if...else、if...语句和switch语句课时安排:建议在线学习3学时,上机实践3学时。
在线学习:
4.1 单分支结构-if语句
4.2 双分支结构-if...else
4.3 多分支结构-if...else if...
4.4 多分支结构-switch
4.5 案例-电影评分计算
上机实践:
4.1 编写简单程序
4.2 实现教材例4-1~4-9
4.3 实现案例-电影评分计算
迭代计算与循环结构
课时目标:学习目标:掌握如何依据迭代条件实现反复的运算,直到获得最终结果的逻辑结构,即实现循环结构;掌握while、for、do while语句实现的循环结构,以及通过循环嵌套实现复杂逻辑;掌握通过break/continue语句实现循环控制。课时安排:建议在线学习3学时,上机实践3学时。
在线学习:
5.1 循环结构-while
5.2 循环结构-for
5.3 循环结构-do while
5.4 循环结构-break/continue
5.5 循环结构-嵌套
5.6 实现案例-电影评分计算
上机实践:
5.1 编写简单程序
5.2 实现教材例5-1~5-14
5.3 实现案例-电影评分计算
集合数据及其处理
课时目标:学习目标:掌握集合数据,例如列表、向量、矩阵等数据的存储;掌握基于一维数组实现列表和向量的存储;掌握插入、删除、查找和排序等集合数据处理方法;掌握基于二维数组实现表格和矩阵数据的存储;掌握矩阵运算,表格排序等数据处理算法。课时安排:建议在线学习2学时,上机实践3学时。
在线学习:
6.1 数组概念
6.2 一维数组
6.3 二维数组
上机实践:
6.1 编写简单程序
6.2 实现教材例6-1~6-7
字符数据处理
课时目标:学习目标:掌握字符和字符串的存储;掌握字符串所涉及的插入、删除、查找和排序等常用处理方法;掌握字符串长度计算、字符串复制、字符串连接等处理算法;深入了解数组与数据存储机制。课时安排:建议在线学习2学时,上机实践3学时。
在线学习:
7.1 字符数组
7.2 字符串
7.3 数组与数据存储
7.4 案例-电影评分计算
上机实践:
7.1 编写简单程序
7.2 实现教材例6-9~6-13
7.3 实现案例-电影评分计算
函数实现代码分解和重用
课时目标:学习目标:从代码重用角度,掌握C语言引入函数在提高程序设计质量和效率中的重要作用;掌握函数的定义和基本结构;掌握函数声明的作用及其常用方法;掌握函数之间信息传递机制,并重点掌握基于函数参数的信息传递机制;掌握函数调用的方法。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
8.1 函数入门
8.2 函数定义
8.3 函数声明
8.4 参数传递
8.5 函数调用
上机实践:
8.1 编写简单程序
8.2 实现教材例7-4~7-10
递归及函数结构
课时目标:学习目标:掌握递归调用的基本机制;了解典型C语言的程序的源程序结构;了解内部函数与外部函数的定义和用途;了解函数及源程序文件引入后,对变量作用域的影响;了解变量在内存中的存储机制。课时安排:建议在线学习2学时,上机实践2学时
在线学习:
9.1 递归调用
9.2 源程序结构
9.3 内部函数与外部函数
9.4 变量作用域-全局变量与局部变量
9.5 变量如何存储
9.6 案例-电影评分计算
上机实践:
9.1 编写简单程序
9.2 实现教材例7-10~7-14
9.3 实现案例-电影评分计算
内存地址及其指针
课时目标:学习目标:了解程序设计中的代码和指令的存储机制;掌握变量、数组的内存地址获取方法;掌握通过地址运算处理变量和数组的基本方法。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
10.1 地址与指针
10.2 指针变量
10.3 指针运算
10.4 指针与一维数组
10.5 指针与二维数组
上机实践:
10.1实现教材例8-2~8-3
指针的应用
课时目标:学习目标:掌握通过地址运算处理字符串的基本方法;了解函数中使用指针类型参数的原因,掌握使用指针类型参数的基本方法;掌握应用指针计算字符串长度、字符串复制、字符串链接等基本算法;了解指针数组的基本用法;了解数组指针、函数指针、指向指针的指针的基本概念;掌握内存管理的基本方法。课时安排:建议在线学习2学时,上机实践4学时。
在线学习:
11.1 指针与字符串
11.2 指针数组
11.3 数组指针
11.4 函数与指针
11.5 指向变量的地址-指向指针的指针
11.6 内存管理
11.7 实现案例-电影评分计算
上机实践:
11.1 编写简单程序
11.2 实现教材例8-4~8-16
11.3 实现案例-电影评分计算
复杂对象描述与结构体
课时目标:学习目标:了解C语言引用结构体的原因;掌握结构体的定义方法;掌握结构体变量、数组、指针的基本用法;掌握结构体用作函数参数和返回值的基本用法;了解共用体、枚举类型和类型重定义的基本用法。课时安排:建议在线学习2学时,上机实践3学时。
在线学习:
12.1 为何引入结构体及其定义
12.2 结构体变量及其初始化
12.3 结构体数据运算
12.4 结构体数组
12.5 结构体指针
12.6 结构体与函数
12.5 共用体
12.6 枚举类型
12.7 类型重定义
上机实践:
12.1 编写简单程序
12.2 实现教材例9-2~9-7
链表及其处理
课时目标:学习目标:了解链表定义、遍历、排序、插入、删除等基本处理算法。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
13.1 链表的定义
13.2 链表的操作
上机实践:
13.1 实现案例-电影评分计算
预编译处理
课时目标:学习目标:了解C语言中引入预编译处理的原因;了解预编译指令与函数语句的区别;掌握符号常量和宏的定义方法;了解#include指令的基本用法;了解条件编译的基本用法课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
14.1 预编译处理概述与define
14.2 宏定义
14.3 文件包含与include
14.4 条件编译
上机实践:
14.1 实现教材例10-1~10-5
14.2 实现案例-电影评分计算
文件与数据永久存储
课时目标:学习目标:了解文件在实现数据永久性存储中的作用;了解文本文件与二进制文件的区别;掌握打开、关闭、读、写等基本文件操作。课时安排:建议在线学习2学时,上机实践2学时。
在线学习:
15.1 文件概述
15.2 文件定义
15.3 文件操作基础
15.4 文本文件读写
15.5 二进制文件读写
15.6 定位与随机读写
15.5 综合应用
上机实践:
15.1 编写简单程序
15.2 实现教材例11-8~11-10
展开全部
预备知识

本课程要求学习者熟悉Windows或Linux的基本操作。


证书要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


参考资料

开发工具(PC)


[1]  CodeBlocks 20.03

[2] VC++ 2010/2019 


开发工具(手机及平板电脑)


安卓系统:C4droid

苹果系统:C++


参考教材:
高克宁,程序设计基础(C语言)第3版,清华大学出版社,2018年1月

常见问题

------------账号注册相关问题------------

Q1:我东北大学的学生,本期课程采用了混合式教学,在注册账号时要注意哪些问题?

A1:要求个人信息的“昵称”中包含学校和学号信息。例如NEU20200101。

Q2:我不是东北大学的学生,本期课程采用了混合式教学,在注册账号时注意哪些问题?

A2:要求个人信息的“昵称”中包含学校和学号信息。例如LNU20200101。

Q3:我是在校学生,未参加混合式教学,在注册账号时注意哪些问题?

A3:不做要求,建议参考问题Q2。

------------混合式教学相关问题------------

Q4:我希望依托本门课程开展混合式教学,如何联系?

A4:请发送邮件给我们,gkn@cc.neu.edu.cn

Q5:我们线下课程进度与MOOC进度不一致,如何处理?

A5:为了支持混合式教学需要,本期课程所有练习和测验将开放4周,最终截止时间不超过课程结束时间。请各位老师另行通知各项学习活动的实际完成时间。

Q6:如何获得学生过程学习数据?

A6:需要获得学生在线学习过程学习数据的老师,请联系我们,我们将通过电子邮件发送给您。请务必先和我们联系。

------------东北大学混合教学问题------------

Q7:本学期注册《C语言程序设计(理工类)》课程,教学如何开展?

A7:课程开展各项安排,请参见教务处通知。



东北大学
3 位授课老师
高克宁

高克宁

教授

赵长宽

赵长宽

讲师

李封

李封

讲师

推荐课程

【DeepSeek适用】小白玩转AI大模型应用开发

林粒粒

210人参加

小白玩转 Python 数据分析

林粒粒

78人参加
下载
下载

下载App