What is happening with Computer Science at Yale?

I’ll have to check!

@ElMimino I’m sorry to hear that—I’d be interested to hear whether it was the professors or the courses themselves that killed your son’s desire to major in CS. I remember years ago being the only girl in an honors calculus course at a top school and deciding to quit after a couple of weeks, in part because I was the only girl, but mostly because the course was taught by a foreign graduate student whose English was very poor and really interfered with learning. (No regrets about quitting!)

Yale sounds so great in so many ways, and it’s still my son’s top choice. But if anything changes his mind between now and May 1, I think it will probably be the state of CS there. Then again, Bulldog Days may well put any reservations he has on the back burner—Yale does the best job I’ve seen yet of appealing to students not just on an intellectual level but on an emotional one as well.

The same thing happened to my son. For him, Stan Eisenstat, a long time CS professor at Yale, killed my son’s enthusiasm for computer science. My son found the way Stan (and Yale in general) teaches CS to be boring and uncreative (his words). So, my son switched majors to psychology, but continued to pursue what he considered to be the creative aspects of CS on his own. He’ll graduate in May with a high paying job as a data analyst at a very well known tech company in New York City, so all was not lost.

@Planner: I am a CS professor at another school, and my son is a freshman at Yale currently interested in CS. I have seen his courses. It looks to me that Yale CS does prepare their students very well. The faculty shortage hurts the graduate students and the research programs more than it seems to have hurt the quality of UG teaching (although perhaps the course offerings and their frequency are reduced).

There are also several huge advantages of doing CS at Yale College–CS is increasingly inter-disciplinary, and benefits from courses in Linguistics, Cognitive Psychology, Economics, and of course, Math. The flexibility that Yale College offers can really be of use here. For example, some courses that are typically available only in junior/senior years in other schools are easily available to Yale college students in their freshman year…

I did hear that 1-level courses in Yale tend to not have enough support structure–but then again, 1-level programming courses are bad almost anywhere. (It will be interesting to see how the CS50 experiment might change this).

@gibby Quite an indictment—definitely not good. At least your son was resourceful enough to work around the problem and ultimately able to find a good job, though—good for him! In retrospect, though, does he wish he’d gone elsewhere, or were the positive things about Yale enough to offset the disappointing CS experience? Would he choose Yale again or somewhere like HPS?

Difficult to say. You can only make a choice from the school’s that accept you. Socially, my son has had a wonderful time at Yale (much better than my daughter at Harvard). Had my son been admitted to Harvard, he probably would have gone there, and might have been happier at CS, but might not have been as happy, socially. Everything is a trade-off, even at high end schools. My son was also accepted to Princeton (didn’t like the elitism of the eating clubs), Brown, Dartmouth (loved both their CS Departments better than Yale’s, but they didn’t provide as much financial aid as Yale), Williams, Pomona, Middlebury, Georgetown, and Vanderbilt (but those colleges never really were in play due to the horrendous financial aid). So, after narrowing down his choices, Yale become the go to school, and it’s been a great choice for him, even with a bad experience in the CS Department.

I think, yes – if only for the astounding group of friends he has made there in the last 4 years, and the fact that my daughter was terribly unhappy at Harvard and is so glad to have graduated and moved on.

@teacherman This is very good to hear, especially from someone else in the field! The interdisciplinary aspect of CS at Yale was a big attraction for my son (though it’s one that’s also available at other places, most notably Stanford). I’m glad the undergraduates seem to be less affected by the faculty shortage, and I too am very interested to see how CS50 turns out next year. The first year of any program may be a bit bumpy, but hopefully it will be a good experience overall. I’m guessing some entering CS students will have enough background already to skip CS50, though Harvard seems to recommend it for almost everyone.

Thanks for everyone’s help!!!

I just took a look at (some) of the Yale class writeups. It looks like they use a user-friendly dialect of Scheme (Racket) for their introduction to programming class. Unfortunately, this will be a turnoff for some people as Scheme’s much like a malbec–an acquired and strong taste. It will also be mind-bending for people who grew up on something like PHP and/or Python as it’s similar to a functional language. That said, it’s also great fun and pairing it with Felleisen’s “Structure and Interpretation of Computer Programs” would make any sommelier proud.

Looking at the the writeup for CSC323, it looks like there’s C code involved which can be especially challenging for people who aren’t interested in systems programming. Likewise, I took a look at the mailing list* (the course page is restricted to Yale students for some reason) and it looks like a Unix systems programming class–a command-line processor, a lexer, a find utility, a shell, and a compression algorithm underneath the standard Unix ‘compress’ utility. Looking at the writeup for CSC223, it looks like the prep course for CSC323 as you’ll get your initial exposure to C code here.

For people who grew up with the support of a million libraries and fancy IDEs, I can imagine working closer to the metal (AKA architecture) would be daunting and boring as you have a shell, an editor, a debugger, and a compiler.

*while I have no ideas what his lectures are like, Eisenstat’s responses on his mailing list look entirely reasonable.

Not a Yalie so I’ve barely a dog in this fight.

@fragbot: http://yaleherald.com/homepage-lead-image/cover-stories/codemakers-computer-science-at-yale-hacked/

Google, Drop Box, Spotify, Apple etc do not seem to be looking to hire recent graduates to work close to the metal. They are looking for a different skill set.

@fragbot The 1-level intro to programming uses Java (and CS50 recommends C). The Scheme is used at 201 to teach fundamentals of CS (not intro to programming). For that purpose, it is quite well suited IMHO (several other schools use it for that purpose too; as of course does SICP).

@gibby: I am not sure I agree with your characterization. I do have many ex-students who work for the companies you mention and I can tell you that “close to the metal” skills are very much in demand. The general conceit in most CS programs is that CS students are to be taught the fundamental principles. Of course, the technology aspects, the Phps. mysqls etc, are important, but the assumption is that they can be picked up on the way…

There is an oft-repeated quote in the field:

[] There is a difference between training and education.
If computer science is a fundamental discipline, then university
education in this field should emphasize enduring fundamental
principles rather than transient current technology.
-Peter Wegner, Three Computing Cultures. 1970.

@teacherman I agree with you about fundamentals being important (if not necessarily that CS at Yale is in great shape). Much to the disagreement with a certain parent of a med student on these boards who will insist till the end of time that “Computer science is just programming” and “algorithms is just programming”

While I don’t know much about Dropbox and Spotify, I do compete for staff with Google, Apple, Amazon, and Facebook and they all like system programmers. I haven’t interviewed at Google but I’ve been told their interviews are algorithm heavy. Even when I interview people to write Python code, I’m not generally interested in what they know about Python beyond understanding how a virtual machine works and, perhaps, Python’s garbage collection strategies.

Noting that you qualified your statement with “recent graduates,” it’s probably true that they aren’t looking for specific skill sets. In my experience, interviewing recent graduates is relatively easy as you’re really only looking for three things–articulate, quantitatively smart (algorithms/math), and demeanor. Returning to the wine metaphor, great wines start with great grapes.

Well said, @teacherman‌ , and Eisentat said the same thing:

It’s kinda funny that some Yale CS students would complain about not learning more languages, since none of Harvard classes even teach Java, and at least Yale students have that. Some colleges teach languages and maybe some specific skills or domain knowledge so their students can find jobs in some specific areas, some even prepares their students for interview, but I would never expect Yale students to need that kind of teaching. And by the way, during my visiting Yale, I met one current senior CS student who interned at Google last summer and will join Palantir after graduation.

@fragbot‌ , I like your wine metaphor.

This is very helpful, everyone—thanks!

The article I linked to yesterday has had some interesting comments (http://yaledailynews.com/blog/2015/03/02/student-petition-calls-for-cs-faculty-increase/#disqus_thread), including this one:

@gibby Interesting—it’s good to hear that even with Yale’s less than ideal CS situation, your son would still probably go there again. I really get the sense that Yale is much better socially—and has much happier students, on the whole—than most other schools (certainly than Harvard—did your daughter ever consider transferring out?). Brown has happy students and a very good CS department, but we didn’t get quite the same feel from it that we did from Yale, though it was high on my son’s list before he got into Yale.

This student’s issue isn’t what she thinks it is. If she could answer the questions fully:

  • it would be an uninteresting interview as the most illuminating questions are ones where the candidate doesn’t already know the answer.
  • very few candidates from anywhere can achieve this standard. For entry-level candidates in particular, green is expected.

Put another way, that’s not an interesting comment. That’s par for the course for an intern’s interview.

Intern interviews are usually quite simple. Using myself as an example, I ask them one question about a well known data structure–binary search–and then give it a twist by asking them to apply it to the physical world. I then take a small problem and ask them to tell me how they’d solve it. Once they’ve got the data structures right, I have them work through 2 corner cases in the problem. For someone who wants a full-time entry-level position, I might make the problem a bit harder by switching from binary search to a graph problem. The interview loop’s also more difficult as interns generally talk to 2-3 people and permanent positions speak with 5-6.

Even though my daughter had a difficult time at Harvard – none of it having to do with academics, as she graduated PBK – she could not give up the Harvard name. She was blinded by the prestige, and her own “I’ll never have to prove to anyone again that I’m smart” attitude. We even tried to get her to consider transferring to Yale, as she had applied SCEA there and was rejected, but she would have none of it. Unfortunately, she, like many of her classmates, stick it out for the same reason.

Thanks, @fragbot. This may be a bit complicated for a non-CS person like me to fully grasp, but I think I get the general idea!

@gibby Sigh. Sorry about that–I’m sure it happens a lot. Hopefully she’ll have a happier time in grad school somewhere, if she decides to go that route.

@fragbot, as a Yale computer science undergraduate, I felt I was perfectly well-prepared for my interviews after 223 and even more so after 323. Many of the questions I got are a lot like what you’re describing! Then again, I do a lot of coding for fun outside of my coursework, too.

With my chances being slim to none, I shouldn’t be worried but I recently applied for transfer to Yale as a Computer Science major. I applied for the same reasons mentioned previously, Yale’s aspect of interdisciplinary studies really caught my eye. Just out curiosity, does anyone know the population of women in cs at Yale? minority women at that?