CSC 209 exam information
My further office hours
My regular office hours end with the end of classes.
I will be holding an additional office hour from
11:30 to 12:30 on Monday December 12th.
If you can't make that time, or if you want to see me prior to that date,
please feel free to contact me to make an appointment,
even if it's just for five minutes.
And, of course, you can always send me questions by e-mail.
Many programming problems are most easily discussed by e-mail. Copy and paste
entire .c files into e-mail messages so long as they're a couple hundred lines
or less; copy and paste error messages into e-mail messages. (Don't e-mail
me pictures of text, please. Copy and paste the text itself, not a picture.)
The exam
The exam covers everything in the lectures and assignments, except as excluded
below.
If you've missed some lectures, meet someone else in the class and get copies
of their notes.
It is "cumulative".
The format is much like the midterm, but longer (3 hours allowed, although
it oughtn't take you the full three hours, unlike the midterm).
All paper "aids" are allowed: books, notes, etc.
No electronic aids are allowed: No computers, calculators, wristwatches which
can run unix, electronic diaries, pagers, cell phones, ...
NOTE that the "no electronic aids allowed" rule will be
enforced strictly by the examination invigilators.
If you take out a calculator or mobile phone or MP3 player,
you will be summoned to the
Dean's office for an academic offence hearing. Please be careful: either
don't bring these devices to the exam at all, or leave them (switched
off!) in a backpack or similar at the side or front of the room.
The same
goes for any communicating with other students during the exam, even if it's
not about course material (there's no way for us to know!).
Be careful not to communicate with other students during the exam in any way.
Exam
timetable
You are assigned to a seat;
please check your seat number in advance.
The exam will potentially cover:
- software tools principles, stdin/stdout, inheritance of stdin/out,
writing software tools and filters, command-line options, getopt().
- shell programming in "sh": redirection, parentheses, pipes, variables,
command-line substitutions, basic commands, control constructs, use of
/dev/null
- the unix filesystem
- the C programming language (basic syntax, functions, extern, simple
printf/scanf, pointers and arrays, simple C preprocessor, argv, strings,
files, structs, separate compilation)
- processes, fork/exec/wait/open/close/dup2, pipe()
- C memory allocation ("malloc"), C data types
- inter-process communication: signals, sockets, TCP/IP, network byte
order and network newline convention
- process states (ready to run, running, blocked)
- all assignments
I do mean "potentially" --
obviously a three-hour exam can't be comprehensive over this range of material.
Other matters which are in the course but
excluded from exam coverage:
- syntax regarding how to write a man page, and list of sections
(but you do have to be able to write a 'usage' message in a C program
or shell script)
- "Makefile" syntax
- lecture on versions of unix; history of unix; project GNU
- other TCP services; X windows connection mechanisms
- details about memory management and context switching (multitasking implementation)
- unix and internet security
- posix threads
BRING YOUR STUDENT PHOTO ID CARD.
You will have to put it face up on your desk.
Problems
Please see an index into some sample problems
regarding the CSC 209 course material.
Most of these problems are too hard for midterm or exam questions, but they
are good practice problems in most cases.
There are also several former exams of mine there.
Like mathematics,
computer programming can only be learned by doing.
Don't just review your notes; do problems.
[main course page]