$2,500

Structure and Interpretation of Computer Programs

Event Information

Share this event

Date and Time

Location

Location

Dabeaz LLC

5412 N Clark Street #218

Chicago, IL 60640

View Map

Event description

Description

[5 days]

One of the most well-regarded textbooks in all of computer science is "Structure and Interpretation of Computer Programs" by Abelson, Sussman, and Sussman. This is the same book that was long taught to undergraduates at MIT. It's also a book that's notoriously difficult to study on one's own as the mateiral is often abstract, mathematical, and not immediately "practical" in a way that you'd find in a typical computer book. However, at a deep level, SICP is a story about the fundamental nature of computation itself as it takes you through the journey of understanding computational thinking, computational processes, and ultimately, the implementation of different programming languages. Along the way, you'll learn a lot about the nature of programming, abstraction, and problem solving.

In this intense week, we're going to attempt to cover the fundamental topics of the book cover-to-cover with a primary focus on the core story of computation. The course is broken into two main parts. In the first part, we introduce the basic elements of functional programming, culminating in a study of the lambda-calculus. In the second part, we work to build own our Scheme interpreter (written in Scheme) which we will then modify to study different programming models. The course concludes by studying how to realize our interpreter on actual machines.

This course is primarily taught in Scheme/Lisp with a small amount of Python. Over the course of the week, you will be working selected exercises from the book, writing a Scheme interpreter in Python, and writing the same Scheme interpreter in Scheme (the so-called metacircular evaluator). If you are already generally familiar with SICP, the aim is to cover all 5 chapters. However, this coverage is highly focused on the task of ultimately making an interpreter. As such, topics not directly related to this task are skipped (i.e., counting change, 8-queens puzzles, circuit simulators, etc.). The last part of the course implements the metacircular evaluator and modifies it to support lazy-evaluation (Chapter 4). The course concludes with a discussion of register machines and how different computational processes are mapped to such machines (Chapter 5).

Why would you take this class? Because it's fun of course. Plus, you'll learn a lot of neat stuff and understand programming languages with a new awareness.

More information at http://www.dabeaz.com/sicp.html


Share with friends

Date and Time

Location

Dabeaz LLC

5412 N Clark Street #218

Chicago, IL 60640

View Map

Save This Event

Event Saved