FAQ

Courses

Should I take CS 2110 or CS 2112?

2112 is a lot more time and a lot harder, but the general consensus is that it is worth it if you’re very interested in the subject.

Should I take CS 3410 or CS 3420?

CS 3420 has ECE 2300 as a prerequisite, and it is highly recommended you take ECE 2300 before taking CS 3420. The 2300/3420 track is useful if you have an interest in ECE and want to “test the waters” before deciding whether you want to pursue either CS or ECE, or both. If you are confident in your preference for CS, then take 3410, otherwise take ECE 2300 and CS 3420 for a brief detour into ECE.

What’s the difference between CS 2110/2 and ENGRD 2110/2?

Same class. CS majors in Engineering take the ENGRD one to fulfill their ENGRD requirement. Check the handbook!

3110 + 3410, is it doable?

Should I take 4410 without 3410 or 3420?

No. - Everyone

Should I take course X?

Check out the Wiki page for that class for more details to help guide your decision. But really, if the material interests you, take it.

Additionally, check out the course and instructor reviews: [1](# "1") for Cornell collected information from previous students.

What’s the best way to prepare for interviews?

Almost all interviews with software companies will focus on technical questions concerning computer science fundamentals. Make sure you know all of the theory from CS 2110 about basic data structures and algorithms. Having taken Algorithms (CS 4820) will be an advantage, as well as Operating Systems (CS 4410). You will be expected to write out solutions by hand, and to explain your reasoning clearly and concisely.

It helps to go through as many past questions as possible, and to come up with your own solutions to these questions quickly and correctly. The website www.careercup.com is a great resource, and so is the book ‘‘Cracking the Coding Interview’’ by Gayle Laakman McDowell.

Should I do the CS major in arts or engineering?

It doesn’t really matter. The only difference is what other requirements you have to complete for each college. An actual breakdown here.

Should I double Major in CS and ECE?

Short answer

Maybe.

Long answer

First, in terms of actual qualifications, you don’t really get much more. The only place it’ll even mention your double major is on your transcript. Most companies who’d consider ECE/CS double majors would also consider CS majors, assuming it’s a programming type job. If you’re actually interested in doing an ECE type job (i.e. digital or analog circuits, signal processing, physics type stuff), then an ECE degree is pretty much needed. But under the assumption that you’re interested in doing the type of job a CS major would be already be qualified for, an additional ECE major would not be a big step up.

Of course, there are other reasons to major in ECE besides just the qualifications. This could be due purely to academic interest. The thing about ECE is that there are a lot of different subfields, and if you’re only interested in one of them, then it’s excessive to do the whole major. There’s basically four fields in ECE - digital circuits, analog circuits, signals and systems, and physics. You have to take at least a course or two in each of these. Besides digital logic, I found all of these boring during/after the first course in each field. If you don’t enjoy at least two to three of these fields, you’re going to have a bad time, and I don’t think it’s worth it, especially given the marginal additional benefit of qualifications.

I can’t really think of any other potential benefits besides qualifications or academic interests. Feel free to add if you can think of any.

So I guess what I recommend is, if you enjoy a subfield, keep taking courses in it. If you liked ECE 2300, take the next course. Take other things in ECE if you think they might interest you. But definitely don’t feel pressured to do the entire major, or even a minor, unless you really really are interested in almost every part of that major/minor.

– Gautam Kamath (Double Major CS and ECE)

However, if you are interested in working in a field that straddles both hardware as well as software, then a double major might come in really handy. One thing to realize is that neither hardware nor software is complete without each other. It is impossible to understand software purely as it is without knowing the hardware details behind it. It’s also interesting to think about problems in hardware and how they affect software complexities. Whoever taught you that hashtables have better lookup than arraylists completely ignored the hardware memory concerns. Also, whoever said that vectors always perform slower than arraylists again did not consider hardware cache evictions.

A double major gives you insight into an extensive array of problems. More education or more knowledge is never a bane. The main question is what are your reasons for double majoring. Consider those carefully before making your decision.

– Ranjay Krishna (Double Major CS and ECE)

Can I take a course if I don’t have all the prerequisites?

Usually, yes. Most professors do not enforce prerequisites. However, it’s a good idea to make sure you’re at least partially comfortable with any topics that may have been covered in the prerequisites.

Edit this page on GitHub: faq.md

Edit me on GitHub