Skip to main content

cs61a

概述

CS 61 系列是计算机科学的入门课程,特别强调从程序员的角度理解软件和机器。

  • CS 61A 侧重于抽象的概念,使程序员能够用适合问题的方式进行思考,而不是受限于计算机硬件规定的低级操作。
  • CS 61B 涉及软件更高级的工程方面,例如构建和分析大型程序。
  • CS 61C 聚焦于机器及其如何执行程序。 CS 61A 关注的是教你编程,而不是教你如何使用某种特定的编程语言。我们会探讨一系列管理程序复杂性的技术,如函数式编程和面向对象编程。CS 61A 主要使用 Python 3 编程语言。Python 在工业界和学术界都非常受欢迎。它也特别适合用于探讨本课程教授的主题。Python 是一种由庞大的志愿者社区开发的开源语言,这些志愿者以其贡献者的多样性为傲。

掌握一种特定的编程语言是学习 CS 61A 的一个非常有用的副产物。然而,我们的目标不是规定你未来应该使用哪种编程语言。相反,我们希望一旦你掌握了编程的基本概念,你会发现学习一门新的编程语言只是几天的事情。实际上,你将在课程中被要求学习至少两种其他语言:Scheme 和 SQL。

课程网站

cs61a 课程网站

先决条件

Math 1A 被列为 CS 61A 的共同必修课,也就是说,它可以同时修读。Math 10A 或 Math 16A 也可以接受。即使不懂微积分也可以学习 CS 61A。完成任何作业都不需要微积分知识。然而,学习微积分是练习在 CS 61A 中经常涉及的算术和代数的好方法。

CS 61A 没有正式的编程相关的先决条件,因为没有先前经验的学生也可以成功完成课程,但没有编程经验的学生通常会觉得这门课程非常具有挑战性。没有编程经验的学生通常需要花更多时间完成作业,并且最终成绩往往较低。大多数 CS 61A 的学生都有相当的编程经验。典型的背景包括至少一门相当于 CS 10 的课程或 AP(美国大学预修课程-允许学生在高中时期就学习大学水平的课程) 计算机科学考试中得分为 3 分或以上。

如果你发现完成前三周的所有必要课程有困难,我们强烈建议你先修另一门课程。你可能会在以后修读 CS 61A 时有更好的体验。推迟一个学期修读 CS 61A 不太可能影响你的学位进度或让你落后,但如果不顾建议继续在 CS 61A 中挣扎,可能会导致影响你未来机会的学术困难。即使这意味着推迟一个学期,最好以对课程内容的扎实掌握完成 CS 61A,而不是匆忙完成。

在 UC Berkeley,Math 1A、Math 10A 和 Math 16A 都是数学课程,它们主要涵盖微积分的基础知识。以下是每门课程的详细解释:

Math 1A

Math 1A: Calculus 是微积分的第一部分课程,通常包括以下内容:

  • 极限和连续性
  • 导数及其应用
  • 积分及其应用
  • 基本积分技巧 这是一个针对理工科专业学生的微积分课程,通常要求较强的数学背景。它是 Math 1B(微积分第二部分)的先修课程。

Math 10A

Math 10A: Methods of Mathematics: Calculus, Statistics, and Combinatorics 是一门为生物科学和社会科学专业学生设计的课程,内容包括:

  • 微积分基础
  • 统计学基础
  • 组合数学基础
  • 这门课程更加注重实际应用,适合那些不需要深入数学理论的专业。

Math 16A

Math 16A: Analytic Geometry and Calculus 是为非理工科专业学生设计的微积分课程,通常包括:

  • 基本微积分概念
  • 应用几何和代数方法
  • 导数和积分的基本应用
  • 这门课程比 Math 1A 更注重实际应用和基本理解,适合那些需要一些微积分知识但不需要深入数学理论的专业。

讲座与视频(Lectures & Videos)

每周有三次50分钟的现场讲座。此外,每次讲座都有一个视频播放列表。请在参加现场讲座或讨论课之前观看视频播放列表。视频涵盖了课程的所有必需内容。现场讲座不会覆盖所有课程材料,而是会侧重于实例讲解(所以请观看视频)。

教材

本课程的在线教材是《Composing Programs》,这是专为本课程,基于经典教材《Structure and Interpretation of Computer Programs》 编写的。每次讲座的阅读材料都在课程日程中列出。我们建议你在观看讲座视频之前完成这些阅读。

课程相关项目资源