CS 351: Design of Large Programs

Barney Maccabe Last modified: Sat Nov 13 13:28:17 MST 1999


  Barney Maccabe
OfficeFEC 345D
Office hoursW 2-5, Th 11-1, and by appointment
Class Meetings TTh 2:00-3:15 Room 116 MH

Teaching Assistants

  Xuebin Yao
Office FEC 301B
Phone 277-9210
Office hours M 2:30-5:30, T 11-12, F 1-3
Class Meetings W 11-12 Room 218 Tapy
  John Zhang
Office FEC 301B
Phone 277-9210
Office hours TTh 3:30-5:30, F 11-1
Class Meetings Th 11-12 Room 218 Tapy





Practical Object-Oriented Development in C++ and Java; by Cay S. Horstman; John Wiley & Sons, Inc., 1997

Effective C++ (Second Edition): 50 Specific Ways to Improve Your Programs and Designs; by Scott Meyers; Addison-Wesley, 1998

The Practice of Programming; by Brian W. Kernighan and Rob Pike; Addison-Wesley, 1999


The C++ Programmer's Handbook; by Paul J. Lucas; Prentice-Hall, 1992

The Draft Standard C++ Library; by P.J. Plauger; Prentice-Hall, 1995

Using the STL (The C++ Standard Template Library); by Robert Robson; Springer, 1997


Exams 25%
Quizzes 5%


There will be two in-class, closed book, midterm exams on Tuesday, October 12 and Tuesday, November 23. The final exam will also be an in-class, closed book exam and will be held during the regularly scheduled exam period: Tuesday, December 14 from 12:30 to 2:30.

The midterm exams will each count 30% of the exam grade and the final exam will count 40%. All exams are cumulative. All students must attend the final exam or provide a medical excuse. If the final exam score is better than one of the midterm exam scores, the final exam score will be used in place of the midterm score (i.e., the final exam will be worth 70% of the exam score). If the final exams score is better than either of the midterm exams scores, only the lower of the midterm scores will be replaced by the final exam score.





Network Simulation (Project 4)

File System (Project 3)

Translation (Project 2)

Warm Up (Project 1)


Week 1
8/24Assignment 1, inductive data structures, recursive processing, simple grammars
8/26Object oriented design
Week 2
8/31CRC cards
9/2 Class diagrams
Week 3
9/7 Assignment 2, assembly language, ambiguous grammars
9/9 Grammar manipulation, lexical analysis, and parsing
Week 4
9/14More on grammars and parsing
9/16no class
Week 5
9/21Arrays and pointers, shallow and deep copy
9/23Assignment 2 wrap up
Week 6
9/30Declarations and reference counts
Week 7
10/5 Reference counts and memory management
10/7 Review
Week 8
10/12First Exam
10/14Fall Break
Week 9
10/19Exam review and file system
10/21File system and object oriented design
Week 10
10/28Class canceled (illness)
Week 11
11/2 Event driven simulation
11/4 Network simulation
Week 12
11/9 Inheritance and polymorphism
Week 13
11/16No class (SC 99)
11/18No class (SC 99)
Week 14
11/23Second Exam
Week 15
Week 16
Week 17
12/14Final Exam

Join the class mailing list

Send mail to majordomo@cs.unm.edu with
subscribe cs351
in the body of the message.

The class mailing list will be used to announce homework assignments and changes to the syllabus. You may also use the list (mail cs351@cs.unm.edu) to communicate with the other students in the class. However, remember that mail sent to the list will go to all of the students in the class. Leading questions (e.g., "is this a correct answer to exercise 4?") should be sent directly to the instructor, and not to the list.