The students will have an opportunity to experiment with a microcomputer network. An introduction to object-oriented analysis, design, and programming. The concepts of objects and classes are presented. The issues of inheritance and polymorphism are studied. A comparison of abstract machines and their physical counterparts, finite state machines, neural networks, regular expressions, Turing machines, the concept of computability and the relationship to machines, digital computers and universal machines.
Mathematical proofs are an integral part of the course.
Computer Science 12 or permission of the instructor. 38 Analysis of Algorithms A study of many of the algorithms and algorithmic design techniques that underpin much of today's computer programming. Among the design techniques covered will be divide and conquer, dynamic programming, local search algorithms, and various forms of organized tree searching. A number of graph algorithms will also be presented including depth-first search, finding minimal spanning trees, shortest paths, and maximal matching. An introductory overview of the technical, practical and philosophical issues involved in the machine simulation of intelligent' behavior.