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 through the end of class on 9/28. While all topics are fair game for the exam, this should provide an outline for studying.

  • Concepts
    • How PLs Work
      • Compiler vs. Interpreter
      • Stages of compilation (what they are, what they do)
    • Syntax
      • BNF (parse trees, ambiguous vs. non-ambiguous grammars)
    • Memory allocation
      • Stack / heap
      • Avoiding common memory / security issues
    • Functional programming concepts
      • Lambdas, lambda calculus
      • Reduction as a method for evaluation
      • Higher order functions
      • Immutability
      • Pure functions (side-effect free)
      • Homoiconicity of data and code
  • 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?” style questions, as well as some short code writing problems (single lines of code, or tiny functions using common language constructs you have definitely used a few times in class and/or in your project).