「授業進めて気づいたことなどをどこかにまとめておけたら」と思いまとめページを作ることに。興味がある人は下記のリンクを参考に色々と調べてみてもいいかもしれないです。
Resources
- CS61A.org
- Reading Assignment(講義前に終わらせておく)
- Syllabus
- その他勉強に役立つリソース
- 過去問
- 過去問#2
- Online Python Tutor
- 2015年SPに行われた講義全て
個人的な進め方 (tentative)
授業に関する一般的なリソースなどはこのページに、個人的にわからないところや気になったところ、勉強に役立ったことが出てきたらその都度投稿していく。
コース全体の進め方
詳細はcourse infoとホームページを参照。
Course Overview
コースの概要だけcourse infoより簡単に引用しておきます。
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. This first course concentrates mostly 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. The next course, CS 61B, will deal with the more advanced engineering aspects of software, such as constructing and analyzing large programs. Finally, CS 61C concentrates on machines and how they carry out the programs you write.
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 controlling program complexity, such as functional programming, data abstraction, and object-oriented programming. Mastery of a particular programming language is a very useful side effect of studying these general techniques. However, our hope is that once you have learned the essence of programming, you will find that picking up a new programming language is but a few days' work.
Lec, Lab, Dis
通常の講義Lectureに加えてLabとdiscussionという3つのセクションに分かれており、週に1回ずつ各セクションに参加する。授業を取っている生徒数が数百人を超えているため、講義への参加は推奨されておらず、webcastでみれるようになっている。どうやら授業に登録している人は2016版を見れるようなのだが内容に大きな違いはないはずなので興味のある人は2015年版で構わないと思う。
HW, Quizzes, Projects
この授業で課題として出される宿題は主に3種類ある。普通の宿題とクイズとプロジェクト。宿題とクイズはネット上で提出。プロジェクトは同じセクションにいる生徒とチームを組んで今まで授業で学んだことをベースに実際にアプリケーションを作る(らしい)。ちなみにプロジェクトは学期中に全部で4つ課題として出される。
Exams
上に貼ったリンクを参考にテストの具合を見てもらったほうが早いかと。ちなみに具体的な日程はホームページの下の方にあるカレンダーを参考にすれば良い。Examsはファイナルを合わせて全部で3つ。
Grading Policies
self-gradingをやりたい方のために一応載せておきます。
Your course grade is computed using a point system with a total of 300 points, with the following distribution.
Two midterms, each worth 50 points.
The final exam, worth 80 points.
Four projects, worth a total of 90 points.
Homework, quizzes, labs worth 30 points.
Midterms are held in the evenings and are two hours long to give you more time to complete them than lecture would allow. Exams are open book open note.
Each letter grade for the course corresponds to a range of scores that will be published here shortly.
Notice that this scale is nonlinear; the steps are wider in the B range. In a typical semester, about 75% of students receive A's and B's.
This grading formula implies that there is no curve; your grade will depend only on how well you do, and not on how well everyone else does.
Incomplete grades will be granted only for dire medical or personal emergencies that cause you to miss the final, and only if your work up to that point has been satisfactory.
CS61Aに関する個人的な投稿
コースに関係する全ての個人的な疑問や思ったこと、気づいたことなどまとめ。
WEEK0 (1/18/16 ~ 1/24/16)
- Python Variable Scope (Global and Local), and its lifetime
- Pythonで出てくるSyntax ErrorとExceptionと簡易対応策をざっくり
- difference between statements(文)and expressions(式)in Python
- エラーの分類 (python3.x)とDebuggingメモ
- python interactive mode、docstringを使ってみる
- values and literals in terms of computer science
- impure functionとpure function
- sshのきほんのき