Should you enrol in COMP112 or COMP102?

The school offers a choice of two first courses in computer science for students planning on taking Computer Science or Engineering. COMP102 is an introduction to computer programming that does not require any prior programming experience. COMP112 is designed for students who already have some programming skills and do not need to start right from the beginning. Both courses will lead on to COMP103 in Trimester 2 and later courses in computer science and engineering. Which one should you take?

If you have no experience in programming, COMP102 is the right choice.

If you have already learned some programming, then COMP112 will build on your background, strengthen your programming skills and give you a broader base for later courses in Computer Science and Engineering. The question is how strong your programming background is.

  • If you have passed the level 3 NCEA Digital Technologies standard in Programming, then this course is designed for you, and you should definitely take it rather than COMP102

  • If you have taken another university or polytech course in programming, (eg, COMP102, INFO 102 at VUW, or some other course elsewhere), then this may be a good course for you to take in Trimester 1, increasing your programming skills, and giving you a better grounding for the rest of Computer Science and engineering.

  • If you have learned some programming by some other route, then you need to work out whether you have enough background to take COMP112, or whether it would be better to take COMP102. The questions below are intended to help you decide.

Note that if you enrol in COMP112, but discover after a few weeks that your background is not quite strong enough, you will be able to switch your enrolment to COMP102 without any penalty. This would still let you get the programming skills needed for COMP103 and later Computer Science courses.

Do you have the background do we expect for COMP112?

Can you design and construct small programs in at least one text-based programming language? (We do not expect you to have used Java, though it is fine if you have).

Can you use all of the following language features in your programs?:
  • simple statements/instructions, including calls on predefined methods/functions/procedures, passing values as arguments
  • variables - used to store values, to be used in later statements
  • expressions for calculating new values
  • input and output for interacting with a user
  • conditionals, particularly if and if... else constructs
  • methods/functions/procedures that you defined. You should know how to define them with parameters (so you can pass values to them when you call them).
  • loops, such as while, repeat, for, etc (the name depends on the language you used)
  • lists or arrays for storing a collection of values in order
  • programs with user interfaces that use simple event based input, such as programs with buttons or programs that respond to the mouse. (Detailed knowledge of how to build user interfaces with a wide range of kinds of input is not expected)
  • Objects or classes that you have defined and then used in your program. We do not expect sophisticated Object-oriented design, and we don't expect knowledge of inheritance; just experience of defining, creating and using objects in a program

It is very hard to give an example of a programming task that we would expect you to be able to accomplish, because a task that is very simple in one language might be quite tricky in another language.