Computer Science
Degrees and Certificates
-
Computer Science in Real-Time Interactive Simulation, Bachelor of Science
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 3CS 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 170: High-Level Programming II: The C++ Programming Language
Credits 4This course covers the fundamentals of programming in C++. 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 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’s inner workings.
CS 200: Computer Graphics I
Credits 3CS 211: Introduction to Databases
Credits 3This course provides a broad overview of database systems. 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 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: Introduction to Game Engine Architecture
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 250: Computer Graphics II
Credits 3CS 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 280: Data Structures
Credits 3CS 300: Advanced Computer Graphics I
Credits 3CS 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 325: User Interface and User Experience Design
Credits 3CS 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 3CS 365: Software Engineering
Credits 3CS 380: Artificial Intelligence for Games
Credits 3CS 388: Introduction to Portable Game System Development
Credits 3CS 399: Special Topics in Computer Science
Credits 3CS 400: Raytracing
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 455: 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 460: Advanced Animation and Modeling
Credits 3CS 462: 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, 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 computer graphics APIs and they will gain experience in reading and implementing recently published state-of-the-art graphics research papers.