For example, is getting a BS in CompSci at like Union, or Bucknell, really worth it compared to other colleges like NYU or Boston University?
It should be the same. I’d choose the type of school you want to spend the next 4 years at. (FWIW My D went to Lafayette and knew a CS major who did very well in terms of job placement after graduation).
It depends on what CS courses are offered, what material is covered in each one, and which ones you choose to take. The general type of school is not all that reliable in telling you the quality of the CS department.
Also, NYU and BU are typically considered to be neither “tech universities” nor “liberal arts colleges”.
In general, a LAC will tend to give you more personal attention but a research university (such as NYU/BU) will offer more course selection.
In general.
Either one is likely to cover similar basic content, pretty much (including an intro to programming, algorithms, data structures, discrete math, a programming languages survey, an assembly language course and intro to hardware architecture) plus additional courses (as resources allow) in database theory, networks, computer security, AI, natural language processing, etc.
LACs typically will offer a major in CS major but not in computer engineering.
However, a larger or better CS department will offer the upper level topics every semester or at least every year, while a smaller CS department may only be able to offer each one once every two years (so a student probably has just once chance to take each one during his/her time at the college – too bad if it has a schedule conflict with some other desired course) or even less often. Very small CS departments may be missing some of the upper level topic courses entirely.
Each college’s CS department should be investigated individually in this respect.
A lot of misinformation here. The education offered is not the same. Most LACs cannot offer the same breadth and depth. For example, Amherst’s CS curriculum more closely matches the CS minor than major at my school (Michigan).
That is a HUGE difference. However, there are other benefits from attending a LAC.
You can only take X number of classes while an undergrad, so as long as an LAC offers the basics and some interesting electives, there should be no problem. And there is something to be said for small class sizes and personalized attention. Most of the CS programs I’ve seen at LACs are perfectly fine.
@yikesyikesyikes is right. A major U is going to have more depth required and more depth available.
Most LACs provide an outstanding breath of education, but can’t match the depth of a U. I am not sure about Union or Bucknell though.
Competing for CS jobs at tech companies is very much about what you know and what you can do, so knowing less may put you as somewhat of a disadvantage if that is your primary goal.
It is correct that a larger school will have more classes, but that doesn’t mean an undergraduate can take advantage of all those classes. When you’re an undergrad, you learn the basics, and you save the depth for graduate school.
An analogy I’ve used before is that assuming you’ll get a better education at a larger school is like assuming you’ll get a better meal at a restaurant with 50 items on the menu rather than at a restaurant with 30 items on the menu.
CS department quality can vary considerably.
The general type of school (“liberal arts college”, “research university”, “tech university”, etc.) is insufficient to determine whether its CS department is good in terms of offering sufficient course work for a reasonably “complete” CS major.
At LACs strong in CS, ~15 or more semester-length courses beyond introductory programming may be available, a figure that would allow core-plus-elective courses exceeding that which an undergraduate schedule could typically accomodate in nearly any setting.
This is objectively untrue. Both Amherst and Michigan’s major require nine courses in computer science, and the requirements are strikingly similar.
Amherst:
CS 111-112 - Intro to CS 1-2
CS 171 - Computer Systems
CS 211 - Data Structures
CS 311 - Algorithms
4 electives
Michigan:
Pre-major: EECS 183 (Intro to CS and Programming) EECS 203 (Discrete Mathematics), EECS 280 (Programming and Introductory Data Structures)
EECS 281: Data Structures and Algorithms
EECS 370: Introduction to Computer Organization
EECS 376: Foundations of Computer Science
16 hours of upper-level CS courses
The major difference seems to be the math courses - Michigan students have to take two semesters of calculus and discrete mathematics, whereas it doesn’t appear that Amherst students are required to take any math. But the math courses are technically pre-requisites to the major and not major courses - and even if they weren’t, it wouldn’t make the Amherst major look more like a minor.
The computer science majors at Swarthmore, Davidson and Bucknell (particularly the BS) look pretty much the same.
Of course, Michigan will have more diversity in their upper-level courses and some graduate courses for very well prepared undergrads who are ready for that challenge.
It is unfair to not consider prerequisites to the major as major requirements. My point remains true if they are considered major requirements (because they basically are - you cannot graduate in the major without them).
Discrete Mathematics is a math class technically (the same could be said about Foundations of CS, EECS 376), but it is a CS-based math class and pretty important if you want to truly understand more advanced topics in CS. Math is pretty important in Computer Science. Without it, you are severely limited in understanding topics like complexity, optimization, machine learning beyond the simplest levels, and I could go on.
In fact, the same lack of depth and breadth can be seen in math majors at Amherst, where the difference is even more apparent. The Michigan mathematics MINOR has greater requirements than the Amherst mathematics MAJOR.
Amherst MAJOR:
-Single Var Calc I
-Single Var Calc II
-Multivar Calc
-Linear Algebra
-Higher Math
-Higher Math
Michigan MINOR:
-Single Var Calc I
-Single Var Calc II
-Multivar/DiffEQ/Linear
-Multivar/DiffEQ/Linear
-Higher Math
-Higher Math
-Higher Math
Like I said before, there is value in an education at a great LAC such as Amherst, but breadth and depth within a single discipline for people in fields like CS is not one of them.
LACs (I looked at Amherst, since it was referenced above). Simply cannot provide the same breadth and depth as larger universities. If they could, they would not be a LAC. You don’t even need to do a class by class comparison simply scan the Amherst CS web page and note:
Faculty - 6 Heavy with degrees from CMU. Bravo.
Staff - 1
Then scan through the course offerings. 22 total CS courses listed. Many courses not offered in both Spring and fall. Ten courses not offered at all in 2017-2018.
I wouldn’t really call it unfair, because major requirements are different from prerequisites…that’s why they’re called prerequisites to the major…and not major requirements. The actual curriculum of the major at Michigan is quite similar to the actual curriculum of the major at Amherst - meaning that the topics in the courses covered are going to be quite similar between the schools.
What may be the major difference is the amount of depth the professors take in those classes, particularly with mathematically-related coursework. So the courses at Michigan may be much more heavily calculus-based than the courses at Amherst. This may give Michigan students something of an advantage, since as you mentioned, math is pretty important in computer science.
And to be clear, I’m not arguing that Amherst offers the same level of depth or breadth across the computer science offerings as Michigan. That is, of course, untrue - Michigan is a powerhouse in computer science and engineering on a grand scale, and there are many more resources across the department and university at Michigan. But as far as the basic, high-level curriculum goes…it’s pretty similar.
And it’s more untrue for most other liberal arts colleges, most which do seem to require calculus and discrete mathematics for CS majors. (Amherst, actually, is the first school I’ve seen that does not - LAC or not - and it makes me curious about whether it’s an unstated requirement. Amherst seems to encourage really close advising relationships with professors, so it’s entirely possible that the vast majority of Amherst CS majors do take calculus in college in consultation with their professors and it’s just not an explicit requirement. It’d be worth potentially asking a professor about, should one be interested in majoring in CS at Amherst!)
It is unfair, because Amherst seems to have absolutely no prerequisites. We cannot use an administrative caveat to discount a good portion of the coursework - especially since some of the prerequisites to the major at Michigan are equivalent to or greater than the major coursework at Amherst (which adds to my point even more now that I think about it).
Also, if you look at CS at Michigan through the College of Engineering istead of LSA you will see that EECS 203 and 280, along with calculus, are considered part of the major coursework and not prerequisities, which makes it even more unreasonable to use an administrative caveat and say prerequisites to the major do not count as major coursework. The only reason LSA has those listed as prerequisites is to weed out those who cannot handle the CS/math required (the engineering school seems to assume that their students can handle the rigor after a semester in good standing).
My point is striclty talking about breath and depth within a discipline, and Amherst loses in that regard. I agree, like I said before, that there is great value in an Amherst education. In fact, I am encouraging one of my family members to go there for CS/Math (which is why I knew their curriculum off the top of my head). However, if you are interested largely in gaining a high level of CS knowledge or gaining CS knowledge in a specialized field (like Artificial Intelligence, Machine Learning, etc.), then most LACs (even top ones like Amherst) are not the best option (except for Harvey Mudd and MAYBE a few others).
tl;dr: The knowledge of CS the average Michigan grad majoring in CS will have coming out will be substantially greater than the knowledge of CS an Amherst grad majoring in CS will have coming out. The same could be said of math majors (and probably some or many other majors if I took the time to compare.
Discrete math will be a required CS course at certain LACs:
https://www.hamilton.edu/academics/departments/Courses-and-Requirements?dept=Computer%20Science
Regarding calculus, typically already taken in high school by students at top LACs, this topic and beyond can certainly be reinforced in the extensive math departments at these LACs.
I agree it can be reinforced, but it isn’t required at several LACs. Calculus is also taken in HS by most Michigan students, but that has not stopped the department from requiring calculus credit. Other schools with top CS departments also explicitly require calculus credit despite the majority of their students taking calculus in HS, such as Berkeley, MIT, and Stanford.
In fact, it is pretty standard at Universities with even half-decent CS programs to require calculus and other math for CS majors. I am surprised that a number of LACs do not.
Here is a comparison of CS course offerings at some smaller schools including LACs. It is somewhat older, so it is best to check school web sites for updated listings.
http://talk.qa.collegeconfidential.com/discussion/comment/19190340/#Comment_19190340
It would not be accurate to pick any one school to claim as representative of an entire class of schools.
^Also part of my overall point with my original comment.
The general point I was trying to make is someone can go to a top LAC, major in computer science, and be fine.