CSC153 2004S, Class 41: Scheme Lists Admin: * Homework 6 due. * Should Saul turn in crap today or better stuff tomorrow? It's up to Saul. Maximize (gradeFor(crap) vs. gradeFor(notCrap)-10points) * "Computers in the Humanities" talk Friday at noon in 2424. Free pizza! Extra credit! * Visitor Friday. Fun fun fun! * Exam 3 distributed. * Sam's work queue: * Finish sample code for CSC362 * Plan for Friday's talk * Do reading for Friday's TEC154 class * Plan Friday Tutorial talk * Clean office slightly * Grade CSC153 * Saul has a story ... Once upon a time, Saul decided to show up for his PolySci class. Moral: It sucks to be a Grinnell teacher. Overview: * Scheme lists /Scheme lists/ * Basic idea: A series of things; * Key operations: car, cdr, cons, null, null? * Applications already known * Implementation: A bunch of pairs, the second element of which points to the next pair * How do we represent the key operations in Java *without focusing on implementation* See SchemeList.java * What's the difference between an interface, an abstract class, and a class * Class: Can include * constructors * object fields * class fields * object methods (which must be defined) * class methods * destructors * Interfaces: Can only include * headers of object methods * Abstract classes: A compromise * Like classes * Not all methods need definitions/some can just have headers * Classes can only extend from one class * Classes can implement multiple interfaces