怎样系统地学习CS61A——以CS61A(Fa22)为例

本文最后更新于:2023年10月31日 晚上

Overview[1]

The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer’s point of view.

  1. CS 61A concentrates on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware.
  2. CS 61B deals with the more advanced engineering aspects of software, such as constructing and analyzing large programs.
  3. CS 61C focuses on machines and how they execute programs.

In CS 61A, we are interested in teaching you about programming, not about how to use one particular programming language. We consider a series of techniques for managing program complexity, such as functional programming and object-oriented programming.

CS 61A primarily uses the Python 3 programming language. Python is a popular language in both industry and academia. It is also particularly well-suited to the task of exploring the topics taught in this course. It is an open-source language developed by a large volunteer community that prides itself on the diversity of its contributors.

Mastery of a particular programming language is a very useful side effect of CS 61A. However, our goal is not to dictate what language you use in your future endeavors. Instead, our hope is that once you have learned the concepts involved in programming, you will find that picking up a new programming language is but a few days’ work. In fact, you will be asked to learn at least two other languages, Scheme and SQL, during the course.

CS 61 系列是计算机科学的入门读物,尤其侧重于从程序员的角度介绍软件和机器。

  1. CS 61A侧重于抽象概念,让程序员以适合问题的术语进行思考,而不是以计算机硬件规定的低级操作进行思考。
  2. CS 61B 涉及软件更高级的工程方面,如构建和分析大型程序。
  3. CS 61C 侧重于机器及其如何执行程序。

CS 61A中,我们感兴趣的是教你如何编程,而不是如何使用一种特定的编程语言。我们会考虑一系列管理程序复杂性的技术,如函数式编程和面向对象编程。

CS 61A主要使用 Python 3编程语言。Python在工业界和学术界都很流行。它也特别适合探索本课程所教授的主题。它是一种开源语言,由一个庞大的志愿者社区开发,该社区以其贡献者的多样性而自豪。

掌握一门特定的编程语言是学习 CS 61A的一个非常有用的“副作用”。但是,我们的目标并不是规定您在未来的工作中使用哪种语言。相反,我们希望您一旦掌握了编程所涉及的概念,就会发现学习一门新的编程语言不过是几天的事情。事实上,在本课程中,您将被要求至少学习另外两种语言:SchemeSQL

How to Learn

这是官方网站:

CS 61A Fall 2022 (berkeley.edu)

官方网站包含有录课视频链接,电子课本参考,以及课后练习(分为homeworklabprojectdiscussion【要求本校学生】四类),建议独立完成再结合他人答案思考,部分优秀大佬的答案真的能使人豁然开朗,下面是本人的答案,仅供参考:

CS61A-FA22

其中,官网中的电子课本链接可能由于DNS解析问题无法访问,在原有的链接前添加www.即可,或者参照我此篇文章:

CS61A-Reference

教学视频中提到的python-tutor可以通过以下链接访问:

Online Python Tutor - Composing Programs - Python 3

对于某些造成我个人困扰的问题,我也在博客中进行了单独的文章分析,包括但不限于以下篇目:

CS61A-lab03_Q5
CS61A-lab03-Q6_ChurchNumeral丘奇数

观看教学视频需要科学上网,都学这专业了,大概没人不会吧(

解决了这些问题,你就可以开始在知识的海洋里遨游了,相信我,CS61A不会让你失望,无论是课程的深度还是相关配套设施的用心程度,都不是某些只把升职放在心上的所谓国内讲师可以比的(我也不想这么说,但现实就是这样)。其他的相关问题,网上也有许多大佬进行了解答,这里就不做赘述了

欢迎来到Ethereal State,祝你能愉悦地获得知识!

Reference


怎样系统地学习CS61A——以CS61A(Fa22)为例
https://www.0co.dev/CS61A-How-to-Learn/
作者
Konrad Gerrens
发布于
2023年7月14日
许可协议