hi,小慕
课程

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

hi,小mooc
计算概论与程序设计基础
第3次开课
开课时间: 2020年03月09日 ~ 2020年06月25日
学时安排: 3-5小时每周
当前开课已结束 已有 19250 人参加
立即自学
往期不提供结课证书,想参加下学期课程, 点击这里预约>>
课程详情
课程评价(615)
spContent=本课程是北京大学信息科学技术学院本科生入学之后的第一门专业基础课程(校内课名:计算概论A),也是中国大陆最早发布的第一门计算机相关的MOOC课程(2013年9月于Coursera首次发布)。 在这里,你将与北京大学的同学们一起,学习程序设计的基础知识,感受计算机科学与技术的巨大魅力!
本课程是北京大学信息科学技术学院本科生入学之后的第一门专业基础课程(校内课名:计算概论A),也是中国大陆最早发布的第一门计算机相关的MOOC课程(2013年9月于Coursera首次发布)。 在这里,你将与北京大学的同学们一起,学习程序设计的基础知识,感受计算机科学与技术的巨大魅力!
—— 课程团队
课程概述

    “计算概论与程序设计基础”(北京大学校内课程名“计算概论A”)是针对“信息科学技术学科一年级本科生”开设的一门专业基础主干课程。本课程的教学目标有二:其一,帮助学习者建立起“学习计算机科学技术知识所需的基本知识背景”;其二,帮助学习者“掌握计算机程序设计的基础知识”,培养学习者“独立设计计算机程序解决问题”的基本技能。


    本课程的内容主要分为两个部分:(1)计算概论部分,约占课时量的15%;(2)程序设计基础部分,约占课时量的85%


    计算概论部分,我们将为大家解答一些与计算机程序设计相关的基础问题,例如,“计算机为什么能够进行计算?”,“计算机程序在计算机中是如何运行的?”,“计算机的发展规律是什么?”,“下一代的计算机将会是什么样子?”等等。我们希望通过对这些问题的解答,达到两个目的:其一,培养起大家对计算机科学的兴趣;其二,帮助大家建立起学习计算机科学所需要的“背景知识框架”。


    程序设计基础部分,我们将以“C 语言”为主要学习对象,以典型的C++编程环境(如Visual Studio C++, Eclipse等)为工具,学习计算机程序设计的相关知识,并培养程序设计的基本技能。通俗讲,在这个部分,我们将教会大家“如何使用C语言编写计算机程序,甚至编写具有一定技术难度的程序”。

    对于第一次学习计算机程序设计的同学而言,通常会觉得学习过程比较困难。在这里,我们特别提示大家:“对于难学的东西,更要循序渐进,更要遵循学习规律——先打好基础,逐步进阶!”为此,我们把“程序设计基础”部分的学习划分为四个迭代周期

        周期一: 感性认识计算机程序; 

        周期二: 理性认识计算机程序;  

        周期三: 函数——结构化的程序; 

        周期四: 一些稍复杂的数据结构(指针、结构体、链表等);

    之所以称为“迭代周期”,是因为我们希望在每个周期中,同学们都能够编写出完整、可运行、能解决问题的计算机程序,而不是仅仅学习计算机程序设计语言的某个部分!所以,学习程序设计的过程,应该是一个“在实战中进阶”的过程,而不是一个“知识堆砌”的过程。希望这个迭代进阶的学习过程可以帮助大家顺利达成学习目标。

课程大纲

计算机的基本原理

从数学危机到图灵机

图灵机的基本构成

图灵机的运行机理

数的二进制表示

二进制数的布尔运算

请登陆 http://mooc.nnthink.com 完成课程作业

计算机的历史与未来

历史上的计算设备

从电子管到云计算

摩尔定律下的计算危机

量子计算机的基本原理

量子计算机的发展状态

程序运行的基本原理

问题的提出

冯诺依曼式计算机

存储器的种类与特点

存储器的原理与类型

CPU指令的执行

程序的执行

感性认识计算机程序

说在前面的话

程序是你告诉计算机的话

如果你的大脑是台计算机

如果你来设计一门编程语言

快步走近C程序之一

快步走近C程序之二

快步走近C程序之三

什么样的程序是好程序

配置编程环境(补充资料)下载安装和使用IDE

配置编程环境(补充资料)使用IDE进行调试

编程作业:编程基础练习(1/2)

从现实问题到计算机程序的

没有解决方案就没有程序

先有构想再写程序

先有构想再写程序--示例

体验结构化的程序--示例

编程作业:编程基础练习(2/2)

理性认识C程序 导论

明确学习进度

C语言的由来

C语言的标准

C语言的构成

C 语言中的数据成分

再谈学习进度与安排

变量定义的含义

整数型的类别

整数型的存储

整数的输入输出

最大与最小整数

浮点型

字符型

布尔型

常数

变量命名

编程作业:数据成分基础练习

C语言中的运算成分

说在前面的话

赋值运算

赋值运算的说明

算术运算

自增自减运算

关系运算

逻辑运算与混合运算

逗号,条件,强制类型转换

位运算

编程作业:运算成分基础练习

C语言中的控制成分

再谈分支语句

再谈循环语句

Goto之争

编程练习:控制成分基础练习

C程序中的数组

再谈一维数组

二维数组

三维数组

数组的作用之一

数组的作用之二

编程作业:数组应用练习

C程序中的字符串

字符数组与字符串

输入缓冲区

一个字符的输入

一串字符的输入

字符串应用例题

编程作业:字符串应用练习

C程序中的函数

函数的定义与声明

函数的调用过程

函数调用示例

变量的作用域

数组做函数参数

函数应用示例

编程练习:函数与字符串练习

函数的递归

如何理解递归

递归调用的过程

递归应用示例(切饼,斐波那契数列)

递归应用示例(进制转换,汉诺塔)

递归应用示例(放苹果)【较难 选听】

递归应用示例(逆波兰表达式)【较难 选听】

习题课一 枚举 模拟与递归

编程练习:递归编程练习(1/2)

指针 —

什么是指针

什么是指针变量

指针变量示例

指针变量的++---

数组与指针

用指针访问数组

习题课二 较难 选听

编程练习:递归编程练习(2/2)

指针二

字符串与指针

再谈指向一维数组的指针

指向二维数组的指针

二维数组名引用示例

利用指针遍历二维数组

编程作业:指针使用练习

指针三

指针做函数参数

限制指针函数实参的功能

指针做函数返回值

静态局部变量

编程练习:综合练习题

结构体与链表

结构体与结构体变量

结构体变量与函数

结构体变量与指针

链表的定义

链表的操作

编程练习:结构体与链表的使用

最后一次课

结语;轻叩面向对象之门

编程工具的安装和使用:下载、安装和使用IDE

说明 编程工具的安装和使用:使用IDE进行调试

展开全部
证书要求

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

 

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

 

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

 

认证证书申请注意事项:

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

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


参考资料

基本资料:

主要参考本课程所提供的讲义资料,以及来自 https://ica.openjudge.cn/  的相关练习题。

参考教材:

[1] 《程序设计基础》(第二版),吴文虎,清华大学出版社,2006年7月 参考教材

[2] Computer Systems -A Programmer's Perspective, Randal E.Bryant, David O'Hallaron, Prentice Hall, 2002

[3] C++ Programming Today (2 edition), Barbara Johnston, Prentice Hall, 2007


北京大学
1 位授课老师
李戈

李戈

副教授

推荐课程

数电不挂科-4小时学完数字电子技术基础/数字电路

猴博士爱讲课

227085人参加

数电期末高分/考研-8小时精讲数字电路/数字电子技术基础

长安老师

4173人参加

模电不挂科-5小时学完模拟电子技术/模拟电路

猴博士爱讲课

201609人参加

机械原理不挂科-5小时学完机械原理

猴博士爱讲课

172404人参加
下载
下载

下载App