Students in this course study how computer networks work and why they have been designed as we know them. The course covers descriptive material on network architectures and protocols, as well as network performance evaluation and protocol implementation. This course builds on the introduction to the theory of computing provided in the course Foundations of Computer Science. It discusses finite automata, formal languages, Turing Machines, and computability theory at an advanced level. This course surveys methods for programming computers to behave intelligently.
Topics inlcude syntax, semantics, pragmatics, and knowledge representation.
This course presents problems and solution methods for machine learning in a variety of contexts, such as inductive inference, statistical learning, explanation-based learning, genetic algorithms, and neural networks, and prepares the student to do research in this field. This course enables the faculty to offer courses in advanced topics which are not offered on a regular basis. Prerequisites will vary according to the specific topic being studied.