Read the Book (How to Design Programs).
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 possible as you read sections in the book. If you can’t do them, read the material again.
Attend the lecture and tutorials (aka "labs" at Northeastern).
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 tutorials 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 course staff.
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.
Experience proves that students who fall behind quickly drop out. So, keep up with the readings, tutorials, and the homeworks. Ask for additional problems, if the homeworks failed to make a point.