CS 2390 Modeling and Design - Spring 1996
Course Information:
Labs and Assignments:
Valuable source files:
WebCaMILE Indices
Other Useful Web Information:
- Instructor:
- Mark
Guzdial
- Office:
- 254 College of Computing
- Phone:
- 894-5618
- Office Hours:
- Monday, 10-11 am
Thursday, 1-2 pm
- Email:
- guzdial@cc
- Newsgroup:
- git.cc.class.2390 AND WebCaMILE.
- Class:
- T Th 3:00-4:30 Room 16 CoC
- Labs:
- Wednesdays 1:30-3:00 (A), 3-4:30 (B), 4:30-6:00 (C) in Baird Sun Lab (103 CoC)
- Final Exam:
- Monday June 3, 2:50-5:40
- TAs:
- Jay Y. Yan (jyan@cc), Chris Joita (joita@cc), Roman
K. (gt0563c@prism)
- Text:
- Required: Coad and Nicola, Object-Oriented
Programming
And: Trevor Hopkins and Bernard Horan, Smalltalk: An introduction to application development using VisualWorks, Prentice-Hall, ISBN 0-13-318387-4
-
Grading:
-
- Midterm 25%
- Final 30%
- Design (1) and Programming (3) Assignments 30%
- Lab Assignments (7) 10%
- Quality of Participation in CaMILE Discussions 5%
- EXTRA CREDIT: An additional 6% will be available as extra credit for students who correct programming assignments and turn them into STABLE cases.
Letter grades are assigned according to the usual convention (A=90+,
B=80-89, C=70-79, D=60-69, F<60).
Assuming a reasonable attempt at a program, program grades will be
based 50% on design documentation and 50% on meeting project
requirements. No late assignments will be accepted.
Attendance in lecture and lab sections is mandatory: Lab sections, in
particular, are an excellent time to get help. HAVE AN OIT ACCOUNT
BEFORE FIRST LAB!
By the end of this class, you should be able to:
- Understand and use the vocabulary of modeling, object-oriented
design and analysis, and simulation (including both discrete and
continuous).
- Be able to analyze a real world situation, design a model in a
language-independent fashion with multiple classes and connections
between them, and implement the model in Smalltalk.
- Design using a graphical representation of a model.
- Design a user interface for a model and explain the design
rationale.
- Use an object-oriented analysis and design notation which is
language independent.
- Read and explain an object-oriented program written in C++.
- Be able to read and write C++ class structure definitions.
People learn by doing. In this class, the doing is particularly
important since the concepts are simple and the applications complex.
Students are strongly encouraged to learn from one another: Form study
groups, discuss programs and lab assignments, help one another debug,
and tutoring (the tutor often learns as much as the student). BUT
each program and lab assignment must be individual work P unless you
actually do it, you can't learn from it.
- Copying another student's program and putting your name on it
is plagiarism. This is a form of academic dishonest which, when
detected, will be reported to the Office of Student Affairs and may
result in consequences such as loss of points for the problem, loss of
points for the class, or dismissal from the class.
- Copying another student's program and changing the variable
names is also plagiarism.
- You are encouraged to talk to one another about your programs,
even show one another your programs and get help with debugging.
However, all program code must be written by the student whose name is
on the program!
- Why Objects? Why model and design? Object-oriented analysis
vs. design vs. programming. Notation for OOA & OOD. Introduction to
Smalltalk. Chapter 1, pp. 1-13; Appendix A, p. 504-535; Appendix
B, p. 547
- Introduction to Graphical User Interfaces. Building the
Counter object. Reuse. Chapter 1, pp. 13-26, pp. 37-63; 83-108
- Modeling with multiple classes. Interfaces with multiple
views. Doing a program from scratch.Modeling a whole-part structure.
Chapter 2, pp. 113-145; pp. 162-169; pp. 176-198
- Starting a program from scratch. What's a good OOA/OOD? Data structures.
- MIDTERM APRIL 23. Introduction to Discrete Event & Continuous Simulation.
Analysis, design, and programming of a discrete event simulation.
Chapter 4, pp. 387-343, pp. 463-478. Smalltalk-80 handout
- Advanced discrete event simulation: Probability distributions.
- C++. Appendix A, pp. 536-545.
<- C++ in Coad & Nicola. Sales Database example. Chapter 3, pp. 227-240
- Object-oriented analysis, design, programming for data
managmenent including interfaces. Other object-oriented languages (Java and Python). Chapter 3, pp. 261-284, pp.
317-346.
- Advanced graphical user interfaces: Alternate models.
Research issues and future directions in modeling and design. Review
for final.
Mark
Guzdial