What is proof (technically, not philosophically)? What can you do with a secret? What is entropy? Must god throw dice? Come on a journey of math, physics, and computation as we pull ourselves up by our bootstraps to answer these questions and more.
There are two Bootstrapping workshops, the Base workshop and the Advanced Track workshop. Enrollment in the Base workshop is required for enrollment in the Advanced Track workshop.
The Base workshop meets on Wednesdays 3rd period. The normal workshop drop/add deadline applies. It gets you out of options once per week.
The requirements are to arrive on time, to give feedback on the class by completing the given feedback form as specified, and to be ready to learn!
The Advanced Track workshop does not meet. Instead, there is one assignment for each weekly meeting of the Base workshop, posted in Practice (with related submission instructions). If you would like to drop/add this workshop after the normal deadline (and are in the Base workshop), let me know. It gets you out of options twice per week.
The requirement is to complete the weekly assignments as they are specified. Typically, the deadline is Friday end of day of the week containing the class to which the assignment corresponds.
We focus on Functional Programming, first going over foundations, and then diving into Haskell. Once we have familiarized ourselves with Haskell and to the functional programming paradigm, we will take things one step further, with the language Agda, which has similar syntax as Haskell. With Agda, we will explore how formal mathematical proofs can be written so that their correctness can be checked by a computer and recognize this fundamental connection between proof and computation known as the Curry-Howard Correspondence.
Students in the Advanced Track will solve short programming and related problem-solving assignments and will see first hand the beauty and concision of functional programming.
We move on to the internet, considering the way that it is structured and controlled, covering things such as the internet protocol stack, the domain name system, and cryptography. This may segue to explorations of algorithms, complexity, abstract algebra, and number theory, according to student interest.
If there is interest, students in the Advanced Track will build their own static (html/css/js) websites using GitHub Pages.
According to student interest, we may dive into the connections and applications of physics to computation by exploring the relation of thermodynamics and information theory, and between quantum mechanics and quantum computation.
sitemap