CS 313 Topics to study for the final exam ---------------------------------- The final exam will be cumulative, but with emphasis on the second half of the course To review the material for the first half of the course, consult the study guide for the midterm, as well as the exam and its solutions --------------- Review homeworks 5-10 review solution code Review quizzes 1-34 (posted) Review all code examples --------------- Paradigms and sample languages seen so far: know basic features and differences Procedural: Pascal, C OO: Smalltalk, [Ruby] Functional: Scheme, ML, [Haskell] Logic: Prolog [no in-depth knowledge expected for Ruby, Haskell] Overall knowledge of main features of all of these languages Specific topics: Lists in Scheme, ML, Prolog car, cdr, cons (and equivalent in ML, Prolog) anonymous functions, lambda higher-order functions: map, filter, reduce / fold eager vs lazy evaluation ML types curried functions Prolog: facts, rules, queries unification control: rule and goal order cut list functions (in Scheme, ML, Prolog): length, append, reverse Searching (DFS) with Scheme, ML, Prolog in acyclic and cyclic state spaces Basic ("reading") knowledge of: Ruby, Haskell --- types of questions: high-level descriptions / contrasting features of languanges covered code understanding: - what will this code print / evaluate to? basic programming: - write simple functions / predicates Note that your are *not* allowed to interact with any compilers / interpreters / online programs while you complete the exam.