CERTIFICATE IN PROGRAMMING
The Certificate in Programming prepares current Yale undergraduates to program computers in
support of work in any area of study. While the Certificate does not provide
the same grounding in theory and systems that the computer science majors do,
it does provide a short path to programming literacy that can be completed in a
span of four terms.
To register for the Certificate, register via Yale Hub by the end of the fourth week of your last semester at Yale.
If you have questions about the Certificate, please check the
FAQ below. If you do not find the answer there, consult the
Certificate coordinator, Dr. Ozan Erat.
For the description of the Certificate in the Yale College Programs of
Study, click
here.
Requirements
The prerequisite for the Certificate is an introductory programming course
(CPSC 100, CPSC 110, CPSC 112 or CPSC S115), successful completion of the AP Computer Science course, or
equivalent programming experience.
The Certificate requires 5 course credits, not including the prerequisite:
- Programming: One from CPSC 201 or 200.
- Data Structures: CPSC 223.
- Advanced Programming: One from CPSC 327 or 323.
- Programming Elective: Either a CPSC course with CPSC 223 as a
listed or implied prerequisite and a primary focus on programming (such as CPSC
424, 437, 439, 446, or 478; see below for the
complete list); or a second course that satisfies the Advanced Programming
requirement.
- Applications/Algorithms Elective: Either a programming in context
course that requires significant programming (such as CPSC 334, 335, 376, 431,
432, 474, 477, or LING 380); or a course in algorithms (such as CPSC 365,
366 or 368). See below for the complete lists.
Restrictions and Caveats
Students may not count any of the five required courses towards the
requirements of any major, multidisciplinary academic program (MAP), or other
certificate. If such a course is required for another program, the student
must substitute another course from the same category or a more advanced one
for the Certificate.
No course taken Credit/D/Fail may count toward any of the requirements;
no course may be used to satisfy more than one of them.
If you take a course and its listed prerequisite at the same time, only the
higher-level course may be used to satisfy a requirement.
Majors in Computer Science, in our joint programs with Economics, Electrical
Engineering, Mathematics, and Psychology, or in Computing and the Arts may not
pursue the Certificate.
Exceptions to the requirements, other than the substitution of a more advanced
course from the same category for a required one, are limited. See
below for a complete list.
Frequently Asked Questions
Q: May I count towards the Certificate a course that was taken
Credit/D/Fail?
A: No.
Q: May I count a course toward both the Certificate and my major as
I may with a double major?
A: No. There can be no overlap between courses used to complete the
Certificate and the requirements of any major, multidisciplinary academic
program (MAP), or other certificate. If a course required for the Certificate
is also required for another major/MAP/certificate, you must either take a
different course for the Certificate or take a different course for the other
program.
Q: May I complete both the Certificate in Programming and a major in
Computer Science, or in the joint programs with Economics, Electrical
Engineering, Mathematics, and Psychology, or in Computing and the Arts?
A: No.
Q: May I count the same course toward more than one of the five
requirements?
A: No.
Q: May a graduate or professional school student receive the
Certificate in Programming?
A: No, the Certificate is only for undergraduates.
Q: Which courses satisfy the Programming Elective?
A: Either a CPSC course which has CPSC 223 as a listed or implied
prerequisite and a primary focus on programming, one of:
- CPSC 323 Introduction to Systems Programming and Computer Organization (only if CPSC 327 is taken for Advanced Programming)
- CPSC 327 Object-Oriented Programming (only if CPSC 323 is taken for Advanced Programming)
- CPSC 421 Compilers and Interpreters
- CPSC 422 Design and Implementation of Operating Systems
- CPSC 424 Parallel Programming Techniques
- CPSC 426 Building Distributed Systems
- CPSC 427 C++ Programming for Stability, Security, and Speed
- CPSC 429 Principles of Computer System Design
- CPSC 437 Introduction to Database Systems
- CPSC 439 Software Engineering
- CPSC 445 Advanced Software Engineering
- CPSC 446 Data and Information Visualization
- CPSC 478 Computer Graphics
or a second course that satisfies the Advanced Programming requirement.
Warning: Some of these courses have prerequisites that do not count
toward the Certificate.
Q: Which courses satisfy the Applications/Algorithms Elective?
A: Either a programming in context course that requires significant
programming, one of:
- CPSC 334 Creative Embedded Systems
- CPSC 335 Theory and Implementation Of Self-Driving Cars
- CPSC 370 Artificial Intelligence
- CPSC 376 Advanced Computer and Data Science Applications for the Digital Humanities
- CPSC 381 Introduction to Machine Learning
- CPSC 409 Real-Time 3D Computer Graphics Programming
- CPSC 410 Physics Simulation for Movies
- CPSC 411 Building Game Engines
- CPSC 419 Full Stack Programming
- CPSC 431 Computer Music: Algorithmic & Heuristic Composition
- CPSC 432 Computer Music: Sound Representation and Synthesis
- CPSC 447 Introduction to Quantum Computing
- CPSC 452 Deep learning Theory and Applications
- CPSC 466 Blockchain and Cyrptocurrency
- CPSC 467 Introduction to Cryptography
- CPSC 474 Computational Intelligence for Games
- CPSC 477 Natural Language Processing
- CPSC 479 Advanced Topics in Computer Graphics
- CPSC 483 Deep Learning on Graph-Structured Data
- LING 380 Neural Networks and Language
or a course in algorithms, one of:
- CPSC 365 Algorithms
- CPSC 366 Intensive Algorithms
- CPSC 368 Algorithms via Convex Optimization
or a second course that satisfies the Advanced Programming requirement.
Warning: Some of these courses have prerequisites that do not count
toward the Certificate.
Q: Do any other courses, aside from the ones listed above, count towards the Certificate?
A: No.
Q: Can I substitute courses that are not listed above into any of the requirements?
A: No.
Q: When must I register for the Certificate?
A: By the end of the fourth week of your last semester at Yale.
Q: How do I register for the Certificate?
A: Students may register for the Certificate using the Declare Major, Concentration within the Major, Certificate page on
Yale Hub.
Q: How will the Certificate appear on my transcript?
A: Upon graduation the notation "Events: Certificate: Programming"
will appear under your major(s).
Q: May I skip CPSC 100 or 112?
A: Yes, provided that you have taken the AP Computer Science course or
have equivalent programming experience.
Q: May I skip CPSC 201 or 200?
A: Yes, provided that you can demonstrate sufficient programming
experience to enroll in CPSC 223. However, you must take an additional
Advanced Programming course or Programming Elective instead. Please note that there will
be no waiver test for CPSC 223 in Fall 2025 semester. CPSC 200 or CPSC 201 prerequisite
will be enforced.
Q: Which substitutions of a more advanced course for a required one
are permitted?
A: Current substitutions are:
- An extra Advanced Programming Course or Programming Elective for CPSC 201
or 200
- An extra Advanced Programming Course for CPSC 223.
Additional substitutions will be added as needed.
Version 2024/11/19.