Schedule of Classes: Computer Science: 2019-2020


Click on the section name to visit the web page for that section, or the course name to see all offerings of the course.

To reference a comprehensive list of all SOE renumbered courses, please see:

Please note that the course schedule and offerings are subject to change.

« Back to 2018-2019

Fall 2019 Winter 2020 Spring 2020 Summer 2020
CMPS5C: Introduction to Programming in C/C++
CMPS5J: Introduction to Programming in Java
CMPS5P: Introduction to Programming in Python
CMPS10: Introduction to Computer Science
CMPS11: Intermediate Programming
CMPS12A: Introduction to Programming (Accelerated)
CMPS12B: Introduction to Data Structures
CMPS12L: Computer Programming Laboratory
CMPS12M: Data Structures Laboratory
CMPS13H: Introduction to Programming and Data Structures (Honors)
CMPS13L: Introduction to Programming and Data Structures Laboratory
CMPS17: Social Networks
CMPS20: Game Design Experience
Note: Renamed CMPM 20 as of Winter 15- See CMPM 20 for schedule
CMPS25: Introduction to Computer Graphics: 3D Modeling
Note: Renamed CMPM 25 as of Fall 14- See CMPM 25 for schedule
CMPS26: Introduction to Computer Graphics: 3D Animation
Note: Renamed CMPM 26 as of Spring 15- See CMPM 26 for schedule
CMPS42A: SDS:Survey of Applied Computational Science
CMPS60M: Scientific Computation with Matlab and Maple
CMPS80B: Systems and Simulation
CMPS80G: Introduction to Unix
CMPS80J: Technology Targeted at Social Issues
CMPS80K: Foundations of Interactive Game Design
Note: Renamed CMPM 80K as of Spring 15- See CMPM 80K for schedule
CMPS80L: Social Data Analytics and Visualization
CMPS80S: From Software Innovation to Social Entrepreneurship
CMPS80V: Creating Virtual Worlds on the Web
Fall 2019 Winter 2020 Spring 2020 Summer 2020
CMPS101: Algorithms and Abstract Data Types
CMPS102: Introduction to Analysis of Algorithms
CMPS104A: Fundamentals of Compiler Design I
CMPS104B: Fundamentals of Compiler Design II
CMPS105: Systems Programming
CMPS107: Open Source Programming
CMPS109: Advanced Programming
CMPS111: Introduction to Operating Systems
CMPS112: Comparative Programming Languages
CMPS115: Introduction to Software Engineering
CMPS116: Software Design Project
CMPS117: Software Design Project II
CMPS118: Algorithmic Foundations of Cryptography
CMPS119: Software for Society
CMPS121: Mobile Applications
CMPS122: Computer Security
CMPS128: Distributed Systems: File Sharing, Online Gaming, and More
CMPS129: Data Storage Systems
CMPS130: Computational Models
CMPS132: Computability and Computational Complexity
CMPS132W: Computability and Computational Complexity
CMPS140: Artificial Intelligence
CMPS142: Machine Learning and Data Mining
CMPS143: Introduction to Natural Language Processing
CMPS144: Applied Machine Learning
CMPS146: Game AI
Note: Renamed CMPM 146 as of Spring 15- See CMPM 146 for schedule
CMPS148: Interactive Narrative
Note: Renamed CMPM 148 as of Spring 15- See CMPM 148 for schedule
CMPS153: Functional Programming
CMPS160: Introduction to Computer Graphics
CMPS160L: Introduction to Computer Graphics Laboratory
CMPS161: Introduction to Data Visualization
CMPS161L: Data Visualization Lab
CMPS162: Advanced Computer Graphics and Animation
CMPS162L: Advanced Computer Graphics and Animation Lab
CMPS164: Game Engines
Note: Renamed CMPM 164 as of Spring 15- See CMPM 164 for schedule
CMPS164L: Game Engines Lab
Note: Renamed CMPM 164L as of Spring 15- See CMPM 164L for schedule
CMPS165: Data Programming for Visualization
CMPS166A: Game Theory and Applications I
CMPS166B: Game Theory and Applications II
CMPS168: Introduction to Augmented Reality and Virtual Reality
CMPS170: Game Design Studio I
Note: Renamed CMPM 170 as of Fall 14- See CMPM 170 for schedule
CMPS171: Games Design Studio II
Note: Renamed CMPM 171 as of Winter 15- See CMPM 171 for schedule
CMPS172: Game Design Studio III
Note: Renamed CMPM 172 as of Spring 15- See CMPM 172 for schedule
CMPS177: Creative Strategies for Designing Interactive Media
Note: Renamed CMPM 177 as of Fall 14- See CMPM 177 for schedule
CMPS178: Human-Centered Design Research
Note: Renamed CMPM 178 of Winter 15- See CMPM 178 for schedule
CMPS179: Game Design Practicum
Note: Renamed CMPM 179 as of Spring 15- See CMPM 179 for schedule
CMPS180: Database Systems I
CMPS180W: Database Systems
CMPS181: Database Systems II
CMPS182: Introduction to Database Management Systems
CMPS183: Web Applications
CMPS184: Data Wrangling and Web Scraping
CMPS185: Technical Writing and Communication in Computer Science
CMPS190X: Methods of Cryptography
CMPS191: Computer Science and Technology Seminar
CMPS194: Group Tutorial
Fall 2019 Winter 2020 Spring 2020 Summer 2020
CMPS200: Research and Teaching in Computer Science and Engineering
CMPS201: Analysis of Algorithms
CMPS203: Programming Languages
CMPS204: Compiler Design
CMPS210: Computational Models and Complexity
CMPS211: Combinatorial Algorithms
CMPS217: Logic in Computer Science
CMPS218: Foundations of Data Science
CMPS221: Advanced Operating Systems
CMPS223: Advanced Computer Security
CMPS229: Storage Systems
CMPS232: Distributed Systems
CMPS236: Understanding Cryptography
CMPS240: Artificial Intelligence
CMPS241: Knowledge Engineering
CMPS242: Machine Learning
CMPS244: Artificial Intelligence in Games
Note: Renamed CMPM 244 as of Fall 14-See CMPM 244 for schedule
CMPS245: Computational Models of Discourse and Dialogue
Note: Renamed CMPM 245 as of Winter 15- See CMPM 245 for schedule
CMPS247: AI: Problem Solving and Intelligent Search
CMPS248: Interactive Narrative
Note: Renamed CMPM 248 as of Spring 15- See CMPM 248 for schedule
CMPS250: Introduction to Information Theory
CMPS253: Advanced Programming Languages
CMPS260: Computer Graphics
CMPS261: Advanced Visualization
CMPS262: Computer Animation
CMPS263: Data Driven Discovery and Visualization
CMPS265: Generative Methods
Note: Renamed CMPM 265 as of Winter 15- See CMPM 265 for schedule
CMPS266A: Data Visualization and Statistical Programming in R
CMPS266B: Advanced Statistical Programming in R
CMPS266C: Introduction to Data Wrangling
CMPS272: Evolutionary Game Theory
CMPS276: Software Engineering
CMPS277: Principles of Database Systems
CMPS278: Design and Implementation of Database Systems
CMPS279: Software Reuse and Component-Based Software Engineering
CMPS280A: Seminar in Computer Science Research
CMPS280D: Seminar in Database Systems
CMPS280G: Seminar on Software Engineering
CMPS280H: Seminar in Human Computation Systems
CMPS280J: Seminar on Computer Graphics
CMPS280L: Seminar on Logic in Computer Science
CMPS280M: Seminar on Machine Learning
CMPS280O: Seminar in Applied Programming Languages
CMPS280S: Seminar on Computer Systems
CMPS280W: Seminar in Digital Media
Note: Renamed CMPM 280W as of Spring 15- See CMPM 280W for schedule
CMPS280X: Seminar in Distributed Systems
CMPS280Z: Seminar in Natural Language Processing and Dialogue
CMPS290A: Topics in Algorithms and Complexity Theory: Probabilistic Algorithms and Average Case Analysis
CMPS290B: Advanced Topics in Computer Graphics
CMPS290C: Advanced Topics in Machine Learning
CMPS290D: Neural Computation
CMPS290E: Object-Oriented Programming Methodology
CMPS290F: Applications of Combinatorics
CMPS290G: Topics in Software Engineering
CMPS290H: Topics in Database Systems
CMPS290I: Internet Technology and Policy
CMPS290J: Playable Media
Note: Renamed CMPM 290J as of Winter 15-See CMPM 290J for schedule
CMPS290K: Advanced Topics in Natural Language Processing
CMPS290L: Topics in Crowdsourcing and Collaboration
CMPS290O: Algorithmic Foundations of Convex Optimization
CMPS290P: Data Privacy via Machine Learning, and Back
CMPS290Q: Topics in Programming Languages
CMPS290S: Advanced Topics in Computer Systems
CMPS290T: Topics in Computing for Society
CMPS290X: Cryptography and Computer Security
CMPS290Y: Quantum Computing