Skip to main content

Starting a (CS) major in your fourth semester

Topics/tags: For current students, Grinnell, computer science, rambly [1]

This semester, I’ve heard from a surprisingly large number of second-year students who tell me that they want to take CSC-151 in the spring because they plan to be computer science majors. That strikes me as odd, as the fourth semester is late to start a major. Let’s consider some of the issues involved, both general and specific.

As an advisor, I discourage my advisees from taking the first course in a potential major in their fourth semester. There are multiple reasons to avoid such a path. Most importantly, until you’ve taken the first course (or the first few courses), you don’t know whether you are interested in the subject or whether you show an aptitude for the subject. Many majors involve not only eight four-credit courses in the major but also a variety of related prerequisites, such as the statistics and history that are required for our major in Economics. Trying to fit seven courses that have a prerequisite sequence, along with additional courses, into four semesters can be very difficult and may require that course times align perfectly. It’s also likely to eliminate the possibility of studying abroad.

In an ideal world, students have explored all potential majors in their first three semesters. That’s a fairly generous time frame; many institutions require that students declare a major upon arriving [2], or at least by the end of their first year. I’ve had students take CSC-151 in their fourth semester for other reasons (I thought all informed citizens should know some CS; My friends told me to take it; I heard it would be useful for my major) and discover that they enjoy it enough to consider a major. It’s not just CS; I’ve had advisees discover a passion for another subject in their fourth semester. But that’s different than students who are making the plan to major in a discipline without having first taken the first course.

So why would a student wait until their fourth semester to take the first course in a subject they’ve now decided will be their major? One possibility is that they’ve tried a variety of disciplines and have not found any of those subjects sufficiently interesting, so they’ve picked something that they hear good things about from others. In the particular case of CS, it may also be that they know that a CS degree will likely make them employable in today’s economy [3]. But those aren’t good reasons to pick a major [4]. For CS, I want students to choose the major because they realize that they can use their CS skills to change the world for the better, because they enjoy problem solving, because they enjoy designing and building things (even when those things are virtual), because they see connections between CS and other fields they enjoy.

I’ve addressed the general question of starting a major in the fourth semester [5] and have begun to move to the question of starting a Grinnell CS major in the fourth semester. Let’s consider the specifics of that major and the challenges involved.

The CS major requires eight courses, including our introductory sequence (CSC-151, CSC-161, and CSC-207), a systems course (CSC-211 or CSC 213), our software design course and project (CSC-324), an upper-level course in algorithms (CSC-301), an upper-level course in theory of computation (CSC-341, which we call Automata, Formal Languages, and Computational Complexity), and four credits of electives [6], not including independent study. We also require a course in discrete mathematics (more on that soon) and an additional course in Mathematics or Statistics after Calc I. The introductory sequence is, indeed, a sequence; you must take 151 before 161 and 161 before 207. CSC-207 is a prerequisite for all 300-level courses and most electives. CSC-301 and CSC-341 both require either MAT-218 [7] or MAT/CSC-208, Discrete Structures. MAT-218 requires Calc I, Calc II, and Linear algebra. MAT/CSC-208 requires both CSC-151 and Calc I.

For convenience, let’s assume that our hypothetical student has already taken Calc I but no other mathematics [8]. In their fifth semester, they will take CSC-161 and MAT/CSC-208. In their sixth semester, they can take CSC-207. They may also be able to take CSC-213. However, the department does not attempt to schedule CSC-207 and CSC-213 at non-conflicting times [9]. I think most of us also prefer that students take CSC-207 before CSC-213. But we’ll pretend that the stars align for that semester. This student will then have five courses to fit into their final two semesters: CSC-324, CSC-301, CSC-341, an elective, and a course in Mathematics creditable toward the math major, presumably Calc II or STA-209. Fortunately, we are now able to offer all of those courses every semester [10], which makes fitting those courses an easier task. Still, that means at least one semester will have three Math/CS/Stats classes, which seems excessive to me.

In any case, the thought of starting a major from scratch in your fourth semester still bothers me. I wonder what other majors would accommodate that. Probably not any of the languages [12]. Biology seems worse than CS; it would require you to take both BIO-150 and CHM-129 in your fourth semester so that you could take BIO-251 and CHM-221 in your fifth semester, BIO-252 in your sixth semester, and five courses at the 200- and 300-level in your last year. Physics would introduce the complexity of the math corequisites. If you suddenly decided to major in Studio Art in your 4th semester, you’d need to start with ART-111, which doesn’t even count toward the major. And the odds of getting a slot in that class are slim at best. Econ would be a challenge, particularly since the seminars and 300-level classes generally require Micro and Macro and those require another 200-level course as a prerequisite. Plus you have to fit Econometrics in there somewhere. As far as I can tell, starting in the fourth semester is a bad idea, no matter what major it is.


[1] Is it time to retire the rambly tag, since so many of my musings are rambly?

[2] Or even before arriving. For example, I’m pretty sure that the University of Washington and the University of California, San Diego, both limit the number of incoming students in certain majors.

[3] For international students, CS is also a discipline that is likely to lead to extended OPT time.

[4] That statement isn’t quite fair. While I would prefer that a student’s major did not determine their likelihood of finding work, one must acknowledge that most students do need good jobs upon graduating.

[5] It generally seems like a bad idea.

[6] I tend to refer to this as our oxymoronic elective requirement.

[7] MAT-218 is a variable-topic course that we generally refer to as Discrete bridges to advanced mathematics. The most common topics seem to be Graph Theory and Elementary Number Theory.

[8] If they have not taken Calc I, we’ll assume they take it the same semester as CSC-151.

[9] We have enough other issues at play in scheduling that avoiding conflicts in our 200-level courses is a comparatively low-priority item.

[10] For much of my time at Grinnell, CSC-211 and CSC-213 were each offered every-other year, and most of our core upper-level courses were offered once per year [11].

[11] If I recall correctly, there was a period in which software design alternated years with compilers.

[12] If I recall correctly, for some languages, such as Chinese and French, if you enter Grinnell with no prior background, it may be impossible to complete the major if you don’t start in your first semester.


Version 0.5 of 2018-11-20.