Yale UniversityWebsiteAcademic Catalog
Computer ScienceDepartment Website
BS Degree in Computer Science and Mathematicssource 1source 2source 3
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.
- 1 × CS Elective
- orSenior EssayMATH 475 (1)mathMATH 475: Senior Essay
Interested students may write a senior essay under the guidance of a faculty member, and give an oral report to the department. Students wishing to write a senior essay should consult the director of undergraduate studies at least one semester in advance of the semester in which they plan to write the essay.
Math/Stat Courses
- Calculus of Functions of Several VariablesMATH 120 (1)mathMATH 120: Calculus of Functions of Several Variables
Analytic geometry in three dimensions, using vectors. Real-valued functions of two and three variables, partial derivatives, gradient and directional derivatives, level curves and surfaces, maxima and minima. Parametrized curves in space, motion in space, line integrals; applications. Multiple integrals, with applications. Divergence and curl. The theorems of Green, Stokes, and Gauss.
- Linear AlgebraorMATH 225 (1)mathMATH 225: Linear Algebra
An introduction to the theory of vector spaces, matrix theory and linear transformations, determinants, eigenvalues, inner product spaces, spectral theorem. The course focuses on conceptual understanding and serves as an introduction to writing mathematical proofs. For an approach focused on applications rather than proofs, consider MATH 222. Students with a strong mathematical background or interest are encouraged to consider MATH 226.
Linear Algebra (Intensive)MATH 226 (1)mathMATH 226: Linear Algebra (Intensive)A fast-paced introduction to the theory of vector spaces, matrix theory and linear transformations, determinants, eigenvalues, inner product spaces, spectral theorem. Topics are covered at a deeper level than in MATH 225, and additional topics may be covered, for example canonical forms or the classical groups. The course focuses on conceptual understanding. Familiarity with writing mathematical proofs is recommended. For a less intensive course, consider MATH 225. For an approach focused on applications, consider MATH 222.
Science Courses
- 2 × Science course
Other Courses
- 9 × Free Elective
History of the Major
2024 | |
2023 | |
2022 | |
2021 | Replace "CS elective from (list)" → "CS elective with significant math content". |
2020 | |
2019 | |
2018 | |
2017 | Add CPSC 366 (Intensive Algorithms) as an alternative to CPSC 365 (Algorithms). |
2016 |