# teaching machines

## CS 330: Lecture 26 – Ways of Making Functions: Composition and Lambdas

Dear students: There are at least four ways of defining functions in Haskell: by defining a named abstraction of some algorithm by partially applying parameters to an existing function to get a new function expecting only the remaining parameters by composing a gauntlet of functions together by defining unnamed lambdas We’ve seen the first two. […]

## CS 318: Lab 19 – Forms

Dear students, Thus far we have focused on one half of the communication process: the “speaking” of our ideas to our sites’ visitors. Generally this is not enough. We would like to hear back from our visitors. We want them to join a mailing list, make an order, contribute an idea, vote, and who knows […]

## CS 330: Lecture 25 – Ways of Making Functions: Composition

Dear students: Let’s warm back up to Haskell by writing some functions to review the ideas we’ve seen in Haskell so far. Here’s our first: Given three points in 2D space, find a fourth which forms a parallelogram. There are many possible answers to this. The trick is to find the vector between two of […]

## CS 318: Lab 18 – Tabbed Viewing

Dear students, Last time we started implementing dropdown menus. We decided to continue that effort today, though I do want to add one extra and related exercised: a tabbed viewer. Here’s your TODO list: Breathe easy! See you next time! Sincerely, Lab First, we finish up our lab 17 exercise on switching between small and […]

## CS 330: Lecture 24 – Local Variables, Lists, and Pattern Matching

Let’s write a function. Turn to a neighbor and discuss how you’d solve this: You are given two points. On the perimeter of what circle do both points lie? Write things down and draw pictures to help your thinking. A very natural thing to do is start off with something like this: circletween :: Double […]

## CS 318: Lab 17 – Hamburger Menus

Dear students, Today’s lab is designed around something I saw in a lot of your mockups: dropdown navigation menus. There aren’t a lot of new ideas here, but application of old ones. So, I won’t talk much. However, in this lab we start to incorporate a few of the pseudoclass selectors that you met in […]

## CS 330: Lecture 23 – Haskell

Dear students, This class has hit upon two overall themes so far this semester. The first theme was the recognition and interpretation of a programming language. The second theme was types, which brought with it ideas about object orientation and static vs. dynamic decision-making. The third theme of the semester is functional programming, which has […]

## CS 318: Lab 16 – 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 318: WordPress for the Rest of Semester

Your task for April and May is to extend the style of your blog with some CSS and write six posts about topics of your choosing. By the end of the semester you should have a total of 15 posts. The posts don’t need to be long. Feel free to share poetry, a photo diary, […]

## CS 318: Project Prototype – due April 23

Your next milestone in the project is to create a digital prototype for your site. You will present this prototype to randomly assigned classmates for an initial evaluation. Task 1: Create a Prototype Create a first draft of your site in a folder named prototype1 in your GitHub project. Name this directory exactly; no spaces, […]

1 2 3 4 5 10