Skip to content

Latest commit

 

History

History
167 lines (143 loc) · 8.72 KB

Profile-fr.md

File metadata and controls

167 lines (143 loc) · 8.72 KB

Profiles

5 profils ont été identifiés pour suivre le cours à des vitesses et niveaux différents. Les séquences du cours seront étiquetées en fonction des profils. Vous pouvez aussi ne pas suivre certains cours car ils sont sur des sujets annexes comme les exceptions, les fichiers ou autres.

Nous proposons 5 profiles différents. Ces profils ne sont pas exclusifs : pour devenir un expert en Pharo il faut commencer par le profil newbie et compléter avec les autres parcours.

  • Débutant complet [newbie] Focalisez-vous sur les premiers cours et suivez le cours jusqu’au bout sans essayez de tout comprendre. Vous pouvez sauter les cours sur Seaside et Mongo ainsi que les exercises sur TinyBlog dans un premier temps. Détendez-vous et prenez le temps de comprendre que le système est écrit en lui-même. Focalisez-vous également sur les outils de navigation (senders et implémenteurs).

  • En quête de Web [web] Pour ceux qui se focalisent sur le web, nous conseillons de commencer par la syntaxe. De plus comme nous adorons ce cours, nous vous conseillons de ne pas sauter le cours sur l'implémentation de not. Suivez le cours sur Teapot qui est un petit serveur web très sympa et puissant. Ensuite le cours Seaside/Mongo. Du point de vue des exercices, concentrez vous sur TinyChat et surtout TinyBlog.

  • Rafraîchir votre vision OO [oo] Si vous voulez repenser votre approche de la programmation Orientée Objet, prêtez attention au fait que même des librairies aussi essentielles que les booleans ou les collections vous immersent dans un monde d'objets.

  • En quête de magie noire [magic] Si vous êtes intéressé par la magie noire, cela signifie probablement que vous apprenez rapidement un nouveau langage ou que vous connaissez déjà Pharo. Quoi qu’il en soit, ne manquez pas l’approche OO proposée. Avec Pharo, on peut faire plus que ce que le cours décrit mais c'est un bon début.

  • Devenir un expert Pharo [Xpert] Eh bien cela signifie qu'il faut parcourir tout le contenu en laissant éventuellement de côté la partie web si vous êtes pressés.

Schedule

Week 1: Welcome on Board and Syntax Discovery

Download the slides, videos and exercises.

  • [Newbie] [Lecture] Objectives of this MOOC
  • [Newbie] [Lecture] Pharo: an Immersive Object-Oriented System
  • [Newbie] [Lecture] Pharo Vision
  • [Newbie] [Lecture] Pharo Object Model in a Nutshell
  • [Newbie] [Lecture] Pharo Syntax in a Nutshell
  • [Newbie] [Lecture] Class and Method Definitions
  • [Newbie] [Live] Selecting and executing expressions
  • [Newbie] [Live] Learn Pharo with Prof Stef
  • [Newbie] [Live] Syntax Highlighting gives Feedback
  • [Newbie] [Live] Learn Keyboard Shortcuts
  • [Newbie] [Redo] Coding a Counter
  • [Newbie] [Exercise] Expressions and Messages
  • [Newbie] [Exercise] TinyBlog: Presentation and Model
  • [Newbie] [Challenge] Challenge 0

Week 2: Pharo Syntax, Blocks and Inspector

Download the slides, videos and exercises.

  • [Newbie] [Lecture] Understanding Messages
  • [Newbie] [Lecture] Messages for Java programmer
  • [Newbie] [Lecture] Messages: Composition and Precedence
  • [Newbie] [Lecture] Understanding Messages: Sequence and Cascade
  • [Newbie] [Live] Finding Methods with Finder
  • [Newbie] [Live] GTInspector 1: Inspect and Interact with Objects
  • [Newbie] [Lecture] Introduction to Blocks
  • [Newbie] [OO] [Lecture] Loops
  • [Newbie] [OO] [Lecture] Booleans and Conditions
  • [Newbie] [Lecture] Parenthesis vs Square Brackets
  • [Newbie] [Lecture] Yourself
  • [OO] [Lecture] The Essence of Dispatch through an Exercise
  • [Newbie] [Live] Nautilus 1: First Meet with the Code Browser
  • [Newbie] [Live] Nautilus 2: Packages, Tags and Groups
  • [Newbie] [Live] Nautilus 3: Inheritance view
  • [Newbie] [Redo] Coding a Counter in the Debugger
  • [Newbie] [Exercise] Solution: Expressions and Messages
  • [Newbie] [Exercise] Expression Results
  • [Newbie] [Exercise] TinyBlog: Extending and Testing the Model
  • [Challenge] Solution: Challenge 0
  • [Challenge] Challenge 1

Week 3: Design, Class Methods and Collections

Download the slides, videos and exercises.

  • [Newbie] [OO] [Lecture] Essence of Dispatch: Taking Pharo Booleans as Example
  • [Newbie] [OO] [Lecture] Essence of Dispatch
  • [Newbie] [Lecture] Variables
  • [Newbie] [Web] [Lecture] A Simple HTTP Application: a Pretext to Revisit Pharo Syntax
  • [Newbie] [Live] Nautilus 4: How to Become a Super Pharo Developer: Understanding Sender and Implementors
  • [Newbie] [Live] Nautilus 5: Navigating Fast Inside Classes
  • [Newbie] [Lecture] Class Methods
  • [Newbie] [Lecture] An Overview of Essential Collections
  • [Newbie] [Live] Spotter 1: Find and Browse a Class
  • [Newbie] [Live] Spotter 2: Filter Results by Category
  • [OO] [Lecture] Iterators
  • [Newbie] [Lecture] Stream Overview
  • [Newbie] [Lecture] Understanding Return
  • [Newbie] [Redo] Coding a Little Domain Specific Language
  • [Newbie] [Exercise] Solution: Expression Results
  • [Newbie] [Exercise] Rewriting Expressions
  • [Newbie] [Exercise] TinyBlog: A Simple Teapot Web Interface
  • [Challenge] Solution: Challenge 1
  • [Challenge] Challenge 2

Week 4: Inheritance & Lookup and Web Development

Download the slides, videos and exercises.

  • [Newbie] [Lecture] Inheritance Basics
  • [Newbie] [Lecture] Inheritance & Lookup: Lookup
  • [Newbie] [Lecture] Inheritance & Lookup: Super
  • [Newbie] [Lecture] Inheritance & Lookup: DoesNotUnderstand:
  • [Xpert] [Lecture] Inheritance & Lookup: Lookup in Metaclasses
  • [OO] [Lecture] Class Methods at Work
  • [Web] [Lecture] Overview of Pharo Web Stack
  • [Web] [Lecture] Seaside: an Innovative Web Application Framework
  • [Web] [Lecture] Seaside: Rendering Components
  • [Web] [Lecture] Seaside: a Glance at MetaData and REST
  • [Web] [Lecture] Voyage: NoSql Object Database
  • [Newbie] [Live] How to load code from repository
  • [Newbie] [Live] How to load projects
  • [OO] [Live] Nautilus 6: An overview of Refactorings
  • [OO] [Live] Nautilus 7: Using the Quality Assistant and Code Critic
  • [Newbie] [Exercise] Solution: Rewriting Expressions
  • [Web] [Exercise] TinyBlog: Data Persitency using Voyage and Mongo
  • [Web] [Exercise] TinyBlog: Building a Web Interface with Seaside
  • [Web] [Exercise] Building a Simple Contact Book Application
  • [Newbie] [Challenge] Solution: Challenge 2
  • [Newbie] [Challenge] Challenge 3

Week 5: Exception, Debugging and Reflection

Download the slides, videos and exercises.

  • [Web] [Lecture] Seaside: Composing Components
  • [OO] [Lecture] Really Understanding Class Methods
  • [Newbie] [Lecture] Common Errors
  • [Xpert] [Lecture] Powerful Exceptions: an Overview
  • [Newbie] [Lecture] Debugging in Pharo
  • [Newbie] [Lecture] SUnit: Unit Tests in Pharo
  • [Xpert] [Lecture] Files in Pharo
  • [Magic] [Lecture] Reflection: Basic Introspection
  • [Xpert] [Lecture] Benchmarking in Pharo
  • [Newbie] [Live] Spotter 3: Scoping and Reducing Search
  • [Newbie] [Live] Spotter 6: Search, Navigate and Preview Files
  • [Newbie] [Live] Learning the Debugger
  • [Newbie] [Live] How to find a bug?
  • [Newbie] [Live] GTInspector 2: Inspect Files and Directories
  • [Web] [Exercise] TinyBlog: Building an Admin Seaside Web Interface with Magritte
  • [Newbie] [Exercise] TinyChat
  • [Newbie] [Challenge] Solution: Challenge 3
  • [Newbie] [Challenge] Challenge 4

Week 6: Rethink Lookup and Advanced Object-Oriented Design

Download the slides, videos and exercises.

  • [OO] [Lecture] Did You Really Understand Super?
  • [Newbie] [Lecture] Understanding the Implementation of ifTrue:ifFalse:
  • [OO] [Lecture] Dice new vs. self class new
  • [OO] [Lecture] Message sends are plans for reuse
  • [OO] [Lecture] Hooks and Templates
  • [Newbie] [Lecture] Runtime Architecture
  • [Newbie] [Lecture] Characters, Strings and Symbols
  • [Newbie] [Lecture] Dynamic Vs. Literal Arrays
  • [Newbie] [Live] Understanding Images and Changes Files
  • [Newbie] [Live] Using the Pharo Launcher to manage your Pharo images
  • [Xpert] [Live] Diffing and Merging in Pharo
  • [Newbie] [Live] GTInspector 4: Build Custom Tab Views for your Objects
  • [Web] [Exercise] TinyBlog: Deployment ( Download PharoWeb image for deployment which uses Pharo 4)
  • [Newbie] [Challenge] Solution: Challenge 4
  • [Newbie] [Challenge] Challenge 5

Week 7: More on Object-Oriented Design and Testing

Download the slides, videos and exercises.

  • [Xpert] [Lecture] Advanced Points on Classes
  • [Newbie] [Lecture] Variable Size Objects
  • [Magic] [Lecture] Understanding Metaclasses
  • [Magic] [Lecture] Reflective Operations for Live Programming
  • [Magic] [Lecture] DoesNotUnderstand: a Precious Hook
  • [Magic] [Lecture] Reflection: Stack as an Object
  • [OO] [Lecture] Avoid Null Checks
  • [All] [Lecture] A Journey in Pharo: A Bright Future
  • [Xpert] [Live] Spotter 4: The Preview pane
  • [Xpert] [Live] Spotter 5: Search in Playground History
  • [Xpert] [Live] GTInspector 3: Understand Pharo Internals by Inspection
  • [Newbie] [Challenge] Solution: Challenge 5