Last updated on
Week 13 Debrief: Webapps over!
Congrats on completing your 13th week of CS-214!
First, congratulations on completing your webapps! I’m impressed by the creativity and skills that you have displayed, and delighted to see how far you’ve come since the beginning of the semester. I hope that you’re proud of the results you achieved.
Administrivia
Webapp checkoffs
-
Remember to double-check your checkoff slot before Tuesday (if you need to change slots, let us know in comments, but note that we may ask you to find another team to swap with).
-
Run system tests: go to the checkoff room ahead of time, and make sure that you can run your app and that other computers can connect to it (if necessary, learn how to configure or disable your firewall).
-
Review the checkoff process and grading guide to be ready. You will be asked to present your app, to introduce the team, and to let the assistant who’s grading you connect to your app.
Final exam
-
We’ll have our final-exam dry-run this Wednesday, right after the lecture. This will be the only opportunity you’ll have to test your exam computer in person.
-
Seating charts will be posted before the dry-run.
-
If you have registered to bring a keyboard, please test it on Wednesday.
Feedback on the course
There are two upcoming polls regarding CS214. Both are important:
-
We’ll run our internal poll for December from Wednesday to Sunday. It’s critical that you answer it, because this year was the first time that we ran the unguided lab assignment, and your feedback will be invaluable to decide whether to keep it. The exam dry run materials will only become available on Moodle once you’ve clicked through the poll.
-
EPFL will run it’s own high-level survey about the course in January. This is a different survey, and it’s used to evaluate courses at the school level: it’s your chance to praise or criticize the course and the team (if you choose to do the latter, please also tell us what we could do better, using our internal polls!). Please do take the time to answer it when it comes out.
Exercises
-
We have revised the PBT exercise set, and especially the quad-tree exercise.
-
We have released a set of auto-graded exercises that use formal verification to check your solutions.
-
We have released a small Stainless exercise. Remember: you don’t have to know how to use Stainless for this course; it’s only if you’re curious / excited.
Interesting Ed questions
- Webapps
- Exam
- Exercises / Lectures
Interview lecture
Since we won’t have a recording of this year’s interview lecture, here is the code that I ended up with at the end of the brief interview demo:
import java.nio.file.{Paths, Files}
def seqDigits(nDigits: Int): Iterator[String] =
require(nDigits >= 0)
val fmt = s"%0${nDigits}d"
Iterator.from(0).map(d => fmt.format(d)).takeWhile(_.length == nDigits)
def mkTemp(template: String) =
require(template.endsWith("XXX"), "Not enough `X`s at end of template string.")
val suffixLength = template.reverseIterator.takeWhile(_ == 'X').length
val prefix = template.dropRight(suffixLength)
seqDigits(suffixLength).map(prefix + _).filter(name => !Files.exists(Paths.get(name))).next()
(The rest of the lecture is quite similar to the recording already found on MediaSpace.).