CS 351: Design of Large Programs


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

Instructor

  Barney Maccabe
OfficeFEC 345D
Phone277-6504
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

Students

Photos

Textbooks

Required

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

Recommended

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

Grading

Projects50%
Exams 25%
Homework20%
Quizzes 5%

Exams

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.

Assignments

Reading

Homework

Programming

Network Simulation (Project 4)

File System (Project 3)

Translation (Project 2)

Warm Up (Project 1)

Schedule

DateTopics
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/28Invariants
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/26Inheritance
10/28Class canceled (illness)
Week 11
11/2 Event driven simulation
11/4 Network simulation
Week 12
11/9 Inheritance and polymorphism
11/11Review
Week 13
11/16No class (SC 99)
11/18No class (SC 99)
Week 14
11/23Second Exam
11/25Thanksgiving
Week 15
11/30 
12/2  
Week 16
12/7  
12/9  
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.