How to succeed in CS 43

  • Attend class.

    In class, we will cover new topics and dig into the more challenging details of the material. Class discussions are a critical part of the learning process, as these exercises give you immediate experience with the material we are covering. Also, we have class participation points, so you need to be present!

  • Read the material before you come to class.

    Don’t worry about total comprehension, but at least get a feel for what we will be covering that week. If you have some understanding of the material coming into class, it will be easier for you to ask questions during class, rather than later when help may not be available.

  • Ask questions if you don’t understand.

    This means both during class and while doing lab assignments. This class continually builds on previous material, so if you don’t understand something one week, it will continue to be a problem the next week, and the week after that, and so on. If you need help, ask your classmates (make sure you have read the "Academic Integrity" section below first), post on Piazza, or come talk with me during my office hours.

  • Start the lab assignments early.

    The assignments for this course are designed to expose you to real-world systems. They are probably going to be more complex than most other assignments from earlier courses. If you get into the habit of starting early, you will be much better off. If you get stuck on a lab issue early (i.e., not two hours before it is due), there will be time to look for help. Starting early enables you to take a break, go do something else, and come back later. I find that I always have at least a few new ideas when I come back to a problem after a break. If you wait until the last minute, you don’t have that option.

  • Complete your labs.

    The only effective way to learn the material and consistently do well in the labs is to get into the regular habit of:

    • Discussing the top-down design of your code with your lab partner, before you start coding.

    • Writing descriptive function comments as you go along.

    • Incrementally coding and testing with tools like GDB and Valgrind.

    Adopting these suggestions will make you a sought-after computer scientist once you graduate!

  • Attend CS43 Labs.

    Lab Attendance is required, and the labs constitute the largest portion of your grade. You should be there!

  • Seek help early and often.

    Because course material builds on previous material, it is essential to your success in this class that you keep up with the course material. If you are having difficulty with a programming assignment, if you didn’t follow something covered in class, if you feel you need some extra help understanding or practicing some of the course material, or if you just want to discuss something from a class, an assignment, or the text, please come to my office hours.