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
General advice -- modified from advice of Matthias Felleisen
You cannot learn everything you need to know in lectures and/or homeworks.
- 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.
- Attempt to solve additional problems.
Try to solve as many exercises as you can. If you can't do them, read the
- 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.
- 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.
- 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
- 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.
- 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.