Brown AB and ScB majors both require 2 introductory CS courses and 3 intermediate CS courses. The AB major requires 4 advanced CS courses, while the ScB major requires 8 advanced CS courses plus 2 math courses beyond the calculus 2 level (note that discrete math is listed in the CS department as an intermediate CS course). So a total of 9 CS courses for the AB major versus 13 CS courses and 2-4 math courses (15-17 total) for the ScB major. Brown requires a minimum of 30 courses to graduate, though 32 is probably more typical based on 4 courses per semester over 8 semesters.
Getting the CS degree through the math department probably dates back to a time when schools were still developing programs. Circa 1970 some schools had entire computer science buildings (UW-Madison) while others had no program. A while ago I read a long article on programming which software developer/engineer (title depends on place of employment, not degree) son indicated was accurate. In this article knowing a lot of math (beyond college calculus) was deemed useful while different fields and countries use different programming languages (so knowing some now may not be useful).
A comparison of computer science and computer engineering is like comparing chemistry to chemical engineering. Overlap but differences- think software versus hardware. EE now is combined with computer engineering in at least some places.
I agree with those who suggest a school where your D can switch majors if she no longer wants the CS major. I also suggest she looks at the required, recommended and available CS courses at some good schools. There can be some courses cross listed with the math department. She should look at the grad school rankings to find several top schools (say in the top twenty) for this comparison. Knowing what is involved at various schools will help her decide where to go and if she really wants the major. My son added the CS major to his honors math major (included grad math courses) when he chose to not go to grad school in math. He was weak in programming initially at his first job but his math thinking (and overall ability) has meant intellectually satisfying development jobs so far. We’ll see what he is doing in a few years.
There are many different ways/levels of being involved in computers. Some like the hardware- engineering aspect. Others like the theoretical. Others the practical problem solving in software. Your D may discover one of these, or none of these, appeal to her. Something she will discover in her search for programs in CS above and when she is in college.
In the case of Yale, the department recently moved to Engineering. The difference to DS (sophomore CS major) was zero. They still offer BA or BS. He is still considering a double major with Psychology. His cup of tea is the BS.
Actually, the Berkeley EECS major requires just one more EE course than the L&S CS major (though it also requires one more math course and three science courses (two of which are physics)). The EECS student can choose freely among EE and CS upper division courses. Based on enrollments in upper division EE and CS courses reported by the on-line schedule, most EECS students emphasize CS.
Thanks everyone for their thoughtful posts (and I certainly welcome more, as evidently other people were thinking some of the same thoughts I had).
I feel like I can at least give her a starting point (probably arts & sciences vs. engineering, and I can explain the difference now) and some basic focus once she’s winnowed down schools to a manageable number (look at the course catalog).
I know this seems like kind of a “duh” thing to a lot of you, but to me there’s so much info out there and there are so many schools out there that I’d like to be able to, um, quantify the data? so she’s not overwhelmed.
She’s the kind of kid that goes into a shoe store, picks the first shoe that more or less works, and buys it. I am the type that has to look at all the shoes, spend hours comparing, and eventually work my way around to the right shoe.
There isn’t a right way and a wrong way, but if she picks up a “what college should I go to” book, or “I’ll just go where Dad went” and picks the first one that she thinks fits, I will lose my mind.
Many students like to double major or at least have a minor or two with their major. The student should take a look at what potential minors they would be interested in. It is sometimes more difficult to combine majors from different ‘schools’ or ‘colleges’ within the university.
For example, my S is double majoring in Economics and CS. The College of Liberal Arts at his U lists both those majors however, the College of Engineering does not. For CS, whether he takes it thru COE or CLA, the core requirements are the same. The difference between the colleges are the remainder of required course to obtain a degree from that college. In the case of CLA, typically language is required and from CSE it would be physics. There are also a few differences with the math requirements.
Also note that the College of Liberal Arts is often the largest college - hence, it is typically easier to gain admission to this college over the Engineering College. Also, in some universities, CS is in such high demand, that there is difficulty in obtaining the classes. So, if you are not a designated CS student, you could have lower priority gaining access to classes in some universities.
For instance, it has long been the case through my college years that at Columbia University, the arts & sciences college, Columbia College was considered much harder to gain admission to and “more prestigious” than Columbia SEAS provided the applicant’s strengths were overwhelmingly in the STEM area.
Before Columbia made it so one had to submit a full transfer application to change between the divisions, this difference in admissions difficulty was such many HS classmates and those from similar STEM-centered high schools with strong math/science grades and stats would use this factor to gain admission to Columbia College by using Columbia SEAS as a “backdoor route” as up until the late '90s/early '00s, all one needed to do to transfer divisions before the change to current policy was to be in good academic standing after one year and submitting pro-forma administrative paperwork. Columbia probably changed to the current policy precisely because too many students like my HS classmates successfully used admission to Columbia SEAS as a means to legitimately “hack” their way into Columbia College.
Engineering schools are generally more selective. The classes that are taught just to engineering students are at a higher level. If your daughter is as well prepared as she sounds, I would recommend going the engineering route.
CS in a general studies curriculum will involve (and I speak only from my personal experience) more “business-applicable” courses. You’re not likely to study compilers in CS, but you will know your way around a pivot table.
If your daughter wants to build computers or robotics, or go into teaching – Engineering.
Honestly, neither is a bad choice, but if you are looking to be employable right out of school, I would say CS. Anything from a “liberal arts” background (despite what you may have heard) will give your daughter the ability to do more than just design a circuit.
It really depends on the school. At some school, the CS major is VERY math-centric in the form of abstract math. Arguably speaking, the more computational/utility-based math required for an engineering major is really not as demanding as the the more higher-level , more abstract math requirement in some of these pure CS (much less engineering bent) major.
It is the MIS, information science, and the alike, or worse, the IT-centric lower-tiered (even “trade school”) majors that are almost universally less demanding in either math or rigor. (Pivot table in Excel mentioned by some CCers could be one example of this.) Actually, the perceived value of the name “IT” is diluted in the industry most likely because of the abundent of these less-academic oriented and less rigorous programs. Even for an magazine with the “IT” as a part of its name could run the risk of being labeled as more for managers who only need to manage people and projects rather than for the hardcore engineers/computer scientists
Not all pure CS majors are created equal, even when they share the exactly same department name.
^^ Yes my son is a CS major at Swarthmore (B.A., not in the Engineering department). The idea that he would be doing pivot tables in frankly laughable. That is not CS, it is “Information Technology”. He did a summer internship with a CS professor that was math-based far beyond anything I ever did as a PhD in EE!
Totally agree. Also as I said, the existence of such “IT”-like majors really tainted the otherwise neutral word “IT” so that many in the industry do not want to be associated with that name.
The foundation of CS really rooted in Math. For example, D. E., Knuth in the CS department at Stanford (retired now), who is credited by many to be the person who single-handedly introduced the data structure course into the CS undergrad discipline, and programming in general, is a established applied mathematician.
BTW, anyone here first learned the data structure (he called it information structure, I think) from his book? Or, I am the only one in the dinosaur age who learned this subject from such an old book? (It also helped improve my English reading skill by reading that book, LOL.)
@mcat2, count me in with the dinosaurs who learned from Knuth, those who thought getting 2 compiles in a day was a luxury and thought that a debugger that would tell you which line of code blew up and with what error was making it easy peasy :).
DS, majoring in CS at Yale, learned more in his first few CS classes than I picked up over many years. The math is intense. Yale gets little respect for its CS program, but I think they remember that the S in CS stands for Science.
Not intending any disrespect, but my wife and I had administrative assistants who could do a pivot table quite well, and were paid for it, but it wasn’t considered IT, much less CS.
I have to ask, are you suggesting pivot tables and teaching because she’s a girl? Because sheesh, I can (and have) used a pivot table in a spreadsheet, and I’m not mathy. I think you might be mistaking CS for IT (which she has no interest in)
The CS “teacher” in their HS doesn’t have a degree in math or CS.
The programs she’s shown me do some pretty nifty stuff, and her dad says (to me) that her code is elegant and concise, so forgive me for getting a little huffy over the pivot table suggestion.
So it is generally agreed by CC parents here that, in college, CS is not IT as a major.
On another thread, some CC parents seem to disagree that a CS/CE/EE major who programs on company’s own hardware/firmware/software product (rather than on, say, a generic Wintel box) do not work in IT.
If this is true, that is, everyone who works on anything remotely related to computer software/hardware is working in IT, do we want to accept that the difference between CS and IT disappears as soon as a person graduates from college and enters the workforce?
I learned Analysis of Algorithms from Knuth Volume I. That was my hardest undergraduate class. It was listed as a CS class, but, like some other CS classes I had, it was all math.
“If this is true, that is, everyone who works on anything remotely related to computer software/hardware is working in IT, do we want to accept that the difference between CS and IT disappears as soon as a person graduates from college and enters the workforce?”
The CS guys create the programs and applications that the IT guys use.
There’s crossover, but in general that’s how I look at it. And I did indeed write a compiler in an undergrad CS class whle never touching a pivot table or a spreadsheet on my way to an interdisciplinary CS degree.
The difference between CS and IT is that CS is mainly focused on design and development of computers and software, while IT is mainly focused on managing them. IT and related majors in colleges are usually business-based, rather than math/engineering-based like CS is.
Did you go to a college (or encounter a lot of graduates from a college) where “CS” was more like CIS/MIS/IS/IT (i.e. a business-based major with some slightly technical courses in the management of computers)?
Lots of colleges have non-engineering-based CS majors that are worthy of the name, where students can take courses in compiler writing and other typically-expected advanced topics.