How to follow this MOOC?

We propose five profiles to follow this MOOC at different speed and levels. The Mooc sequences are tagged according to these profiles. The profiles are not exclusive: to become a pharo expert you need to start as a newbie and grow up. Of course, you can also follow the full MOOC.

Table of contents

Select a profile to display the corresponding sequences and exercises:
Course Presentation
Platform Guide
Forum Guide
Additional Ressources
Pharo Installation
Survey 1
Terms of Use
Week 1: Welcome on Board and Syntax Discovery
Newbie Lecture 1.1. Objectives of this Mooc
Newbie Lecture 1.2. Pharo : An Immersive Object-Oriented System
Newbie Lecture 1.3. Pharo Vision
Newbie Lecture 1.4. Pharo Object Model in a Nutshell
Newbie Lecture 1.5. Pharo Syntax in a Nutshell
Newbie Lecture 1.6. Class and Method Definition
Newbie Live 1.7.1. Selecting and executing expression
Newbie Live 1.7.2. Learn Pharo with Prof Stef
Newbie Live 1.7.3. Syntax Highlighting gives Feedback
Newbie Live 1.7.4. Learn Keyboard Shortcuts
Newbie Redo 1.7.5. Coding a Counter
Newbie Exercise 1.8.1. Expressions and messages
Newbie Exercise 1.8.2. TinyBlog: Presentation and Model
Xpert Challenge 1.9. Challenge 0
Week 2: Pharo Syntax, Blocks and Inspector
Newbie Lecture 2.1. Understanding Messages
Newbie Lecture 2.2. Messages for Java Programmers
Newbie Lecture 2.3. Messages: Composition and Precedence
Newbie Lecture 2.4. Understanding Messages: Sequence and Cascade
Newbie Live 2.5.1. Finding Methods with Finder
Newbie Live 2.5.2. GTInspector 1: Inspect and Interact with Objects
Newbie Lecture 2.6. Introduction to Blocks
Newbie Lecture 2.7. Loops
Newbie Lecture 2.8. Booleans and Conditions
Newbie Lecture 2.9. Parentheses vs Square Brackets
Newbie Lecture 2.10. Yourself
OO1 Lecture 2.11. The Essence Of Dispatch through an Exercise
Newbie Live 2.12.1. Nautilus 1: First Meet with the Code Browser
Newbie Live 2.12.2. Nautilus 2: Packages, Tags and Groups
Newbie Live 2.12.3. Nautilus 3: Inheritance view
Newbie Redo 2.12.4. Coding a Counter in the Debugger
Newbie Exercise 2.13.1. Solution: Expressions and Messages
Newbie Exercise 2.13.2. Expression Results
Newbie Exercise 2.13.3. TinyBlog: Extending and Testing the Model
Xpert Challenge 2.14.1. Solution: Challenge 0
Xpert Challenge 2.14.2. Challenge 1
Week 3: Design, Class Methods and Collections
Newbie Lecture 3.1. Essence of Dispatch 1/2
Newbie Lecture 3.2. Essence of Dispatch 2/2
Newbie Lecture 3.3. Variables
Newbie Web1 Lecture 3.4. A Simple HTTP Application
Newbie Live 3.5.1. Nautilus 4: How to Become a Super Pharo Developer: Understanding Sender and Implementors
Newbie Live 3.5.2. Nautilus 5: Navigating Fast Inside Classes
Newbie Lecture 3.6. Class Methods
Newbie Lecture 3.7. An overview of Essential Collections
Newbie Live 3.8.1. Spotter 1: Find and Browse a Class
Newbie Live 3.8.2. Spotter 2: Filter Results by Category
OO1 Lecture 3.9. Iterators
Newbie Lecture 3.10. Stream Overview
Newbie Lecture 3.11. Understanding Return
Newbie Redo 3.12. Coding a Little Domain Specific Language
Newbie Exercise 3.13.1. Solution: Expression Results
Newbie Exercise 3.13.2. Rewriting Expressions
Newbie Exercise 3.13.3. TinyBlog: A Simple Teapot Web Interface
Xpert Challenge 3.14.1. Solution: Challenge 1
Xpert Challenge 3.14.2. Challenge 2
Week 4: Inheritance & Lookup and Web Development
Newbie Lecture 4.1. Inheritance Basics
Newbie Lecture 4.2. Inheritance & Lookup: Lookup
Newbie Lecture 4.3. Inheritance & Lookup: Super
Newbie Lecture 4.4. Inheritance & Lookup: DoesNotUnderstand:
Xpert Lecture 4.5. Inheritance & Lookup: Lookup in Metaclasses
OO1 Lecture 4.6. Class Methods at Work
Web1 Lecture 4.7. Overview of Pharo Web Stack
Web1 Lecture 4.8. Seaside: an Innovative Web Application Framework
Web1 Lecture 4.9. Seaside: Rendering Components
Web1 Lecture 4.10. Seaside: a Glance at MetaData and REST
Web1 Lecture 4.11. Voyage: NoSql Object Database
Newbie Live 4.12.1. How to load code from repository
Newbie Live 4.12.2. How to load projects
OO1 Live 4.12.3. Nautilus 6: An overview of Refactorings
OO1 Live 4.12.4. Nautilus 7: Using the Quality Assistant and Code Critic
Newbie Exercise 4.13.1. Solution: Rewriting Expressions
Web1 Exercise 4.13.2. TinyBlog: Data Persitency using Voyage and Mongo
Web1 Exercise 4.13.3. TinyBlog: Building a Web Interface with Seaside
Web1 Exercise 4.13.4. Building a Simple Contact Book Application
Xpert Challenge 4.14.1. Solution: Challenge 2
Xpert Challenge 4.14.2. Challenge 3
Week 5: Exception, Debugging and Reflection
Web1 Lecture 5.1. Seaside: Composing Components
OO1 Lecture 5.2. Really Understanding Class Methods
Newbie Lecture 5.3. Common Errors
Xpert Lecture 5.4. Powerful Exceptions: an Overview
Newbie Lecture 5.5. Debugging in Pharo
Newbie Lecture 5.6. SUnit: Unit Tests in Pharo
Xpert Lecture 5.7. Files in Pharo
Magic Lecture 5.8. Reflection: Basic Introspection
Xpert Lecture 5.9. Benchmarking in Pharo
Newbie Live 5.10.1. Spotter 3: Scoping and Reducing Search
Newbie Live 5.10.2. Spotter 6: Search, Navigate and Preview Files
Newbie Live 5.10.3. Learning the Debugger
Newbie Live 5.10.4. How to find a bug?
Newbie Live 5.10.5. GTInspector 2: Inspect Files and Directories
Web1 Exercise 5.11.1. TinyBlog: Building an Admin Seaside Web Interface with Magritte
Newbie Exercise 5.11.2. TinyChat
Xpert Challenge 5.12.1. Solution: Challenge 3
Xpert Challenge 5.12.2. Challenge 4
Week 6: Rethink lookup and Advanced Object-Oriented Design
OO1 Lecture 6.1. Did You Really Understand Super?
Newbie Lecture 6.2. Understanding the Implementation of ifTrue:ifFalse:
OO1 Lecture 6.3. Dice new vs. self class new
OO1 Lecture 6.4. Message sends are plans for reuse
OO1 Lecture 6.5. Hooks and Templates
Newbie Lecture 6.6. Runtime Architecture
Newbie Lecture 6.7. Characters, Strings and Symbols
Newbie Lecture 6.8. Dynamic Vs. Literal Arrays
Newbie Live 6.9.1. Understanding Images and Changes Files
Newbie Live 6.9.2. Using the Pharo Launcher to manage your Pharo images
Xpert Live 6.9.3. Diffing and Merging in Pharo
Newbie Live 6.9.4. GTInspector 4: Build Custom Tab Views for your Objects
Web1 Exercise 6.10. TinyBlog: Deployment
Xpert Challenge 6.11.1. Solution: Challenge 4
Xpert Challenge 6.11.2. Challenge 5
Week 7: More on Object-Oriented Design and Testing
Xpert Lecture 7.1. Advanced Points on Classes
Newbie Lecture 7.2. Variable Size Objects
Magic Lecture 7.3. Understanding Metaclasses
Magic Lecture 7.4. Reflective Operations for Live Programming
Magic Lecture 7.5. DoesNotUnderstand: a Precious Hook
Magic Lecture 7.6. Reflection: Stack as an Object
OO1 Lecture 7.7. Avoid Null Checks
Newbie Lecture 7.8. A Journey in Pharo: A Bright Future
Xpert Live 7.9.1. Spotter 4: The Preview pane
Xpert Live 7.9.2. Spotter 5: Search in Playground History
Xpert Live 7.9.3. GTInspector 3: Understand Pharo Internals by Inspection
Xpert Challenge 7.10. Solution: Challenge 5