Last updated on
Midterm study guide
Administrivia
Taken from the policies page:
The midterm will take place on Wed, Nov 5, 16:15–18:15.
We will post seating plans and the complete instructions (also printed on the front of the midterm booklet) in week 7. The midterm will be a pen-and-paper exam with a mix of multiple-choice and free-response questions. You will not be allowed to use any notes, electronic devices, cheatsheets, or other resources.
The midterm will count for 30% of your overall grade for the course. If you have a doctor’s note, you will be excused from the midterm, in accordance with EPFL rules (en, fr).
Midterm contents
- The midterm format is most similar to that of exercises: you will mainly be asked to understand, write, and debug small programs and proofs.
- Everything that was covered in weeks 1–6 is on topic, both in SE and in FP (including lectures, labs, exercises, and debriefs).
- Broadly speaking, the midterm is intended to test understanding and ability, not encyclopedic knowledge: we won’t quiz you on the options that you can pass
giton the command line. However, we do expect you to understand the subtleties of Scala that we explored in class and in exercises.
Study guide
Doing exercises on paper is the best way to prepare. Here is a suggested strategy to choose topics to focus on and review corresponding materials:
-
Go through the syllabus. Each week has a list of learning objectives, important topics, Scala syntax and APIs (with links): highlight the ones that you feel less comfortable with.
-
Go through all the exercise sets sequentially in the order they were released. Spend more time on the topics you feel less comfortable with, and the ⭐️ exercises, which are the most important ones.
When a ⭐️ exercise gives you trouble, look at immediately preceding exercises (including unstarred ones): we have done our best to structure things so that earlier exercises build up to later ones. For topics that give you persistent trouble, consider re-watching the corresponding segments (usually 7–15 minutes) from the lecture recordings.
Once you are comfortable with ⭐️ exercises, try a few of the 🔥 exercises. The difficulty annotations are based on the time the exercise was released, so 🔥 exercises that seemed daunting earlier this semester may now feel much more approachable.
-
Finally, review additional exam-prep materials: midterms from past editions of the course, as well as newly released exam-prep problems:
-
2024 practice problem (1 question, ~25 minutes) and solution
It may be helpful to practice under exam conditions: timed, on paper, without interruptions or external resources.
CS-210 midterms
For even more training materials, you may look at old midterms from the now-discontinued course CS-210 Functional Programming. Keep in mind that CS-214 is quite different from CS-210, which had no software engineering.
Additional tips:
-
It’s OK to look at solutions while studying, but it’s best if you do this only once you’re fairly confident that you know how to solve the problem (and ideally, after you’ve written down your solution). Simply reading our solution doesn’t work nearly as well.
-
If you are pressed for time and can’t afford to review all ⭐️ exercises, then it’s OK to focus on the “most important exercises” listed in the syllabus, but beware that you may miss things. If you don’t even have time for that, then starting straight from last year’s midterms is better than nothing, but beware the caveats above.
-
Studying in teams is an excellent idea. We recommend splitting exercises or topics among students: for example, if student A studies recursion while student B looks at polymorphism, then student A can quiz student B on recursion, and vice versa (thus accelerating each other’s studies).
-
Working on your unguided callback is a great way to practice. We encourage you to pick one of the labs that you had the most trouble with: the training you’ll get on the corresponding topics will be helpful for the midterm.
Finally: do not hesitate to ask on Ed or in person if you have any questions, or if you feel that additional exercises would help you prepare on a specific topic.
Bon courage!