Student Originated Software 1997-1998
Fall Quarter

A Software Engineering Course at
The Evergreen State College

Student Originated Software

Student Originated Software

Object-Oriented Programming (Smalltalk)

Syllabus Fall 1997

Dated: October 10, 1997

Credit Equivalencies: 4 quarter hours.

Rationale: If objects are the answer, what is the question? How does one choose a programming language or methodology for software development? Will object-oriented programming change the nature of system construction? Does everyone interested in software development need to understand object technology? Do objects lead to rapid application development (despite a lack of well-specified requirements), one-to-one mapping of real-world entities to interacting computer-representable objects, maintainable software systems, and reusable code? (If so, are these all good outcomes?)

Purpose: A major goal of this part of the program is to give students an opportunity to answer the above questions (or, rather claims of the OOP community!) by teaching concepts, abilities and skills of object-oriented programming. We will do this through learning Smalltalk, often touted as the purest of the OOP languages generally available.

Why Smalltalk, when we could be using Java, or C++? At first, Smalltalk may seem a bit odd to you, since it has its own, somewhat idiosyncratic, programming environment and an extensive library. In spite of the elegant simplicity of the language, it takes years to become an accomplished Smalltalk programmer. Why? The extraordinarily powerful program library is extensive -- writing a really big program involves finding the right tool in the program library. We will skim the surface fall quarter, and I hope you will gain appreciation of the language.

Plan: We will try to finish Hopkins' Smalltalk book and the VisualWorks tutorial. There will be lectures, exercises in class, and laboratories, Tuesday mornings 9-12:30. You will be asked to read material and do some programming on your own. There will be one or two quizes, and a programming project (the case study). We will explore programming environments with system and file browsers, class libraries, debuggers, etc., and will cover critical topics: types, models of inheritance, encapsulation, and other languages. As time permits, we'll complement our study of OOP with object-oriented analysis and design.

We will use ParcPlace Smalltalk AKA VisualWorks. They offer a very generous academic license and you will be able to install and use Smalltalk on your own system (for the duration of your tenure in this program). Computer Services staff is setting up a mechanism for you to get the seven disks worth of information, and sign the licensing agreement; that should be in place the second week of classes. Please don't use other implementations of Smalltalk.

Text: Hopkins' and Horan Smalltalk, supplemented with the ParcPlaceVisualWorks Tutorial and User's Guide.

Schedule:

Lectures and Q&A: Tuesday and Thursday -- 30-45 minutes after the case study time.

Lab: Tuesday and Thursday after lecture until 12:30.

Expectations and Requirements: You will have regular reading assignments and a programming assignment due (in general) once per week (on Tuesday mornings at 9am). You should work in teams of two during the labs, and by the end of each session hand in something or show one of the lab instructors where you are. In addition, each team will complete a Smalltalk programming project, due the 10th week.

A rough schedule follows, including assignments from Hopkins.

Always bring your Smalltalk text to class and lab!

Week 1 - Introduction to Smalltalk and language basics.

By Thursday October 2 - Read Chapters 1-3. In Lab, we'll work on Chapters 4, 5. (If you don't have a partner yet, we'll help you find one for Thursday's lab).

In lab, fire up a workspace, and evaluate some of the expressions on p. 20 and 21, to make sure you understand binary messages parsing rules. Do exercises 3.1, 3.2 (pp. 22 and 23, respectively); Exercises 4.1, 4.2, 4.3, 4.4, 4.5 (pp 31,33,34); do as many of the Chapter 5 exercises as you can in lab (pp 41,44,45,46,50,51).

Week 2 - More on the VW Programming Environment; classes and encapsulation; class methods and instance methods.

Tuesday - Asst (due) - Finish rest of the exercises in Chapter 5. Skim Ch 6-7. Read Ch. 8 carefully.

Lab - Ch. 6-7.

Thursday - Blocks and Control Structures.

Asst (due) - Selected exercises from Chapter 8. Skim Ch. 9. Read Ch. 10.

By the end of this week, you should understand what a Smalltalk class is, and the distinction between class and instance methods. You should be able to read and understand simple selectors, use the system browser, and know how to create new classes.

Week 3 - Inheritance, class variables and abstract superclasses.

Tuesday - Asst (due) - Read Ch.11,12, 13.

Thursday - Unordered Collections. Asst (due) - Read Ch. 14.

Week 4 - Ordered Collections, more on browsers,

Tuesday - Asst (due) - Read Ch. 15, 16.

Thursday - Blocks & Control Structures (cont), Streams and files

Asst (due) - Read Ch. 17, 18.

Programming Assignment (due next Tuesday) or a short quiz in lab.

Week 5 - More on the ParcPlace Programming Environment -- the GUI Builder. The objective of Tuesday's lab(s) is to learn how to build a GUI using the GUI.

(We defer connecting your GUI to your "model" until Week 8.)

Tuesday - Asst (due) - VW Tutorial (VWT); skim the tutorial.

Lab - VW GUI Builder.

Thursday - Logical operations and undefined objects; Types (guest lecturer)

Asst (due) - read Ch. 21, 22.

Week 6 - The Graphics Classes, and Debugging an application.

Tuesday - Asst (due) - Read Ch. 19, 20, 23.

FACULTY PLANNING RETREAT WED NOON THRU FRIDAY

Thursday - open Lab, possibly a short exam.

Week 7 - Projects & Change Management, processes & semaphores.

Tuesday - Asst (due) - Read Ch. 24, 25.

Thursday - Classes & metaclasses; Models of inheritance (guest lecturer).

Asst (due) - Read Ch. 26.

Week 8 - The dependency mechanism, dialogs, MVC;

Tuesday - Asst (due) - Read Ch. 27,28, 29.

Thursday - Visual Pat & ScheduledWindow, Controllers; Encapsulation

Asst (due) - Ch. 30, 31.

Week 9 - Putting it all together - Creating an application, building a dialog box and using a canvas.

Tuesday - Asst (due) - Read Ch. 32, 33. 34.

Thursday - Other OO Languages (guest lecturer(s)).

Week 10 - Year-long Project Presentations

Thursday - Smalltalk Implementation due.

We will make these available in the Bookstore, or take orders for them, as soon as we needed and practical.

[ SOS Home Page | Case Study | Year Long Projects | OOP ]


For more information contact
[ Evergreen Home Page | Academic Programs ]


Created by: SoSwEbGrOuP
E-mail: ringert@evergreen.edu