Minoring in Computer Science

You are considering the CS minor — that's great! Welcome!

Table of contents

Is the CS minor for you?

Many students have another major, enjoy CS (or consider it useful), and then contemplate a CS minor. Is it right for you?

My usual advise is to work the problem the other way around: think about your goals first and then see if the minor works for you. If you have a choice between doing the CS minor and taking courses that align with your interests, career aspirations, or advanced educational plans, then do the latter! Specific preparation for a job, graduate program, etc. is usually better than a generic preparation. You can certainly look at the CS minor as a foundation for specific study, but you'll still want to know where you're going.

The minor is great for those who are not certain where they will end up and would like a general-purpose grounding in some core elements of computing practice and theory, or for those who do know that they want to pursue CS theory, computer systems work, or back end software engineering.

If you know you want to pursue data analysis and machine learning, for example, then it may better to take linear algebra, machine learning, statistics, etc. Tufts has a Data Science program, and I would recommend looking at those courses and their prerequisites if that interests you. If you are keen on web programming, then CS 20 Web Programming or 120 Web Engineering (you cannot take both) would be very good, particularly in conjuction with CS 115 Databases (even if you don't end up with a CS minor).

Minor requirements

The minor requirements are pretty straightforward (see https://engineering.tufts.edu/cs/current-students/undergraduate/minor-computer-science for all the details):

You can and should tailor the choices to your tastes/interests/career or educational goals.

There are no approved subsitutions. The CS minor was created to represent a specific collection of core competencies and was not intended to mean “this student has some random collection of CS skills.” The only substitution permitted is that a programming languages course taken elsewhere that transfers as CS 80 may replace CS 105 (in which case 105 cannot then also be counted toward the minor).

If you apply for a job or a graduate program and get to the stage where a human reads your application, you can and should describe any relevant background/training/experience you have. You can say for example, “I have a strong programming background as evidenced by my completion of Machine Structure and Assembly Language Programming (CS 40) and Operating Systems (CS 111). I have also taken linear algebra and machine learning and completed an internship where I applied machine learning principles to …” If you are applying for something in machine learning, this is likely much better than the general CS minor.

Road maps through the CS minor

If you are pursuing the minor, then take CS 15 and 61 (or Math 61/65) as soon as possible. Those two courses are prerequisites for virtually all advanced programming or theory courses, respectively, and they are truly foundational. 15 is a prerequisite for all the core courses, and 61 is a prerequisite for all but 40. CS 61 (Discreet Math) gives you a grounding in basic concepts and notations that pervade CS and, critically, teaches you to write proofs (over discrete structures). Inductive proofs are especially important in CS and play a strong role in 105 as well as 160 and 170.

CS 15 and 61 can be taken concurrently if you have the time. This is especially helpful for math majors or those with some facility with mathematical proofs.

CS 15 and 160 can also be taken concurrently, but this represents a very high workload as both courses can be demanding.

After that, it depends on where you want to go.

While I love 170, it's probably the least relevant to most professional trajectories. It can be of interest to math majors, of course, and philosophy majors interested in formal logic and limits of discrete formal systems.

How to declare the CS minor

Easy! You do not need to email anyone or ask permission. Sign up using the appropriate form at https://students.tufts.edu/registrar/forms-and-policies/student-forms.

What do do when graduating

When you are submitting your materials for graduation, to get the CS Minor on your diploma, you will need to have me (or a member of the CS Advising team) sign your CS Minor checklist.

I enjoy signing these in person. It's a chance to celebrate your upcoming graduation! Check out my office hours on my main page. If you cannot drop by the office, then you may leave the form in the department office. I am in there every couple days and will sign it then, and the office staff can alert you that it is signed. (Check if you haven't heard anything for 3 days.) You can also send it to me or csadvising@cs.tufts.edu for an electronic signature.

If you have questions

You are always welcome to bring your questions to me. You are welcome at my regular office hours (see www.eecs.tufts.edu/~msheldon/index.html for the current schedule — usually set in the second week of classes each term). If my office hours are super crowded or you cannot make that time, then feel free to email me at msheldon@cs.tufts.edu.