Course outline:
Software development based on precise specifications expressed using
logic and discrete mathematics. Specification techniques.
Specification, implementation, and testing of small software units
called modules.
Textbook:
There is no required textbook. The following are some suggested
references:
Software Engineering: Principles and Practice,
Second Edition,
by Hans Van Vliet.
Wiley, 2000.
The C Programming Language,
Second Edition,
by Brian W. Kernighan and Dennis M. Ritchie.
Prentice Hall, Inc., 1988.
Programming Languages: Design and Implementation,
Fourt Edition.
By Terrence W. Pratt and Marvin V. Zelkowitz.
Prentice Hall, 2001.
The Art of Computer Programming,
Volumes 1,2,3.
By Donald E. Knuth.
Addison-Wesley, 1998
Logic for Computer Scientists,
by Uwe Schoning.
Birkhauser, 1989.
Sets, Functions and Logic: An introduction to abstract
mathematics,
Second Edition.
By Keith Devlin.
Chapman & Hall Mathematics, 1992.
A Logical Approach to Discrete Math,
by David Gries and Fred B. Schneider.
Springer, 1993.
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
summer!
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".
Apr 05: Problem Set 3 will be returned in class on Tuesday.
David, who marked Part A of Problem Set 3, will hold office hours on
Thursday, April 8, 11:30--12:30, in ITB-240 (with Wenxiang).
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
TA):
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
ABB/B163.
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
B.
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
Jan 24: Interesting article (not requried reading):
The Case Against C, by P.J.
Moylan. For us, the particularly interesting part is on achieving
modularity in C (the Modularity section).
Jan 23: Problem Set 2, Part A, has been posted below.
Jan 6: Computer Labs Access
You can find all the relevant information at
http://www.cas.mcmaster.ca/support/faq/
Here are the highlights (courtesy of Robert Li):
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
this key.
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.