Yale UniversityWebsiteAcademic Catalog
Computer ScienceDepartment Website
BS Degree in Computer Sciencesource 1source 2source 3source 4
CS Courses
- Introduction to Computing and ProgrammingorCPSC 100 (1)introCPSC 100: Introduction to Computing and Programming
Introduction to the intellectual enterprises of computer science and to the art of programming. Students learn how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript, plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. No previous programming experience required. Open to students of all levels and majors.
Python Programming for Humanities and Social SciencesorCPSC 110 (1)introCPSC 110: Python Programming for Humanities and Social SciencesIntroduction to computer science and Python programming with domain-specific applications. Students learn how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, web development, and statistical tools. Students learn to apply computing techniques in the fields of social sciences & humanities by analyzing data. No previous programming experience is required. This course is intended for students of social sciences & humanities majors.
- Introduction to Computer ScienceCPSC 201 (1)introCPSC 201: Introduction to Computer Science
Introduction to the concepts, techniques, and applications of computer science. Topics include computer systems (the design of computers and their languages); theoretical foundations of computing (computability, complexity, algorithm design); and artificial intelligence (the organization of knowledge and its representation for efficient search). Examples stress the importance of different problem-solving methods. After CPSC 112 or equivalent.
- Data Structures and Programming TechniquesCPSC 223 (1)introCPSC 223: Data Structures and Programming Techniques
Topics include programming in C; data structures (arrays, stacks, queues, lists, trees, heaps, graphs); sorting and searching; storage allocation and management; data abstraction; programming style; testing and debugging; writing efficient programs. After CPSC 200, 201 or passing an exam based on CPSC 201 content.
- Introduction to Systems Programming and Computer OrganizationCPSC 323 (1)sysCPSC 323: Introduction to Systems Programming and Computer Organization
Machine architecture and computer organization, systems programming in a high-level language, issues in operating systems, software engineering, prototyping in scripting languages. After CPSC 223.
- 6 × CS Elective
Math/Stat Courses
- Mathematical Tools for Computer ScienceorCPSC 202 (1)mathCPSC 202: Mathematical Tools for Computer Science
Introduction to formal methods for reasoning and to mathematical techniques basic to computer science. Topics include propositional logic, discrete mathematics, and linear algebra. Emphasis on applications to computer science: recurrences, sorting, graph traversal, Gaussian elimination.
Science Courses
Other Courses
- 12 × Free Elective
History of the Major
2024 | |
2023 | |
2022 | |
2021 | |
2020 | |
2019 | |
2018 | |
2017 | Add CPSC 366 (Intensive Algorithms) as an alternative to CPSC 365 (Algorithms). |
2016 |