First Year Seminar - COMP 061: 3D Animation with Computers - Your Cinematic Debut – This course is designed to combine some math, physical science, and computer graphics with the fun and creative aspects of movie making.
First Year Seminar – COMP 080: Enabling Technology – Computers Helping People. Service learning course exploring issues around computers and people with disabilities. Students work with users and experts to develop ideas and content for new technologies. Students have created a wide variety of games for kids with disabilities.
COMP 523: Software Engineering Laboratory – This course gives students an opportunity to look at the broader aspects of building software from start to finish. Small teams design and develop a complete project, ranging from games for the visually impaired or educational games to projects for campus biology labs and production web sites.
COMP550: Algorithms and Analysis – The goal of this class is to present fundamental problem-solving techniques and essential data structures for designing efficient computer algorithms, proving their correctness, and analyzing their performance
(e.g. running time, storage requirement, etc.). These techniques are useful for general problem-solving and optimizing algorithmic performance
for game development. The students will study asymptotic complexity and
mathematical analysis of algorithms, design techniques, data structures,
and possible applications. Each topic will be motivated by an interesting
example, then studied about its basic concepts, and accompanied by analysis.
COMP 590: Serious Games – This course takes a look at designing games for purposes beyond entertainment. Exploration of why games are useful tools and why companies from Cold Stone Creamery to IBM are interested. Teams build a serious game of their own -- typically building on or modding existing games.
COMP 631: Computer Networks – Traditional topics in computer networks, including link layer protocols, switching, IP, TCP, and congestion control. Additional topics may include peer-to-peer infrastructures, network security, and multimedia applications.
COMP 633: Parallel and Distributed Computing – This course provides a broad overview of parallel computing including algorithms, programming models, compilers, hardware, and performance analysis. Games using computationally intensive physics, lighting, and behavioral models that need real-time evaluation often require parallel computing using multiple processor cores or computational accelerators such as GPUs.
COMP 651: Computational Geometry – The study of algorithms and data structures for problems that are best stated geometrically; includes many algorithms and data structures that directly apply to modeling and simulation games, as well as the sort of mathematical puzzles and insights that make games a fun challenge.
COMP 734: Distributed Systems – Design and implementation of distributed computing systems and services. Inter-process communication and protocols; naming and name resolution; security and authentication; scalability; high availability; replication; transactions; group communications; distributed storage systems.
COMP 737: Real-Time Systems – Taxonomy and evolution of real-time systems. Timing constraints. Design, implementation, and analysis of real-time systems. Theory of deterministic scheduling and resource allocation.
COMP 750: Algorithm Analysis – Algorithm complexity. Lower bounds. The classes P, NP, PSPACE, and co-NP; hard and complete problems. Pseudo-polynomial time algorithms. Advanced data structures. Graph-theoretic, number-theoretic, probabilistic, and approximation algorithms.
COMP 768: Physically-Based Modeling, Simulation and Animation –Physically-based modeling and simulation attempts to map a natural phenomena to a computer simulation program. There are two basic processes in this mapping: mathematical modeling and numerical solution.
In this course, we will study various techniques to simulate the physical and mechanical behavior of objects realistically in a visual simulation
and provide the underlying techniques central to building or enhancing an
existing physic engines for games or virtual environments. Students will learn about implementation of basic simulation programs that produce interesting visual effects.
COMP 770: Computer Graphics – The objective of this course is to teach the basic methods and skills for rendering computer graphics images, from modeling of polygons and closed surfaces to simulating the interactions of matter and energy that give rise to images.
COMP 790: Robotics: An Introduction - Robotics is the study of robot design, programming, and control. Typically a robot is refered to as an agent that can be programmed to perform a variety of tasks -- both with and without human intervention. A robot is often manifested and realized by mechanical and electrical components to carry out its actions in the physical world. Robots frequently receive input from noisy sensors, consider geometric and mechanical constraints, and operate in the physical world through imprecise actuators. The design and analysis of robot algorithms and computational elements, therefore, raises a unique combination of questions in computational and differential geometry, algorithm design, control theory, mechanics, computer science, and system engineering.
COMP 790: Motion Planning in Real and Virtual Worlds - Motion is ubiquitous in both the real world and synthetic environments. Representations of motion are central to all computational disciplines that deal with modeling dynamical or kinematic systems in the biological, physical or virtual world. Recently, motion planning techniques are also used in computer games and virtual worlds like Second Life to control the motion of the avatar.
COMP 790: Recent Advances in Medical Robotics and Simulation – New robotic tools are being introduced into clinical practice, enabling physicians to achieve greater precision and accuracy than previously possible when performing surgical and interventional procedures. In this course, we will study robot motion planning and simulation algorithms for medical applications, including diagnosis, pre-operative planning, and intra-operative control of medical devices.
COMP 790 - Distributed Collaboration – Today, collaboration software forms a rapidly growing area in research and industry as the vision of replacing physical travel with computer supported distributed collaboration is being effectively realized by these systems. In this course, we will look at issues in the design, implementation, and evaluation of these systems. In addition, you will learn in-depth several research concepts such as architectures, consistency, collaborative undo/redo, degree of synchrony, awareness, concurrency control, mobile collaboration, quality of service, security, and collaborative filtering. You will gain experience with using, implementing, and evaluating collaboration software; and surveying, writing about and presenting complex concepts.
COMP 832: Multimedia Networking – Multimedia data types such as video and audio are becoming an increasingly important part of the information landscape on the Internet, within distributed gaming, and as part of emerging applications such as virtual environments and telepresence.
COMP 841: Advanced Computer Architecture – Deals with GPU’s and their ancestry – concepts and evolution of computer architecture, machine language syntax and semantics; data representation; naming and addressing; arithmetic; control structures; concurrency; input-output systems and devices.
COMP 870: Advanced Image Synthesis – Advanced topics in rendering, including global illumination, surface models, shading, graphics hardware, image-based rendering, and antialiasing techniques.