Program Overview
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.
Requirements
The prerequisite for the Certificate is an introductory programming course (CPSC 1001, CPSC 1100, CPSC 1120 or CPSC S1150), 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 2010 or 2000.
- Data Structures: CPSC 2230.
- Advanced Programming: One from CPSC 3270 or 3230.
- Programming Elective: Either a CPSC course with CPSC 2230 as a listed or implied prerequisite and a primary focus on programming (such as CPSC 4240, 4370, 4390, 4460, or 4780); 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 3340, 3350, 3760, 4310, 4320, 4740, 4770, or LING 3800); or a course in algorithms (such as CPSC 3650, 3660 or 3680).
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.
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 2230 as a listed or implied prerequisite and a primary focus on programming, one of:
- CPSC 3230 Introduction to Systems Programming and Computer Organization (only if CPSC 3270 is taken for Advanced Programming)
- CPSC 3270 Object-Oriented Programming (only if CPSC 3230 is taken for Advanced Programming)
- CPSC 4210 Compilers and Interpreters
- CPSC 4220 Design and Implementation of Operating Systems
- CPSC 4240 Parallel Programming Techniques
- CPSC 4260 Building Distributed Systems
- CPSC 4270 C++ Programming for Stability, Security, and Speed
- CPSC 4290 Principles of Computer System Design
- CPSC 4370 Introduction to Database Systems
- CPSC 4390 Software Engineering
- CPSC 4450 Advanced Software Engineering
- CPSC 4460 Data and Information Visualization
- CPSC 4780 Computer Graphics
- or a second course that satisfies the Advanced Programming requirement.
- A: Either a CPSC course which has CPSC 2230 as a listed or implied prerequisite and a primary focus on programming, one of:
- Q: Which courses satisfy the Applications/Algorithms Elective?
- A: Either a programming in context course that requires significant programming, one of:
- CPSC 3340 Creative Embedded Systems
- CPSC 3350 Theory and Implementation Of Self-Driving Cars
- CPSC 3700 Artificial Intelligence
- CPSC 3760 Advanced Computer and Data Science Applications for the Digital Humanities
- CPSC 3810 Introduction to Machine Learning
- CPSC 4090 Real-Time 3D Computer Graphics Programming
- CPSC 4100 Physics Simulation for Movies
- CPSC 4110 Building Game Engines
- CPSC 4190 Full Stack Programming
- CPSC 4310 Computer Music: Algorithmic & Heuristic Composition
- CPSC 4320 Computer Music: Sound Representation and Synthesis
- CPSC 4470 Introduction to Quantum Computing
- CPSC 4520 Deep learning Theory and Applications
- CPSC 4660 Blockchain and Cyrptocurrency
- CPSC 4670 Introduction to Cryptography
- CPSC 4740 Computational Intelligence for Games
- CPSC 4770 Natural Language Processing
- CPSC 4790 Advanced Topics in Computer Graphics
- CPSC 4830 Deep Learning on Graph-Structured Data
- LING 3800 Neural Networks and Language
- or a course in algorithms, one of:
- CPSC 3650 Algorithms
- CPSC 3660 Intensive Algorithms
- CPSC 3680 Algorithms via Convex Optimization
- or a second course that satisfies the Advanced Programming requirement.
- A: Either a programming in context course that requires significant programming, one of:
- 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.
- 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 1001 or 1120?
- A: Yes, provided that you have taken the AP Computer Science course or have equivalent programming experience.
- Q: May I skip CPSC 2010 or 2000?
- A: In the past, you could. You would then need to take an additional Advanced Programming course or Programming Elective instead. Please note that there will be no waiver test for CPSC 2230 in Fall 2025 semester. CPSC 2000 or CPSC 2010 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 2010 or 2000
- An extra Advanced Programming Course for CPSC 2230. Additional substitutions will be added as needed.
- A: Current substitutions are:
