This is a form for anonymous feedback, for your ideas for CS to consider, or ask a question for the FAQ. CS Feedback.
We like to say that CS teaches you how to think more methodically and how to solve problems more effectively. As such, its lessons are applicable well beyond the boundaries of CS itself.
But CS is also, more generally, the study of information. How do you represent it? With what methods (aka algorithms) can you process it?
Perhaps the most liberal answer, though, is that CS is a modern “queen of the sciences” in the sense that it is not restricted to any particular domain, and can be applied to problems in all sorts of human endeavors including the natural and social sciences, law, government and medicine, and even the humanities. CS empowers you with tools and ideas that can be applied to practically any domain of interest to you, both in college and beyond.
Contrary to popular belief, CS is not really about programming, even though you do learn how to program. Programming languages are tools that computer scientists use or create in order to solve problems of interest to them.
The resources section of this web page contains many useful additional sources of information. In particular, if you have any interest in CS, we recommend that you join the CS Undergraduate Piazza Forum which is run by students for students, and is an excellent place to ask all sorts of questions about the concentration.
No! Contrary to popular belief, not every Computer Scientist has been programming since childhood! In fact, 68% of the students who took CS50 in Fall 2017 had never taken a CS course before. Only 22% had taken one, and only 10% had taken two or more
No: Harvard CS strives to ensure that no student is restricted from joining a course due to lack of a suitable computer. Harvard CS does not have specific hardware requirements.
We do recommend that students have a laptop for working on problem sets. Any recent PC or Mac laptop should be good enough for all required CS courses (though not Chromebooks, tablets, or netbooks). Harvard provides computer loans for students on financial aid (see Computer Loan Form and Information on Outside Award Reimbursement Form ): your financial aid contact - visible in my.harvard - can provide you with more information). For CS courses that demand more computing power, we will provide either cloud or lab-based solutions, to ensure that no student is restricted from joining a course due to lack of a powerful computer. Harvard students are eligible for discounts on Apple and Dell products, see HUIT’s website.
Many students benefit from CS 50 even if they have some programming experience or have taken a CS course. In particular, most students who took CS AP A in high school find it useful to take CS 50 as well. However, if you have significant academic and/or programming experience, you might consider going straight to more advanced courses such as CS 51, 61 or 121. You can look at the syllabi and webpages of these courses, as well as reach out to their instructors, to determine if you are ready for them. See the CS 50 website for more information.
Yes! CS concentrators head off in all sorts of directions after graduation.
Yes, so long as you still have time to satisfy the requirements. Even David J. Malan ‘99, who now teaches CS50, didn’t take his first CS course until his sophomore year, when he switched from Government to CS.
Take a look at our page devoted to First-year Exploration!
We find that the most useful mathematical background for computer science includes linear algebra, probability/statistics, and discrete mathematics. Some areas such as optimization and machine learning, also use multivariate calculus.
At Harvard there is a variety of courses to achieve this background. Most CS concentrators take one of the Math 21, 22, 23, 25 or 55 series. The math department has a useful pamphlet detailing the difference between these courses. If you are up for it, we find that the emphasis on mathematical proofs in the Math 22 and above series can be very useful for courses in computer science. (In particular, Math 23a + 23c can be a good combination for CS concentrators.)
The most common way to get the background in probability/statistics and discrete mathematics is via STAT 110 and CS 20 respectively. We find that many students who are comfortable with mathematical proofs (especially those that have taken Math 23/25/55) are able to skip CS 20 and pick up the required background on discrete mathematics via self study.
The CS 121 background page contains information on the mathematical background that is useful for both CS 121 and CS 124, which are courses many CS concentrators take in their sophomore year.
Yes! The Quantitative Reasoning with Data requirement is met with several CS courses, including CS 10, CS 50, CS 124, CS 109a, CS 109b, CS 181, and AM 120. (CS 10 does not count for concentration credit).
Note that these may change.
See the page Declaring CS Concentration.
It is your responsibility to make sure you follow the plan of study. If your plan changes, you can update and send us a new plan of study form at any time.
See the CS handbook entry for information about honors vs. basic tracks, the MBB FAQ for information about the Mind, Brain, and Behavior, and the secondary CS handbook entry for information about declaring a CS secondary.
“It’s better to ask permission than forgiveness”. If you want any kind of exception, counting non-CS or non-Harvard courses towards CS, course credit for study abroad, or anything else, email us or come and talk to us in our office hours (see above).
Even if you know of someone that had a similar exception before, don’t assume that you can get one too without checking with us: individual conditions, policies, and course contents can all vary from term to term. It’s always better to ask permission ahead of time so you can plan your courses before the term begin, rather than finding out you need to change courses late into the term.
See this page for an overview of which courses count towards which requirements, including which courses other than Harvard-CS courses can be used for the CS concentration.
See this page for information about study abroad. You should talk to the Office of International Education. Feel free to email us to ask about whether particular courses could count towards concentration credit. There are many strong computer science programs whose courses can be taken for concentration credit, but this depends on the details such as the exact syllabus of the course, the number of hours, what courses you’ve taken at Harvard, and more. You should not assume that a course will count without checking it with us beforehand. The final approval only comes after you have completed the term and we receive the transcripts from the institution you studied in. For summer study abroad funding, please check out this resource from the Office of International Education. You can also check in with your financial aid officer, who is visible to you in my.harvard.
See this page for information how to cross-register and how to petition for the course to count towards a CS concentration.
A thesis is not required for the non-Honors or Honors tracks. But to be eligible for the English honors of “High Honors” and “Highest Honors”, a thesis is required.
No, a thesis is a research paper. You might end up writing programs in order to evaluate your ideas, but those programs are ordinarily means to an end, not an end in themselves. See this page for more information and some examples.
Yes! Many CS courses offer opportunities for research, particularly 200-level courses. And you can take CS91r to work one-on-one with faculty. Students and faculty do research in all sorts of areas, including, but not limited to: Architecture, Artificial Intelligence, Computational and Data Science, Computational Neuroscience, Economics & Computation, Graphics, Vision, Visualization, & Interaction, Information & Society, Programming Languages, Systems, Networks, & Databases, Theory of Communication, and Theory of Computation.
For more information see the Research page.
This page contains a wealth of information on getting involved with research, and in particular the list of all faculty office hours and research interests. Taking advanced courses, such a CS 2xx course, is often a good way to get exposed to research in various areas. Your faculty advisor can also be a good source of information on this topic.
More information can be found on our research page.
A CS 91r needs to be project where you learn to “think like a scientist” and take part in scientific study. While it may involve coding, it should have a clear research purpose and your role in the project should not be as just a developer. After you find a suitable advisor (either a Computer faculty, or potentially other Harvard faculty doing a project that intersects with computer science), you need to fill out together with the advisor the CS91r form and have your advisor send it to us at firstname.lastname@example.org
A CS 91r is a directed research project with an advisor, and is letter graded. An Independent Study is a non-departmental course that has an advisor but is not letter graded. As the name implies, a student in an independent study project is expected to work with little supervision. See this page for more information.
There are two types of honors for undergraduates: Latin honors (summa, magna, cum laude) are determined by the College and English honors (highest honors, high honors, honors) are determined by concentrations. More precisely, the Latin honors are: “summa cum laude in a field”, “magna cum laude with Highest Honors in a field”, “magna cum laude in a field”, “cum laude in a field”, and “cum laude on the basis of the student’s overall record”.
See the Degree programs page for information about requirements for English honors in Computer Science.
See this page for information about the requirements for Latin honors. Latin honors are determined based on your overall GPA and your English honors.
Take an honors-track CS program and have a sufficiently high concentration GPA.
Honors-track CS programs include the Honors program, joint concentrations, and the Mind, Brain, and Behavior Program. The Honors program differs from the basic program by requiring six technical electives instead of four.
High Honors are decided by faculty vote. You must ordinarily write an “excellent thesis” and have a sufficiently high concentration GPA to be considered.
See the Degree programs page for more information about requirements for English honors in Computer Science.
Highest Honors are decided by faculty vote. You must ordinarily write an “outstanding thesis” and have a sufficiently high concentration GPA to be considered.
See the Degree programs page for more information about requirements for English honors in Computer Science.
Maybe! If you are eligible for Advanced Standing and think you could handle eight (mostly) 200-level CS courses, it’s a great opportunity. Your bachelor’s degree doesn’t even need to be in CS, so long as you can still satisfy the prerequisites for the 200-level courses. See Other Academic Opportunities in the Handbook for Students.
Advanced Standing is a program that allows students to apply Advanced Placement exams, International Baccalaureate higher levels, and other international credentials towards their undergraduate credit totals towards graduation. In doing so, students may graduate in 6 or 7 terms, or they may apply for a master’s degree program.
To Apply for Advanced Standing:
*Questions? Contact the Office of Undergraduate Education or schedule an appointment at email@example.com
*Complete and Submit the Advanced Standing Activation Form to your Resident Dean. You should make an appointment with one of the DUSes to review your form when you are ready to activate.
SEAS offers several AB/SM degrees, and more information can be found on the AB/SM Information website. Questions about course requirements may be directed to the Director of Graduate Studies, Professor David Brooks.
Yes! More information about the CS MBB program is available on this page.
Yes, a SAT in CS50 would count toward concentration or secondary credit.
If you want to change your concentration advisor, you can fill in the advisor preference form. For your preferences to be used in assigning advisors before the Fall term, the deadline is July 31; for the Spring term it is December 31. We will try to honor your preferences, but may be unable to do so.
This page contains links to a number of resources that can be helpful for CS students interested in developing a new product or starting a company. You can also ask to your faculty advisor for other suggestions.
The main thing to note is that you need to take four computer science courses satisfying:
(Students in the Class of 2023 and earlier may use the old requirements: any four courses from CS 50, CS 51, CS 61, or numbered CS 100 or higher.)
However, please see our page on CS Secondaries for additional information.
Follow these instructions to declare a secondary concentration on my.harvard.edu.
Non-Harvard CS courses, MIT courses, and study abroad courses, do not count towards a secondary in computer science. See our page on CS Secondaries for more details.
The requirements for a CS joint concentration are the same regardless of whether CS is the primary or allied concentration. Course requirements are the same as for the Requirements for Honors Eligibility, except that only three technical electives are required. See this page for more details.
A thesis in the intersection of the fields is required for joint concentrators, which will be read by both concentrations. We strongly advise all our joint concentrators to make sure that they satisfy the non-joint requirements for at least one concentration, in case they are unable to complete a thesis.
Beyond the College’s central Office of Career Services, there is the SEAS’s Office of Student Career Development. Keith Karasek, the Director of Experiential and Career Development, puts out a weekly email with opportunities and is available to meet for a 25-minute session.
CS Clubs and Activities also often post opportunities to their lists, and some run practice interviews.