~ $ cd teaching && cat README.md
Teaching
I have taught at three universities. The first time was in 2002, through the UPC's foundation: computing for people between 65 and 97 years old; five years later, at the UPC itself, the first programs of the first year. In the courses below I ended up building what the students stood on, so that the difficulty they met was the one the course was about and not three others.
- The post comes first — Tecnocampus, six autumns, 2017 to 2022. Laboratori de Software 2: teams building a game the way software is built, where a feature starts as a blog post in markdown that compiles into a test for the server and a test for the client, the writer of a post is never its coder, and the grades are read from the repository's history.
- Sixty-four rooms — UPC, 2007, Introducció als Ordinadors. A text adventure as the lab of a first-year course, built so that four traversal-and-search schemas were all a student needed, on a map drawn on squared paper first. Playable.
- The fishing lagoon — Tecnocampus, 2018, Laboratori de Software 1. A lab whose assignment is a commons: a lagoon whose fish breed if left alone, bots that share it and hand in their orders blind, and a tit-for-tat that cooperates only with those who do. Play it, and seat your own bot.
- Raft, and a recipe for concurrency — UOC, the distributed systems laboratory, 2013. A consensus algorithm as the assignment, the year before its paper was presented, and the three steps — copy inside the guard, work outside it, check before writing — simple enough for someone who cannot yet reason about interleavings.
- The Bowling Game Kata — Robert C. Martin's kata, which I first gave as a workshop twice in June 2016 and later taught in class, with my slides and a repository to do it in JavaScript or Java.
At the Tecnocampus, between 2017 and 2023, I designed three subjects from scratch — Enginyeria del Software III, Laboratori de Software 2 and Arquitectura de Serveis — with a first-year lab, a front-end course and final-project tutoring around them.
Use ls to see them, or cat software-lab to read one here.
~/teaching $ ls
software-lab/The post comes firstSix autumns of Laboratori de Software 2 at Tecnocampus, and the platform built for it — posts in markdown compiled into tests for server and client, the server's answers replayed to the client, and a grader that read the repository.adventure/Sixty-four roomsUPC, 2007. A text adventure as the lab of a first-year course, built so that four traversal-and-search schemas were all a student needed. Playable.fishing-lagoon/The fishing lagoonA lab from 2018 where the assignment is a commons: a lagoon whose fish breed if left alone, bots that share it, and a tit-for-tat that only cooperates with those who do. Play it, and seat your own bot.raft/Raft, and a recipe for concurrencyA consensus algorithm as a laboratory assignment in 2013, and the three hints given to simplify it — above all a three-step recipe, simple enough for someone who cannot yet reason about interleavings.kata/The Bowling Game KataRobert C. Martin's kata, with slides and a repository to do it in JavaScript or Java.