Schedule of Courses: Computer Science: 2023-2024

*****COURSES ARE SUBJECT TO CHANGE*****

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 BE renumbered courses, please see:
https://organization.soe.ucsc.edu/bsoe-reshaping-course-renumbering

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

« Back to 2022-2023 | Forward to 2024-2025 »

Lower Division
Fall 2023 Winter 2024 Spring 2024 Summer 2024
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
CMPS25: Introduction to Computer Graphics: 3D Modeling
CMPS26: Introduction to Computer Graphics: 3D Animation
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
CMPS80L: Social Data Analytics and Visualization
CMPS80S: From Software Innovation to Social Entrepreneurship
CMPS80V: Creating Virtual Worlds on the Web
Upper Division
Fall 2023 Winter 2024 Spring 2024 Summer 2024
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
CMPS148: Interactive Narrative
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
CMPS164L: Game Engines Lab
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
CMPS171: Games Design Studio II
CMPS172: Game Design Studio III
CMPS177: Creative Strategies for Designing Interactive Media
CMPS178: Human-Centered Design Research
CMPS179: Game Design Practicum
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
Graduate
Fall 2023 Winter 2024 Spring 2024 Summer 2024
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
CMPS245: Computational Models of Discourse and Dialogue
CMPS247: AI: Problem Solving and Intelligent Search
CMPS248: Interactive Narrative
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
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
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
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