Hi There!

I'm Dan Schlegel, an Associate Professor in the Computer Science Department at SUNY Oswego

Midterm Exam Study Guide

Below is an outline of the concepts covered during the course so far. While all topics are fair game for the exam, this should provide an outline for studying.

  •  Concepts
    • Basic PL concepts
      • Compiler vs. Interpreter
    • Syntax
      • BNF
      • Orthogonality
    • Memory allocation
      • Stack / heap
      • Avoiding common memory / security issues
    • Type systems
      • Weak vs. Strong
      • Static vs. Dynamic
      • Type conversion / coercion / punning
      • Optional type
    • Functional programming concepts
      • Lambdas, lambda calculus
      • Reduction as a method for evaluation
      • Higher order functions
      • Immutability
      • Pure functions (side-effect free)
      • Code is data is code
      • Propositions as types
  •  Languages
    • C and Clojure

Expect questions to cover concepts, things we’ve done in class, and things which have been explored in projects. Questions comparing how language features are exposed in different programming languages are always fair game. For C and Clojure, expect “what does this code do?” or “what is wrong with this code?” style questions, rather than questions where I make you write code.