Current Courses

CS 350 Algorithms and Complexity

Prereq: CS 252 (Computational Structures) or equivalent

Catalog Description:
Techniques for the design and analysis of algorithms. Case studies of existing algorithms (sorting, searching, graph algorithms, dynamic programming, matrix multiplication, fast Fourier transform). NP-Completeness.

Goal:
The goal of this course is to give students an introduction to the design, analysis and implementation of algorithms at the undergraduate level. The following topics will include: mathematical foundations, some elementary data structures, sorting and searching algorithms, graph algorithms, algorithmic design paradigms, and an introduction to NP-completeness. If time permits, we will cover some elementary computational geometry algorithms.

CS 510 Machine Learning

Prereq: CS 441: Artifical Intelligence; STAT 451 Applied Statistics for Scientists and Engineers; Programming experience in C, C++, Java or Lisp.

Catalog Description:
Introduction to the theory and practice of machine learning with emphasis on fundamental techniques, including concept learning, decision tree methods, artificial neural networks, Bayesian learning, genetic algorithms, and reinforcement learning.

Goal:
The goal of this course is to give students an introduction to the theory and practice of machine learning. The course will include the following topics: hypothesis estimation and statistical sampling theory, concept learning, decision tree learning, artificial neural networks, Bayesian learning, instance learning, genetic algorithms, and reinforcement learning.

CS 410/510 Artificial Intelligence and Computer Games

Prereq: CS 441: Artifical Intelligence; CS 447, 448: Computer GRaphics I, II (desired); Programming experience in C, C++, Java or Lisp; Experience with Visual Basic is helpful. Permission of the Instructor.

Catalog Description:
Introduction to the theory and practice of computer game design with emphasis on the role of AI techniques in game design and development.

Goal:
The goal of this course is to teach the principles of computer game design and to elucidate the role that Artifical Intelligence techniques play in game design and development. The course will include the following topics: computer game design fundamentals, analysis of gameplay, modeling reality, emergence, design of game elements, multi-player, AI agents.

CS 510 Interactive Games and Cognition

Prereq: CS 441: Artifical Intelligence; Programming experience in C, C++, Java or Lisp; Permission of the Instructor.

Catalog Description:
Research seminar on the role of computer games in the development and understanding of human cognition.

Goal:
The goal of this research seminar is to gain a deeper understanding of the ways in which computing and information technologies, information theory, machine learning, data mining, and game design impact learning in children. In addition to coverage of the broad principles, a number of specific topics will be addressed, including: (1) information-theoretic measures of a learner knowledge state; (2) automorphic structures in learning styles and problem-solving approaches; (3) interpretation of metacognitive operators in the context of gameplay; (4) measuring inductive bias in a learner's gameplay; (5) co-evolution in cooperative games; and (6) data mining cognitive profiles. In all cases, we will study formal representations and mathematical models for the underlying concepts and cognitive functions.