Dine in or take out: it's all free
One of the more amazing and wonderful things about the internet is the sheer volume of information available for free. And just like going to a friend’s party, one way to show appreciation is to partake of the feast prepared in honor of the guests. But a lot of the time it’s more like a grocery store than a nice restaurant. Lots of food but not the place to savor the cooking. Once in a while, though, you happen across a gem.
Since everyone has a different background, we’re all learning at our own rates. If you’ve always wanted to understand more about declarative versus imperative languages, syntactic sugar, dynamic versus static typing, tail recursion, lazy evaluation, currying, concurrency, exceptions, computation models, polymorphism, etc. and you’d like to learn about it in a comprehensive, integrated fashion, then definitely grab a copy of Concepts, Techniques, and Models of Computer Programming, here’s a direct link to the pdf. The book teaches the main concepts of computer science using the Mozart Programming System based on the Oz programming language.
Now, for the fun part. If you’re using OS X and have ports installed, getting the Mozart system is as easy as:
sudo port install mozart
There, you’re ready to dive right in. However, one thing will make your experience much easier. Install Aquamacs: Emacs for OS X. Mozart will use it if it finds it, and for me it’s a nicer experience than Emacs in iTerm.
1 Response to “Dine in or take out: it's all free”
Sorry, comments are closed for this article.
November 6th, 2006 at 06:50 AM
I took a class for my CS undergrad called “Comparative Programming Languages” it was an elective, and the first time they offered the class in a number of years (they haven’t offered it since). It’s kind of sad, because it was the most enlightening and fun class I took. The textbook was “Concepts of Programming Languages” by Robert W. Sebesta, and it covered similar topics. It really should be a required course for CS, because it allows you to step back and view the patterns and concepts in programming languages as a whole. I highly recommend Sebesta’s book. It has interviews with many of the designers of programming languages.
November 6th, 2006 at 09:54 AM
Paul, thanks for the recommendation. The book sounds interesting. When I was a CS major, I don’t recall any courses like the one you mentioned, unfortunately.
I agree about the value of an overview. One of the most helpful aspects of the CTM book is talking about programming in terms of computation models. IMO, the book is very accessible if you have a even a little programming experience and are willing to devote time to it.