Advice

Below you will find some basic advice for students interested in CS as a major, modified major, or a minor. See also our extensive list of Frequently Asked Questions.

For advice or an appointment, please contact the Undergraduate Program Director at the address listed below.

Undergraduate Program Director

If you have any other questions that are not answered in the FAQ below, or simply want face-to-face advice, please reach out to the Undergraduate Program Director for Computer Science by emailing this address.

For the upcoming year, the following faculty will serve as Undergraduate Program Director during the indicated terms:

Prerequisites

COSC 1 and COSC 10 are prerequisites to the CS major and minor.  Unless you are formally placed out of these prerequisites by the Computer Science department, you must complete these courses even if you believe that you know the material. Take COSC 1 and 10early in your pursuit of the major or minor.

COSC 1 has no prerequisities.  COSC 10 has only COSC 1 as a prerequisite.

You might hear about a COSC 11 prerequisite.  There is no longer a COSC 11 prerequisite.  This course has been renumbered to COSC 70 (you might also see it as COSC 70.01) and is now a major course (in the Applied Computer Science group of courses).  If you have already taken COSC 11, you may use it as COSC 70 and count it toward a Computer Science major or minor.

Planning

We advise that you do not leave specialized requirements until the final term. For example, the CS major requires two courses numbered 70 to 89. If you leave one of these courses to your Spring term and fail this course, then even if you completed more courses than required in other tracks, you will have not completed the major. This situation has happened before, so please plan your schedule carefully, leaving room to cope with unforeseen situations. Also, the department's teaching schedule for an academic year is typically not fully determined until late in the previous academic year. Take this uncertainty into account as you plan your course schedule.  Your best bet for planning is to use the Upcoming Class Schedule page as a model for future years.

Declaring your Major/Minor

Check out the guide on how to declare a CS major or minor.

Modifications

When approving a major, modified major, or minor, the Computer Science department's Undergraduate Program Director strictly enforces the course requirements as laid out in the ORC.  If a student has an exceptional situation and wishes to request a relaxation (e.g., substituting one course for another), then the student must formally petition the department, clearly explaining the rationale for the request. The student's petition will be decided on by the Computer Science Undergraduate Program Director, possibly in consultation with the Department Chair or the faculty.  Students should be aware that the faculty do not generally support substitutions or relaxing the requirements.

Internships

Many students have reported that certain courses—COSC 31 and COSC 50—are helpful for internship and job interviews. You may find it useful, therefore, to take these courses as soon as possible. More generally, you might find it useful to talk to other Computer Science majors and minors to learn from their experiences.

Frequently Asked Questions

  1. What sort of education can I expect if I choose to study computer science at Dartmouth?

We welcome you to try Computer Science. You will find that we have a terrific undergraduate program, where we teach Computer Science in the context of Dartmouth's liberal-arts curriculum. What does that mean? It means that we instill the fundamental knowledge and thinking skills that will take you far in your career long after you leave Dartmouth. You won't have just the knowledge you need to get a job or into graduate school; you'll have the foundation to learn what you need to know when you need to know it throughout your entire career. It also means that you'll have numerous opportunities to interact with our world-class faculty, in courses and in research. Yes, in research: most of the faculty in the Computer Science department have published papers in top conferences and journals with undergraduate coauthors. You will have ample opportunities to not only take in knowledge, but to create it.

  1. What kinds of opportunities do Dartmouth CS undergraduates have when they graduate?

Our graduates go on to do great things. Some take positions at leading companies such as Google, Facebook, Microsoft, Amazon, and Apple. Some take positions at smaller tech firms. Some go to top graduate programs at schools such as MIT, Stanford, Cornell, Carnegie Mellon, and Berkeley. Some go into careers not directly related to Computer Science, but undoubtedly the ways of thinking that they learned at Dartmouth had a significant and positive influence on what they do and how they do it.

  1. I want to try out CS. Where do I start if I never took any CS course in high school or Dartmouth?

You can start with COSC 1 or COSC 2; neither course assumes any prior preparation in CS. The higher number associated with COSC 2 does not make it a better or a more challenging course. In fact, as elaborated in the next two paragraphs, if you expect to pursue more CS after the first course, you should take COSC 1 and not COSC 2.

COSC 1 would be a great course to begin your CS journey with. Most students who take COSC 1 love it, and the course teaches programming (in Python) without assuming any prior background in CS. COSC 1 is a good starting point regardless of whether you want to stop doing CS after just one class or you expect to take more CS classes. COSC 1 is one of the prerequisite courses to the CS major/minor.

COSC 2, in contrast, does not help meet any of the CS major/minor prerequisites; it does however fulfill the prerequisite for the Digital Arts minor (but so does COSC 1). COSC 2 introduces programming in the context of interactive audio/visual arts and is the right choice only if you are sure that you will not pursue a major or a minor in CS.

  1. Is ENGS 20 a good first course too?

If you plan to pursue a major or minor in CS, or even do more CS courses beyond the first course, we strongly recommend that your first course be COSC 1. The reason is that certain concepts that are central to computer science, such as abstraction, modular design, and asymptotic analysis, are introduced in COSC 1. However, if you already took ENGS 20, you should know that we count it as equivalent to COSC 1.

  1. I found COSC 1 exciting. What should I do next?

After COSC 1, you have a few choices: COSC 10, COSC 30, or COSC 51. They are very different courses. COSC 10 teaches object oriented programming (in Java), data structures, and includes programming assignments where you will apply these concepts to solve exciting problems from different domains. COSC 30 teaches discrete mathematics that will be useful in later CS courses for rigorously proving and analyzing algorithms; COSC 30 does not involve any programming. COSC 51 covers computer architecture, that is, how computers are designed. Most students take COSC 10 after COSC 1.

  1. Can I place out of COSC 1 based on my prior knowledge of programming?

There are three ways to place out of COSC 1. If you have a score of 4 or 5 in AP Computer Science, the College will automatically place you out of COSC 1. Otherwise, if you believe you know programming well (for example, through high school classes), you can take the local placement test offered by Dartmouth, usually in the first week of September. If you pass this test, you place out of COSC 1. Please note that the only time that the CS placement test is offered is during fall orientation.  Finally, if you took a college course elsewhere that you believe is equivalent to COSC 1, you can petition to the Computer Science Undergraduate Program Director to place out of COSC 1. In this case, you will have to provide the relevant information—when and where you took the course, your grade, and the syllabus. The Computer Science department then determines whether to approve your request.

  1. Can I place out of COSC 10 based on my prior knowledge of computer science?

We do not recommend skipping COSC 10. However, if you took a college course elsewhere that you believe is equivalent to COSC 10 or if you believe you have a very strong background in object-oriented programming, data structures, and applying data structures to solve computational problems, you can request the Computer Science Undergraduate Program Director to allow you to place out of COSC 10. In this case, you will have to provide the relevant information—when and where you took the relevant courses or gained the relevant knowledge, your grade, the syllabi, etc. The Computer Science department then determines whether to approve your request.

  1. I have completed COSC 1 and COSC 10, and I want to do more CS. How should I proceed?

Computation is at the heart of pretty much every field today. You must have heard people talk about computational biology, computational finance, computational physics, computational music … .  Regardless of what other subjects interest you, as long as you find computer science enjoyable and manageable, it is worth pursuing computer science at a level that is compatible with your overall goals and aspirations. There are several avenues for this pursuit.

  • You can major in computer science. This choice enables you to pursue computer science broadly and deeply. Beyond the prerequisites, you will take two courses each in the three main tracks of CS—theory, systems, and applied computer science—and three electives from among a wide selection of exciting courses offered in the department. You will culminate the major with a thesis or a project, which is again a choice you make based on your interests and career goals. You can find out more information at the CS Major page.
  • If your interest lies in applying the concepts and skills you learn in computer science to some other field, such as economics, biology, music, engineering, history, you should consider a modified major, where you modify Computer Science with a different subject. If Computer Science is the primary subject of your modified major, you have an opportunity to learn CS broadly and deeply, although not to the extent of a full major. Specifically, beyond the prerequisites, you will take one course each in the three main tracks of CS—theory, systems, and applications—and three electives from among a wide selection of exciting courses offered in the department. You will culminate the modified major with a thesis or a project, which is again a choice you make based on your interests and career goals. On the other hand, if Computer Science is the secondary subject of your modified major, all that will be required are four electives, beyond the prerequisites. For any modified major involving Computer Science, the courses you select must form a coherent plan, and they must be approved by the Computer Science Undergraduate Program Director. You can find out more information at the CS Modified Majors page.
  • If you are interested in learning those aspects of computers and computer science that will help produce great art, stunning animations, or films, you should consider Computer Science modified with Digital Arts (CSDA). Beyond the prerequisites, this major takes you through core computer science classes, digital arts classes such as 3D modeling and animation, and a few arts electives, culminating in a thesis or a project. If you are excited about this possibility, you might want to stop by the DALI lab in Sudikoff and talk to the students there about their experience. You can find out more about the CSDA modified major here.
  • If you want to take a few computer science classes beyond the prerequisites, but do not have room for a full major or a modified major, you can consider a minor. We offer two minors: the Computer Science minor and the Digital Arts minor. You can get more information on these at CS Minor page or DA Minor page.
  • Finally, if you are interested in computer science but can't entertain a major, modified major, or minor in Computer Science, just go ahead and take those classes that are useful or interesting to you. Only be sure that for each class you plan, you have fulfilled its prerequisites.
     
  1. I find the idea of a modified major appealing, but I am concerned whether the computer science department will approve the modifying subject I have in mind. Is my concern real?

It is true that certain modifications are more popular than others. For instance, besides CSDA discussed above, Computer Science modified with Engineering Sciences and Computer Science modified with Economics are popular. However, several other modifications were approved in the past, including English and History. In our world today, computation enters into virtually every subject. Provided that you have the passion for applying computer science and computation to your favorite subject, you should be able to come up with an intellectually appealing rationale and plan that the two departments/programs in your modified major and the registrar will be able to approve.

  1. I want to declare my major, modified major, or minor in computer science. What should I do?

First, meet with the Undergraduate Program Director to discuss your plans and learn how to file your major plan on DegreeWorks.  Then, go to DegreeWorks on Banner and create there a plan for the major, modified major, or minor, and then submit this plan via Dashboard on Banner (see below for what the plan should include). Once you submit the plan via Dashboard, the Computer Science Undergraduate Program Director looks at your plan and approves or denies. If your plan is denied, you will see a message explaining the denial, and you can see the Undergraduate Program Director during open advising hours. If you encounter any problems with Banner, DegreeWorks, or Dashboard, you should contact the Registrar's Office and not the Computer Science department.

  1. If I want to file a plan on Banner for the Computer Science major, what should I include in my plan?

Your plan should include only those courses that are required for the Computer Science major. Include the prerequisite courses and the culminating experience courses just as you include the other major courses, but also note them where asked. Be sure to enter the course numbers and terms correctly so that the Registrar's system recognizes the courses you put in. See the CS Major page to find out what courses are required to fulfill the major.

  1. If I want to file a plan on Banner for the Computer Science modified major, what should I include in my plan?

Your plan should include two components: courses and a rationale. The rationale is not required if your modified major is either CSDA (Computer Science modified with Digital Arts), Computer Science modified with Engineering Sciences, or Engineering Sciences modified with Computer Science, because these three modified majors are preapproved by Dartmouth. If you are filing any other modified major, you must provide a rationale, which is usually a page or page-and-half long, and makes an intellectually compelling case for why you want to pursue the modified major that you are proposing and how your objectives will be met by the particular combination of courses you are proposing.  You should explain how each major course fits into your plan of study.  Include only those courses that are required for your modified major, including the prerequisite courses for the primary and secondary parts of your modified major and the culminating experience courses required for the primary part. Include the prerequisite courses and the culminating experience courses just as you include the other major courses, but also note them where asked. Be sure to enter the course numbers and terms correctly so that the Registrar's system recognizes the courses you put in. See the CS Modified Majors page to find out what courses are required to fulfill the modified major.

  1. If I want to file a plan on Banner for a minor, what should I include in my plan?

The Computer Science department offers two minors: the Computer Science minor and the Digital Arts minor. You can see the requirements for the Computer Science minor at the CS Minor page and for the Digital Arts minor at the the DA Minor page. When filing the plan on Banner, include only those courses that are required for the minor. Include the prerequisite courses and the culminating experience courses just as you include the other major courses, but also note them where asked. Be sure to enter the course numbers and terms correctly so that the Registrar's system recognizes the courses you put in.

  1. When filing my course plan on Banner, how do I know the schedule of courses for the future terms?

Your plan should not include a course under a term if that course is not offered in that term. You can find out the schedule of courses for the next academic year by consulting the upcoming class schedule page, which is usually posted each January. For future years beyond the next academic year, no one knows the schedule, so when filing your plan make the assumption that the schedule for that year will be similar to the last year listed in the upcoming class schedule page. If it later turns out that the assumption is wrong, you simply will have to revise your plan as necessary.

  1. I heard about the Computer Science FSP at AIT Budapest. Can you tell me more about this program?

The AIT-Budapest possibility is not an FSP; in fact, the Department of Computer Science does not offer an off-campus program. However, a few of our undergraduates have been taking a transfer term, usually in the fall of their junior year, at AIT-Budapest to receive transfer credit for some of the AIT courses. The CS website has a page of information about AIT-Budapest for Dartmouth students.  If you are interested in AIT-Budapest, you should let Professor Cormen know before you apply. The page with information about AIT-Budapest for Dartmouth students contains a list of relevant AIT courses and the (approximate) corresponding Dartmouth course. Note that each transfer credit request must be approved by the appropriate department and then by the Registrar.

  1. I am planning to take a computer science course at a different university in my off term. Will I get transfer credit for it?

Transfer credit for courses taken at other universities is neither automatic nor common. If you are serious about taking a course elsewhere, you should contact the Computer Science Undergraduate Program Director and provide the name of the university, term, what Dartmouth course you are requesting transfer credit for, and a link to the syllabus of that university's course. Note that we require a syllabus, not just a catalog description.  The Undergraduate Program Director, in consultation with other Computer Science faculty, will approve or deny your request. The final approval rests with the Registrar. The process can take some time, so be sure to plan ahead and get the approval before making plans or paying the tuition elsewhere.

  1. How can I learn more about the Computer Science undergraduate program?

Visit the Computer Science department's undergraduate page, talk to your CS friends, take CS classes, or talk to the Computer Science Undergraduate Program Director.