This is a study group for the classic computing book Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman (MIT Press 1996).
The study group will use the Scheme programming language and can be followed in an asynchronous mode through the P2PU site, and also through other synchronous technologies such as online meetings.
All the work will be done through collaboration and group discussion (please do not expect lectures or assignments). Assessment and peer review will be in the form of blog posts and sharing source code through github. Although most of these activities can be done asynchronously, other practices such as pair programming or local meet ups(if at all possible) are highly encouraged and I will try to facilitate these as much as possible.
The Learning Objectives for the course follow the different sections in the SICP book:
1. Building Abstractions with Procedures
2. Building Abstractions with Data
3. Modularity, Objects, and State
4. Metalinguistic Abstraction
5. Computing with Register Machines
If you are also wondering why the course is not using one of those newer and exciting languages, the answer is simple: The course does not focus on the language but on the concepts.
Programming exprience in any language equivalent to a computer science degree (about 4 years work/college experience).
The book can be particularly hard to follow so a lot of motivation is needed to join the course. As motivation cannot be measured, I will leave it up to the participants to make the commitment for themselves and the other group members.