Last updated on
Week 9 Debrief: Unguided lab
Congrats on completing your 9th week of CS-214! Here is a round-up of interesting questions, tips for exercises and labs, and general notes about the course.
Administrivia
-
The date for the CS-214 final exam was chosen! It will be held on Thursday January 22d, 2026, starting at 9:15 AM. The exam will be three hours, but delays are possible: we expect to be done by 12:45 PM. Our hope is to have a computer-based exam on EPFL machines, but last-minute issues are possible, and we are not excluding the possibility of a paper-based final. We will post a separate announcement about final logistics within the next few weeks.
-
We will have a final exam dry-run on Wednesday, December 17th, from 4 to 7 PM. Attendance is mandatory.
-
Exam-labs are done! BC07/08 will remain available to train during Wednesdays sessions, but they will not be staffed. We encourage you to train at least once more before the final dry-run.
-
Unguided-lab teams are due Friday, but dozens of students had forgotten to register. If you registered in time: thank you! Many students skip the lectures, don’t read Ed announcements, don’t open debriefs, don’t pay attention to deadlines on Moodle, and don’t check the syllabus, so it’s tough for us to reach them. Please help us by reminding your friends to register!
-
The
webapps-rpssetup doesn’t work with Bloop, so make sure to switch the build server in Metals to SBT. -
We will have a webapp proposal review Wednesday 4-6PM in INF 3: come in, pitch us your idea in 1 minute or less (not more!), and we’ll advise on what to do. This review is not mandatory, but it will help a lot to pick an idea of the right size!
Interesting Ed questions
- Unguided lab: Does the group size matter?
- Laziness: Why is
wrongTakewrong? - Scala: What’s the difference between
=>and() =>? - Scala: What does a
*after a list mean? - Exercises: Another implementation of the Look&Say sequence
Unguided lab
We have released the unguided-lab handout, which explains how to create your own app. This technical document is separate from the unguided lab policies, which explains deadlines and grading.
If you’re unsure what to build for your unguided lab, the unguided-lab write-up has plenty of ideas to get you inspired.
The next unguided-lab deadline is the proposal, which is due Fri, Nov 21, 23:00. Feel free to ask the staff for feedback on your proposal in help sessions!
A Scala puzzle 🔥
In week 1, we posted a “good-to-know” entry linking to Reflections on Trusting Trust. In this lecture, Ken Thompson writes:
In college, before video games, we would amuse ourselves by posing programming exercises. One of the favorites was to write the shortest self-reproducing program. […]
More precisely stated, the problem is to write a source program that, when compiled and executed, will produce as output an exact copy of its source. If you have never done this, I urge you to try it on your own. The discovery of how to do it is a revelation that far surpasses any benefit obtained by being told how to do it.
Such a program (a self-contained program that, when executed, prints its own source code, without reading it from disk) is usually called a quine. You might remember this problem from… the midterm!
So: is it possible to write a quine in Scala?