CSC 209 Course Prerequisites
To complete CSC 209 successfully, you will need to
have certain background. This page attempts to outline the required
background. The intention is that the formal prerequisites ensure that
you have this background.
Any questions, please don't hesitate to ask, by e-mail or in office hours.
(If you don't have the formal prerequisites and are seeking a prerequisite
waiver, I will use this list to attempt to determine whether you can
successfully complete the course and hence should have a waiver.
Please note that you will be automatically removed from the course, rather
late in the term, if you don't have the formal prerequisites and do not have a
waiver!)
Programming background normally acquired in CSC 207:
- Experience with writing several-hundred line programs involving
multiple modules with well-defined interfaces between them.
Experience with
adhering to specified interfaces such that your code can be linked with
code you haven't seen.
- Separate compilation (multiple .java files or .c files, potentially
written at different times); using an automated system such as "make" to
manage the separate compilation automatically (without errors such as
neglecting to re-compile a changed file).
- Simple use of a debugger. You may find this to be more important
in C than it might have been in 207.
Unix-like background normally acquired in CSC 207:
- Basic unix usage ("cat" and "ls" and like that; i/o redirection;
pipes).
- Simple scripting (e.g. putting a sequence of five commands
into a file and typing "sh file" to invoke it).
-
Use of a source-control system such as RCS, CVS, or SVN (subversion).
Helpful background normally acquired in CSC 258 (which is not a
prerequisite):
- Machine-level memory model (memory is a vast array of words; words
have addresses; making arrays by doing arithmetic on addresses).
- The basic machine-language execution model (fetching and executing
instructions from memory; and subroutine calls and the stack).
- Interrupts and interrupt service routines (minor familiarity).
[main course page]