CS U213 Sp '09
Office Hours


A note about this course:

This course is not about Java. It is about the principles of program design that apply to any class-based language. Java is used only to provide a concrete platform for the practice of the program design. We introduce Java-specific techniques when appropriate. We also highlight the situations when Java programming language does not provide a proper support for the design principles we wish to apply - and show how to adjust the program design to fit the language constraints.

General advice -- modified from advice of Matthias Felleisen

You cannot learn everything you need to know in lectures and/or homeworks. You must:

  1. Read all available material. This includes the text, the lab notes, old course materials, and a review of the HtDP text.

    Try to stay ahead of the game and read material before it is covered in class. If you have questions, write them down. If these questions don't get covered, ask in class and/or meet with the tutors, lab coordinator, or professor.

  2. Attempt to solve additional problems.

    Try to solve as many exercises as you can. If you can't do them, read the material again.

  3. Attend the lecture and labs.

    Every professor has a personal understanding of a course and teaches the material according to a personal style. It is important to get used to and to exploit this "personalization of courses"; otherwise, you're wasting your money.

    The labs cover the practical know-how (how to edit, how to evaluate, how to print, etc.) and illustrate the material from a different angle.

  4. Talk to the teacher.

    If the lecture and the notes leave you with questions on the material, see your teacher(s) during office hours or make an appointment. Mark the passages in the book(s) that you haven't understood and prepare questions that express what you haven't understood.

  5. Keep up.

    Experience proves that students who fall behind quickly drop out. So, keep up with the readings, labs, and the homeworks. Ask for additional problems, if the homeworks failed to make a point.

  6. Ask for help if you need it.

    If you feel you do not follow the material despite your best efforts, talk to your instructor to determine the source of the problem and to find a way to help you make progress. Only you know when this is needed - so, be pro-active.

  7. If you already know Java.

    If you are confused why this course does not look like a Java course you may have seen already, talk to the instructor. Hint: This is not a Java course.

last updated on Sat Jan 31 13:37:18 EST 2009generated with PLT Scheme