BETA

Codemakers: Computer science at Yale, hacked.

How much money do you make?”

In a Monday morning lecture early this month, “Introduction to Programming” Professor Daniel Abadi demonstrated how to build a basic program that started by asking this question, and finished by generating the user’s post-tax income. When pre-tax income was equal to zero, Abadi instructed the machine to spit back not a number, but a simple message: “You should have majored in computer science.” He laughed before clarifying that he wasn’t kidding.

Brandon Jackson, CC ’13, a computer science (CS) major, appears to validate Abadi’s advice, at least on paper. On Oct. 1, he participated in hackNY’s Fall Hackathon, where 200 students—just two from Yale—had 24 hours to team up and develop applications using data they were given by companies like Tumblr, foursquare, and the New York Times. His project didn’t place, but by the end of the weekend he had still received three job offers.

Jackson happens to be a CS major, but that’s certainly not how he ended up at the Hackathon—he declared the major only weeks before the event. He taught himself to code in high school because he realized the lucrative potential of web design. But he saw these projects as fundamentally fun and peripheral, and he planned on studying cognitive science or political science in college.

As a freshman, Jackson took “Introduction to Programming,” (CPSC 112). This fall, three years later, he switched to the major from sociology. He took no computer science courses in the interim. But he did code for two different start-ups, as well as head the mayor’s Task Force on the Social Web and develop an “application for the civic community of New Haven.” He took last year off, doing iPhone and Android app development for New Haven-based start-up SeeClickFix during first semester, and “traveling the world” during second—solely off of the money he made from six months as a full-time programmer.

But the computer science major itself is only the latest installment in Jackson’s coding chronology, and, at least for now, his courses feel theoretical and mostly irrelevant to his extracurricular projects. He’s doing it to push himself intellectually, not to learn profitable web application skills or validate himself as a coder for potential employers. “It’s just a different kind of reward,” he said. And his story is not unique—or even rare—among entrepreneurial-minded coders at Yale.

Business-oriented CS majors and tech-oriented non-majors are now sifting through the rigorous, the trivial, the practical, and the theoretical to figure out what they want to study in the classroom and what is better learned on their own.  But for students seeking easy access to the abundant opportunities of the technological world, Abadi’s computer probably did not offer the soundest advice.

***

Stanley Eisenstat, the director of undergraduate studies for computer science, came to Yale in 1971—two years after the inception of the program, three years before the creation of the undergraduate major, five years before Apple, and 13 years before Microsoft Windows.

Since then, the field has changed—and, perhaps, changed the world—more than any other. But the content of the undergraduate CS core curriculum—which contains everything the department thinks a major in computer science should know upon graduation—“tends to change very slowly,” Eisenstat said. “Much more slowly than the field itself.” Over the past 20 years, the core, as taught through five classes that all majors must take, has reacted to advances to some degree. But, according to Eisenstat, it still covers more or less the same topics generally construed. At the same time, “the core of the major is intended to be everything you need to know about CS for the next 20 years,” he said.

This is a bold statement, given that the core is admittedly slow to evolve—and 20 years can constitute multiple eras in computer technology.
But Eisenstat has an explanation. “The field is constantly reinventing itself, rediscovering things it knew many years ago,” he says. “40 years ago, we called cloud computing time-sharing.” In other words, “there are a lot of fads going on, in terms of the latest programming language and the latest technology. But the underlying principles of computer science don’t change very rapidly”—so the core doesn’t have to, either.

The program has also remained static in other ways, ones that the department does not stand behind. Eisenstat was recently going through his papers when he found a report drafted 25 years ago. It was a request to the administration for an expansion of the department, and it specified the number of faculty that the program had at that time. “Lo and behold,” he said, by the measures full-time equivalency that Yale uses to keep track of faculty, “We’re basically the same size now that we were [then].” That size is 17 and a half.

Needless to say, this is a point of contention. Especially since in the time that the size of Yale’s program has stayed the same, Eisenstat said, peer departments at other institutions have grown significantly.

The number of majors has fluctuated more—peaking somewhere in the low 40s in 2004 at the tail of the dot com boom—but has also remained, for the most part, very close-knit. Over the past five years, the number has averaged somewhere around 20. Last year, Yale saw only 15 graduating computer science majors. This year, assuming nothing changes, there will be approximately 26.

Eisenstat points out that these low stastistics are not unique among the sciences at Yale, and that despite the school’s recent efforts to increase the number of majors in STEM (Science, Technology, Engingeering, and Mathematics) fields, the total still hovers somewhere between 22 and 23 percent. When you factor out about 50 percent of those to the biomedical sciences, Eisenstat figures, that leaves about 130 to be split between physics, chemistry, geology, engineering, mathematics, computer science, etc.

But Jackson, for one, really doesn’t understand. “Market forces alone should make that major five times more popular,” he says. He thinks that among Yale students choosing their track, it may just be viewed as too hard. But among high schoolers choosing where to go to do computer science, Yale just doesn’t have a great reputation—in large part, he suspects, because the department is so small. “I’ve definitely heard from more than one person that they came here because they didn’t get into MIT, Berkeley, or Stanford to do CS,” he says.

“The greatest hackers don’t go to Yale,” Abadi echoed. “Some do—but not many.” And it’s not because of the department’s reputation as being small, he guesses, so much as it’s reputation as being “not-so-applied.”

Bay Gross, DC ’13, a CS major, said that the program is traditional, in the sense that computer science as a discipline is theoretical—more akin to math or logic than physics or chemistry. The material is “very high level,” he explained, and focuses on algorithms and timing-based questions. “That’s a great skill set to learn,” Gross says, “and Yale is one of the best places to learn it.” But it’s not the skill set that will get you hired at start-ups like Artsy or Dropbox, or at Facebook or Google.

“People often confuse computer science with programming and development,” he explains. There’s a common analogy to explain the similarity of computer science to French literature. To study French literature, you have to know French—but learning French literature is not the same as learning French. Computer science is the literature, and programming is the language.

So while a Yale graduate with a degree in CS is automatically qualified to do a lot of things, says Gross, one of them is not to work for a start-up. In fact, startups care less about degrees than the code that you log. Gross doesn’t remember if he sent in his transcripts when he applied for internships last summer, but he knows he sent his portfolio. “They don’t really care if you went to Yale, Harvard, Columbia, NYU, and they don’t necessarily care if you have a BS in CS or a BA in philosophy,” he said. “They care about what you can do. And to that end, the new sort of resume of a programmer is their portfolio.”

***

Enter HackYale, the weekly, not-for-credit web development and application design course started this fall by Gross and Will Gaybrick, Harvard ’07 LAW ’12, to fill the void. At the beginning of the semester, HackYale fliers—one of which asked who would be Yale’s Mark Zuckerberg—started popping up on campus billboards. The website features bold-faced taglines like “Compete for better internships,” “Become the technical co-founder you’ve been searching for,” and “Quit your campus job…you won’t need it anymore,” and emphasized that applicants need not have any experience in programming. Before they knew it, they’d received interest from up to 800 people—between 500 and 600 of them undergraduates. 440 actually went to the trouble of filling out the application. “It was far, far, far beyond what we’d ever imagined,” Gross said. The class, currently in its second week, was ultimately whittled down to two 25-person sections.

The class is intended to be hyperpractical. “The theoretical, quasi-economic side is emergent in the sense that it comes out of the practical lessons,” Gaybrick said. “But it’s definitely not the focus.” The goal is to get students to a point where they are literate enough in the language of web development and familiar enough with the online resources available to them to improve their skills later on. People who complete the class should be “pretty close to a point where start-ups are interested in hiring them,” Gaybrick said.

The course teaches the primary languages of web development and design: HTML5, CSS3, JavaScript, Ruby on Rails, and Node.js. Each week, students have fairly open-ended assignments that involve experimenting with general concepts discussed in the lectures. (So far, these have covered important terminology and the pillars of front-end development, which determines the way a web page looks—including its font, color, etc.) Students’ projects are workshopped during the following class. This week, Gross and Gaybrick presented a particularly well-made web page that one student had sent in, which displayed the words “Yes! A Consent Checklist / Unambiguous Communication That’s Guaranteed to Spoil the Mood” followed by a list of sexual acts with (not-yet-functioning) option buttons next to them.

David Carel, PC ’13, is an economics major who is enrolled in both CPSC 112 and HackYale this semester—the former because he likes problem solving, the latter because he wants to build a professional website for an HIV peer education project he is running in South Africa. The two classes are formal inverses, he explains. In computer science, students learn little bits of code at a time, and try to put them together to accomplish one specific goal—like building a program that will delete every instance of the letter “t” in a given sentence. The program either runs or it doesn’t. He describes HackYale, on the other hand, as “totally free-form”— students are given big concepts, and then links and references for finding actual code and data online. Like with any creative work, some projects are better than others—but once you understand the specifics well enough to put together a page, there’s no real right or wrong.

The course is mostly made up of non-CS majors, which Gaybrick says is “because there are so few CS majors.” One section has six majors, and the other has eight—which Gross points out is actually a considerable percentage of overall majors.

The class is comprised, for the most part, of two main demographics. The first are computer science kids—good programmers who didn’t necessarily want to work for Microsoft, the NSA, or a hedge fund, which Gross says are the main theoretical CS hirers because the positions require cryptography, analysis, and really heavy data crunching. If these kids wanted to work at Facebook or Google, they might be able to—but it’d be “hard to get a foot in the door,” he says, and they’d mostly have to take (not-so-sexy) database positions.

The other group are entrepreneur types who don’t have any tech grounding. Gaybrick estimated that more than half of the applicants wrote that they wanted to work for some kind of tech-startup (the rest mostly either had nonprofit organizations that they wanted to be able to make websites for without paying, or were just plain intellectually curious). But they were biased toward the entrepreneur group, because he thinks the team’s “efforts are best utilized for people who really want this for that reason.”

Gaybrick is less than five years out of college, but he’s a veteran of this world. He’s spent more of his time as a student at Yale Law School in New York, working for start-ups—most notably Jumo and MileWise—and now as an investor and engineer for the venture capital fund Thrive, than he has studying in New Haven. In this market, Gaybrick says, companies are hungry for coders. And he can find someone talented—not necessarily a CS major, just somebody who can build a basic prototype and learn on the job, like he did—a position making “80K, good equity, at a prestigious startup—like, I promise.”

So maybe it’s no surprise that last year, Gaybrick became involuntarily “deputized by some friends to hear everyone’s startup idea on campus.” He was approached by at least 15 or 20 groups, all in the same general predicament: they had good ideas, and a founding team of about six people—none of whom could code.

“Can you build this?” they’d ask first. No, he’d say—he was busy. “Then do you know someone who can?” No, because coders on the East Coast are in unbelievably high demand right now— no one’s just sitting around. “Well how can I learn?” It became clear to Gaybrick that this was the question he could answer.

All of this contrasted severely with his experience at Harvard, where coder kids would approach him saying, “We’re building this awesome thing, we have a prototype, come help us turn it into a company.” It’s not that Yale kids don’t want the same things—a quick look at HackYale seems to prove that they do—Gaybrick just thinks “it’s a cultural thing.”

This year, the Yale Entrepreneurial Society (YES), initiated the “Innovation Program,” which matches students up to brainstorm ideas and write business plans. In a questionnaire, they asked potential participants whether they already had an idea, and also whether they had any programming experience. There were a few computer science majors, and graduate students who had previously designed website, but they “found that more often, people had an idea but needed a programmer,” Annalies Gamble, JE ’13, president of YES, said in an email. “And most who said they knew programming also said they had a very basic understanding of it—not enough to design a website.”

Gaybrick saw a supply of smart, creative kids at Yale, and, knowing about the incredible demand for coders both on campus and in New York, thought “this just needs to be cultivated.” So he teamed up with Gross, whom he met the way he met everyone in the Yale tech community—by someone saying “You need to meet Bay! Bay is one of the 10 smart coders on campus!”

Gross came to Yale committed to the pre-med route, but after programming as hobby in high school and doing web development projects on the side for two years here—including co-founding BlueFusion, a startup that helps political organizations and nonprofits do social outreach, with fellow CS major Charlie Croom, SM ‘12—he felt he should finally take a class in what was becoming increasingly his interest. Last spring, he “bit the bullet” and switched to CS.

Before he met Gaybrick, Gross hadn’t directly conceived of something like HackYale. But he had, for a long time, been thinking about ways to reconcile a couple of goals, one of which was building a community of entrepreneurs and tech-minded people at Yale. Last year, Gross was very involved with his own development work, and with projects for a couple of student groups, including the Yale College Council. But, he says, “I literally could not have named another student with similar interests. At all. And it’s not like I wasn’t going to events, or I was antisocial. There was no focus. There was no organization to center around.”

Last month, Christopher Beam of New York Magazine covered an event called “Happy Hacky Hour,” organized by the Stanford computer club, “where programmers are invited to hang out, eat pizza, and do lines (of code).” Jason Hirschhorn, a sophomore at Harvard and teaching fellow of Harvard’s intro CS class, CS50, told me in an email that the school has a number of outlets for hackers—including a computer society, a new “Innovation Lab,” and a weekly coding and discussion night hosted by HackHarvard, a group that also sponsors a program through which students can come back to campus early in January and work on a programming project between semesters.

At Yale, whatever hacker community—if it can even called that—is decentralized to say the least. There is Yale Hackers, a group of 30 or 40 people organized last semester by Jazear Brooks, JE ’12, a CS major who wanted to learn web development skills for a startup he was working on and wasn’t getting them in the classroom. The group plans to organize monthly Hack Nights in the CS building, and has held one so far. But the club is under-the-radar enough not to have been mentioned once before Gross brought it up during my penultimate interview for this piece.

The more groups the better, he says. “But it’s unfortunate that everything is so fragmented. There’s Yale Hackers, YES, YEI [Yale Entrepreneurial Institute], HackYale, the Zoo”—the nickname for the Arthur K. Watson (AKW) building on Science Hill where the CS department is housed—“it would be nice if they could all find some sort of umbrella to focus under.”

***

Over the past five years, enrollment in CS50 at Harvard has increased by 369 percent—from 132 in fall of 2006 to 619 this semester. As of last year, there were 99 CS concentrators. Enrollment in the introductory computer science course at Stanford, CS106A, exceeded 660 this quarter.
At 139, enrollment in Yale’s equivalent, CPSC 112, is almost back to course’s all time high of 143 at the height of the the dot-com boom. Since then, the number has fluctuated, based largely, it seems, on the professor; the three times Abadi has taught it, the numbers have been fairly high by Yale’s standards (65, 96, and 139). But at times during the last five years, enrollment has been strikingly low—dropping to 32, for example, in 2007. That same year, there were 282 students enrolled in CS50 at Harvard.

There is no doubt that Harvard and Stanford are focused on engineering in a way that Yale is not. But with 440 kids having applied for HackYale, there has to be more to the story.

These competitor schools, Gross says, all have really strong CS programs that go beyond standard computer theory into more applicable development skills. Along with strengthening the hacker community, Gross’s other main goal leading up to HackYale was getting the same kind of  “institutional recognition and support for these learning opportunities.”

Students learn fundamental languages, like C and Java, in introductory courses. “But our approach to programming,” Eisenstat says, “is that from that point on, we’re not going to stand up at a blackboard and spend class time teaching other languages. You should know now what they’re about, how they’re constructed, and be able to pick up other languages on your own.”

Gross has certainly spent a lot of his free time picking up languages on his own. But he says that just because this material is traditionally self-taught, doesn’t mean it is better self-taught. He points to the popularity and success of CS50. This is still a fundamentals course, but “it challenges students to apply those fundamentals to modern trends,” professor David Malan, who teaches it, said in an email. They spend three of 13 weeks on web development—learning PHP, JavaScript, and MySQL. —and over 80 percent of CS50 students “tackle web-based final projects at term’s end.” And Gross points out that it’s still a traditional class, based on instructions, lectures, and homework assignments—which is also the vision for HackYale.

Abadi insisted that the department offers a whole variety of classes—some more applicable, some more theoretical. They’re just not vocational. Actually, when he first came to Yale three years ago, he had an idea of collaborating with the School of Management to teach a course in how to start a company with web development. But he was warned that it would be very hard to get approved, because Yale “isn’t a vocational school—there are no how-to classes.”

This attitude is certainly not unique to the computer science curriculum. “It fits with the whole Yale thing in general,” Croom said. Whether it’s CS, theater, education, “or any other area where you have an applied aspect of a theoretical idea, they just teach the theoretical.”
The faculty may remain steadfast in their pedagogy, but Gross says that the administration, including Richard Levin, Mary Miller, and Marichal Gentry, is on board. They may be meeting over the next month to talk about how to institutionalize the offerings of HackYale, if not the class itself. “And we’re definitely going to be talking about what this means for Yale,” Gross said.

In any case, for people infected with the hacker spirit, like Jackson, institutional support may ultimately be irrelevant. “Coding is sort of like an addiction,” he said, and you can’t really get out of it.” It represents really the only sector of the economy where there is such a strong combination of productivity and creativity. “Usually you get relegated to producing something mindlessly, or being a creative consultant on the fringes of business never being responsible for anything,” he says. “Coding is the last craft where you see it through to completion.”

But a few minutes later he insisted, “It’s really just highly skilled plumbing.”
­

—Contributed reporting by Emma Schindler

3 Responses

  1. Legacy Admit says:

    I think it would be pretty cool for there to be a hacking society or societies at Yale. Maybe then we could have university hosted email again. I think google, facebook and those monster startups are really creepy.

  2. Jim says:

    Great article! A couple of minor corrections: “The Zoo” is actually a computer lab housed inside Arthur K. Watson, not the building itself. And AKW is located near Woolsey Hall and Yale Health, it’s not on science hill.

  3. Common_Tator says:

    If you thought it couldn’t get any more dismal for a CS major at Yale read this and weep http://www.infoworld.com/article/2895102/cringely/tech-startups-to-yale-grads-go-to-a-real-school.html

Leave a Reply