Tweets by @Stanford_Daily


OPINIONS

Why computer science is awesome

It’s no secret that computer science is a big deal on campus. With 246 major declarations two years ago and even more last year, the subject has continued to distance itself from other undergraduate majors in terms of popularity. Moreover, close to 2,000 students in total study some form of computer science during their time at Stanford, with a record 608 students enrolled in CS 106A: Programming Methodology last fall.

Many have attributed the explosion of interest in computer science on campus to students’ desire to major in something practical or the pressure and influences stemming from attending a university in the heart of Silicon Valley. For example, author William Deresiewicz argues that student desires to pursue “practical” majors like CS dissuade them from considering life’s major questions and pursuing a liberal education.

I am not a computer science major (or anything yet, for that matter) so I may not be fully qualified to talk about this subject. But, with that being said, I think we should be encouraged by the tremendous interest in computer science because, simply put, the subject is awesome and an indispensible part of a 21st century liberal arts education.

For those—like Deresiewicz—who frame the rise of CS as a decision by students to pick up an employable trade skill over choosing a subject with serious intellectual vitality, I would point them to an analogy that Mehran Sahami, my CS 106A professor, made during the second day of class.

“Computer science is the study of problem solving. A computer scientist views a computer the way an astronomer views a telescope. It’s a way to get at what you’re really interested in studying.”

Often, the arguments suggesting that computer science is an anti-intellectual discipline rely on a strawman. Their image of a computer science student seems to be of a sun-deprived geek sitting for hours and typing 1s and 0s as fast as he can.

The reality is far different. Computer science is about thinking how best to solve a challenging problem and having the imagination to see the world differently more than it is about gaining a ticket to a job. Whether thinking through a sophisticated algorithm or persevering through debugging a program, computer science does increase one’s appreciation for solving difficult problems and provides the framework to solve new ones, which results in a stimulating educational experience.

When Keith Schwarz demonstrated how to solve the Towers of Hanoi problem using recursion or how Kruskal’s Algorithm finds the minimum-spanning tree of a graph in CS 106B, I let out a small—but nonetheless audible—gasp from my seat in NVIDIA Auditorium because my mind was actually blown away. It was a stimulating intellectual experience for me, the kind that reminds you why you decided to show up for class and why you’re even at college in the first place.

I also think it’s unfair to pin the surge in computer science interest on the economy and current job market, because that detracts from the students who are in love with the subject and the excellent teachers in the department who do a fantastic job of igniting that spark within students. Sahami, Schwarz, Eric Roberts and Jerry Cain—amongst others—are some of the best lecturers in any subject at any university, and they all teach introductory courses to students with little to no background in the subject. If the math department followed the same model of having polished, passionate professors teaching Math 51 as opposed to nervous postdocs, I’m sure that people would start taking it out of interest rather than necessity.

I’m not trying to say that CS can be a substitute for humanistic inquiry, because I also strongly believe that an undergraduate education can be the perfect time to explore fundamental questions like “What is the meaning of life?” and “What does it mean to be moral?” That’s why I’m a huge fan of the new joint major programs in CS and Music and CS and English, which were discussed extensively in The Daily’s “Humanities in the 21st Century” Op-Ed Series. I believe these programs will be a wonderful option for Stanford undergraduates, not because they provide an employable skill to English majors, but because they recognize the intellectual value computer science has as a key component of a modern liberal arts education.

Computer science is not awesome strictly because of its practical element, or its current value in the job market. It’s awesome because it provides the opportunity to create something brand new and to develop the mental ability to attack difficult problems in a variety of fields—from biology to economics and even to literature.

Thus, as long as students are studying computer science—either as a major or for just one class—out of a genuine interest in the field, we should celebrate the growth of computer science because it is a beautiful, challenging subject that can contribute to a balanced undergraduate education, one that can leave students with a love of learning and an appreciation for problem solving—and then inspire them to use that telescope to explore the wonders of the universe.

Vihan Lakshman wasn’t kidding when he said he is currently undeclared. Convince him to major in history at vihan@stanford.edu.

About Vihan Lakshman

Vihan Lakshman is a desk editor and columnist for the Opinions Section. He also contributes to the Daily's coverage of Stanford football and baseball and has served as a broadcaster for women's soccer, men's basketball and baseball on KZSU. Vihan is a sophomore from Savannah, Ga. (currently undeclared). In his free time, he loves reading and playing just about any sport. To contact him, please email vihan@stanford.edu.
  • anonymous

    Your sentence “If the math department followed the same model of having polished,
    passionate professors teaching Math 51 as opposed to nervous postdocs,
    I’m sure that people would start taking it out of interest rather than
    necessity,” although it is totally irrelevant to the main theme of this article, caught my attention, so let me point out a few things about it. Those postdocs, at your age (or younger), were star students in top universities in their respective nations, went to the best Ph.D. programs on the globe, survived the depressing environment, and are thriving in this worst-ever job market situation. The materials in math 51 are literally like ABC to them. Almost all of them have teaching experience, and they did it well enough to be hired by Stanford. They are passionate and polished by the highest standards.

    Hence your description of them as being “nervous postdocs” is rather surprising. I understand studying those materials could be difficult and even seem pointless. Disrespecting them can only worsen your learning experience.

    Sometimes students ask a question based on such a disastrously wrong perspective that an expert cannot decide immediately what to address first. Perhaps that’s what some of the “nervousness” that you observed come from. What you should do in that situation is not to criticize his/her lack of teaching proficiency, but to reconsider whether your question is sensible. By the way, I have never seen a Stanford postdoc who is visibly nervous in a seminar talk, even if attended by the legendary figures of the discipline.

    If you have difficulty appreciating elementary mathematics—yes, Math 51, by reasonable standards, is classified as elementary—before you pass judgment on your instructors, please go consult them how to cope with the problem. They are all smart and passionate enough to help.

  • David Williams

    Only word describes the proper reaction to this article: KWAP.

  • Stop devaluing my degree

    It pains me to see articles like this–and to think that I will be walking with the CS department to receive my diploma in June.

    Kid,

    Stop jerking yourself off over my major. It’s not a good thing that everybody and their mother is now a CS major. You’re sitting there stroking yourself to: “Sahami, Schwarz, Eric Roberts and Jerry Cain”: these people are turning every class in the department into CS106a (a great class for non-CS majors by the way). Quite simply, they have dumbed down the entire major.

    Sahami is great at teaching Karol and basic probability… about as good as my kindergarden teacher was at teaching me fingerpainting (she threw candy at me too when I made a good painting)! The only difference is, my kindergarden fingerpainting class didn’t have 500 kids like you taking it every quarter, so her name isn’t in the Daily as one of Stanford’s “top professors.”

    Because of kindergarden teachers like Sahami, Schwarz, Cain, et. al, classes like CS103, 107, 110, 161, etc. are all watered down pieces of crap. Every CS major has to take them (including all of the HCI people, who actually get Stanford CS degrees for studying fingerpainting). You don’t learn anything in these classes (god forbid they made it hard enough that 100 out of 500 people / quarter would fail), but you won’t get a good grade in them either (because the assignments are too easy, they grade for perfection, and asians are perfect).

    It’s really funny that you chose Math 51 to rail on, because I cannot tell you how much it frustrates me that CS majors on this campus think that they are above knowing linear algebra (or any math at all, for that matter). I just took CS229 in the fall, and it was single biggest waste of my time in the four years that I have studied at this university. It was a straightforward and shallow class if you paid any attention in Math 51.

  • Stop devaluing my degree

    It pains me to see articles like this–and to think that I will be walking with the CS department to receive my diploma in June.

    Kid,

    Stop jerking yourself off over my major. It’s not a good thing that everybody and their mother is now a CS major. You’re sitting there stroking yourself to: “Sahami, Schwarz, Eric Roberts and Jerry Cain”: these people are turning every class in the department into CS106a (a great class for non-CS majors by the way). Quite simply, they have dumbed down the entire major.

    Sahami is great at teaching Karol and basic probability… about as good as my kindergarden teacher was at teaching me fingerpainting (she threw candy at me too when I made a good painting)! The only difference is, my kindergarden fingerpainting class didn’t have 500 kids like you taking it every quarter, so her name isn’t in the Daily as one of Stanford’s “top professors.”

    Because of kindergarden teachers like Sahami, Schwarz, Cain, et. al, classes like CS103, 107, 110, 161, etc. are all watered down pieces of crap. Every CS major has to take them (including all of the HCI people, who actually get Stanford CS degrees for studying fingerpainting). You don’t learn anything in these classes (god forbid they made it hard enough that 100 out of 500 people / quarter would fail), but you won’t get a good grade in them either (because the assignments are too easy, they grade for perfection, and asians are perfect).

    It’s really funny that you chose Math 51 to rail on, because I cannot tell you how much it frustrates me that CS majors on this campus think that they are above knowing linear algebra (or any math at all, for that matter). I just took CS229 in the fall, and it was single biggest waste of my time in the four years that I have studied at this university. It was a straightforward and shallow class if you paid any attention in Math 51.

  • Stop devaluing my degree

    Regarding the other dumb things you said in your article:

    1. “Computer science is the study of problem solving. A computer scientist views a computer the way an astronomer views a telescope. It’s a way to get at what you’re really interested in studying.”

    This is the heart of the CS problem on this campus: CS has trivially become a major in telescopes, not in astronomy.

    2. “Computer science is not awesome strictly because of its practical element, or its current value in the job market. It’s awesome because it provides the opportunity to create something brand new and to develop the mental ability to attack difficult problems in a variety of fields—from biology to economics and even to literature.”

    You’ve gotta love the freshman “everything connects to everything!!!!!” rant:

    Literature is not awesome strictly because of its practical element, or its current value in the job market (communication will be the single most important skill you will need for whatever job you take, I promise.). It’s awesome because it provides the opportunity to create something brand new and to develop the mental ability to critically analyze difficult problems in a variety of contexts–social, political, cultural, technological, economical, etc.

  • Stop devaluing my degree

    3. “When Keith Schwarz demonstrated how to solve the Towers of Hanoi problem using recursion or how Kruskal’s Algorithm finds the minimum-spanning tree of a graph in CS 106B, I let out a small—but nonetheless audible—gasp (what, are you gay?) from my seat in NVIDIA Auditorium because my mind was actually blown away.”

    http://www.aliexpress.com/item

    Really?? You’re jizzing your pants because Keith Schwarz just showed you how to beat a game commonly mastered by 5 year olds?

  • Stop devaluing my degree

    Closing remarks:

    As you asked me to do at the end of your article, I implore you to choose another degree. If your is blown over ***minimum spanning trees***, then certainly you will only contribute to the heard of sheep that is watering down every class in my department 1 by 1. But way to sound like a condescending tool just like almost everyone else in this major.

    If you’re so excited about to apply computers to literature, go major in literature, not telescopes.

  • Karl

    If you have been paying attention, you will realize that CS103 is now the equivalent of CS154 taught a couple of years ago (and the difficulty of CS154 has also been increased to rival that), and CS110 has 7 instead of 4 programming assignments now (and this numerical measure totally fails to capture the great improvement in content and scope of revamped class. The programming assignments are also much better designed now, students who took the class with the previous professor have complained that programming assignments are vague, ill-defined and buggy). Maxmimum flow was also taught in CS161 Spring 2014 for the first time ever. I have no idea why you feel that these classes are now watered down. Also, is your definition of failure not getting an A grade? I’m sure that around, if not at least, 20% of the students get an A grade.

    You also claim that CS229 is straightforward and shallow if one has paid attention in Math 51. I guess you mastered multivariable Gaussian distributions and all the wonderful properties of traces through Math 51. I’m pretty sure my professor didn’t teach these concepts to me in my Math 51 class, and I had to go for the linear algebra sections to brush up my mathematics. Also, if you did not appreciate any of the material in CS229 and if you think that it is only a pure application of linear algebra, I seriously suspect if you have taken CS229 at all. Whenever Andrew Ng introduces a new algorithm, be it Regression, Support Vectors, Naive Bayes, EM etc, he always explains the motivations and intuitions for the approach taken, and why the approach fits with our perspective of the world. It is a great class that shows students how computer scientists uses tools we have to build working models about our world.

    I personally do not agree with some of the points raised in this article. For example, I agree with an anonymous poster that the Math postdocs of the 50 series are great. I personally learnt a great deal when I met with them during office hours. They always have so much to share regarding the materials taught or just about Math in general. However, if all you want to do is to flame and troll CS or anything with unsupported claims, you might want to do so somewhere else.

    Thank you.

  • Guest

    Agreed about 229 – that’s a notoriously stimulating class (some have said it’s one of the most difficult classes in CS), even for those who did well in MATH 51.

    “Stop devaluing my degree” is a serious douche.

  • anonymous

    >Those postdocs, at your age (or younger), were star students in top universities in their respective nations, went to the best Ph.D. programs on the globe, survived the depressing environment, and are thriving in this worst-ever job market situation.

    Teaching qualifications are not given much importance when postdocs are hired. The fact that someone is hired as a postdoc here is almost certainly due to the quantity and quality of their research, not their teaching.

    >The materials in math 51 are literally like ABC to them.

    If Math 51 is like the ABCs, what is CS106A to someone like Keith or Mehran? Are you suggesting that CS106A is more difficult, or that the lecturers would struggle with the material more?

    >Sometimes students ask a question based on such a disastrously wrong perspective that an expert cannot decide immediately what to address first.
    Addressing these questions is part of being a good teacher. When students are really confused by the material, they often don’t know which questions to ask.

    Teaching would be simple if students only ever asked well thought out and perfectly considered questions.

    >What you should do in that situation is not to criticize his/her lack of teaching proficiency, but to reconsider whether your question is sensible.

    That’s your conclusion from this? It’s not that Math 51 is poorly taught, it’s that those darn students in Math 51 are, what… worse? Teaching isn’t easy, and postdocs aren’t hired as teachers. It doesn’t demean a postdocs elite technical and research skills to point out that they aren’t very good at teaching.

  • Stanford CS major

    Wow, you’re a dick

  • Stop devaluing my degree

    “CS110 has 7 instead of 4 programming assignments now (and this numerical measure totally fails to capture the great improvement in content and scope of revamped class.”

    No, that numerical measure actually entirely captures the “watering down” effect that the CS department is experiencing. If CS110 has twice as many assignments as it had before, do you think the individual assignments are more or less intellectually challenging?

    No doubt, classes like CS103, CS107, CS110, and CS161 all have MORE WORK. It’s Stanford, so they have to keep these classes competitive, even if they lower the intellectual caliber so that more people can take the class and have “access” to the CS major.

    The philosophy is that the CS major should be easy enough so that anybody who is “passionate” about computers, technology, etc. should have equal access to opportunities to study computer science on this campus. Whether you agree with that or not is up to you–I personally do not.

  • Stop devaluing my degree

    Also, I might add that this is no coincidence… The valley is in high demand for software engineering code monkeys, not computer science PhDs.

    There’s nothing intellectually simulating about 99% of the code that goes into the 1000s of bay area startups looking to design a better UI for something that already exists or building a social networking app that nobody actually needs.

    Sorry if I sound jaded… but you probably will be too after 4 years of hearing this bullshit.

  • Stop devaluing my degree

    “[CS229]‘s a notoriously stimulating class”

    Could not agree more. CS229 and CS107 are both “notoriously” stimulating classes–they aren’t actually stimulating classes. Rather, they are just large quantities of work, that CS majors on this campus consider some type of sick, holy pledging experience or something.

    Also Re: Karl’s rant on CS229

    Sorry if I was unclear–I do actually appreciate the mathematical underpinnings of machine learning. I just think Andrew Ng’s reputation preceded him, and quite frankly he sucked at teaching (what kind of professor tells students not to email him and doesn’t hold office hours?) Get a vowel in your last name.

    Andrew Ng’s lecture notes were not mathematically rigorous (Clarification: I don’t measure mathematical rigor by simply counting how many greek symbols you can throw on a page), and his problems were often malformed or ambiguous. Even worse, the TA’s solutions were often riddled with mistakes and clear misunderstandings of the linear algebra on their part.

    Perhaps I was a bit cavalier in suggesting that Math 51 would be enough to trivialize CS229 (Math 51 is also a very poorly taught linear algebra class). However, if you take a real linear algebra class (like EE263), I would not recommend wasting your time with a class like CS229.

    But, if you’re a CS major who prays and swears by this bullshit, keep on promulgating the holy scriptures about CS229 being a notoriously intellectually stimulating, challenging, bla bla class.

  • Karl

    I think the teaching ability of Andrew Ng is unrelated to the alleged shallow content of CS229. Granted, I personally do not like his teaching style, and he has been prioritizing Coursera over teaching, but I do find his notes and the materials taught in the class to be of high quality. Also, CS229 is not a math class, nor is it a linear algebra class. Its purpose is not to give you a rigorous foundation of linear algebra, but to show you how we can build machine learning models using these tools. In that respect I think that the class achieves its purpose pretty well, as I have explained in my previous post. Your choice of a real linear algebra class (EE263) is also very strange. I took the class under Stephen Boyd, and he himself said that EE263 is not a math class, and that we should take some math classes if we want to understand the material more deeply. Granted, you use a lot of linear algebra, but you are using linear algebra to understand linear dynamical systems, much like how CS229 uses linear algebra and other statistical methods to understand machine learning. EE263 also requires students to code a lot of programs in Matlab. If you want a real linear algebra education you should probably start with MATH113.

    No one swears or prays by anything. Things can always be improved. But I find your claims and attacks on the class completely unfounded. CS229 is intellectually stimulating for me, especially since it equips me with the necessary knowledge to question or modify the assumptions underlying the models taught in class and come up with my own models. Unless you already know the material beforehand, I don’t see how it is not intellectually stimulating.

  • Karl

    Don’t just make unfounded claims. Check your facts. CS110 does not merely have more assignments and work. It has more content as well. You learn about MapReduce in CS110 now. Is that also too unchallenging for you? CS103 is now the earlier version of CS154. CS154 is only required for theory track majors. To be a CS major now, you now need to have some some basic understanding of computability theory and the complexity classes (not just P and NP, but CoNP and BPP etc). These ideas are probably not needed for most CS majors, but I personally think that all CS majors should learn at least something about such concepts, if only to have a well-rounded CS education. And it appears that the CS Department thinks so too, judging from the changes. Again, I don’t see why you think the classes are watered down.

    Silicon Valley is definitely in high demand for people skilled in software engineering, but there is high demand for computer science PhDs too. Just look at Google and Microsoft Research. Also, Silicon Valley is not just about social networking apps (though they do seem to get the most attention). It is also about autonomous driving cars, augmented reality, data-mining, new and more powerful programming languages (I’m talking about Mathematica here). There are definitely many opportunities out there if you want to do cutting-edge research in the industry.