One of the most important aspects of CS 340: Introduction to Computer Systems is to provide students with an experience where they are developing a small but integral part of a complex software system. In the course, the final project is a large-scale system that uses a microservice-based design where:
In Spring 2023, the names of all course assignments were Taylor Swift songs and lyrics starting with “MP0: Welcome to C, It’s Been Waiting for You”. When we had a course-wide discussion on ideas, three main themes were considered for the final project:
With a week of ideation, the course-wide became a mix of creativity and taylor with 1989 Mosaics – a MapReduce-based mosaic generator where each student developed:
One of the first mosaics we generated was a picture of the entire class! The image of the entire class is the “base image” and sent to all o fthe mosaic generators:
Each of 158 students simultaneously managed 2,173 individual microservices created a mosaic. For example, here’s one student-create mosaic of the course entirely made of “tile images” that were all pictures of cats:
Once two mosaics are created, they can be reduced together. The reduction finds the best possible tile image for the mosaic based off the two mosaics. For example, the following mosaic was a reduction of one mosaic that contains 60 images of only birds and a second mosaic that contains 60 images of only flowers:
Mosaics are recursively reduced, incorporated more and more mosaics – each time improving slightly in quality:
Mosaics are recursively reduced, incorporated more and more mosaics – each time improving slightly in quality:
Finally, all the mosaics are reduced into a single mosaic:
Several additional mosaics were created, including one of the University of Illinois Alma Mater Status:
Taylor Swift’s “Speak Now (Taylor’s Version)” Album Cover:
The 1989 mosaics was created through a shared middleware, which was designed during the first two weeks of the project and the extended with advanced features.
The shared middleware was created based off of students’ design submitted during the first week and then received 18 pull requests (PRs) adding additional features, fixing bugs, creating quality-of-life improvements. The full middleware source code is available on the cs340-sp23-1989-shared-middleware repo in @illinois on GitHub!
This 1,989 mosaics was a crazy idea that could have been a complete failure, but turned into one of the largest collaborative course projects at Illinois! It would not have been possible within:
Thank you! 🧡💙