ADVICE FOR FIRST-YEAR STUDENTS INTERESTED IN COMPUTER SCIENCE
What "First" Programming Courses Are Offered?
The Department of Computer Science offers a range of
"first" programming courses:
Of these only CPSC 201 and CPSC 223 count toward the
computer science majors.
CPSC 100 Introduction to Computing and Programming,
taught jointly with Harvard University, teaches
students majoring in any subject area how to
program a computer and solve problems in a variety
CSS and HTML). No prior experience is required.
CPSC 112 Introduction to Computing and Programming
teaches students majoring in any subject area how
to program a computer and solve problems using the
language Java. No prior experience is required.
CPSC 200 Introduction to Information Systems
is a survey course for nonmajors that teaches Python
and focuses on practical applications of computing
technology, while examining topics including computer
hardware, computer software, and related issues such
as security and software engineering. Students with
sufficient programming experience may elect CPSC 200
without taking CPSC 100 or 112.
CPSC 201 Introduction to Computer Science
teaches the basic concepts (e.g., algorithms), techniques
(e.g., recursion), and applications of computer science,
including systems (computers and their languages) and
theory (complexity and computability). Students with
sufficient programming experience may elect CPSC 201
without taking CPSC 100 or 112. (These courses meet at
the same time so that students may easily change levels if
CPSC 223 Data Structures and Programming Techniques
teaches programming in C and data structures
(arrays, stacks, queues, lists, trees, heaps,
graphs) with a focus on sorting and searching.
The prerequisite is CPSC 201 or 200; students who
have not taken either of these courses must
demonstrate sufficient programming proficiency to
Which "First" Programming Course Should I Take?
If you have
If you fall between these levels of preparedness, shop
both courses. If you enroll in the more advanced one
but a week or two later feel that you have overreached,
you may be able to switch to the less advanced one.
(But check with both instructors before you enroll to
ensure that you have this option.)
- never programmed before or have minimal
experience, you should take CPSC 100 or 112;
- taken AP Computer Science or have equivalent
programming experience, you should take CPSC
200 or 201 (the latter if you are considering one
of the computer science majors below);
- several years of of programming experience and
a broad background in computer science, you
should consider taking CPSC 223 (you will be
asked to provide the source code for the most
complicated program that you have written so that
the instructor may assess your preparedness).
How Can I Major in Computer Science?
The Department of Computer Science offers five majors:
Each major program not only provides a solid technical
education but also allows students either to take a
broad range of courses in other disciplines or to
complete the requirements of a second major. For more
details, see the descriptions in the links to the Yale
College Programs of Study above.
What Other Advice Do You Have For Prospective Majors?
Here are some do's and don'ts:
If you have questions about the advice above, contact
the adviser for the Classes of 2024 and 2023,
- Do take a course in computer science during your
first year if you are considering any of the
computer science majors,
- Do take a course in the other discipline during
your first year if you are considering any of our
- Don't take more than one computer science course
per term during your first year. You chose Yale
because you wanted a liberal education; you need
not sacrifice that goal by rushing to satisfy the
requirements of your major.
- Don't take CPSC 201 and CPSC 223 concurrently.
- Don't skip CPSC 201 to enroll in CPSC 223 unless
you are exceptionally well-prepared and can
demonstrate your preparedness. Skipping a course
does not reduce the number of courses required.
How Can I Get More Information/Advice?