CSU370: Object Oriented Design (Lorenz's section)
Bookmark this page as http://www.ccs.neu.edu/course/csu370/
(This page is for Prof. Lorenz's
section)
Instructor
Prof. Lorenz
328 WVH Hall,
College of Computer Science,
Northeastern University,
Boston, MA 02115
Internet: lorenz@ccs.neu.edu
Office Hours: Tuesday, Friday, 1:30-2:30
Teaching Assistant:
Ms. Ma
3?? VWH,
Office Hours - Monday: ?:??-?:??, Wednesday: ?:??-?:??
Internet: xqma@ccs.neu.edu
Students:
Meet the class of Spring 2005
Class Meeting Time
Tuesday, Friday, 11:45 A.M.
Main Textbooks
Suggested Readings
- Smalltalk - 80 : The Language
by Adele Goldberg and David Robson
Paperback - 608 pages;
1st edition (January 1, 1989)
Addison-Wesley Pub Co;
ISBN: 0201136880
Get a used book
- Structure and Interpretation of Computer Programs
by Harold Abelson and Garold Sussman with Julie Sussman
Hardcover: 657 pages; 2nd edition (July 25, 1996)
MIT Press; ISBN: 0262011530
|
|
What is this course about?
Goals. The goal of the course is to learn to think in objects,
to study the concepts of object-oriented programming,
to learn how to design flexible, reusable, maintainable object-oriented
systems through programming in Smalltalk and Java.
No prior knowledge of the Smalltalk programming language is assumed,
but basic knowledge in Scheme, Java, or C++ is expected.
Catalog Description.
Presents a comparative approach to object-oriented programming
and design. Discusses the concepts of object, class,
meta-class, message, method, inheritance, and genericity.
Reviews forms of polymorphism in object-oriented languages.
Contrasts the use of inheritance and composition as dual
techniques for software reuse: forwarding versus delegation and
sub-classing versus sub-typing. Fosters a deeper understanding
of the principles of object-oriented programming and design
including software components, object-oriented design patterns,
and the use of graphical design notations such as UML. Basic
concepts in object-oriented design are illustrated with case
studies in application frameworks and by writing programs in
one or more object-oriented languages.
Course Outcomes.
Upon completion of this course, a student should:
- Be able to think in objects.
- Understand the fundamental concepts of object-oriented programming.
- Be able to design an object-oriented systems through programming in an OOP language.
- Be equip with a foundation for learning other OO languages.
Why Java?
Java is used to illustrate design
patterns in programs you may have written or used in the past, and to
practice advanced programming and design in a language you already know.
Why Smalltalk?
Smalltalk is the language of choice for teaching object-oriented programming
and design in the best Universities around the world.
Ralph Johnson from the University of Illinois on Smalltalk:
"Smalltalk is ideal for business programming, yet it is also ideal for a researcher who wants to build something
quickly to test some ideas. It is great for accessing databases, for building fancy GUIs, and for distributed programming. In fact, there are
very few things it is not great for! I have no explanation for the fact that most programmers do not know it, other than the obvious fact that
there are lots of things wrong with the world."
Andrew Black
from Oregon Graduate Institute:
"Whereas I used to feel that that it was important for a programming
language to "support" the programmer, I have come to believe instead that
the hallmark of a good language is that it gets out of the programmers
way! In this respect, Smalltalk, like Algol 60, is a significant
improvement over most of its successors."
The major ideas in Smalltalk are generally credited
to Alan Kay:
"I invented the term Object-Oriented, and I can tell you I did
not have C++ in mind."
The 2003
Turing Award has been given to Alan Kay
"For pioneering many of the ideas at the root of
contemporary object-oriented programming languages, leading
the team that developed Smalltalk, and for fundamental
contributions to personal computing."
What is the Turing Award? The A.M. Turing
Award is ACM's most prestigious technical award. It
is given to an individual selected for contributions of
a technical nature made to the computing community. The
contributions should be of lasting and major technical
importance to the computer field.
Why Squeak?
Squeak is an open source, highly-portable Smalltalk-80 implementation
whose virtual machine is written entirely in Smalltalk, making it easy to
debug, analyze, and change. Squeak is free, and it is worth every penny.
Angel Asencio, a student who took the course in 2001 and had 4 years of
experience with Smalltalk, said: "I am very exited about [Squeak], up
to now it has outperformed the last version I used of Visual Works.".
Open Source & Free Smalltalk Versions installed at NU
Projects in Squeak
D.A.G: Dynamic Adventure Game