Homework will be assigned every other week. Unless
otherwise noted, all homework is due at the beginning of
class on Thursday of the following week. If the due date
is a holiday and KU offices are closed, the due date
becomes the next class period. Late homework is not
accepted.
Virtually all homework assigments involve programming and lead up to the development of a major project. Generally, each language paradigm will have two associated homeworks and one associated project.
You must turn in 70% of your homework assignments on time to receive a passing grade in the course. If you have a valid excuse for being late, a new due date will be assigned.
Virtually all homework assigments involve programming and lead up to the development of a major project. Generally, each language paradigm will have two associated homeworks and one associated project.
You must turn in 70% of your homework assignments on time to receive a passing grade in the course. If you have a valid excuse for being late, a new due date will be assigned.
You are required to stop by my office during office
hours and introduce yourself.
Basic Java progamming. Emphasis on class definition and
manipulation. Due September 5 before class.
ntroduction to using built-in Java classes and
interfaces. Introduction to iterators. You will modify
your solution to Homework 1 to use Java's Collection
interface and Collections class. Revised due date -
September 15 before class.
Basic Scheme functions. Lots of list traversal and
manipulation. Implementation of basic filters, maps,
folds, and finds as well as higher-order equivalents.
Due 10/15 before class.
More advanced Scheme functions for manipulating trees,
generating curried functions, and elaborating abstract
syntax. Due 10/22 before class.
Some basic Haskell functions similar to what we
initially wrote for Scheme. Definitions for shape
types and functions similar to those from the Java
implementation
More Haskell functions and using type classes to define
standard functions.