基于 Python 的“计算概论”课程简介
这里回答数学学院一年级同学的一些疑问,希望有助于帮助同学们选课。

本课程是北大的理科骨干基础课《计算概论》的一个具体实施课程,讨论计算、程序和编程,用 Python 语言作为课程教学的语言。本课程是一个新建设的课程,内容和进度将根据课程进展情况调整。

问题和回答(如果有其他问题,请给我发邮件):

问题1:这个课程与本学院另一门《计算概论》是什么关系?
回答:这是学院同一门基础课的两个不同课程,用不同的编程语言作为工具,另一课程用 C 语言,本课程用 Python。课程内容从大的方面看类似,具体细节有不少差异。只需从中选一门。
问题2:Python 和 C 语言有什么不同,哪个更好?

回答:C 语言开发较早,使用广泛,在各种统计中长期居于最流行语言前3名,多次为第一名。Python 是一个较新的语言,也有广泛的用户群,一些年来一直处于最流行语言的前十名中,但没有进过前三。(参考

C 语言被长期作为计算领域入门课程的教学语言,在国内外大学使用。国内大学多用 C 作为程序设计等基础课程的教学语言。近年来国外重要大学用 Python 作为计算机领域第一门课程的教学语言的学校越来越多。《ACM(美国计算机器协会)通讯》2014年7月有文章统计说 Python 是全美顶级大学计算机系使用最多的第一门课程语言。

从理论上说那个语言“更好”没有有力的根据。各种编程语言在理论上都是等价的,但可能适用于不同的用途。C 语言更接近今天的计算机,因此能很好发挥计算机的功能,在各种重要软件的开发领域应用广泛,也被用在各种嵌入式系统等的开发中,特别是计算效率要求高的领域。本学院计算系的老师们就特别建议学习 C 语言。另一方面,Python 语言与计算机硬件距离较远,比较高层,主要被用于各种应用系统开发,包括网络应用系统等。

问题3:Python 更容易学吗?
回答:由于 Python 语言较为高层,与 C 语言相比,编程中涉及的细节少,因此开始写程序比较容易。但另一方面,Python 语言包含的概念比较多,有些概念不太容易理解和掌握,因此深入学习也有一些需要克服的困难。
问题4:课程的要求有什么不同?
回答:总体看,两个课程希望讨论的问题差不多,因此,基本要求都是理解计算的概念,理解如何描述计算过程(编程),知道以及如何利用计算机通过计算的方式解决问题。由于采用不同的工具(C 或者 Python),课程中具体讨论的问题就会有一些差异,包括语言的差异,描述计算的方式上的差异,等等。
问题5:上课的方式是怎样的?需要预习吗?

回答:C 语言是有较长期积累的课程,内容比较成熟,参考书很多。Python 使用的时间较短,总体看教学经验不足(作为本学院的课程,这是第二次),合适的教材也很难找到。本课程主要靠上课,并设法给学生提供一些参考材料的链接。有关情况见本课程的网页。

上课用幻灯片,除概念等方面的讲授外,还有课堂演示。也希望同学及时提问和讨论。

课程计划内容:
  • 基础知识:计算,计算机,程序,编程
  • Python 语言简介
  • 基本数据机制
  • 基本语句和复合语句
  • 计算的抽象:函数
  • 从问题到程序:编程的思考
  • 计算的模式和编程技术
  • 序列数据类型
  • 定义数据类型
  • Python 程序结构
  • 什么是计算?
  • 其他问题

本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。