Live data from Hacker News

Ask HN: So What Universities Are Good?

news.ycombinator.com

1–10 of 71 posts

Ask HN: So What Universities Are Good?

#1
I have been reading an unfortunately large amount of articles here on Hacker News seemingly deterring prospective students like myself from entering a university, especially from the field of Computer Science. They cite large tuition/living costs and "wastes of time" as not worth the potential four year education gained. These articles and blog posts claim that jumping straight into industry is an acceptable and perhaps even favorable alternative.

I refuse to buy into this idea as I crave the challenge that I feel a good computer science program can bring as well as want to experience the good ol' college life. Are there still places out there that offer a diverse undergraduate Computer Science program that goes beyond teaching Java and C++ and focuses on the application of these technologies to create things? Are there schools out there that will let undergrads touch research and tackle the problems that current computer scientists face today? Or is this asking too much of a pre-graduate program?

Re: Ask HN: So What Universities Are Good?

#2
Would you mind going out of the country? I don't exactly know how University of Waterloo's co-op program works for an American working in Canada, but I'd highly recommend University of Waterloo (in Waterloo, Ontario, about 2 hours from Toronto, 4 hours from Detroit, and 2 from Buffalo).

Before I start, I'll start by stating that I'm a U. Waterloo alum, though from Computer Engineering, not CS... so what I'm describing in terms of their CS programs might not be entirely accurate... and that I might be a bit biased.

1. Co-op (or internships). University of Waterloo's CS and engineering degrees are all 5 years long, with year-round 4 month terms in which you're either studying or working. You have 8 study terms and 6 work terms in those 5 years, and in the work terms, you're hired in real life companies and work in real life jobs working on real life projects, for companies like Google, Microsoft, Qualcomm, Research in Motion, etc. Not only that, you get paid a decent salary (enough for me to completely cover my tuitions + living costs) and wide network of people to start from when you're finished your degree and a nice thick resume to get balls rolling. The University actually hires a bunch of people to go out and look for jobs, and if you're good, you'll several offers from some of the top names in tech companies. The flip side, though, is that companies will expect real work out of you.

2. Waterloo's CS department is actually under the Faculty of Mathematics, which shows you how seriously they take the mathematical roots of CS. I've been told that they're very mathematically rigorous in their studies, and their success can be seen from the Waterloo's rankings in ACM programming competitions, as well as experts who teach in the field (like the people who invented elliptic curve cryptography, etc)

3. Waterloo has very liberal policies for Professors getting to keep much of their research, patents, and IP on their own instead of assigning it to the University, so a lot of professors are looking to get started on their research and spinning out. You'll see a streak of entrepreneurship from both the students and the faculty there.

4. At least in the computer engineering curriculum, they never teach you any computer languages. The first introductory class I took was in C++, but basics of C++ was covered by a TA in help session. The data structures and algorithms class is in Java, but the language itself was covered by another TA in a single help session while the professor focused on the actual data structures and algorithms, not how to write and compile java code. Through your 5 years, concepts are taught, but not the specifics... or that's at least how I felt. After the 5 degrees, I think I got most of the basic concepts to the point where I understand how computers actually work at a fundamental level, and I know how to get through the "abstraction" layers that so many people seem to have issues with. If you understand how a transistor works, it'll give you a better understanding of why writing to a flash device is different from other memories. If you understand how flash devices work, then it'll give you a better understanding of why you need different file systems to support it. If you understand how the file systems work, it'll give you a better understanding of why, for instance, opening a file with a million small files might be slow in some systems... and so on and so forth. I think one of the biggest thing that I got out of the school (besides not having a debt + thick rolodex + all the intangibles like friend network, etc) was 5 years of just learning and thinking about the concepts are all inter-related, so that when something fails, you have the required tools and knowledge to actually dig into it and figure out what's underneath all that abstraction that everyone takes for granted.

I know this is little bit long winded, but I'm of the opinion that the 4 years spent in college will not be a waste... On the flip side, it's my understanding that the college qualities vary wildly in US (I once talked to a Professor who turned down a tenure track position at one US college where they were told they don't have classes on Fridays because of Football Pep Rallys are on Fridays!!!). BUT, if you find a right school, just the people you're going to meet and befriend I think is worth it all by itself. It's really going to be what you make out of it.

Hope this helps.

Re: Ask HN: So What Universities Are Good?

#3
You might be interested in this thread: http://news.ycombinator.com/item?id=901782. My response in that thread: http://news.ycombinator.com/item?id=901808.

A couple additional notes. If you're interested in creating things, a small CS program probably wont suit you. Those tend to be far more theoretical; what you want is a CS department with strong systems. You might also consider getting a degree in something else and minoring in CS and/or programming on the side. Finally, undergraduate research is accessible at any research focused university and I definitely recommend you participate. You'll have to knock down a ton of doors to get a position, but it's worth it.

Feel free to email me if you want to know anything else about UIUC or just have questions in general!

Re: Ask HN: So What Universities Are Good?

#4
>Are there still places out there that offer a diverse undergraduate Computer Science program that goes beyond teaching Java and C++ and focuses on the application of these technologies to create things?

That's not computer science, that's software engineering. If that's what you're interested in, you could look at RIT. That said, I'm guessing you're in high school, which means you may well not really know what you want. Personally, I wouldn't recommend doing a software engineering degree. If you get a solid CS education, the software stuff is relatively easy to pick up.

If you can get in, I highly recommend Stanford. Your chances of doing research as an undergrad aren't great, but you'll learn a lot, meet smart people, and classes like CS210 will give you a little of the practical software experience you mentioned. Plus, it's an awesome undergrad experience, one that I'm sad I missed out on.

If you want to do research as an undergrad, I know from experience that this is possible at Georgetown. The department there is tiny, but has several good professors, and many of my friends there did research as undergrads. There are definition downsides to doing CS there (department has less resources, you're unlikely to meet any potential cofounders, etc.) but overall I think I got a good education there (enough to prepare me well for a MS at Stanford, anyway).

Re: Ask HN: So What Universities Are Good?

#5
post #4

>Are there still places out there that offer a diverse undergraduate Computer Science program that goes beyond teaching Java and C++ and focuses on the application of these technologies to create things? That's not computer science, that's software engineering. If that's what you're interested in, you could look at RIT. That said, I'm guessing you're in high school, which means you may well not really know what you w…

> That's not computer science, that's software engineering.

If he wants something very "applied", there's also computer engineering. I've been doing research since my first year as an undergrad (mainly through Canadian research grants, which offer paid summer internships). We do mainly C++, Java, VHDL, Verilog, assembly, but there's fairly little actual language education - they teach the semantics, we learn the syntax by reading and trying stuff.

On the more CS side of things, we did state machines, graph theory, recursion, formal proofs, and a good dose of math: solving differential equations analitically and numerically, calculus applied to force fields, Laplace, Fourier, complex analysis etc. Of course there's also electronic circuits, networking, computer architecture, (object-oriented) architecture... It's possible to study more web-related things such as databases, but I'm in embedded systems so we don't really touch this.

It's as applied as you can get: I have co-authored several papers and I'm only in my third year. But if you want to do research, you'll have to work for it a little. Go speak to teachers, do projects on your own, etc. AFAIK it's possible pretty much anywhere, but you won't necessarily get paid for it or get to choose your topic.

Re: Ask HN: So What Universities Are Good?

#6
Check out Purdue University and the University of Texas at Austin - both excellent schools. I'm biased to Purdue since I graduated BSCS from there but it's a great (read: rigorous) school with a very 'collegiate' atmosphere.

Re: Ask HN: So What Universities Are Good?

#7
post #4

>Are there still places out there that offer a diverse undergraduate Computer Science program that goes beyond teaching Java and C++ and focuses on the application of these technologies to create things? That's not computer science, that's software engineering. If that's what you're interested in, you could look at RIT. That said, I'm guessing you're in high school, which means you may well not really know what you w…

Disclaimer: I am a PhD student at Stanford. Why do you say the opportunities to do research as an undergrad at Stanford aren't great? The CS department has the CURIS program (http://curis.stanford.edu/) which pays for Stanford students to do research with faculty during the summer. A few dozen students do this program every summer. We had a few students work with us last summer and it was a great experience.

Re: Ask HN: So What Universities Are Good?

#8
Try thinking outside the box. I have a BA in Biology and MS in Environmental Science, yet I'm a software developer today--applying my knowledge of the engineering and environmental disciplines to computer science. It sounds like you're interested in applied computer science and I can't think of a better way to do that than to merge it with some other discipline. Even schools like MIT (spec. the Media Lab) apply CS principles to solve industry problems or blaze new trails.

Since hindsight is 20/20, I wish I'd double-majored in CS and biology (back in the 90's), but you eventually find your niche and you can always keep learning. I took a summer school course in CS at U of Illinois U-C while working full-time and married. So don't think that all of your knowledge will come in those 4 years.

I think the best argument for college is the immediacy for learning, networking w/ classmates (not social, rather intellectual), and developing the self-discipline to meet a well-defined goal. My wife has a doctorate in Music, and watching her accomplish that goal was enlightening. Yes, there's lots of b.s. to wade through, but that's exactly what's waiting for you on the other side.

Re: Ask HN: So What Universities Are Good?

#9
post #2

Would you mind going out of the country? I don't exactly know how University of Waterloo's co-op program works for an American working in Canada, but I'd highly recommend University of Waterloo (in Waterloo, Ontario, about 2 hours from Toronto, 4 hours from Detroit, and 2 from Buffalo). Before I start, I'll start by stating that I'm a U. Waterloo alum, though from Computer Engineering, not CS... so what I'm describin…

I am currently a systems eng student at UW. Would like to add a bit to your comment. In regards to computer science and the software engineering courses, students are taught specific languages. Nearly all Engineering programs intro to programming courses are in either C++ or C#. Software Eng plays with C and Scheme. CS courses can involve three different languages during the first year, and you're expected to actually know how to use Scheme (for some reason.. this applies to Software Eng as well).

My understanding is that upper year courses are pretty language agnostic. They just want to make sure that lower year students actually have some programming knowledge in a common language, cause when you don't, your coop opportunities are greatly reduced, as any first term mech/civil eng student will tell you.

Re: Ask HN: So What Universities Are Good?

#10
post #4

>Are there still places out there that offer a diverse undergraduate Computer Science program that goes beyond teaching Java and C++ and focuses on the application of these technologies to create things? That's not computer science, that's software engineering. If that's what you're interested in, you could look at RIT. That said, I'm guessing you're in high school, which means you may well not really know what you w…

Disclaimer: I am a PhD student at Stanford. Why do you say the opportunities to do research as an undergrad at Stanford aren't great? The CS department has the CURIS program ( http://curis.stanford.edu/ ) which pays for Stanford students to do research with faculty during the summer. A few dozen students do this program every summer. We had a few students work with us last summer and it was a great experience.

Ah, I hadn't heard of that. I was thinking more about RAships during the year, though, which I had the impression are of limited availability even to master's students (I've gone the CA route instead, so no firsthand experience). In any case, I didn't mean to be misleading - thanks for correcting me.
Post reply on HN