CSC 395 (Fall 2021)

Lab: Introduction to Haskell

About Labs

In this course, the bulk of our learning will come from our lab work which will conducted in groups of 2–3. For consistency’s sake, we will maintain the same groups throughout the week with all of the week’s labs due on Saturday.

Because of the interdisciplinary nature of this course, lab will consist of both discussion and programming exercises, so please be prepared to turn in either PDFs (of discussion notes and thoughts) or code as needed. To produce PDFs, I recommend using a shared document service such as Office 365 Word or HackMD that can either output or print to PDF. Someone in your group should take responsibility each day for (a) turning in this document and (b) sending everyone copies of the completed work (if it is not already shared).

Example: Unsoundness of Java’s Type System

During today’s discussion, we will briefly discuss Amin and Tate’s work on showing the unsoundness of Java and Scala’s type systems.

The bad code snippet introduced in the paper can be found here if you would like to check it out on your own:

Finger Exercises

In this course, we will use the Haskell programming language as:

For this lab, download and complete the following Haskell file with your group:

Turning in a completed copy of your work to Gradescope.