Computers have been a hobby all my life. I well remember the epiphany I felt while learning Logo in elementary school, at the moment I understood what recursion is. I don't think the fact that the language I have mostly written code in in recent years is Emacs Lisp is unrelated to the above moment.
Yet I have never desired to work as a professional software developer. I majored in history and Spanish at Columbia while working for the university's Unix systems group. Before graduation I interviewed and got offers (including one explicitly as a developer) at various tech startups. Of my offers I chose an investment banking job where I worked with tech companies; my manager was looking for a CS major but I was able to convince her that I had the equivalent thereof. Thank goodness for that; I got to participate in the dotcom bubble without being directly swept up in its popping, and saw the Valley immediately post-bubble collapse. <https://news.ycombinator.com/item?id=34732772>
I'm glad, for the sake of civilizational and economic progress, that others are able and willing to program for pay. Meanwhile I will continue to putter around with Elisp at home.
If you like the theory of computing and thinking like a computer scientist, aka computational systems and algorithms, then a degree in computer science makes sense. It has two sides, a logic/math background and an
experimental side (systems building). It also blurs with math, physics, statistics at the edges where you see cross collaboration. Computer scientists like to take things from different fields and push them to extreme scale. Deep learning is one example. Graphical models are another (taken from Bayesian stats) and applied to graphs.
But in some sense a liberal arts degree is more useful.
I agree with the author that CS should be more integrated with other departments. But the author focuses on requiring CS majors to study French, and I'm more interested in the opposite: why shouldn't we require French lit majors to study Python?
In liberal arts circles, there's a widespread attitude that programming is an alien thing. And this attitude extends to programmers as well; the article portrays "computer people" as an outgroup. I think this attitude is deeply unhealthy. Python isn't some kind of incomprehensible gobbledygook! Basic programming skills should be considered part of a well-rounded education, applicable to many different fields, just like reading, writing, and math.
There are some steps in the right direction:
> [Mark Guzdial] is trying to rebuild computing education from scratch, for students in fields such as French and sociology. He wants them to understand it as a means of self-expression or achieving justice--and not just a way of making software, or money.
This is great, but the author doesn't seem to realize that many people in CS _already_ view programming as a means of self-expression or achieving justice (e.g. the free software movement, PGP, Mastodon). The liberal arts folks are the ones who think CS is just a way of making money.
I wish people would stop portraying computing as an isolated, inaccessible thing; and start viewing it as a part of modern society that every educated person should know the fundamentals of.
I think it's only marginally useful for programming to be part of a broad education. You need fairly sophisticated programming (and non-programming, like git, tooling, etc) skills to do most things worth doing and the barrier is only getting higher.
Our society runs on code sure, but it also runs on alloys and we don't expect a well-educated person to know industrial metallurgy either you know? It certainly makes sense to teach some models of computation, computers aren't magic and shouldn't be thought of that way. But it's fine to treat programming as a highly specialized technical domain like actuary or crop science or eye surgery or welding or whatever. Plenty of important useful concrete skills are not taught except to people expecting to use them professionally.
Anecdotally though I know a lot more creative and humanities people who can code than I do programmers who can dance or write a poem. The self-identity of "computer people" has long been as an aggrieved, besieged outgroup. To whatever extent we are alien I think we chose that for ourselves. We can change it but we shouldn't start by blaming anyone else for it.
> I think it's only marginally useful for programming to be part of a broad education.
On the contrary, I think a few semesters of basic computing can teach a lot of valuable skills:
- Basic Python skills are sufficient for a lot of scientific data analysis.
- Computing has become an important part of society; so, understanding how computers work is important for being an informed citizen. E.g. understanding the limitations of Incognito Mode in a web browser; or what Bitcoin is and what it isn't; or the difference between centralized platforms and the fediverse.
- Perhaps most importantly, teaching people Python will help dispel the myth that software is some kind of incomprehensible magic.
Certainly, a few semesters studying Python wouldn't be enough to get a high-paying CS job; but it would be no less valuable than a few semesters spent studying French.
> The self-identity of "computer people" has long been as an aggrieved, besieged outgroup. To whatever extent we are alien I think we chose that for ourselves.
There's a very real history of negative stereotyping about nerds. It's not OK for you to ignore that or pretend it didn't happen. I never consented to be stereotyped, excluded, or treated as alien.
I 100% disagree. Teaching basic programming is teaching how computers actually work.
We're running into tons of computer literature issues right now. Lots of people coming out of highschool today don't know what a file tree is because everything they've used up until this point is in an app or browser.
We don't teach everyone how to be electricians or plumbers, but we do teach everyone the basics of how electricity and plumbing work.
It's important that people understand the basics of how the things they interact with every day work.
There's a tremendous amount of waste and inefficiency in non-technical knowledge work that could be solved if it was expected that a well-rounded education included teaching someone how to do some basic scripting.
How to Design Programs [0] is a great example of computing as another pillar of a well-rounded liberal arts education. The Preface and Epilogue explain this perspective in more detail.
CS should be more integrated with other departments
it is almost disappointing that we still have not learned this everywhere. this is not new. already when i studied a few decades ago at my university the computer science major allowed you to pick any other field as a minor.
there was no active integration of the fields, but the argumentation was that computer science was applicable everywhere, so any combination would make sense. most other majors did not give you that kind of freedom, and i have not heard from any other universities offering this choice to their CS majors, but i did hear from several that required math as a minor to go along with CS.
i don't know if the reverse was true though. i doubt it. physics definitely required math as a minor and didn't allow a choice. and i doubt many other departments allowed students to choose CS as a minor. it would be a great idea though.
i also agree with you that every student should learn programming, but for me that makes programming a class that should already be required in highschool, and at least be offered in middle school, if not earlier. just like learning english as a second language is required in pretty much every country that is not english native, and in many offered already in primary school.
> Rather, they are proceeding as though it were a technical school for producing a certain variety of very well-paid professionals.
I would venture that if you asked the majority of students in CS what they wanted, a non-controversial path to highly paid professionals is precisely what they signed up and paid for.
I studied undergrad CS at JMU from 1995 - 1999. When I entered and when I left I got to witness the program change. In 1995 I would say everyone in the program was interested in computers and had a genuine interest in programming and doing computer stuff. By the time I left I definitely saw people entering the program that were less interested in computing and more interested in making money in a stable career or getting rich. I witnessed that change.
I'm sure there are still lots of people majoring in CS that have a genuine interest in studying computation. For me, I would much rather work with people who have a genuine interest in CS, one that is not based in the promise of future earnings. They're simply more fun to work with.
I was a CS undergrad from 2002-2006 and I think almost everyone I knew was there because they were very interested in technology. I wonder if the .com bubble bursting had reset that? I didn’t notice a significant number of people entering the field purely for money until the early 2010s.
I read this article, then came to see if it had been posted to HN. As someone who dropped out of college and is now currently enrolled to finish my degree (well, I had to start over), my take on this is partly colored by how different things are now from then.
When I was previously in college, most of my instructors were folks who had been in industry at companies I had heard of or had done research I had heard of and their background was not in computer science; it was in math, physics, electrical engineering, philosophy, linguistics, and in one case logistics. While I was focused solely on computers, my first experience through college was one characterized by instruction with multiple perspectives and a clear awareness that computer science was a cross cutting discipline that had things to learn from and things to teach to all other disciplines. As an example my instructors with backgrounds in linguistics had an interest in language construction and syntax, how we get to where computers and humans have a shared intelligible language along with topics like natural language processing and the concepts of regular languages and regular expressions.
Now that I am in college again, all of my instructors either came out of CS themselves or came out of the field of education. Few have any industry experience, none are names I have heard of due to their research. Exactly zero have expressed any interesting opinions or perspectives that strayed from or colored in the material from the textbook. It’s a much more rote type of instruction now.
The students have changed too. When I was previously a student, I made a number of lifelong friends even though I didn’t graduate. I would say it was 50/50 career-focused vs tech-focused. Now, it’s 95% career-focused, even though I am a non-traditional student I expected to connect with somebody around the joy of technology, but my only non-class interactions have been driven by people hoping I can refer them for jobs.
I am not sure I agree with the conclusions of the author. I don’t think the specific bureaucratic structure of an academic discipline is that important for how the students turn out, I think it is far more important what intent the students and instructors come into class with. What I am seeing does not bode well though, it seems the nerds like myself are not dying out but are drowned out by a sea of people who are singled minded and focused on career, grinding out CS because it leads to high pay, not because they want to understand anything at depth or try to attain and share new insights.
I can understand this. When I studied CS at UMD College Park in the early 2000s, it wasn't that much of a pop-culture a glamorous field yet. So most of the kids doing it were actually interested in programming and algorithms etc. And jobs, opportunities, and job offers were aplenty.
But now that we've had nearly 20 years of FAANG companies growing into the stratosphere, surrounded by software and smartphones and the riches that world has brought, I can understand that it just attracts people that want the money.
And there's nothing wrong with that in general (if you view college as a training program for jobs). But I would also guess that part of requests for job references might also come with ––– in the past 3 years you've seen a saturation of talent (via boot camps and CS degrees) but now AI is going to reduce the number of developers a company needs.
So for the first time in my professional career, it isn't drop dead simple to get a job in software dev. I remember 15 years ago how much developers used to disparage recruiters because we didn't need them to find jobs, and the power dynamic was quite imbalanced.
I never did even though I did have the occasional funny interaction ("do you have 15 years of C#?" type nonsense). But I always predicted there would be a day where all of us needed recruiters. So that day is here now. So I think it has to be VERY hard to be a college grad heading to a white collar job nowadays, CS or not, due to the hugely changing winds with AI.
On the academic death march from deprecating the humanities to deprecating the sciences, we've arrived at the need for the art of human sciences that are holistic enough to realize that neither the extremes of poetry nor the extremes of programming can make sense of the need to transcend the absurd when neither a linear algebra of words nor a probabilistic calculus of language can cross the liminal chasm between logic and reason successfully without unintended consequences, much like the century between Taylor and Postman defined the decades that followed them, respectively.
> Universities are conservative institutions, steeped in tradition.
This is wrong though. Universities should be breeding grounds for new ideas and be on the edge of change: social, economic, technological.
Only certain core tenets should be carved in stone and enshrined by a university. Not how it is divided into colleges or structured and administered a corporation or whatever.
The title is crap but the message is on point: CS is an interdisciplinary field and supporting cross-discipline education in CS is very useful - look at applications from NLP to UX to EDM
I think CMU's approach of requiring SCS students minor in a non-Eng major is a fairly useful way of helping inculcate that skill.
Sadly, most universities suck at making degrees more open ended due to Administrative laziness.
Marketing demand created the force that gives people the illusion that sufficient amount of people can be trained regardless of his personal interests. Thus many kids went the school for CS major and then still need to be asked to repeat coding problem solutions.
Note: current GT student, going to comment on some thoughts on this article:
- Siloization of industries is a problem in general because it causes people to think dogmatically. Isbell makes a fair point, and it's more of a societal problem than a computing specific problem.
My intuition is that if medical school students memorize Anki decks, they're going to be good at pattern matching but not seeing the big picture and why things happen. People react poorly to being challenged, responding with either aggression or avoidance. Rarely do they ask themselves why something is the case.
Business people might know how to increase revenue but not understand what money is, how it is created and destroyed, and how it affects people's incentives.
- I'm not sure the computing ethos is taught particularly well in schools. For example, the Unix Philosophy for writing command line tools or GNU's free software. In my view, colleges should be an fast feedback learning environment with significant input from teachers, fundamental readings, and exposure to new things to point people in the right direction.
- Philosophy, math, and CS are a strong combination that go well together. I'm not surprised the author found himself at home in it.
- I don't worry that people get into CS and care only about machines. I worry that people are getting into CS only for the money, leading to the enshittification of everything. The problem is the moral values of society as a whole.
---
Fundamentally, Georgia Tech as a school strikes me as an industrial research/engineering powerhouse funded by federal grants, a major workforce contributor to F500 companies, and at its core a public school with the attitude and values students at public schools often have such as anti-intellectualism, which is promoted and visible in the administration and can be seen in how Georgia Tech changed its logo from a more academic, serious logo to an unserious logo. But this is a growing problem at universities everywhere across the US. Housing shortages, university degree oversupply, and so on.
The weakness in its CS curriculum is actually its threads, causing a lack of breadth. By focusing on a thread such as "People/Media," they can pick classes that don't even touch fundamental aspects of computing such as databases, networking, compilers, programming languages, and so on. Apparently CS is switching to a direct admit method to stop the 500-600 person classes I've had for almost the entirety of college.
I did have classes that focused on interesting topics such as law, differential privacy, cross-border data flows, philosophy and cognition, and so on. Particular classes I enjoyed were taught by teachers such as Galil, Swire, and Verma, where I felt the class content was serious, but this might also mirror my changing tastes in how education should be done as I get older. The harder and more serious the content and reading in a class is, the easier it actually is.
And there's also a big maturity and understanding change that happens as well, which I don't really think is changeable.
I'm not sure exactly how the future of GT will fare being a public school. A large reason for the lead was how early the school established the College of Computing.
Will private schools end up a better place to study CS due to their smaller class sizes and less variance in the student population? I can't say for sure due to not personally knowing what studying at those private schools is like, but I think large lecture halls are ineffectual as a continued method of higher education.
Another phenomenon is the amount of international students who come to the USA and are so focused on the idea and prestige of working for "Big Tech." Then they get there and find out how expensive the rent is, how expensive college was, and they spent all their time doing leetcode (which actually has some interesting fundamentals if you get really into it, it's not my thing personally though) and now graduate and think: now what?
Fairly strong. There are DoD and DoE requirements that bias in favor of pushing R&D funding into Public Universities.
GATech's early lead in computing was because of it's longstanding relationship with the US Navy's Nuclear and Aerospace Programs (both of which have significant HPC needs).
It's a similar story at UCB, UIUC, UMich, UT Austin, UW, etc.
Aside from MIT, Stanford, and Cornell, the bulk of DoE and DoD funding ends up at public universities.
> private schools end up a better place to study CS due to their smaller class sizes and less variance
I attended an Ivy Level CS program for undergrad. My sibling attended a Tier 1 public school program for CS.
My sibling's CS education was superior, as the public university was able to hire way more faculty at better rates, as most decent public universities have multiple DoD and DoE universities and grantmakers to entice faculty and graduate students.
If it isn't Stanford, Cornell, or MIT, I'd say the CS curriculum is middling at a private.
I myself wish I attended GATech instead of my supposedly "prestigious" undergrad as the research and industrial opportunities at a Tier 1/2 Public CS program like a upper Tier UC, UW, GT, UIUC, etc are hard to beat almost anywhere.
I think the main benefit an elite private school might have is a better support system, but by and large, the student base is largely comparable - if you're Berkeley EECS or UT Austin/UW direct CS you would have had stats comparable to a Stanford or MIT undergrad
Didn't know that about the DoD and DoE, good to know. What was your experience and your sister's experience (and at what places) if you don't mind me asking?
That's just the personal term I use to describe it, but I'd say it's a mix of lack of life experience, lack of expectations from the school, personal attitudes, lack of seriousness, lecture-hall style teaching and too many students, and low standards.
Examples:
- vandalizing all signs with the letter 't' around the school because the school has a reputation for "stealing a giant T" from a building, but all the students are too busy with career stuff to do anything like that
- saying "I want a job that pays me the most money"
- walking out in the middle of class after an attendance quiz
- administrative staff sending out emails with numerous typos
- lack of serious thought into important topics
I think American college students tend to be less mature than European ones due to being stuck in a suburb for 18 years as well.
Overall, I see a conversion towards mcdonalds-style university management happening world-wide. More or less what you explain, also based mostly on PR.
"...'People/Media,' they can pick classes that don't even touch fundamental aspects of computing such as databases, networking, compilers, programming languages, and so on."
There is a lot of this. Many students are not suited to a technical degree, but the college wants their tuition. So call a program CS, while removing all the technical stuff.
So what, if the student will go out, get a CS job, and fall on their face? It's not the college's problem at that point. /s
Its just Silo Wars. I guess Wall Street Journal thinks using that as a title could come off as too click-baity.
Essentially, where do you house the CS department ? Inside the College of Arts & Science ? Inside the School of Engineering ? Or a separate autonomous School of Computing ?
This is how it plays out in reality - when I was a CS grad student, the department was part of A&S. Since Math is also Arts & Sciences, they had a huge influence. You could take Math courses instead of CS & get a degree in CS! So I did exactly that - took a graduate course in Graph Theory, PDE & Numerical Analysis from the Math department, & got out with a CS degree. Then I went to work for Sun Microsystems, where colleagues were surprised that I didn't know the difference between a raw socket & a tcp socket - shouldn't that be taught in school ? Well, I had skipped Computer Networking, Computer Graphics & Compiler Theory entirely by taking my 3 math courses. So that's what happens if you stick it into A&S - the Math faculty has too much influence.
3 years later, the CS department, now funded by NASA & the FBI, decided to move from A&S to School of Engineering. My advisor quit over that decision because he believed CS is part of Math. But then, other people joined & now Robotics, IoT etc gets taught - because engineering.
What's happening recently ( you can tell I live in a college town :) is that CS has gotten so big, its essentially eating up all the departments. So PhD students in EE, Math , Mech, Chem etc take 3 CS courses in the last semester - because, who wants to be an engineer/mathematician/etc when you can work at Google ? So those departments are like - get CS out of this place, let them have their own school so they don't pollute our students. I have several faculty kids who took this route - got the funding from EE, Mech etc but ended up working for Google after. So there's some justified backlash.
It's the classic liberal arts argument, applied to CS.
> None of the deans I spoke with aspires to launch, say, a department of art within their college of computing, or one of politics, sociology, or film. Their vision does not reflect the idea that computing can or should be a superordinate realm of scholarship, on the order of the arts or engineering. Rather, they are proceeding as though it were a technical school for producing a certain variety of very well-paid professionals. A computing college deserving of the name wouldn’t just provide deeper coursework in CS and its closely adjacent fields; it would expand and reinvent other, seemingly remote disciplines for the age of computation.
> [...] CS departments have been asked to train more software engineers without considering whether more software engineers are really what the world needs. Now I worry that they have a bigger problem to address: how to make computer people care about everything else as much as they care about computers.
Yet I have never desired to work as a professional software developer. I majored in history and Spanish at Columbia while working for the university's Unix systems group. Before graduation I interviewed and got offers (including one explicitly as a developer) at various tech startups. Of my offers I chose an investment banking job where I worked with tech companies; my manager was looking for a CS major but I was able to convince her that I had the equivalent thereof. Thank goodness for that; I got to participate in the dotcom bubble without being directly swept up in its popping, and saw the Valley immediately post-bubble collapse. <https://news.ycombinator.com/item?id=34732772>
I'm glad, for the sake of civilizational and economic progress, that others are able and willing to program for pay. Meanwhile I will continue to putter around with Elisp at home.