Enzo Alda is the founder of Lakebolt Research, a firm focused on end-user computing. Formerly, he held roles at technology startups and large organizations like Oracle, Bloomberg, and Google.
Before coming to the U.S., Mr. Alda lectured courses in compiler construction and programming language design. He holds degrees in Software Engineering, Computer Science, and an MBA. Mr. Alda joined the IEEE in 1999 and the ACM in 2013.
LinkedIn ProfileVisiCalc was released on October 17, 1979, and instantly became the killer app that ignited the personal computing revolution. 45 years later, spreadsheets are still the most popular computing tool in the world, yet practitioners don’t think of themselves as a doing "programming work." Computer science researchers, however, have long recognized spreadsheet modeling as a form of programming.
Our talk illustrates the virtues of spreadsheet computing along with some unfortunate choices made at the inception and during the evolution of that paradigm. We show how a relatively minor extension to Christopher Strachey's traditional model of computation replicates the behavior of spreadsheets and paves the way to extend their expressiveness. The result is a computing environment amenable to a wide-spectrum of users, from K-12 students to spreadsheet practitioners and software engineers.
Monte Carlo simulations are an important computing technique in science, engineering, and business. Originally employed to perform complex calculations required for the development of nuclear weapons (Manhattan Project), Monte Carlo methods have found multiple uses in fields as diverse as physics, chemistry, telecommunications, virology, marketing, and finance. They are also useful in educational settings, helping students develop statistical intuition and a better understanding of well-known results, like the law of large numbers and the central limit theorem.
We introduce the topic and demonstrate how to implement Monte Carlo simulations in a functional programming language, like Haskell, as well as a higher-order functional spreadsheet, like ZenSheet.
We show, with a live demonstration, how a functional reactive computing environment can be used effectively in programming education. Part of the presentation is an experience report describing still ongoing experiments started early last year, aimed at modernizing a Programming 101 course for engineers. These experiments are testing ideas presented at last year‘s ITPC.
Exploiting the commonality of simple expressions across most languages, we manage to build a multi-paradigm education experience centered on programming language concepts, rather than language specific details. Our results show better student engagement and confidence. A new curriculum is already taking shape as a consequence of this work.
The advent of the information age inevitably put traditional school systems around the planet in a bind. New terms, like digital literacy and computational thinking, were coined to help form our nascent understanding of the issues. There is a lot of debate going on: we started experimenting ideas not long ago and the science is still very young, with just a few comparative studies. We have a lot to learn.
Whether, when, and how to teach programming is part of that debate. For instance, block coding and the illusion of “syntax free” programming was, and still is, touted by many as the way to teach programming. Yet, it turns out it falls short on its promise. That is just one data point in the saga. Combining the ideas of Douglas Engelbart, Stephen Wolfram, and others with our own experience, we propose and demonstrate a “natural path” to learning computational thinking and programming.