CS 330 Lecture 22 – Ways to Define Functions: Partial Evaluation
Dear students, There are at least four ways of defining functions in Haskell: by defining a named function by partially applying parameters to get a new function expecting only the remaining parameters by composing a gauntlet of functions together by defining unnamed lambdas A good first question to ask is this: why do we need […]
CS 330 Lecture 21 – More Recursion and Pattern Matching
Dear students, Today we solve more problems in Haskell together. Along the way we will discover some of the peculiarities of functional programming, like the lack of iteration, the supremacy of recursion, and the beauty of pattern matching: Here are the problems we’ll solve: Last time we started to write a function to determine if […]
CS 318 Lab 15 – Tables
Dear students, Today we explore the HTML table element. At its core, a table is just a grid of rows and columns. It supports headers, borders, and cells that extend across multiple columns and multiple rows. Before div and CSS positioning came along, tables were the primary vehicle for structuring a page. It was awful. […]
CS 330 Homework – Wasd – due before May 15
See the PDF.
CS 330 Lecture 20 – Recursion, Cases, and Pattern Matching
Dear students, Today we solve more problems in Haskell together. Along the way we will discover some of the peculiarities of functional programming, like the lack of iteration, the supremacy of recursion, and the beauty of pattern matching: Here is an exercise that I ask you to complete with a neighbor: Collatz The first number […]
CS 330 Homework – Nogramming – due before May 15
See the PDF.
CS 318 Lab 14 – Web Jam
Dear students, Let’s shake things up a bit today. When game developers get together to build a game in a very short amount of time, they call that a game jam. We will have a web jam. I want to devote all of today’s lab time to that, so I won’t be doing any talking. […]
CS 330 Lecture 19 – Functions and Lists
Dear students, Today we solve more problems in Haskell together. Along the way we will discover some of the peculiarities of functional programming, like the supremacy of linked lists. First, an exercise to complete with a neighbor: Parallelogram Write a function pcomplete that completes a parallelogram. Suppose you are given three points in 2D space. […]
CS 330 Lecture 18 – Haskell
Dear students, Today we begin our foray in the Haskell language, which is very different from the Java and C that you have been steeped in. I want to introduce its craziness by just solving some problems. We’ll see what we encounter. Here are the tasks I will ask you to complete with a neighbor: […]
CS 318 Lab 13 – Responsive Design
Dear students, Today we begin our investigation into responsive design, of which designer Ethan Marcotte had this to say: Recently, an emergent discipline called “responsive architecture” has begun asking how physical spaces can respond to the presence of people passing through them. Through a combination of embedded robotics and tensile materials, architects are experimenting with […]