Hello everyone, author here. Sorry for forgetting to enable billing on appengine - the page should be displaying now. I shared Interactive SICP with HN last year ( https://news.ycombinator.com/item?id=4860370 ), and thought it was time to share it again. Since that time, I've - added more sections of the book - replaced the javascript scheme engine - added mathjax - made the evaluation asynchronous (to avoid freezing…
Thanks for making this! It seems like I can't skip ahead to further chapters and start working through it there - for instance if I start here: http://xuanji.appspot.com/isicp/3-0-modularity-objects-and-s... and click the right arrow, it brings me back to the beginning. Is that by design to enforce that I work my way through from the very beginning? One reason I'd like to start mid-way is I've read this book a number…
Interactive SICP
11–20 of 34 posts
Re: Interactive SICP
#12http://worrydream.com/LearnableProgramming/
While an inline interactive Scheme interpreter does make the SICP examples easier to follow and play with, it doesn't by itself make the content more understandable and learnable.
A "learning environment for SICP", with the principles of learnability and understandability in Victor's article applied, would be very beneficial for present day learners. It surely is a lot of work, but would be an interesting route for your project to take.
Re: Interactive SICP
#13Re: Interactive SICP
#14I wonder if you are familiar with Bret Victor's elaborate criticism of Khan Academy's live coding environment. This effort looks like it could really benefit from its insights. http://worrydream.com/LearnableProgramming/ While an inline interactive Scheme interpreter does make the SICP examples easier to follow and play with, it doesn't by itself make the content more understandable and learnable. A "learning environ…
In Bret Victor's terms, the scheme used in SICP has very little "vocabulary" to learn to read. The first section (which I linked) uses only arithmetic functions and `if` to teach you, well, how to program. And the "show flow" examples emphasize mutation of variables through time, while scheme uses recursion in place of loops. I think something that shows the function calls explicitly would be good, or at least something that shows the flow of function call (like the DrRacket debugger).
At the risk of generalizing, Bret Victor deals with things like graphics, animations and simulations, while SICP treats programming like a branch of pure math, and it's not straightforward reconciling the two.
I'd love to talk more about this with you though!
Re: Interactive SICP
#15I have to admit I'm probably going to love this quite a bit. I'm a sysadmin who has dabbled in scripting languages and a little bit of c, python, and perl, but other than that my programming always kinda scared me off. I read the wizard book for the first time last year and it has absolutely helped me gain a new understanding of just about everything I do in daily work and has helped remove my programming fears. If t…
Re: Interactive SICP
#16I wonder if you are familiar with Bret Victor's elaborate criticism of Khan Academy's live coding environment. This effort looks like it could really benefit from its insights. http://worrydream.com/LearnableProgramming/ While an inline interactive Scheme interpreter does make the SICP examples easier to follow and play with, it doesn't by itself make the content more understandable and learnable. A "learning environ…
I've definitely read that particular link and thought hard about how SICP should be written for a live coding environment. I don't think either the original SICP or Bret Victor will be the last word on this matter. In Bret Victor's terms, the scheme used in SICP has very little "vocabulary" to learn to read. The first section (which I linked) uses only arithmetic functions and `if` to teach you, well, how to program.…
One thing I'm more or less certain about is that it would entail less live coding, and more stepping through visualized execution states (perhaps similar to pythontutor.com's visualizer).
I will be going through SICP with these in mind in the following weeks/months; I will keep you posted if I end up with notes that I think you might find useful.
Re: Interactive SICP
#17Hello everyone, author here. Sorry for forgetting to enable billing on appengine - the page should be displaying now. I shared Interactive SICP with HN last year ( https://news.ycombinator.com/item?id=4860370 ), and thought it was time to share it again. Since that time, I've - added more sections of the book - replaced the javascript scheme engine - added mathjax - made the evaluation asynchronous (to avoid freezing…
Re: Interactive SICP
#18Great work, and very useful.
Re: Interactive SICP
#19Hello everyone, author here. Sorry for forgetting to enable billing on appengine - the page should be displaying now. I shared Interactive SICP with HN last year ( https://news.ycombinator.com/item?id=4860370 ), and thought it was time to share it again. Since that time, I've - added more sections of the book - replaced the javascript scheme engine - added mathjax - made the evaluation asynchronous (to avoid freezing…
Re: Interactive SICP
#20I have to admit I'm probably going to love this quite a bit. I'm a sysadmin who has dabbled in scripting languages and a little bit of c, python, and perl, but other than that my programming always kinda scared me off. I read the wizard book for the first time last year and it has absolutely helped me gain a new understanding of just about everything I do in daily work and has helped remove my programming fears. If t…
Hello! I'm the author - what improvements would you like to see in the built-in interpreter?
One idea though, where you have the green box that can be hidden, it would be nice to have an interpreter box there, to mess around with as one goes through (and keep it persistent between pages). That way, if someone just wants to mess with the text already entered on the page, they can, but if they are like me and like retyping things (a form of mental note-taking) they could do that too.
I know at first the main issue I found with lisp was that I didn't know how to get an environment going to just mess around with, and having something like that might be useful to provide a standalone from the iSICP (or it might not).
Overall, very impressive, good stuff.