Design and Analysis of Algorithms

How to succeed in CS41

CS41 covers material that is similar to what you saw in CS35 or CS21. However, the perspective is much different, and what you will be learning is different too. This course is much more about learning how to solve computational problems and analyze your solution(s), and less about implementing algorithms that we've gone over in class. 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 algorithms material is through constant effort. During class we will often derive solutions collaboratively. Labs provide additional time to experiment with algorithmic solutions. There is a very strong correlation between students that ask questions and students that do well in this class.
  • Start the homework assignments early.
    CS41 is not a coding course, and it is extremely difficult to bang out 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.