COM 3230: Object-Oriented Design

Bookmark this page as


David H. Lorenz
111 Cullinane Hall, College of Computer Science,
Northeastern University, Boston, MA 02115

Required Textbook

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 Java or C++ is expected.

Course description. 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 and object-oriented software design patterns. 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.

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."

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

Software Metrics Links




Com3230 Mailing List


Info available on COM 3240: Component-Based Programming (new course)

 D. H. LorenzLast Modified: $Date: 2002/10/28 18:02:36 $