CSci 581-01: Special Topics in Computer Science
Object-Oriented Design & Programming
Fall Semester 1997


The fall semester 1997 class meets in 351 Weir Hall at 6:30 p.m. to 9:15 p.m. on Mondays. (Note: This is a classroom change from the one listed in the schedule.)

The class is taught by Prof. Conrad Cunningham, whose office is 312 Weir Hall. Prof. Cunningham's official office hours for this semester are 11:00 a.m. to Noon on Mondays and Wednesdays or by appointment at other times.

Prof. Cunningham's voice telephone number is (601) 232-5358 and fax number is (601) 232-5623. His WWW home page is and his email address is (send).

The WWW home page for this class is

The final examination for this class is scheduled for 7:30 p.m. until 10:30 p.m. on Tuesday, 9 December 1997.

Course Description

A study of the concepts of object-oriented programming and design. Use of object-oriented programming languages such as Java and Smalltalk.


This special topics class has been designed primarily for students pursuing graduate or undergraduate degrees in computer science. The class is also open to other students who meet the prerequisite requirements.

The official prerequisite for CSCI 581, Special Topics in Computer Science, is "senior standing in computer science or consent of instructor" (as stated in the Graduate School Catalog). "Senior standing in computer science" means "successful completion of all courses specifically required in the computer science curriculum that are numbered less than 400" (as defined in the Undergraduate Catalog).

Accordingly, the expected minimum prerequisite is successful completion of 15 hours of computer science including CSCI 111, 112, 211, and 223 or their equivalents. Completion of or concurrent enrollment in CSCI 450 (Organization of Programming Languages) and MATH 301 (Discrete Mathematics) or their equivalents is recommended.

Anyone who does not have a mature understanding of programming in a contemporary imperative language (e.g., Pascal, C, or Java) and of basic algorithms and data structures (e.g., sorting, searching, lists, stacks, queues, and trees) should not enroll in the course.

Source Materials

Required Textbook:
T. Budd. An Introduction to Object-Oriented Programming, Second Edition, Addison-Wesley, 1997. ISBN: 0-201-82419-1
Supplementary textbook on Java: (Do not buy if you already have a good book on Java.)
Cay S. Horstmann and Gary Cornell. Core Java 1.1 Volume 1: Fundamentals, Prentice Hall, 1997. ISBN: 0-13-766957-7
Supplementary textbook on Smalltalk: (Not actually used.)
Kenneth A. Lambert and Martin Osborne. Smalltalk in Brief: Introduction to Object-Oriented Software Development, PWS Publishing, 1997. ISBN: 0-314-20556-X
Probably Sun's Java Development Kit 1.1 on PCs or Unix systems. (For Smalltalk, ParcPlace's Smalltalk Express package on PCs.)
Various journal and conference articles, research reports, and book excerpts as appropriate.

Course Topics

  1. Data abstraction.
  2. Introduction to object orientation.
  3. Object-oriented design. Responsibility-driven design. Client-supplier relationship.
  4. Classes, methods, and messages.
  5. Inheritance and software reuse.
  6. Linguistic implications of inheritance. Multiple inheritance.
  7. Polymorphism.
  8. Class library design.
  9. Software engineering issues.
  10. Application frameworks.
  11. Design patterns.

School of Engineering Honor Code

All students in ENGR 664 are expected to conduct themselves according to the Honor Code of the School of Engineering at the University of Mississippi.

The Honor Code shall apply to all students, both undergraduate and graduate, registered in and/or seeking degrees through the School of Engineering. The Honor Code shall be understood to apply to all academic areas of the School such as examinations, quizzes, laboratory reports, themes, computer programs, homework, and other possible assignments. Only that work explicitly identified by the class instructor not to be under the Honor Code is excluded. The intent of the Honor Code is to recognize professional conduct and, thus, it shall be deemed a violation of the Honor Code to knowingly deceive, copy, paraphrase, or otherwise misrepresent your work in a manner inconsistent with professional conduct.


Two-thirds of the semester grade will come from the examination grade and one-third from the homework assignments and project grades. (Note: I reserve the right to increase the proportion of the final grade coming from homework assignments and projects to as much as one-half if such becomes appropriate as the semester progresses.)

My grading scale is A [90..100], B [80..90), C [70..80), D [60..70), and F [0..60).



[ CSci 581 Home ]
[ Cunningham's Home | Teaching | Current Courses ]
[ Department's Home | Courses | Graduate Courses | Undergraduate Courses ]

Send any comments or suggestions to Prof. Conrad Cunningham,
Copyright © 1997, H. Conrad Cunningham
Last modified: 29 December 1997.