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.

To ask a specific question not covered below or to find advising office hours, please sign up for the undergrad advising slack channel. Navigate to cs-dartmouth.slack.com, click "create an account" at the bottom of the page, and proceed to set up your [email protected] slack account. Note that you will need to use your Dartmouth email address to sign up. After going through the email verification process, please sign onto cs-dartmouth.slack.com and add the channel #ugrad-advice. Be sure to tune your notification options for this channel as appropriate.

Besides using slack in the browser, you can also download the very convenient desktop client or a phone app.

Major/Minor Advising Hours

If you have any other questions or simply want face-to-face advice, you can talk to Professor Prasad Jayanti during his CS major/minor open advising hours.

Professor Prasad Jayanti's CS major/minor open advising hours for Fall 2017 are: 4.00-5.00pm on Mondays in 224 Sudikoff.

Prerequisites

CS 1 and CS 10 are prerequisites to the CS major and minor.  Unless you are formally placed out of these prerequisites by the CS department, you must complete these courses even if you believe that you know the material. Take CS 1 and CS 10 early in your pursuit of the 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 not be awarded 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.

Modifications

When approving a major, modified major, or minor, the CS Department's undergraduate adviser 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 CS undergraduate adviser, 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—CS 31 and CS 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 CS 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 CS 1 or CS 2; neither course assumes any prior preparation in CS. The higher number associated with CS 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 CS 1 and not CS 2.

CS 1 would be a great course to begin your CS journey with. Most students that take CS 1 love it, and the course teaches programming (in python) without assuming any prior background in CS. CS 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. CS 1 is one of the prerequisite courses to the CS major/minor.

CS 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 CS 1). CS 2 introduces programming in the context of interactive audio/visual arts, and is a 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 CS 1. The reason is that certain concepts that are central to computer science, such as abstraction, modular design, and asymptotic analysis, are introduced in CS 1. However, if you already took ENGS 20, you should know that we count it as equivalent to CS 1.

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

After CS 1, you have a few choices: CS 10, CS 30, or CS 51. They are very different courses. CS 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. CS 30 teaches discrete math that will be useful in later CS courses for rigorously proving and analyzing algorithms; CS 30 does not involve any programming. CS 51 is on computer architecture. Most students do CS 10 after CS 1.

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

There are three ways to place out of CS 1. If you have a score of 4 or 5 in AP Computer Science, the College will automatically place you out of CS 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 CS 1. Finally, if you took a college course elsewhere that you believe is equivalent to CS 1, you can petition to the Computer Science Undergraduate Adviser to place out of CS 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 CS Department then determines whether to approve your request.

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

We do not recommend skipping CS 10. However, if you did a college course elsewhere that you believe is equivalent to CS 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 Adviser that you be allowed to place out of CS 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, and the syllabi etc. The CS Department then determines whether to approve your request.

  1. I have completed CS 1 and CS 10, and 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 ... So, regardless of what other subjects interest you, so 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 do two courses 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 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 etc., 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 do 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. 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 at the 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 CS, 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.
  • 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, CS modified with Engineering and CS modified with Economics are popular. However, several other modifications were approved in the past, including English and History. In our world today there is hardly a subject where computation can't be fruifully employed. So, 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?

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 CS Undergraduate Adviser looks at your plan and approves or denies. If they deny the plan, they will include a message explaining the denial and you can see them during their open advising hours. If you encounter any problems with banner, degreeworks, or dashboard, you should contact the registrar office and not the CS department/adviser.

  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 CS major, including the prerequisite courses and the culminating experience courses. Be sure to enter the course numbers 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 (CS modified with Digital Arts) or CS modified with Engineering because these two 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. 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. Be sure to enter the course numbers 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, including the prerequisite courses. Be sure to enter the course numbers 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 current year's. 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. If you are interested in AIT-Budapest, please see Professor Cormen. You can find at the bottom of the CS major page 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 CS course at a different university in my off term. Will I get transfer credit for it?

Transfer credit for courses done at other universities is neither automatic nor common. If you are serious about taking a course elsewhere, you should contact the CS Undergraduate Adviser 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. The adviser, in consultation with other CS 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 CS department's undergraduate page, talk to your CS friends, take CS classes, or talk to the CS Undergraduate Adviser.

  1. If I need to talk to the computer science undergraduate adviser, how do I do that?

You can find information here on open advising hours.