In 2012, computer science didn’t even appear on U-M’s list of the top ten undergrad majors. Now it’s number one. In just five years, the number of students majoring in computer science, data science, and computer engineering nearly doubled, from 972 to 1,719 (this includes combined majors). In the same period, the engineering school’s division of computer science and engineering (CSE) gained six instructors, for a total of fourteen, but added only three tenure-track faculty, to fifty-three–an increase in the teaching ranks of just 16 percent.

As a result, “most students have trouble every semester getting into classes,” says senior Shahid Ahmad. Ahmad’s luck was particularly bad. “I actually was planning on graduating last semester,” he says. But a popular class he wanted, “User Interface,” was full, so he had to enroll again in winter term to take it–and pay “about $4,000 [extra] in-state tuition,” he complains.

Vamsi Nimmagadda, a senior, says he’s been wait-listed for a number of math classes but eventually got into all but one or two. “You gotta just go with the flow,” he says. But sophomore Isabelle Williams complained to the Michigan Daily that she couldn’t even get into the “backup for the backup” of a class she wanted.

CSE chair Brian Noble says the division saw the “writing on the wall” when the enrollment surge began five years ago and is “constantly recruiting” teachers. But a lot of good colleges are competing for the limited number of computer science PhDs with companies that offer high-paying jobs even to grads with master’s and bachelor’s degrees.

Ahmad may have just fallen through the cracks. Noble says the department’s “number one goal” is to make sure students graduate on time. If students let him know there’s a problem, he says, he or others will make sure they can find a way to fulfill the graduation requirements. He notes that fire regulations limit the number of students in a classroom–and that students frequently complicate things by signing up for more classes than they intend to stick with, dropping the extras only after the term starts.

U-M reflects a national trend; the Computing Research Association reports that the number of computer science majors has more than doubled since 2006. At Stanford and Princeton, computer and information science is also the top major.

The appeal is obvious: CSE grads with bachelor’s degrees report a median starting salary of $95,000, according to the U (liberal arts majors reported starting at $46,000 to $47,000). Computer science is “where the jobs are, and really good ones too,” emails junior Steve Macpherson from Spain, where he’s doing a semester abroad. Macpherson also mentions “the famous billionaires that have used their programming skills to make their money (Bill Gates, Jeff Bezos, Mark Zuckerberg, Larry Page).”

But CSE majors aren’t a cakewalk, even for former high school math and science stars. Nimmagadda says that students frequently organize study groups, where they “bond over the difficulties of the class.” But tough classes don’t necessarily scare off students. Take the artificial intelligence class “Introduction to Machine Learning,” taught by CSE assistant professor Jenna Wiens. On RateMyProfessor.com, students give Wiens a 3.9 on a four-point scale–but also grade the class’s “level of difficulty” at 3.7.

Yet when overwhelmed or overcommitted students bail out, there is no shortage of replacements. Wiens says that when she first taught the class in 2015, she had sixty students. The next year 120 enrolled–and the following year, 220.