|
How to succeed in CS46
CS46 is different from most other computer science courses, in
that the course focuses on abstract thinking about problems, and
does not ask you to implement every solution in code. This
course is much more about reasoning about which problems
are solvable by computers, and less about actually
solving every problem with a coded project. To succeed in
this course, you should consistently do the following:
- Attend class and lab sessions.
The primary
introduction to course material is through class
instruction. Attending class is essential for understanding the
subject. Lab sessions provide additional time to work on
solutions. Lab attendance is mandatory.
- Participate actively in the learning process.
The
best way to learn this material is through constant effort. This
means trying to work out proofs yourself rather than simply
reading through solutions. During class we will often derive
solutions collaboratively. Labs provide additional time to
experiment with solutions. There is a very strong correlation
between students who ask questions (in class/lab/office
hours/Piazza) and students who do well in this class.
- Start the homework assignments early.
CS46 is
not a coding-heavy course; it is a course with an emphasis
on rigorous thought and explanation. It is extremely
difficult to bang out proofs and solutions at the last
minute. I understand that it is not always possible to put
serious time into an assignment early. However, even 30-60
minutes will be helpful, to ensure that you understand what
the problems ask of you and you start thinking about how to
solve them early.
- Seek help early.
It is essential in this class
that you not fall behind. If you find yourself falling
behind, or if you're having trouble grasping a concept, come
to office hours. Ask (and answer!) questions on the course
discussion forum. Set up an appointment to talk with me.
Or just stop by my office when my door is open.
|