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 441 Artificial Intelligence

Goal:

The goal of this course is to give students a familiarity with basic techniques of artificial intelligence as well as an appreciation of the history of the development of the techniques. Some of the basic topics to be covered include: history of AI, problem-solving and search, knowledge representation, automated reasoning, learning and reasoning under uncertainty, neural networks, genetic algorithms, reinforcement learning, natural-language processing, computer vision, robotics, and various philosophies of AI.


CS 313 AI and Game Design

Goal:

The goal of this course is to teach the principles of computer game design for computer scientists and to elucidate the important role that AI techniques play in game design and development. Although computer game design is not a part of the traditional computer science curriculum, computer games have come to play a significant role in education, training, modeling, and research into human cognition. As a result it has become critical that computer scientists have some exposure to the methodologies and techniques that utilize advanced computing technologies. In this course the student will learn the basic principles of computer game design, the most popular techniques and technologies for game implementation, and the many ways in which advances in computer graphics and artificial intelligence influence game design. The course will consist of lectures and laboratory work. Students will have to complete required readings, homework assignments, a midterm exam, and a term project consisting of the design and implementation of an AI for a computer game. Each student will be required to write a final project report and give a presentation on their work.


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.