
Summer Courses
Summer 2025
Summer registration week: March 10-14.
See the HUB steps to register for guidance.
Current Semester will remain posted until the next semester information is available.
You can toggle for Graduate or Undergraduate or search by course number.
Courses & Curriculum Related Resources
Current Semester Courses |Upcoming Semester Courses | Doctoral Breadth Courses
Schedule of Classes | Undergraduate Curriculum Requirements | Undergraduate Catalog
MSCS Handbook | Fifth Year Master's Handbook | Ph.D. Handbook | Student Resources
Click to read more...
Instructor(s)
Mark Stehlik
Click to read more...
A course in fundamental computing principles for students with minimal or no computing background. Programming constructs: sequencing, selection, iteration, and recursion. Data organization: arrays and lists. Use of abstraction in computing: data representation, computer organization, computer networks, functional decomposition, and application programming interfaces. Use of computational principles in problem-solving: divide and conquer, randomness, and concurrency. Classification of computational problems based on complexity, non-computable functions, and using heuristics to find reasonable solutions to complex problems. Social, ethical and legal issues associated with the development of new computational artifacts will also be discussed. Please direct any questions about this waitlist to Sara Kuntz at sgolembi@andrew.cmu.edu.
Instructor(s)
Daniel Anderson
Click to read more...
A technical introduction to the fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. Starting from first principles, we will cover a large subset of the Python programming language, including its standard libraries and programming paradigms. We will also target numerous deployment scenarios, including standalone programs, shell scripts, and web-based applications. This course assumes no prior programming experience. Even so, it is a fast-paced and rigorous preparation for 15-122. Students seeking a more gentle introduction to computer science should consider first taking 15-110. NOTE: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.
Instructor(s)
Michael Taylor
Click to read more...
For students with a basic understanding of programming (variables, expressions, loops, arrays, functions). Teaches imperative programming and methods for ensuring the correctness of programs. Students will learn the process and concepts needed to go from high-level descriptions of algorithms to correct imperative implementations, with specific application to basic data structures and algorithms. Much of the course will be conducted in a subset of C amenable to verification, with a transition to full C near the end. This course prepares students for 15-213 and 15-210. NOTE: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.
Click to read more...
Instructor(s)
Sonya Simkin
Click to read more...
Instructor(s)
Brian Railing
Click to read more...
Instructor(s)
Brian Railing
Click to read more...
Instructor(s)
Mark Stehlik
Click to read more...
Instructor(s)
Dave Eckhardt
Click to read more...
Instructor(s)
Dave Eckhardt
Click to read more...
Instructor(s)
Dave Eckhardt
Ruben Martins
Click to read more...