Software development based on precise specifications expressed using
logic and discrete mathematics. Specification techniques.
Specification, implementation, and testing of small software units
There is no required textbook. The following are some suggested
Software Engineering: Principles and Practice,
by Hans Van Vliet.
The C Programming Language,
by Brian W. Kernighan and Dennis M. Ritchie.
Prentice Hall, Inc., 1988.
Programming Languages: Design and Implementation,
By Terrence W. Pratt and Marvin V. Zelkowitz.
Prentice Hall, 2001.
The Art of Computer Programming,
By Donald E. Knuth.
Logic for Computer Scientists,
by Uwe Schoning.
Sets, Functions and Logic: An introduction to abstract
By Keith Devlin.
Chapman & Hall Mathematics, 1992.
A Logical Approach to Discrete Math,
by David Gries and Fred B. Schneider.
Check this web page regularly for announcements. Some documents
will be available in PostScript; if you need a PostScript previewer,
go to Ghostview Software.
Apr 28: The final exam has been posted below; have a great
Apr 12: Click here to check your term
marks. Your marks are listed by student number. Let me know if there
are mistakes; I may require you to show me the relevant piece of work
before I change your grade. Make sure that if you gave me a medical
note (from the Dean's office), that in the place of the relevant
assignment (or midterm) it says "note".
Mar 12: A second set of review exercises has been posted below.
Mar 12: The midterms are marked. If you have concerns about the
marking of your test, please talk to the TAs first (different TAs have
marked different questions; see below the comments written by each
Mar 1: Problem Set 3 (Part A and B) has been posted below.
Feb 28: Reminder: Part A of Problem Set 2 is due on
Tuesday, March 2, but Part B has an extension: it is due on Friday
March 5, in the lecture.
Feb 28: The midterm, with solutions, has been posted below.
Feb 26: David (Dong-hoon Han) who marked Part A of Problem Set
1, will hold office hours with Wenxiang Yao on Thursdays March 4, in
ITB-240. Please see David if you have marking concerns about Part A
of Problem Set 1.
Feb 23: Midterm reminder: Friday, Feb 27, 12:30-13:20, in
Feb 20: There was a typo in Problem Set 2, Part B, Question 3.
You have to show that if a language is regular, then it has a
context-free grammar (a grammar of type 2--not type 3 as was
stated in the question). Also, you do not have to show the reverse
direction (which is not true for grammars of type 2 anyways). The
revised assignment is posted below.
Feb 10: On Friday the 13th there is going to be a tutorial
session (in the usual lecture room, at the usual hour), to help you
with the review questions. I will also hold a special lecture on the
review questions on Tuesday Feb 24th, after the reading week. Please
make sure that you know how to do all the questions (and understand
the solutions) on the review to prepare for the midterm.
Feb 10: Review exercises for the midterm have been posted below.
Note that exercise 2 has a correction: int r=x;, that is
r should be initialized to x, not 0.
Feb 3: Due date for Problem Set 1, Part A, has been extended to
midnight tonight--please check WebCT. If you have not handed
in Part B of Problem Set 1, you should do so tomorrow morning at the
latest, by putting it in my mailbox (in ITB-202).
Feb 2: Problem Set 2, posted below, now contains parts A and
Jan 29: An example output of solution to programming assignment 2:
The file Ex1.java is the output of the
(instructor's) program on input
The doors to all CAS teaching labs are locked at all times
and a magnetic key is required to gain access.
The magnetic keys are distributed by the Engineering
DocuCentre (JHE201). They will find you on the class lists and
give you a magnetic key. There is a $20 deposit required for
Should you lose your key, inform CAS Facility Staff (Derek or
Chris) in ITC242, so that your key can be de-activated.
If your key has other problems, please see Derek at ITC242.
Jan 6: Tutorial
There will be a Linux and Computer Lab tutorial on Wednesday January
14, 12:30--3:30, in ITB-237. The tutorial will be given by Robert Li
(Computing and Software). Robert will be available during the 3 hours
to answer questions about loggin in, etc.
First class on January 6 (Tuesday) 2004, in TSH/B105.