isLoop 2025 Program
Day 1: Introduction to Pharo
During this day, you will learn the survival kit to code in Pharo. You will learn the syntax and the main tools to code and publish code. After that day you will be able to code in Pharo. Yes the syntax fits in half of a postcard.
- Pharo syntax
- Pharo environment
- Development tools: Playground, Inspector, System Browser
- Live Debugger
- Basics of object-oriented programming
Day 2: Testing and Good Practices
You will learn how to verify your application with unit tests. We will also teach you the practice of test-driven development (TDD) which means that you start by writing tests and then write the code to make them pass. Using the unique features of Pharo, you will learn a very powerful practice of extreme test-driven development, which means that you will write your code inside a debugger. You will also learn some advance practices of object-oriented programming such as design patterns, as well as the good practices from experienced Pharo developers.
- Writing unit tests in Pharo
- Test-driven development (TDD)
- Extreme TDD
- Design patterns
- Good programming practices
Day 3: Building user interfaces with Spec
During this day, you will learn how to define user interfaces using the Spec UI builder framework.
- Introduction to Spec UI library
- Basic presenters: buttons, checkboxes, dropdowns, etc.
- Spec layouts
- Dynamic UI
- Testing Spec presenters
Day 4: Guided individual projects
We believe in learning by doing, which is why the last two days of our summer school are reserved for the individual projects. You will implement your own simple applications with user interface and we will guide you in this process.
- Develop your own application
- Create user interface for your app
Day 5: Guided individual projects
In the morning, you will have some time to finish up your application and prepare a live demo. In the afternoon, you will present your app to the fellow students and get their feedback.
- Finishing up the project
- Project demos (show your app to everyone!)