课程

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

hi,小mooc
期末考试会员
SPOC学校专有课程
C语言程序设计
第5次开课
开课时间: 2024年09月18日 ~ 2025年01月13日
学时安排: 3-5小时每周
当前开课已结束 已有 497 人参加
老师已关闭该学期,无法查看
spContent=“为世界编程!从C开始、拥抱代码、强基固本” 本课程是计算机类和电子信息类专业本科学生学习程序设计的第一门课程。课程采用线上线下混合式教学模式,秉承“以学生为中心,厚基础,强实践,重创新”的建设思路,结合教学实践持续改进课程教学体系、教学方法、教学内容以及教学环境。课程以C程序设计语言为载体,系统介绍程序设计的基本方法和思想。不仅为后续课程打下良好基础,也有助于建立良好的编程风格和习惯、培养计算思维能力和程序设计能力。
“为世界编程!从C开始、拥抱代码、强基固本” 本课程是计算机类和电子信息类专业本科学生学习程序设计的第一门课程。课程采用线上线下混合式教学模式,秉承“以学生为中心,厚基础,强实践,重创新”的建设思路,结合教学实践持续改进课程教学体系、教学方法、教学内容以及教学环境。课程以C程序设计语言为载体,系统介绍程序设计的基本方法和思想。不仅为后续课程打下良好基础,也有助于建立良好的编程风格和习惯、培养计算思维能力和程序设计能力。
—— 课程团队
课程概述

《程序设计基础》是计算机类及电子信息类相关专业的核心课程,是学科基础必修课。它既是学生接触的第一门程序设计类课程,也是诸多后续专业课程的基础,更是使学生改变思维方式,建立计算思维的主要课程。本课程既要为后续专业课程打下良好的基础,又要对学生一生的程序设计技术、技巧、风格和习惯负责,培养学生程序设计能力和良好的程序设计风格。本课程以C语言为载体介绍程序设计的基本方法和思想,主要内容包括基本知识、程序设计、数据组织3部分。基本知识部分主要介绍算法、程序等基本概念;程序设计部分包括顺序程序设计、分支程序设计、循环程序设计、模块化程序设计、递归程序设计和结构化程序设计方法等程序开发技术;数据组织部分包括批量数据组织、表单数据组织、外部数据组织、指针、动态数据组织等数据存储形式。

"课程旨在通过对基本理论、编程方法的学习,帮助学生建立计算机程序设计方面的知识框架,掌握程序设计语言的主要构成,理解程序设计的基本思想,掌握程序设计的基本方法,具有初步的编程能力和一定的计算思维能力。本课程主要为毕业要求第1、2、3的实现提供支撑。

目标1:掌握计算机类和电子信息类相关专业工作所需的工程基础和专业知识。掌握结构化程序设计语言的组成、结构化程序设计思想和方法等,对毕业要求1的达成提供支持。

目标2:应用计算机科学基本原理对复杂计算机工程问题进行分析和求解。在毕业要求1的支持下,能够针对小型问题,采用自顶向下、逐步求精、模块化、穷举、试探等程序设计思想进行分析和求解,具有一定的计算思维能力,对毕业要求2的达成提供支持。

目标3: 能够针对特定需求,完成单体和小型系统的设计,了解面向小型计算机程序的工程设计和产品开发全周期、全流程设计/开发解决方案的基本方法和技术,对毕业要求3的达成提供支持。"

授课目标

    使学生掌握程序设计语言的主要构成,理解结构化程序设计的基本思想,掌握程序设计的基本方法,具备一定的计算思维能力,形成初步的编程能力。

    1、掌握计算机类及相关专业和电子信息工程专业工作所需的工程基础和专业知识。掌握结构化程序设计语言的基本构成、结构化程序设计思想和方法等。

    2、应用计算机科学的基本原理对复杂计算机工程问题进行分析和求解。能够针对小型问题,使用自顶向下、逐步求精、模块化、穷举、试探等程序设计思想进行分析和求解,具有一定的计算思维能力。

    3、能够恰当地选择与使用计算机软件及工具,完成复杂计算机工程问题的模拟和求解。能够选择使用适当的操作系统和C语言工具完成小规模C语言程序的设计与调试,具有初步的编程能力。

成绩 要求

线上学习成绩占总成绩的10%,其中:视频(30%) + 章节测验(20%) + 期末考试(20%) + 作业(20%) + 讨论(10%)。

课程大纲
C语言程序设计预备知识
课时目标:[教学目的]通过本章教学,使学生了解计算机系统组成及工作原理,掌握进位计数制及其转换方法,理解机器数的表示形式(原码、反码和补码),了解二进制数的位运算,了解本门课程的教学要求和学习方法。[教学要求]1、应突出基本知识和概念的讲解,利用多媒体、视频等现代化的教学工具,循序渐进地讲解,启发引导学生的思维,利用典型示例,全面展示计算机软硬件系统的基本概貌。2、较为系统和全面的掌握计算机系统的组成及工作原理;3、掌握机器数的原码、反码和补码表示,掌握补码的加、减运算;4、了解字符表示法和二进制数的位运算。[重点难点]重点:二进制数、八进制数、十进制数和十六进制数的转换。难点:机器数的补码表示及运算。
第一节 计算机系统组成及工作原理简介
第二节 进位计数制及其转换
第三节 机器数的表示形式及其表示范围
第四节 二进制数的位运算
C语言程序设计基础
课时目标:[教学目的]通过本章教学,使学生了解C程序设计语言的发展历史及其基本特性;初步认识C语言程序的基本结构;掌握编制C语言程序的基本步骤。[教学要求]掌握程序设计的基本概念和编制程序的基本方法。[重点难点]重点:编程程序的基本步骤;程序的基本结构;常用C语言开发软件。难点:程序的调试方法。
第一节 程序设计语言的发展及其特点
第二节 C语言的发展及其特点和应用
第三节 C语言与C++、Java和C#之间的关系
第四节 C语言程序的基本结构
第五节 编制C语言程序的基本步骤
基本数据类型、运算符与表达式
课时目标:[教学目的]通过本章教学,使学生掌握变量和常量的概念;理解各种类型的数据在内存中的存放形式;掌握各种类型数据的常量的使用方法;掌握各种整型、字符型、浮点型变量的定义和引用方法;了解调用printf函数输出各种类型数据的方法;掌握数据类型转换的规则以及强制数据类型转换的方法;掌握赋值运算符、算术运算符、位运算符、逗号运算符以及sizeof的使用方法;理解运算符的优先级和结合性的概念,记住所学的各种运算符的优先级关系和结合性。[教学要求]1、尽可能地结合实例进行教学。2、在C语言基本数据类型及其表示范围方面进行重点详细讲解,让学生充分理解为什么C语言中要使用不同的数据类型,每种数据类型各适用于那些场合。3、对C语言中的运算符及其优先级进行详细讲解,并结合综合实例讲解。4、要求学生通过本章的学习能够对C语言中的简单数据类型、运算符及优先级进行很好的把握,并能通过实际编程加以理解和应用。[重点难点]重点:C语言的数据类型;常量与变量;简单数据类型与表示范围;C语言的运算符与表达式;运算符的优先级和结合性。难点:常用运算符的优先级和结核性。
第一节 C语言的数据类型
第二节 常量、变量和标识符
第三节 简单数据类型与表示范围
第四节 C语言的运算符与表达式
第五节 运算符的优先级和结合性
第六节 有符号数与无符号数之间运算问题
基本输入输出和顺序程序设计
课时目标:[教学目的]通过本章教学,使学生掌握各种类型数据的格式化输入输出方法;掌握字符数据的非格式化输入输出方法;学会简单顺序程序的设计方法;如何养成良好的程序设计习惯。[教学要求]1、教师尽可能地结合实例演示数据格式化输入输出中各种格式控制符的作用及技巧;2、结合实例讲解算法在程序设计中的重要性及程序的顺序执行;3、通过本章的学习要求学生能熟练的掌握利用scanf和printf函数进行数据的输入和输出,并对算法及其描述方法(流程图)能够很好的把握,能够编些一般顺序结构的C语言程序。[重点难点]重点:C程序中的数据输出;C程序中的数据输入;程序的顺序控制结构。难点:标准输入输出函数的格式控制。
第一节 格式化输出printf
第二节 格式化输入scanf
第三节 字符数据的非格式化输入输出
第四节 程序的控制结构
第五节 顺序程序设计举例
选择结构程序设计
课时目标:[教学目的]通过本章教学,使学生从总体上理解选择结构程序设计的概念与设计原则;掌握关系运算符、逻辑运算符和条件运算符的用法; 掌握关系运算符、逻辑运算符和条件运算符与其它运算符的优先级关系和结合性;掌握if、switch、break语句的使用方法。[教学要求]1、尽可能地结合实例进行教学;让学生充分了解程序中多分支语句执行的走向,以便更好地把握选择结构程序设计的方法和应用技巧;2、正确把握if语句与switch语句应用上的差异,并能熟练使用它们进行分支程序的设计来解决一些实际问题。[重点难点]重点:C语言程序中语句的分类;关系运算符和关系表达式;逻辑运算符和逻辑表达式;if语句和switch语句;条件运算符和条件表达式。难点:关系运算和逻辑运算;break语句和continue语句的作用;选择控制语句的嵌套。
第一节 C语言程序中语句的分类
第二节 关系运算符、逻辑运算符、条件运算符
第三节 选择结构的程序设计
第四节 选择结构程序设计举例
循环结构程序设计
课时目标:[教学目的]通过本章教学,使学生掌握实现循环的基本方法;学会使用while语句、do-while语句、for语句进行循环程序设计。[教学要求]1、尽可能地结合实例进行教学;让学生充分了解循环程序中语句执行的走向,以便更好地把握循环程序设计的方法和应用技巧;2、能正确把握三种循环结构应用上的差异,并能熟练使用它们进行循环程序的设计来解决一些实际问题。[重点难点]重点:while语句、do-while语句、for语句;循环结构类型的选择及转换。难点:循环控制结构嵌套。
第一节 循环结构的程序设计
第二节 循环结构类型的选择及转换
第三节 循环结构程序设计举例
第四节 本章小结及常见错误列举
数组
课时目标:[教学目的]通过本章教学,使学生理解数组变量在内存中的存放形式;掌握一维数组和二维数组变量的定义和数组元素的引用;掌握各种字符串库函数的用法。[教学要求]1、尽可能地结合实例进行教学,特别是数组与内存之间的印象关系要尽可能讲解清楚;2、充分把握数组的具体定义和操作,并能深刻认识数组的应用的重要意义及其应用的方法与技巧。3、能利用数组并结合先前学过的有关知识来编制一定难度的C语言程序解决有关实际问题。[重点难点]重点:一维数组的定义与引用;二维数组的定义与引用;字符串和字符数组、难点:二维数组下标运算和运用。
第一节 一维数组
第二节 二维数组
第三节 字符串与数组
第四节 数组综合应用举例
函数
课时目标:[教学目的]通过本章教学,使学生理解函数、形参、实参、作用域、生存期的概念;掌握各种函数的定义、原型声明和调用的方法;知道全局变量、局部变量、静态变量、静态函数的作用域和生存期;掌握递归函数的编写规则;掌握利用工程管理程序的方法。[教学要求]1、从总体上了解函数的基本概念,理解函数定义、声明及引用的方法;掌握变量的作用域与生存期的含义;学会递归程序设计来解决有关问题。2、从结构化程序设计的角度来使用函数编程。[重点难点]重点:函数的定义和调用;变量的作用域和存储类别; 函数的嵌套调用和递归调用;函数的作用域。难点:递归算法和函数的递归调用。
第一节 函数概述
第二节 函数的定义与调用
第三节 函数参数的传递方式
第四节 变量的作用域和生存期
第五节 变量的存储类型
第六节 函数的嵌套和递归调用
第七节 函数的作用域
第八节 函数封装
第九节 函数应用综合举例
指针
课时目标:[教学目的]通过本章教学,使学生理解指针的概念;掌握指针变量的定义与引用方法;掌握指针与数组、字符串之间的联系;掌握动态内存分配和释放的方法;掌握带指针型参数和返回指针的函数的定义方法;掌握函数指针的用法。[教学要求]1、从内存的角度帮助学生正确的理解C语言中指针的含义与作用;2、学生正确地把握指针与数组、指针与函数之间的关系与应用。3、学会利用指针编程来处理有关问题。[重点难点]重点:指针变量的定义与引用;指针的运算;指针与数组;指针与字符串;指针与内存的动态分配;指针与数组作为函数的参数;带参数的main函数;指针作为函数的返回值。难点:指针与数组、字符串的关系和运用;函数指针的应用。
第一节 指针与指针变量的概念
第二节 指针变量的定义和引用
第三节 指针和地址运算
第四节 指针与数组
第五节 指针与字符串
第六节 指针与动态内存分配
第七节 多级指针
第八节 指针作为函数参数
第九节 指针作为函数的返回值——指针函数
第十节 指向函数的指针——函数指针
第十一节 带参数的main函数
预处理命令
课时目标:[教学目的]通过本章教学,使学生掌握#include、#define、#if、#ifdef、#else、#ifndef和#endif等命令的用法;掌握宏定义和宏替换的一般方法;掌握包含文件的处理方法;了解条件编译的作用和实现方法。[教学要求]充分理解C语言中预处理命令的含义与作用,能在自己的程序中正确地使用预处理命令,特别是宏定义和条件编译。[重点难点]重点:常用的预处理命令;宏定义;文件包含;条件编译。难点:带参数的宏。
第一节 预处理命令简介
第二节 宏定义
第三节 文件包含
第四节 条件编译
复杂数据类型
课时目标:[教学目的]通过本章教学,使学生掌握结构体、共用体和枚举类型的定义方法;掌握结构体、共用体和枚举变量的定义和引用方法;了解线性链表的创建、插入节点、删除节点和撤销节点的算法;掌握利用复杂数据类型作为函数参数和返回值的函数定义方法。[教学要求]1、深刻领会结构体类型的实质及其应用领域;2、能正确把握线性链表来解决实际问题的方法和技巧;3、能运用复杂数据类型并结合指针来编写大型的应用程序。[重点难点]重点:复杂数据类型概念;结构体;共用体;枚举类型变量的定义和引用;难点:线性链表;位域;复杂数据类型作为函数参数和返回值。
第一节 复杂数据类型概述
第二节 结构体
第三节 线性链表
第四节 联合体
第五节 位域
第六节 枚举类型变量的定义和引用
第七节 复杂数据类型应用综合举例
文件
课时目标:[教学目的]通过本章教学,使学生掌握文件的打开、读写、定位以及关闭的方法;掌握缓冲文件系统中有关文件操作的系统函数使用方法;能设计对文件进行简单处理的实用程序。[教学要求]1、深刻理解流的概念;理解文本文件与二进制文件的差异。2、能利用C语言中文件操作函数编制复杂应用程序。[重点难点]重点:文件和流的概念;文件指针;文件的打开、读写和关闭;文件的定位读写。难点:二进制文件和文本文件的差异;文件的随机读写。
第一节 文件的基本概念
第二节 文件的类别
第三节 文件操作概述
第四节 文件指针
第五节 文件的打开、读写和关闭
第六节 文件的定位读写
第七节 文件应用综合举例
展开全部
预备知识

参考资料

1.《C语言程序设计教程(第三版)》,王敬华等编,(“十一五”普通高等教育本科国家级规划教材),清华大学出版社,2021年

2.《C语言大学实用教程(第5版)》,苏小红等编,电子工业出版社,2022年

3.《C How to Program,9/e》,Paul Deitel等著,Prentice Hall出版社,2022年

4.《C Primer Plus(第6版)中文版》,Stephen Prata著,姜佑译,人民邮电出版社,2019年

5.《C语言程序设计:现代方法(第2版•修订版)》,[美]K.N.金(K.N.King)著,吕秀锋,黄倩译,2019年

6.《C/C++程序设计教程》,黄永峰、孙甲松,清华大学电子工程系核心课系列教材,清华大学出版社,2019年

新疆大学
9 位授课老师
赵楷

赵楷

副教授

黄浩

黄浩

教授,博士研究生

艾山·吾买尔

艾山·吾买尔

副教授

下载
下载

下载App