Introduction To Functional Programming with Scheme

I had the honor of presenting at CodeMash 2.0.1.0 this year on Functional Programming in Scheme. Given I picked up Scheme only a few months ago, I thought it best I do an introduction. Hopefully, I will have opportunity to do more presentations on Scheme, Lisp, and Clojure.

As you can see by the slide deck, I have more than 60 slides to get through in no more than 60 minutes. The idea was a relatively fluid presentation where the slides continued to change as I spoke. I had some technical difficulties, which I admittedly did not handle as well as I could have. The audience was patient with me and we were able to cover all of the material including some Q&A within the allotted one hour.

I do hope the session was of value to those in attendance. I had to leave immediately after the presentation to make it to a ThoughtWorks event and I am not aware of a FeedBack mechanism for the speakers other than twitter activity.

Slide Deck

Introduction to Functional Programming with Scheme

View more presentations from Michael Norton.


Code Samples

Thank you to everyone who gave me permission to use their code samples in my presentation.

The Kata in the presentation is a variation on Roy Osherove's String Calculator Kata. You can find the Scheme Kata results presented in the slide deck on my github.

Scheme Implementation Links

MIT Scheme Page (Download/Installation Instructions)
Dr. Scheme (aka PLT Scheme)
UCB Scheme
Guile (GNU's Embeddable Scheme)

Development Environment Setup

Overview of various Emacs Scheme implementations

SICP Course Materials

SICP Course Page
MIT Tutor (for problem sets listed in MIT Opencourseware 6.001)
SICP Book Info
First videos of the SICP replacement course at MIT via @mfeathers
SICP in HTML
SICP in PDF (direct to pdf link)
    Another version with different formatting (direct PDF link)
    Yet another PDF version with much nicer typesetting (not direct PDF link. courtesy Kevin Taylor)
SICP in MOBI (Reflowable / resizable for the little Kindle)
SICP Lectures
SICP Lecture Videos (alternate source)
SICP In Other Languages
UC Berkeley's Lecture Series on SICP on ITunesU (requires ITunes on Windows or Mac)

SICP Solutions

Here are some links to some (incomplete) SICP solutions.

http://wiki.drewhess.com/wiki/Category:SICP_solutions
http://www.kendyck.com/solutions-to-sicp/
http://community.schemewiki.org/?SICP-Solutions
http://sicp.org.ua/sicp
One persons detailed journey through SICP

Additional Scheme Resources

Simply Scheme: Introducing Computer Science
Practical Common Lisp
How to Design Programs
More: Systems Programming with PLT Scheme
Teach Yourself Scheme in Fixnum Days
Guide: PLT Scheme
Lecture 11: Introduction to Functional Programming and Scheme
Scheme Materails - NU PLT
An Introduction to Scheme and its Implementation - Table of Contents
Programming and Meta Programming in Scheme
Scheme lectures, mostly « programming musings
Scheme (programming language) - Wikipedia, the free encyclopedia