COMP-202 - Introduction to Computing 1 (Winter, 2004)

Welcome
News
Syllabus
Calendar
Assignments
Office hours
Hints
Links
Resources

Hints on how to pass this course

Studying for the final

  • The final will cover all the material covered in the course.
  • The final does not require from you to memorize details from specific classes, however
  • You should clearly understand the following:

    • Variables.
    • Types.
    • Assignment statements.
    • Conditional statements (if, if-else).
    • Loops (while).
    • Functions and procedures (static methods): their definition, and their invocation.
    • Objects and Classes: attributes (fields, or data members), and (non-static) methods. Object instantiation (creation) and message-passing (non-static method invocation.)
    • Object references (pointers) and aliases.
    • The difference between static and non-static methods, and static and non-static attributes.
    • Encapsulation: accessability modifiers.
    • Polymorphism: method overloading, interfaces, dynamic-dispatch, generic methods.
    • Inheritance: inherited attributes and methods, overriden methods, the super reference.
    • Arrays.
    • Exception handling: throw and try-catch.
    • Recursion.
    • Linked-lists.
    • Stacks and Queues.
  • The syntax and meaning of each concept is precisely defined. There are few exceptions in the Java language, so you should focus on the general rules.
  • It is more important to know how to use each feature than to know how to describe it.
  • The best way to learn a concept is by experimentation. Try the examples from the Resources section. Modify them to see what happens. Try the examples from the book or from class on your own.
  • Understanding the basic concepts is an essential aspect of programming, but it is not the only important aspect. It is perhaps more important to know how to use those concepts to solve problems. Therefore you should not focus only on studying the concepts above in isolation, but also on how to combine them to solve some simple problems. Study the solutions given to the assignements in the Assignments section. In the Resources section there is a medium-sized problem that combines many features.
  • Review the solutions to the midterm found in the Resources section, to make sure you understand the basics.

Studying for the midterm

  • The midterm will be on the material up to the end of Week 6.
  • You should thoroughly understand the material from lectures. We emphasize the most important points in lectures.
  • You should be familiar with the syntax of all Java constructs we have studied so far. You should also feel comfortable with System.out.println, System.out.print and the various input functions in the Keyboard class.
  • You should have read and understood all the reading from the text book which is given as core reading on the web page. You do not have to remember details about various libraries (i.e. Math, String, ...), but you should understand how to use methods from Java classes like these, if you are given the name and parameters expected for the method.
  • Try the self-review questions at the end of each chapter in your text book. The exercises at the end of each chapter also give you some more questions with which to practice.
  • You should understand the assignments thoroughly. You sould review the correct answers as posted on the Web for assignments #2 and #3.
  • You should try the practice midterm, trying to complete it in two hours. Check your answers with the correct answers, and this should help you isolate problems with your understanding.

General

  • Attend the lectures.
  • Do the readings as shown in the Calendar. Furthermore do the readings before class.
  • Experiment: try the examples from the book or from class on your own. Make small changes to them and see what happens.
  • Don't wait until the last minute to start with your assignments, even if the corresponding topic has not been covered yet in class. If you start two days before the deadline you'll find you won't be able to finnish. Furthermore, the labs get very crowded.
  • Read carefully the assignments before jumping into coding. An essential part of solving a problem is understanding the problem.
  • Once you think you understand the problem, design a solution in your natural language (e.g. English, French, etc.), focusing on the ``big picture'', deferring unimportant details for later. Only after you have a design in your language, you should begin to translate it into Java, dealing with the details.
  • If you are stuck, you can ask for help. The TA's and the course lecturers have office hours to help you. You can find their availability in the Office Hours section.