This report is written as a post-mortem of a project that has, perhaps, been the author’s most extensive personal project: creating a complete and comprehensive solution to one of the most famous programming problem sets in the modern computer science curriculum “Structure and Interpretation of Computer Programs”, by Abelson, Sussman, and Sussman (\cite{Abelson1996}).
It measures exactly:
- How much effort SICP requires (729 hours 19 minutes (over eight months), 292 sessions).
- How many computer languages it involves (6).
- How many pieces of software are required (9).
- How much communication with peers is needed.
It suggests:
- A practical software-supported task management procedure for solving coursework.
- Several improvements, on the technical side, to any hard skills teaching process.
- Several improvements, on the social side, to any kind of teaching process.
The solution is published online (the source code and pdf file):
- http://gitlab.com/Lockywolf/chibi-sicp (\cite{chibi-sicp})
This report (and the data in the appendix) can be applied immediately as:
- A single-point estimate of the SICP problem set difficulty.
- A class handout aimed at increasing students’ motivation to study.
- A data source for a study of learning patterns among adult professionals aiming for continuing education.
- An “almost ready” protocol for a convenient problem-set solution procedure, which produces artefacts that can be later used as a student portfolio.
- An “almost ready”, and “almost convenient” protocol for measuring time consumption of almost any problem set expressible in a digital form.
Additionally, a time-tracking data analysis can be reproduced interactively in the org-mode version of this report. (See: Appendix: Emacs Lisp code for data analysis)