Accelerated BS/MS
Computer Science
Degrees and Certificates
-
Computer Science, -
Digital Art and Animation, Bachelor of Fine Arts -
Computer Science, Bachelor of Science -
Computer Science and Digital Audio, Bachelor of Science -
Computer Science and Game Design, Bachelor of Science -
Computer Science in Artificial Intelligence, Bachelor of Science -
Computer Science in Real-Time Interactive Simulation, Bachelor of Science -
Computer Science, Master of Science -
Computer Science, Minor
Courses
CS 100: Computer Environment
Credits 4This course provides a detailed examination of the fundamental elements on which computers are based. Topics include number systems and arithmetic computations, electricity and basic circuits, logic circuits, memory, computer architectures, serial communication, pulse width modulation and operating systems. Additionally, operational code and assembly languages are discussed and then implemented on a hardware platform.
CS 115: Introduction to Scripting and Programming
Credits 3This course introduces programming environments to students who are not experienced programmers. This course covers simple logic, programming flow, and the use of variables. It introduces students to the history of programming and the basic vocabulary of the programming industry. The course culminates in a series of hands-on exercises using this knowledge to solve problems. At his or her discretion, the instructor may cover special topics in programming or scripting.
CS 116: Introduction to Computer Technology and Programming
Credits 4This course introduces programming environments to students who are not enrolled in a science degree program at DigiPen. The course provides students with an introductory overview of the fundamental elements on which computers are based, including basic computer hardware systems, operations, and structures. An introduction to basic programming includes simple logic, programming flow, loops, variables, and arrays. Conditionals, evaluations, and other control structures are also included. The instructor may cover special topics in programming or scripting and may focus on currently popular scripting languages in the video game industry.
CS 120: High-Level Programming I: The C Programming Language
Credits 4This course covers the fundamentals of programming in C. It focusses on developing a deep understanding of the structured programming concepts and practices. Topics include variables, data types, functions, control structures, pointers, strings, arrays, and dynamic allocation principles.
CS 165: Programming Foundations
Credits 4This course expands on basic programming skills through an exploration of object-oriented programming techniques. Topics may include classes, inheritance, interfaces, polymorphism, and data structures.
CS 170: High-Level Programming II: The C++ Programming Language
Credits 4This course covers the fundamentals of programming in C++. n
It focusses on developing an understanding of object-oriented concepts and principles. Topics include classes, operator overloading, function and class templates, composition, inheritance, and introduction to standard libraries such as containers and algorithms.
CS 174: Audio Scripting
Credits 3This course covers concepts and implementation strategies for using a high-level scripting language to achieve complex audio behavior in game development. Topics include principles of analog and digital audio, psychoacoustics, and programming.
CS 176: Advanced Scripting
Credits 3This course explores programming concepts for game designers in the context of developing video games. Topics covered include architecture patterns, advanced character controllers, cameras, and custom systems designed for versatility and scalability. Additional topics may include game testing automation, and networking.
CS 180: Operating Systems I: Man-Machine Interface
Credits 3This course focusses on dynamic trio of virtualization, concurrency, and persistence that powers modern computing systems. The course is designed to explore various operating system related topics like, virtualization, processes, threads, context switching, synchronization, scheduling, and virtual memory management algorithms. Additionally, it also focuses on the intricacies of file systems & disk management, unravelling the computer system'92s inner workings.
CS 185: C++ for Designers
Credits 3This course introduces the C++ language with particular emphasis on its object-oriented features. Topics covered include differences between scripting languages and C++, data types, namespaces, classes, inheritance, polymorphism, templates, and fundamental STL components.
CS 200: Computer Graphics I
Credits 3This course presents fundamental mathematical elements, data structures, and algorithms useful for animating and viewing 2D primitives. The course aims to fulfill two objectives. The first objective is to provide students with a sufficient mathematical and algorithmic background to design and implement 2D graphics applications. The second objective is to prepare students with the knowledge required for writing 3D graphics applications. The first half of the course deals with scan-conversion algorithms for rasterizing 2D primitives such as lines, circles, ellipses, triangles, and arbitrary polygons. The second half of the course is concerned with the viewing and animation of these 2D primitives. The course covers topics such as interpolation techniques, transformations, culling, clipping, animation techniques, and the 2D viewing pipeline.
CS 205: Professional and Societal Issues in Computing
Credits 3This course focusses on the local and global impact of computers, the Internet and related computer technology on society. Emphasis is placed on the social forces underlying the rapid and widespread adoption of computer technology. Topics covered include personal privacy, intellectual property, legislative and constitutional issues, changing labor force composition, and professional ethics.
CS 211: Introduction to Databases
Credits 3This course provides a broad overview of database systems. n
It presents the fundamentals, practices, and applications of computer databases. Topics include database architectures, data modeling, design schemes, transaction processing, and database implementation. Additional topics may include emerging technologies in the field.
CS 212: Advanced Databases
Credits 3This course offers an in-depth exploration of database management system concepts and their practical applications. n
It focuses on designing enterprise-scale data systems by introducing core system design principles aligned with software engineering while exploring industry best practices. Additionally, the course delves into specialized database technologies and their specific use cases, highlighting the role of databases in supporting complex, real-world applications and large-scale data environments.
CS 225: Advanced C/C++
Credits 3This course covers advanced features and techniques in C and C++. It focuses on developing an understanding of interaction and communication between classes and objects. Topics include bit manipulations, advanced memory management, advanced function and class templates, inheritance, design patterns, and STL containers and algorithms.
CS 230: Game Implementation Techniques
Credits 3This course explores the architecture and implementation techniques of game engines. Through hands-on projects, a basic game engine will be created and expanded, applying fundamental programming principles.
CS 232: Introductory Data Analysis
Credits 3This course covers basic concepts of data processing, cleaning, summarization, and visualization. The course introduces exploratory data analysis, and basic concepts of probability and statistics as they are applied in data analysis.
CS 245: Introduction to Interactive Sound Synthesis
Credits 3This course explores dynamic sound synthesis, 3D-directional auditory effects, and sonic ambience to real-time simulations and video games. The subjects include mixing audio and modulating dry recorded sounds using wave table synthesis. Students learn how to create collision sounds using additive synthesis, wind effects using subtractive synthesis, natural sounds using granular synthesis and physical modeling, ambiences using layering and spectral filtering, 3D spatialized surround sound panning, inter-aural time difference, inter-aural intensity difference, and Head Related Transforms (HRTFS). Students also study algorithms and techniques for real-time multi-threaded programming and synthesized sound integration for game engines.
CS 246: Advanced Sound Synthesis
Credits 3This course covers the basic building blocks that go into making a sound engine. Topics may include: audio file formats, sound card architecture, low level sound APIs, high level sound APIs, streaming audio, mixing, digital filters and effects, 3D audio, audio spectra and the Fast Fourier Transform.
CS 250: Computer Graphics II
Credits 3This course examines the mathematical elements and algorithms used in the design and development of real-time 3D computer graphics applications, such as games, cockpit simulators, and architectural walk-throughs. 3D computer graphics involve drawing pictures of 3D objects, usually on a 2D screen. This process of generating a 2D image of a 3D graphics application can be described as a series of distinct operations performed on a set of input data. Each operation generates results for the successive one. This process is called the graphics rendering pipeline, and it is the core of real-time computer graphics. The graphics pipeline can be conceptualized as consisting of three stages: application, transformation, and rasterization. The course begins by introducing the 3D graphics pipeline. The application stage is examined from the viewpoint of the representation, modeling, and animation of 3D objects. Topics include user interaction, camera animation techniques, simulation of dynamic objects, and collision detection techniques. Next, the course examines the process of mapping 3D graphic objects from model-space to viewport coordinates. The transformation stage implements this process. Finally, the conversion of a geometric primitive in viewport coordinates into a 2D image is studied. The rasterization stage implements this final process.
CS 251: Introduction to Computer Graphics
Credits 3This course provides a high-level overview of 3D computer graphics. It is intended for game designers and artists to enable them to understand the fundamental components of graphics engines and their applications in real-time simulation and video game software. Course topics include graphics pipeline architecture, 3D transformation operations, viewing and projection, lighting and shading models, surface detail techniques, shadow algorithms, hidden object culling and removal techniques, 3D object modeling, and animation and physically-based motion control. The popular graphics programming languages (GDI plus, OpenGL, DirectX) and shader programming are also discussed in the course.
CS 260: Computer Networks I: Interprocess Communication
Credits 3This course provides an introduction to hierarchical network communication within a distributed computing environment. The curriculum encompasses network technologies, architecture, and protocols, with a particular focus on the TCP/IP stack.
CS 261: Computer Networks II
Credits 3This course builds upon the foundational knowledge acquired in the introductory network course, deepening the understanding of network communication within distributed computing environments. Topics covered include data replication and systemic scalability, distributed-system languages and platforms, and operational practices for service development and real-time data replication.
CS 271: Supervised Machine Learning
Credits 3This course covers fundamental machine learning algorithms and their implementation using supervised learning techniques. Topics include classification and regression supervised learning algorithms.
CS 272: Reinforcement Machine Learning
Credits 3This course covers the fundamentals of goal-directed machine learning using reinforcement learning principles. Decision-making frameworks based on exploitation and exploration are covered. The course also covers single- and multiple-state space approximations using regular- and linear-function approximation techniques.
CS 280: Data Structures
Credits 3This course introduces classical abstract data types (ADT) in computer science. ADTs provide the hierarchical views of data organization used in programming. Among the topics covered are the algorithms and primitives of the data structures for arrays, linked lists, stacks, queues, trees, hash tables, and graphs. n
In addition, the course provides an introduction to algorithm complexity and notation.
CS 300: Advanced Computer Graphics I
Credits 3This course introduces students to algorithms that are essential to creating photorealistic images in interactive simulations. n
Topics covered include an overview of modern GPU (graphics processor unit) architecture and the common graphics APIs used, including OpenGL and DirectX. Rendering techniques covered include texturing, illumination models, transparency, shading algorithms, mapping techniques (bump mapping, environment/ reflection mapping, etc.), and shadows. Students learn how-to implement all algorithms by using vertex and pixel shaders.
CS 314: Distributed Data Management
Credits 3This course covers building blocks of big data engineering. Topics include the foundational concepts of distributed computing, distributed data processing, data management, data pipelines, cloud computing, and big data analytics.
CS 315: Low-Level Programming
Credits 3This course delves into the intricacies of modern microprocessor architectures, instruction sets, and the relationship between source code and machine instructions. Topics include the application of assembly language for program analysis, debugging, optimization, and gaining deeper insights into the impact of high-level code modifications. Additionally, it explores how CPU and memory architectures, cache hierarchies, and memory access patterns play crucial roles in program execution efficiency and overall system performance.
CS 318: Mathematics of Digital Signal Processing I
Credits 3This course explores the mathematical foundations of digital signal processing, with applications to digital audio programming. Topics include: digital signals, sampling and quantization, complex numbers and phasors, complex functions, feedforward filters, feedback filters, frequency response and transfer functions, periodic signals and Fourier series, discrete Fourier transform and fast Fourier transform, comb and string filters, Z-transform and convolution.
CS 319: Mathematics of Digital Signal Processing II
Credits 3This course continues to explore the mathematical foundations of digital signal processing, with applications to digital audio programming. Topics include: Review of digital signals, Z-transforms and convolution, filter types, applications of fast Fourier transform, switching signals on and off, windowing, spectrograms, aliasing, digital to analog conversion, Nyquist Theorem, filter design, Butterworth filters, reverb, and the phase vocoder.
CS 325: User Interface and User Experience Design
Credits 3This course presents fundamental topics in the field of human-computer interface design. Topics covered in the course will help students understand human capabilities, design principles, prototyping techniques and evaluation methods for human-computer interfaces, with special emphasis on natural user interfaces. The course will guide the students towards an implementation of a novel user interaction.
CS 330: Algorithm Analysis
Credits 3This course covers a variety of algorithms and algorithmic patterns. It focusses on developing an understanding of the internal structure, workings, and common properties of algorithms. Topics include divide-and-conquer, dynamic programming, greedy algorithms, incremental improvement, and computational complexity.
CS 350: Advanced Computer Graphics II
Credits 3This course deals with the efficient representation and processing of complex 3D scenes in order to avoid bottlenecks in the use of the CPU and the GPU. Specific topics include a variety of spatial data structures (binary space-partitioning trees, octrees, kd-trees, and grid data structures), several object-culling methods (occlusion, viewport, and portal), and finally the construction and uses of bounding volumes and their hierarchies for collision detection and related geometric operations.
CS 355: Parallel Programming
Credits 3This course presents an introduction to multi-threaded and distributed programming. The course covers some classical problems and synchronization mechanisms, as well as modern libraries that support parallel programming. The course also covers distributed programming models and applications to video game programming.
CS 362: Operations Research
Credits 3This course introduces the fundamental concepts and numerical methods employed in the field of operations research. The course focuses on methods in constraint-based optimization. Topics include linear programming, inventory modeling, and decision-making under uncertainty.
CS 365: Software Engineering
Credits 3This course covers a wide range of topics in software engineering from the practical standpoint. It encompasses project management issues as well as technical development principles and methods. Topics include system architecture, security, methodologies and notation, UML, object oriented analysis and design, requirements analysis, implementation, verification, validation, maintenance, and software engineering standards. Risk management and iterative design receive special emphasis. Student teams apply acquired knowledge to a substantial project.
CS 370: Computer Imaging
Credits 3This course introduces image-processing methods and applications relevant to the development of real-time interactive simulations. The course covers fundamental concepts in image representation, image filtering, frequency domain processing, and image-based rendering methods. Topics include image serialization, 2D filtering, Fourier transforms, noise modeling, and high dynamic-range imaging.
CS 372: Machine Learning and Artificial Intelligence I
Credits 3This course covers fundamental concepts and techniques in machine learning and their practical applications in various domains. Topics include key principles of learning theory, methods for model selection and evaluation, regression analysis and classification algorithms. Additional topics may explore unsupervised learning and emerging topics in the field.
CS 373: Machine Learning and Artificial Intelligence II
Credits 3This course focuses on recommendation systems and reinforcement learning methods in machine learning. Topics include clustering, classification, exploration-exploitation dilemma, q-learning, reinforcement learning environments and hyperparameter tuning.
CS 374: Natural Language Processing
Credits 3This course introduces fundamental methods and algorithms in the field of Natural Language Processing. Topics include regular expressions, finite-state automata, language morphology, syntactic parsing, and parts-of-speech tagging. Additional topics may include feature extraction, unification, and lexical semantics.
CS 375: Compilers and Interpreters
Credits 3This course presents fundamental topics in the field of compiler construction. Topics covered in the course will help students understand and implement a compiler for a high-level programming language. The course will guide the students towards an in-depth understanding of compilation techniques and runtime implementation for a modern programming language.
CS 376: Deep Learning
Credits 3This course introduces the theory and applications of neural networks and deep learning. Topics include artificial neural networks, backpropagation, hyperparameter selection and optimization methods in deep learning, convolutional and recurrent neural networks, deep reinforcement learning, large language models, and generative models. Additional topics may include other recent advancements in deep learning.
CS 380: Artificial Intelligence for Games
Credits 3This course introduces students to a wide range of concepts and practical algorithms that are commonly used to solve game Al problems. Case studies from real games are used to illustrate the concepts. Students have a chance to work with and implement core game Al algorithms. Topics covered include the game Al programmer mindset, Al architecture (state machines, rule-based systems, goal-based systems, trigger systems, smart terrain, scripting, message passing, and debugging Al), movement, pathfinding, emergent behavior, agent awareness, agent cooperation, terrain analysis, planning, and learning/adaptation.
CS 381: Introduction to Artificial Intelligence
Credits 3This course covers fundamental areas of Artificial Intelligence, including various search algorithms, game playing, constraint satisfaction problems, propositional and first-order logic, and planning. The course will also explore practical skills relevant to implementation of Al techniques, practices, and design solutions.
CS 388: Introduction to Portable Game System Development
Credits 3This course introduces students to portable game systems programming and development, which is different from PC programming and development due to the embedded structure of the machine. Students work with a very limited amount of memory and CPU power. To overcome the system'92s memory limitations, several graphics techniques are used, such as tile based game objects and backgrounds using color palettes. As for the CPU limitations, fixed point decimal is used instead of float numbers, along with asynchronous operations. Several portable game system specific topics, such as managing multiple graphics engines simultaneously and handling the touch pad are discussed.
CS 391: Code Analysis and Optimization
Credits 3This course focuses on understanding the details for the computer, compiler, and language, specifically how to apply these towards practical problem of solving crashes and performance issues. The emphasis is not only on knowing what and why, but also about taking that knowledge and creating useful tools and techniques for solving these problems.
CS 399: Special Topics in Computer Science
Credits 3The content of this course may change each time it is offered. n
It is for the purpose of offering a new or specialized course of interest to the faculty and students that is not covered by the courses in the current catalog.
CS 460: Advanced Animation and Modeling
Credits 33D animation and modeling play significant roles in computer simulation and video game software. Game developers need to have a comprehensive understanding of these techniques. This course introduces algorithms for specifying and generating motion for graphical objects. It addresses practical issues, surveys accessible techniques, and provides straightforward implementations for controlling 3D moving entities with different characteristics. The class covers two broad categories. Students will first learn an interpolation-based technique, which allows programmers to fill in the details of the motion or shape once the animator specifies certain basic information, such as key frames, paths, coordinate grids, or destination geometry. Then, they learn a behavior-based technique, which generates motion that satisfies a set of rules, such as kinematics, physics, or other constraints.
CS 500: Ray Tracing
Credits 3This course focuses on rendering techniques used for ray tracing. The course culminates with an implementation of a path-tracing algorithm able to generate images demonstrating lighting and modeling techniques not found in traditional real-time graphics. Topics include solid modeling, intersection calculations, and illumination models.
CS 518: Mathematics of Digital Signal Processing I
Credits 3This course explores the mathematical foundations of digital signal processing, with applications to digital audio programming. Topics include: digital signals, sampling and quantization, complex numbers and phasors, complex functions,feedforward filters, feedback filters, frequency response and transfer functions, periodic signals and Fourier series, discrete Fourier transform and fast Fourier transform, comb and string filters, Z-transform and convolution.
CS 519: Mathematics of Digital Signal Processing II
Credits 3This course continues to explore the mathematical foundations of digital signal processing, with applications to digital audio programming. Topics include: Review of digital signals, Z-transforms and convolution, filter types, applications of fast Fourier transform, switching signals on and off, windowing, spectrograms, aliasing, digital to analog conversion, Nyquist Theorem, filter design, Butterworth filters, reverb, and the phase vocoder.
CS 525: Object-Oriented Design and Programming
Credits 3This course focuses on object-oriented design and programming using the C++ programming language. It is targeted at the graduate student that is already fluent in one or more programming languages. Among the language-specific topics included are pointers, pointer arithmetic, dynamic memory management, namespaces, scope, operator overloading, generic programming (templates), the Standard Template Library, and standard compliance. Object-oriented topics will cover analysis and design considerations. Students considering this course need to have programming fluency in another imperative language, preferably with some basic knowledge of C++. After successfully completing this course, students should have a much deeper understanding of the subtleties and complexities of using object-oriented facilities of the C++ programming language, the standard programming language used in the game industry today.
CS 529: Fundamentals of Game Development
Credits 3This course presents techniques in real-time interactive simulation and video game implementations. It introduces the 2D and 3D game engine architecture, including game and system components separation, game flow, game state manager, handling input/output, and the frame rate controller. The course introduces students to the game development environment, such as Windows programming SDK and graphics library DirectX API. It also covers commonly practiced techniques such as space partitioning, Al techniques, particle systems, and collision algorithms. Several physics techniques are discussed and implemented, such as jump and reflection, in addition to behavior algorithms, such as state machines. Different game genres are explained, including Asteroids (2D), Platform (2D), Brix (2D), and Pong (3D). Students learn how to implement and extend collision, matrix, and vector libraries, according to the specific requirements for different games.
CS 535: Algorithm Analysis
Credits 3This course covers a variety of algorithms and algorithmic patterns. It focuses on developing an understanding of the internal algorithmic structure and common properties of the algorithms. Topics include divide-and-conquer, dynamic programming, greedy algorithms, incremental improvement, and computational complexity.
CS 541: Advanced Computer Graphics
Credits 3This course introduces fundamental algorithms and mathematical principles for implementing realistic three-dimensional computer graphics. Topics include homogeneous coordinates, 3D transformations, modern BRDF lighting and shading, shadow generation algorithms, reflections and the generation of reflection and bump/normal maps.
CS 550: Physics Simulation
Credits 3This course will cover the implementation of various physics topics, as well as collision detection and collision resolution algorithms. Special topics such as stacking, soft-bodies, and friction may be covered.
CS 560: Advanced Animation and Modeling I
Credits 33D animation and modeling play significant roles in computer simulation and video game software. Game developers need to have a comprehensive understanding of these techniques. n
This course introduces algorithms for specifying and generating motion for graphical objects. It addresses practical issues, surveys accessible techniques, and provides straightforward implementations for controlling 3D moving entities with different characteristics. The course covers two broad categories. n
Students first learn an interpolation-based technique, which allows programmers to fill in the details of the motion or shape once the animator specifies certain basic information, such as key frames, paths, coordinate grids, or destination geometry. Then they learn a behavior-based technique, which generates motion that satisfies a set of rules, such as kinematics, physics, or other constraints.
CS 561: Advanced Animation and Modeling II
Credits 3This course is the continuation of Advanced Animation and Modeling I. It introduces students to advanced animation and modeling algorithms and techniques in some special areas to increase the physical realism of dynamic objects in 3D graphical environments. The topics include group object (particles, fish, and birds) control, natural phenomena (water, snow, soil, smoke, and fire) simulation, plant (trees and grass) modeling, facial animation (expression and speech synchronization), and deformable object modeling.
CS 562: Advanced Real-Time Rendering Techniques
Credits 3This course introduces students to data structures, algorithms, and techniques concerned with rendering images more accurately and efficiently in interactive computer simulations and video game software. Topics include patch and surface algorithms, terrain rendering techniques, anti-aliasing theory and practice, advanced lighting techniques, hard and soft shadow map methods, multi-pass rendering techniques, high-dynamic range (HDR) rendering, advanced shading and mapping, and real-time vertex/pixel shader programming essentials. Additionally, students practice these subjects by working with the supporting OpenGL or DirectX libraries.
CS 570: Computer Imaging
Credits 3This course introduces image-processing methods and applications relevant to the development of real-time interactive simulations. The course covers fundamental concepts in image representation, image filtering, frequency domain processing, and image-based rendering methods. Topics include image serialization, 2D filtering, Fourier transforms, noise modeling, and high dynamic-range imaging.
CS 571: Advanced Computer Imaging
Credits 3This course introduces the structure and implementation of the computer vision pipeline. Topics covered include image analysis, feature detection, Fourier transforms, pattern recognition, image stitching, and computational photography.
CS 572: Machine Learning and Artificial Intelligence I
Credits 3This course covers fundamental concepts and techniques in machine learning and their practical applications in various domains. Topics include key principles of learning theory, methods for model selection and evaluation, regression analysis and classification algorithms. Additional topics may explore unsupervised learning and emerging topics in the field.
CS 573: Machine Learning and Artificial Intelligence II
Credits 3This course focuses on recommendation systems and reinforcement learning methods in machine learning. Topics include clustering, classification, exploration-exploitation dilemma, q-learning, reinforcement learning environments and hyperparameter tuning.
CS 576: Deep Learning
Credits 3This course introduces the theory and applications of neural networks and deep learning. Topics include artificial neural networks, backpropagation, hyperparameter selection and optimization methods in deep learning, convolutional and recurrent neural networks, deep reinforcement learning, large language models, and generative models. Additional topics may include other recent advancements in deep learning.
CS 580: Artificial Intelligence in Games
Credits 3This course introduces students to a wide range of concepts and practical algorithms that are commonly used to solve video game Al problems. Case studies from real games are used to illustrate the concepts. Students have a chance to work with and implement core game Al algorithms. Topics covered include the game Al programmer mindset, Al architecture, such as state machines, rule-based systems, goal-based systems, trigger systems, smart terrain, scripting, message passing, and debugging Al, movement, pathfinding, emergent behavior, agent awareness, agent cooperation, terrain analysis, planning, and learning/adaptation.
CS 581: Introduction to Artificial Intelligence
Credits 3This course covers important Al areas, including search algorithms, knowledge representation, production systems, game playing, uncertainty handling, learning, and planning. Students are required to have basic knowledge of data structures, probability theory, and mathematical logic. Upon successful completion of this course, students have gained an understanding of the skills relevant to modern Al techniques, practices, and design solutions.
CS 582: Reasoning Under Uncertainty
Credits 3This course covers important Al topics, including hidden Markov models and advanced search algorithms (D-lite and cooperative path finding). Students also examine uncertainty handling (Dempster-Shafer theory), learning (kernel machines), and advanced topics in planning (conditional and adversarial planning).
CS 598: Computer Science Seminar
Credits 1Every semester, guest speakers, faculty members, and/ or graduate students offer to DigiPen students a number of presentations that cover different research topics in computer science. Each speaker decides on the choice of topic, but they usually are within the general boundaries of students'92 courses of study. This seminar aims not to pursue any particular topic but rather to explore new research in more depth to allow students to develop their own skills in theoretical analysis. Each speaker'92s paper(s) are available to students. They are required to read these papers and to choose one to expand upon for a final paper and an oral presentation.
CS 599: Special Topics in Computer Science
Credits 3The content of this course may change each time it'92s offered. n
It is for the purpose of offering a new or specialized course of interest to the faculty or students that is not covered by the courses in the current catalog.
CS 601: Research Methods in Computer Science
Credits 3This course provides the student with an opportunity to study and apply research methods to a Computer Science topic of his/her choice. The student works with a faculty advisor to determine an appropriate area of research to survey, conducts a comprehensive survey of the area, and identifies tools and methods that may help the student in extending existing research. The student is required to write a survey report that summarizes the findings of this exploratory process.
CS 602: Master'92s Thesis
Credits 3This course is the final part of the master'92s program thesis. Students work under the supervision of a thesis advisory committee to develop the theory and algorithms of the proposed research topic, usually leading to creation of a prototype to verify the theory and methods. Upon completion of the class, the student must submit his or her formal written thesis to the advisory committee and pass an oral exam defending the thesis.
CSX 510: Scripting For Games
Credits 3This course presents topics in computer programming, assuming no prior background experience in the subject. Emphasis is on automation of tasks. Topics may include: logic, program flow, variables, operators, conditionals, loops, and functions. Students are exposed to at least one current industry standard scripting language used by artists in the film and video games industries.
MCM 600: Masters Continuous Matriculation
Credits 1Maintaining continuous matriculation is a requirement for graduate students. Students who have completed most course requirements but are finishing their thesis or are satisfying incomplete grades must register to maintain continuous matriculation. This credit may not be applied toward degree completion requirements.