Final Probability Update

This past December, on the fifteenth, I completed the Probability class that I was attending.
We covered Probability from the theoretical (Calculus) and analytical (MATLAB) side of things. In my first foray into theory behind Statistics, I found the relationships between the distributions to be really neat to see, and along with the Calculus, a lot to chew on all at once ;).
Overall it was a lot of fun; I can’t wait to get started with Simulation on the eighteenth.

Mid Term Probability Update

In the first half of the semester in the Probability course I am taking we learned (among other things) how to, given the probability distribution function for any distribution, derive, if possible, the:

Everyone seems to be excited about the second half of the semester when we will start building on this foundation.

Scratch Programming

Scratch is a new programming language that makes it easy to create your own interactive stories, animations, games, music, and art — and share your creations on the web.
Scratch is designed to help young people (ages 8 and up) develop 21st century learning skills. As they create and share Scratch projects, young people learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively.

I wonder how this compared to PLT Worlds.
(via plt)

Tail Recursion is a Brain Hack Not a Compiler Hack

A few months ago this last-in-a-thread-of-posts generated a lot of buzz. In it, the creator of the Python programming language shared his views about how tail-recursion does not belong in Python. The only problem with the post(s) was that he, admittedly, did not understand tail-recursion. This course of events, the blog posts, comments, and aftermath, were interesting in what they revealed:

  1. How one person can affect how so many think
  2. How tail-recursion is so misunderstood within the developer community

The first, of course, is the prerogative of any BDFL. It is sort of fascinating how the edict that he set forth is enough to convince thousands and thousands of Pythonistas that tail-recursion is flawed and unnecessary (that is power!). That is sad, but, it is a privilege of the role. The interesting part is the impact of never understanding tail-recursion (#2): it removes an entire style of abstraction from the developers toolbox.
Here are 3 works that explain that style:

  1. LAMBDA: The Ultimate Imperative
  2. LAMBDA: The Ultimate GOTO
  3. Automata via Macros

I haven’t found any other resources than those and Jon’s post here (see the last section) that touch upon the style. Do you know of any others?

The Difference Between Undergraduate and Graduate School

Today during lunch my friend told me that the difference between undergraduate school and graduate school is that in undergraduate school the teachers are responsible both for telling you what you need to know and teaching it to you, but in graduate school they are only responsible for the former.
What do you think?

How Small Can a Scheme Implementation Be?

How small does it have to be? Chibi Scheme does syntax-rules in 174 lines of Scheme, layered over explicit renaming. Indeed, Chibi does essentially all of R5RS in 4822 lines of C + 708 lines of Scheme.

— John Cowan
Scheme 9 from Empty Space is also very small from what Nils said.
(via this thread in r6rs-discuss, I have the email but can not find the archive of it)

Coding for Humans: Annotated Code View in an IDE

Here is a post where Jordan explains what he wants to accomplish in the DrScheme IDE; basically he wants to be able to customize code in the IDE by annotating it, allow the annotations to be displayed only, while having the code run in mzscheme as expected.
Here is a screencast that he made which demonstrates his goal.
Very interesting!
(via plt)