Dynamic Object-Oriented Programming with Smalltalk (ST - HS09)

Vectorized Smalltalk Balloon

Course: W7088 (Fall Semester 2009)
Professor: Prof. Dr. Oscar Nierstrasz
Assistants: David Roethlisberger, Fabrizio Perin, Timur Altun
Lectures: Wednesdays, 10h15-12h00
Exercises: Wednesdays, 12h00-13h00
Place: Engehaldenstrasse 8, 001
Start: Sept. 16, 2009
Repetition: none planned. see instead: SDE: Software Design and Evolution


Smalltalk is still today one of the few fully reflective, fully dynamic, object-oriented development environments. In this course we will explore how a simple, uniform object model enables live, dynamic, interactive software development.

Smalltalk is a powerful and flexible language that allows for rapid prototyping as well as full-fledged application building. Smalltalk influenced heavily the definition of object-oriented languages like Java (garbage collector, single inheritance, everything is a pointer, virtual machine technology). Moreover, Smalltalk is more than a language, it provides a big library of reusable classes, a full programming environment (browsers, debuggers) and a platform independent run-time system.

PBE cover


The text for this course will be the open-source book Pharo by Example. Softcover copies of a special preview edition of this book will be available for sale during the introductory lecture at a reduced price of 30 Fr. (Instead of 25 Euros.)


1 16-Sep-09 Introduction
2 23-Sep-09 Smalltalk Basics
3 30-Sep-09 Standard Classes
4 07-Oct-09 Smalltalk Coding Idioms
5 14-Oct-09 Seaside, Canvas and Brush Reference, Callback Reference
6 21-Oct-09 Debugging
7 28-Oct-09 Best Practice Patterns
8 04-Nov-09 Refactoring and Design Patterns
9 11-Nov-09 Understanding Classes and Metaclasses
10 18-Nov-09 Reflection
11 25-Nov-09 Working with ByteCode
12 02-Dec-09 Virtual Machines
13 09-Dec-09 Traits and research demos (Phexample, Helvetia, Hermion)
14 16-Dec-09 Final Exam


1 16-Sep-09 Introduction to Pharo (Exercise remarks) Solutions
2 23-Sep-09 Objects and Expressions Solutions
3 30-Sep-09 Simple Counter Solutions
4 07-Oct-09 LAN Simulation Solutions
5 14-Oct-09 Seaside (Part 1), Code Template Solutions
6 21-Oct-09 Seaside (Part 2) Solutions
7 28-Oct-09 Seaside (Part 3) Solutions
8 04-Nov-09 Best Practice Patterns and Refactoring Solutions
9 11-Nov-09 CodeScope 1 Solutions
10 18-Nov-09 CodeScope 2 Solutions
11 25-Nov-09 ByteCode Solutions
11 02-Dec-09 VM and Repetition Solutions


Feedback questionnaire (to be handed in at the end of the course, 09-Dec or 16-Dec)


You can register on ePub for the exam until 15-Dec-09.