Course Overview

What this Smalltalk course covers, how to use it, prerequisites.

A self-contained, hands-on course covering Smalltalk, the language that gave the world pure object orientation, the graphical user interface, MVC, the integrated development environment, unit testing frameworks, and the refactoring browser. Using Pharo (12/13) as the main environment — with notes for Squeak, Cuis, GNU Smalltalk, VisualWorks, VA Smalltalk, and GemStone/S — the course covers the image-based environment and its tools, objects and messages, literals, blocks and closures, control structures as messages, classes and metaclasses, inheritance and polymorphism, numbers, collections, strings, streams, files, exceptions, SUnit and test-driven development, debugger-driven development, refactoring, packages with Monticello, Iceberg, Tonel and Metacello, reflection and meta-programming, traits, design patterns, announcements, concurrency, Morphic and Spec2 user interfaces, Roassal visualization, web development with Zinc, Teapot and Seaside, JSON and STON, persistence with Voyage, Glorp and GemStone, FFI, the OpenSmalltalk VM, performance, headless scripting, deployment, and complete projects. Every chapter has runnable examples and exercises.

Course Map

Part I — Foundations Introduction & History The Image-Based Environment A Tour of the Tools Everything Is an Object Messages & Precedence

Variables, Assignment & Pseudo-Variables Statements, Cascades & yourself Blocks & Closures Control Structures as Messages Booleans & Logic Part II — Core Language & Environment Classes & Instances Methods & Protocols Instance, Class & Class-Side Variables Inheritance & super

Polymorphism, Method Lookup & doesNotUnderstand:

Magnitudes & Numbers Collections: The Hierarchy Strings, Symbols & Characters Streams & Files Unit Testing with SUnit TDD & Debugger-Driven Development Packages, Monticello, Iceberg & Tonel Part III — Advanced Reflection & Meta-Programming Design Patterns in Smalltalk MVC, Morphic & Spec2 Web: Zinc, Teapot, Seaside & JSON Persistence: Voyage, Glorp & GemStone FFI: Calling C with UFFI The VM, Performance & Profiling

Headless Pharo, GNU Smalltalk & Deployment Part IV — Ecosystem & Real-World Smalltalk Best Practices & Common Pitfalls

Appendices: Cheat Sheet, Pseudo-Variables, Message Reference, Shortcuts, Dialects, Resources, Study Plan