Review Guide
The final examination will be held in HAS 228, Tuesday May 7, 1996 at 8:30 a.m. This examination will be comprehensive. You should be prepared to answer questions on any of the 14 topic areas covered in this course. When you prepare for the final, you should try to focus on the relationships between the topic areas.
You should be familiar with the definitions of all terms used in these areas, for example what an algorithm is, Scheme syntax, Scheme evaluation rule, Scheme special syntax (define, lambda, quote, set! if, and, or, let, let*, ...), recursion, tail recursion, continuation, memory, processor, Von Neuman bottleneck, cpu machine cycle, complement arithmetic, fixed point, floating point, exact numbers, inexact numbers, radix, number conversions and the circuit elements and, or, not.
You should be familiar with the definitions of an algorithm, order notation, abstract data structure, top-down system design, object oriented programming. You should be able to perform simple algorithm analysis of any of the algorithms studied in this course and know the differences between recursive and iterative processes.
You should be familiar with the definitions of inductive specification, Backus Naur form, bound variables, free variables, order notation, polynomial exeuction time, tractable and intractable computation, Von Neuman machines, Harvard machines, caches, pipeline architecture, SIMD and MIMD machines, associative memories.
You should be familiar with the various network structures, such as the bus network, ring network and star network and their different strategies for sending messages between any two nodes in the network.
You might be asked to read a simple Scheme verb which would illustrate some aspect of recursion or iteration. Such reading would include being able to predict the result of using the verb in a sentence with suitable objects.
You should be able to convert numbers from one representation to another and setup small constant values in each representation.
Given a simple circuit diagram, you should be able to figure out the outputs corresponding to each possible input. You should be able to wire two circuit elements together.
You should understand the organization and operation of a Turing machine as a conceptual model of computation.
You should be familiar with a simple memory model of the human memory system which can be used to construct databases of facts and relationships. You should know what an expert system is and they might be used to aid human beings make decisions. You should be familiar with some of the philosophical questions and tests which have been produced by research in artificial intelligence.