Dynamic Object-Oriented Programming with Smalltalk (ST - HS09)
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 |
Contents
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.
Textbook
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.)
Schedule
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 |
Exercises
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 |
Questionnaire
Feedback questionnaire (to be handed in at the end of the course, 09-Dec or 16-Dec)
Exam
You can register on ePub for the exam until 15-Dec-09.