Midterm
Exam 1 will be an in-class exam, on October 31. The following represents an initial list of topics I may choose from for the exam:

Language Fundamentals
  • Early and Late Binding - When do we know properties of declared symbols?
  • Polymorphism and inheritance - Elements of object oriented programming
  • Functional and imperative programming - Differences in coding style

Java
  • Classes and objects - What are classes and how are objects related to classes?
  • Extends, Superclasses and Subclasses - How does inheritance work?
  • Implements and Interfaces - What is an interface and how is it different from a class?
  • Collection, Collections, and Comparable - How do we use built-in classes and class methods?
  • Casting and Using the Object class - Moving between classes
  • Generics - Types as parameters
  • Iterators - Moving through collections of data

Scheme
  • Lists and atoms - Basic Scheme structures
  • Recursion - Basic recursive structures
  • Search, map, filter, fold - Higher-order functions for common programming patterns
  • Data driven programming - How to use type information at runtime.
  • Lambdas and functions as values - Creating function values
  • Higher-order programming - Functions as parameters

Language Comparisons
  • Higher-order programming and Classes - How do they accomplish the same thing in different ways?
  • Early vs. Late binding - How do these features relate to generics, the object class and higher-order functions?
  • Scheme data types vs. Java classes - Representing data in different ways
  • Data driven vs. object oriented programming - How do they accomplish similar things?
  • Functional vs. Imperative programming - Basic style differences between Scheme and Java.


I will ask you to write some code on the exam. I do not care about syntax, so don't spend your time worrying about learning syntax rules.

Study your class notes - they are the best indicator of what will be asked.

Get some sleep. If you've come to class, done your homeworks, and done your projects, you should do fine on th exam.


Final
The final exam will be offered during the finals period assigned to the course by the University.