CS101 Final Exam #3 Topics

The final exam will be a take home exam.  It will be posted online Monday at 4:00 PM and you will have until Tuesday at 4:00 PM to turn it in via Blackboard (just like you are submitting a homework assignment).    There will be some short answer questions and mostly programs to write in Alice.  I will be available for any questions during the final exam period of 1:00 - 4:00 PM if any question is unclear.

The final exam is really a third midterm.  It is worth the same amount as the other midterms and only covers material since the second midterm.

Theory of Computation

• Understand what a finite state automaton is;
• Given a finite state automaton, describe what it is doing
• Given a problem, create a finite state automaton to model it
• Understand what a grammar is;
• Given a grammar, describe what it is doing, i.e. what sentences are in the grammar
• Concept of a Turing Machine
• Equivalence of a turing machine to a computer
• The Halting Problem and why it is unsolvable
• What does it mean for a problem to be in class P or in class NP

Artificial Intelligence

• Know what the Turing Test is
• The Physical Symbol hypothesis
• Concept of state space search
• Searching for a solution to the water jug problem
• How computers play games like chess by looking ahead multiple moves
• Concept of a neural network
• Concept behind genetic algorithms

Alice

• Understanding the Alice IDE (the program) with the different windows for events, properties, object tree, etc.
• Generating a sequence of instructions corresponding to a scene
• Basic methods for each object (move, turn, roll) from perspective of the object
• Properties of objects
• Flowcharts
• Storyboards
• Using mathematical expressions
• Functions on the world object and other objects
• distance to, <, >, ==, etc.
• If-else statements
• Using relational operators from the world function
• Loop and While
• Nested blocks (blocks within blocks, e.g. an if statement inside a loop)
• Random numbers
• Concept of inheritance
• Creating methods
• Where methods should be created, world vs. object
• Using parameters with a method; specifying the type; sending in values for the parameters when invoking the method
• Multiple parameters
• Creating and using events