• 名称:计算概论与程序设计基础课程-北京大学
  • 分类:程序设计
  • 观看人数:加载中...
  • 时间:2024-07-28 21:37
“计算概论与程序设计基础”(北京大学校内课程名“计算概论A”)是针对“信息科学技术学科一年级本科生”开设的一门专业基础主干课程。本课程的教学目标有二:其一,帮助学习者建立起“学习计算机科学技术知识所需的基本知识背景”;其二,帮助学习者“掌握计算机程序设计的基础知识”,培养学习者“独立设计计算机程序解决问题”的基本技能。 本课程的内容主要分为两个部分:(1)计算概论部分,约占课时量的15%;(2)程序设计基础部分,约占课时量的85%; 计算概论部分,我们将为大家解答一些与计算机程序设计相关的基础问题,例如,“计算机为什么能够进行计算?”,“计算机程序在计算机中是如何运行的?”,“计算机的发展规律是什么?”,“下一代的计算机将会是什么样子?”等等。我们希望通过对这些问题的解答,达到两个目的:其一,培养起大家对计算机科学的兴趣;其二,帮助大家建立起学习计算机科学所需要的“背景知识框架”。 程序设计基础部分,我们将以“C 语言”为主要学习对象,以典型的C++编程环境(如Visual Studio C++, Eclipse等)为工具,学习计算机程序设计的相关知识,并培养程序设计的基本技能。通俗讲,在这个部分,我们将教会大家“如何使用C语言编写计算机程序,甚至编写具有一定技术难度的程序”。 对于第一次学习计算机程序设计的同学而言,通常会觉得学习过程比较困难。在这里,我们特别提示大家:“对于难学的东西,更要循序渐进,更要遵循学习规律——先打好基础,逐步进阶!”为此,我们把“程序设计基础”部分的学习划分为四个迭代周期: 周期一: 感性认识计算机程序; 周期二: 理性认识计算机程序; 周期三: 函数——结构化的程序; 周期四: 一些稍复杂的数据结构(指针、结构体、链表等); 之所以称为“迭代周期”,是因为我们希望在每个周期中,同学们都能够编写出完整、可运行、能解决问题的计算机程序,而不是仅仅学习计算机程序设计语言的某个部分!所以,学习程序设计的过程,应该是一个“在实战中进阶”的过程,而不是一个“知识堆砌”的过程。希望这个迭代进阶的学习过程可以帮助大家顺利达成学习目标。

课程目录:

[1.1.1]--从数学危机到图灵机
[1.2.1]--图灵机的基本构成
[1.3.1]--图灵机的运行机理
[1.4.1]--数的二进制表示
[1.5.1]--二进制数的布尔运算
[2.1.1]--历史上的计算设备
[2.2.1]--从电子管到云计算
[2.3.1]--摩尔定律下的计算危机
[2.4.1]--量子计算机的基本原理
[2.5.1]--量子计算机的发展状态
[3.1.1]--问题的提出
[3.2.1]--冯诺依曼式计算机
[3.3.1]--存储器的种类与特点
[3.4.1]--存储器的原理与类型
[3.5.1]--CPU指令的执行
[3.6.1]--程序的执行
[4.1.1]--说在前面的话
[4.2.1]--程序是你告诉计算机的话
[4.3.1]--如果你的大脑是台计算机
[4.4.1]--如果你来设计一门编程语言
[4.5.1]--快步走近C程序之一
[4.6.1]--快步走近C程序之二
[4.7.1]--快步走近C程序之三
[4.8.1]--什么样的程序是好程序
[4.9.1]--配置编程环境(补充资料)下载安装和使用IDE
[4.10.1]--配置编程环境(补充资料)使用IDE进行调试
[5.1.1]--没有解决方案就没有程序
[5.2.1]--先有构想在写程序
[5.3.1]--先有构想在写程序示例
[5.4.1]--体验结构化的程序示例
[6.1.1]--明确学习进度
[6.2.1]--C语言的由来
[6.3.1]--C语言的标准
[6.4.1]--C语言的构成
[7.1.1]--再谈学习进度与安排
[7.2.1]--变量定义的含义
[7.3.1]--整数型的类别
[7.4.1]--整数型的存储
[7.5.1]--整数的输入输出
[7.6.1]--最大与最小整数
[7.7.1]--浮点型
[7.8.1]--字符型
[7.9.1]--布尔型
[7.10.1]--常数
[7.11.1]--变量命名
[8.1.1]--说在前面的话
[8.2.1]--赋值运算
[8.3.1]--赋值运算的说明
[18.4.1]--算术运算
[8.5.1]--自增自减运算
[8.6.1]--关系运算
[8.7.1]--逻辑运算与混合运算
[8.8.1]--逗号,条件,强转
[8.9.1]--位运算
[9.1.1]--再谈分支语句
[9.2.1]--再谈循环语句
[9.3.1]--Goto之争
[10.1.1]--再谈一维数组
[10.2.1]--二维数组
[10.3.1]--三维数组
[10.4.1]--数组的作用之一
[10.5.1]--数组的作用之二
[11.1.1]--字符数组与字符串
[11.2.1]--输入缓冲区
[11.3.1]--一个字符的输入
[11.4.1]--一串字符的输入
[11.5.1]--字符串应用例题
[12.1.1]--函数的定义与声明
[12.2.1]--函数的调用过程
[12.3.1]--函数调用示例
[12.4.1]--变量的作用域
[12.5.1]--数组做函数参数
[12.6.1]--函数应用示例
[13.1.1]--函数应用示例
[13.2.1]--递归调用的过程
[13.3.1]--递归应用示例切饼,斐波那契数列
[13.4.1]--递归应用示例进制转换,汉诺塔
[13.5.1]--递归应用示例放苹果较难选听
[13.6.1]--递归应用示例逆波兰表达式较难选听
[13.7.1]--习题课一枚举模拟与递归
[14.1.1]--什么是指针
[14.2.1]--什么是指针变量
[14.3.1]--指针变量示例
[14.4.1]--指针变量的++---
[14.5.1]--数组与指针
[14.6.1]--用指针访问数组
[14.7.1]--习题课二较难选听
[15.1.1]--字符串与指针
[15.2.1]--再谈指向一维数组的指针
[15.3.1]--指向二维数组的指针
[15.4.1]--二维数组名引用示例
[15.5.1]--利用指针遍历二维数组
[16.1.1]--指针做函数参数
[16.2.1]--限制指针函数实参的功能
[16.3.1]--指针做函数返回值
[16.4.1]--静态局部变量
[17.1.1]--结构体与结构体变量
[17.2.1]--结构体变量与函数
[17.3.1]--结构体变量与指针
[17.4.1]--链表的定义
[17.5.1]--链表的操作
[18.1.1]--结语;轻叩面向对象之门
[18.2.1]--编程工具的安装和使用:下载、安装和使用IDE
[18.3.1]--说明编程工具的安装和使用:使用IDE进行调试