Hi There!

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

Final Exam Study Guide

The following topics are fair game for the final:

  • Readably vs. Writability vs. Maintainability
  • Programming language paradigms (focus on imperative vs. functional)
  • Syntax
    • BNF
    • Operator precedence
  • Memory allocation
    • Heap
    • Stack
    • Garbage collection
  •  Scope
    • Names and bindings
    • Information hiding
    • Static scope
    • Declaration scope
    • Modules
    • Dynamic scope
    • Aliases
    • Overloading
  • Types
    • Views of types (definitions)
    • Classes and kinds of types / their properties
    • Boxing/unboxing
    • Type conversion
    • Type equivalence
    • Type compatibility
    • Determining types (type inference)
  • Programming language features
    • Cons cells
    • Pointers
    • Data-is-code-is-data
    • Control structures
  • Object Oriented Programming
    • Class vs. instance variables/methods
    • Multiple inheritance (incl. diamond problem and solutions to it)
    • Mixins and traits
    • Information hiding
  • Scripting Languages + DSLs
    • What characterizes them?
    • Turing completeness of DSLs

 

Questions about what code does are fair game in:

  • Java
  • C
  • Clojure
  • Haskell
  • Prolog
  • Python
  • Pseudocode styles as used in class

You should be sure that you can do any of the kinds of tasks we worked out together in class.