For example what's the difference between a boat and a raft? At what point is a water vehicle a boat and at what point is it a raft? Any debate on this is simply a linguistic debate disguised as a philosophical one. There's a gradient from boat to raft and people are just debating about a positional problem of where the line of delineation falls. This example is obvious though.
Less obvious is the word "life." When is something classified as living and when is it it classified as not alive? Is a rock alive? Is a plant? Is a deep learning dall-e 3 alive? Is a human alive? Is a brain dead human alive? Seems like a deep philosophical argument but my point here is to say that this argument is as pointless as the boat and the raft.
This thread is the same thing. Pointless debate on whether CS is a liberal arts or not? It's a debate on linguistics. You're all just trying to debate about definitions of arbitrary words. Nothing interesting.
Words do have meaning and in a sense it's all we have.
Approaching CS as a series of abstract mathematical problems to solve can make you a very good programmer. Finding the right place in society to sell your .exe's is sometimes better solved by a programmer with a liberal arts education.
I agree computer science needs to change. There needs to be a way to incorporate some of those aspects into a CS degree. If we want the full advantages of tech in our lives.
What do the fields/papers (whih the author IS referring to, very concretely) have to offer to the discussion about where the field of CS, and its business applications, should be going?
This way we don’t have to discuss category boundaries. The concrete implications of the arguments are there to evaluate.
That the actual substance is dismissed here out of hand is quite frustrating to me.
After all, you’d expect best performers in this field to all be from liberal arts colleges like Middlebury. And the folks there are great but it’s not like they’re superpowered compared to the Vanderbilt guys. So it isn’t some sort of game changer.
If I like the thing then it definitely belongs in the category I like. If I don’t like the thing then it definitely belongs in the category I don’t like.
And what's on the curriculum? Some good hard math, but also a fair bit of nonsense. Some people in this thread seem to think colleges have been taken over by javascript, and that may be true in some places, but I wish they'd taught us JS, because what they taught me was Java Swing, because a decade ago the ivory-tower tenured professor who wrote that course thought it would be useful for getting us a job and never touched it again. They could've replaced that course with underwater basketweaving and nothing of value would've been lost, let alone any of the excellent humanities topics the author mentions in her post. There is plenty of space in the curriculum to clear out enterprise-driven cruft from fifteen years ago and replace it with some of the useful things the author mentions, without touching any of the core mathematics we all love.
In fact I would go a step further: Having a lot of people who are very good at programming but who don't know anything else is a bad thing for society. This is unique to programming as a discipline - programmers have historically unprecedented power to turn fuzzy, implicit ideas into concrete reality that affects people at massive scale. It's totally ok to let mathematicians, for example, go off and study just mathematics, because mathematicians are harmless. Programmers are dangerous. Without perspective, we will calculate ourselves right into dystopia - we're doing it right now! What good is it going to do any of us to write systems that strip away all our civil liberties with perfect big-O complexity?
Politics? Economics? Writing?
I don't necessarily disagree on the dangers, but they're certainly not unique to programming. Some German guy wrote a few thousand pages of fairly dense and convoluted economics/philosophy and ninety years later an eight-digit number of Chinese people died as their nation Greatly Leaped Forward.
How? A cascade of people having "historically unprecedented power to turn fuzzy, implicit ideas into concrete reality that affects people at massive scale".
I don't think programming has fucked up anything near this scale yet. I'm sure it will eventually, but it hasn't yet.
One dude in a cardboard box down by the river with PyTorch on his laptop can convince your local court to contract with him for a model that predicts recidivism, and then suddenly your county is rejecting bail for black people at an alarming rate because said guy trained his model wrong. Achieving a similar fuck up with a degree in philosophy or polisci would require a _lot_ more work (you'd have to get elected to office or create _more_ racisim!). Software and the power we entrust in it has made fuckups faster and easier than ever, and it's only going to get worse.
A good shot, but I don't think good enough. All of those still involve humans changing each other's thoughts by communicating with each other.
A computer program replaces human thought. Depending on the application this may be good or bad, but the point is that once the program is in place, humans don't need to think or talk about it anymore.
I mean, they do, but they won't. After all, there's so much other stuff to think about, talk about, and then replace with software.
You're saying students are no longer taught all this??
Levity aside, I do have rosy memories of that course (taken around 2009). It taught me well, though I can see how it probably put a lot of people off, maybe even causing them to abandon programming.
Plus, at least at my university, an engineering ethics class was mandatory in the final year of undergrad. There was also a big general education component (~25% of the degree) that did involve various humanities classes (stuff like "Eastern Religions", "Indian Classical Music" and "History of American Art", an extra language class if you weren't already bilingual etc) and from what I understand, other universities generally have a higher ratio of general education requirements.
So I find it odd to suggest that programmers "don't know anything else", because at least in my experience, they clearly do.
This is an odd criticism. Finding a job using Swing is hard, but jobs using Java are plentiful, and applying what you learn from that class to a different language and framework isn't that big of a leap. It's a leap you'll often take whenever you change jobs.
There will always be sociopaths. The problem is the skilled people who can rationalize enabling them.
> Some people in this thread seem to think colleges have been taken over by javascript, and that may be true in some places, but I wish they'd taught us JS, because what they taught me was Java Swing, because a decade ago the ivory-tower tenured professor who wrote that course thought it would be useful for getting us a job and never touched it again.
You get a BS to understand (hard) concepts. Java makes a lot of sense to teach because of good resources, longevity, and it implementing a lot of the underlying ideas of OOP. Is it a great language? Not at all, but knowing it makes it very easy to learn other OOP languages. My faculty is currently discussing a larger BS reform, and this is one of the topics. We have a course for second semester students called "Intro to OOP". What are the alternatives to Java? Most other OOP languages do not implement all the typical concepts of OOP, or are highly platform dependent, or might be just a fluke. C++ is quite rough, and there is another course teaching OS with C in the same semester. Personally, I think people in the course should be able to choose between writing their assignments in something that compiles to java bytecode, but that massively increases overhead for TAs.
> In fact I would go a step further: Having a lot of people who are very good at programming but who don't know anything else is a bad thing for society.
This I would agree with, and add that this is also really terrible for programmers. Compared to other engineering disciplines, our discipline is massively underdeveloped in the realm of strong guidelines backed up by empirical research. If you look at the subfield of Software Engineering (which I'd say is another misnomer, as this is actually pretty much the only empirical part of CS, and at that mostly a social science), it is hard to find very strong consensus on what and how to do it. Actual practice is, I'd argue, more influenced by medium posts than the papers published in the field. There are a lot of strong opinions, and very little but personal experience to back these things up.
> What good is it going to do any of us to write systems that strip away all our civil liberties with perfect big-O complexity?
I'd also strongly argue that everyone should be educated in ethics, but education in morality does not make a moral person, I think this is one of the really hard problems that universities can try to help alleviate, but not solve alone.
CS is a mathematical science, not a liberal arts topic. This author is way off base.
"Liberal arts" refers to a tradition of education across the major disciplines. It is distinguished precisely by the fact that it includes both the sciences and the humanities.
Every other field of study has more artsiness than Mathematics.
However, Mathematics also still has a lot of artsiness to it.
It is often the case that universities offer courses that are much more theoretical than the practical application, even medical studies to some extent begin with very high level concepts and theories; the reason for this is because they’re attempting to optimise for better understanding of the underlying foundations of the discipline than for any particular job.
Vocational qualifications are extremely handy, but they have a bit of a bad reputation these days. Code academies are not seen as prestigious, despite being the authors ideal. The game assembly (TGA) is one such vocational studies program in southern Sweden with an excellent reputation in the local community for churning out quality (junior) game devs that are ready to work, but suffers with backend programming sections still; since most people who do game dev do not enter to be in the backend.
I would be extremely happy to return to apprenticeships, I would have killed for one going into this industry, but given that employers only care about getting new mid-levels or seniors and not investing in what they already have: it’s always going to be a losing battle as the invested talent atrophies and leaves to go to other places.
To me, what they’re saying is that CS has a point of view that is so narrow and constructed from such a limited perspective that it’s actually harmful to society as a whole.
i.e. CS is removed from science as a whole, not by virtue of being too theoretical but as a result of being applied, but in a very skewed fashion. CS practitioners have a lot of power in society and ethical norms are lacking, so this has consequences.
"If the point of a CS education is to prepare people to work in software (and that assertion is debatable!)"
The author uses a premise, while acknowledging that the reader might not agree with the premise. That's not conflating anything.
And the author's suggestions are far from "vocational"... they just move out of the limited field we call computer science.
> The bulk of software work today is about integrating computation into human driven tasks, predicting and anticipating how people think, what they need, how they react to new communication and work methods
Sure. But that is not what comp sci is about. If one wants better programmers then those aspect should be put in a different, more job focused, degrees like Software Engineering.
It’s should be a choice. If people want to focus on maths and computers, then let them focus on maths and computers without other fields. Degrees aren’t just about jobs.
CS, or any other "STEM" field, cannot be separated from human history, philosophy, ethics. As pure as it might seem, even maths and computers exist within a complex humanities context.
But degrees are used as a gatekeeper for jobs, and the price of a degree, 4 years of lost earnings + $200K, means that the only practical reason to get one, for the vast majority of people, is to get a higher paying job. So in reality, degrees are about jobs, and universities should start acting like it.
I do share your sentiment that it shouldn't be this way, but if you tried to get rid of this system of degrees as job qualifications, the universities would be your main opponent. A degree not about getting a job would have to be more like 1 year & $20K to really get many takers, and that would be much less money and power for the university.
> 4 years of lost earnings + $200K
Yeah I forgot how much US universities cost. I did a double major in LLB and BA and my student loan at the end was less than 50k including some living costs.
I can see why people in US are more focused on job qualification side of a degree if the opportunity cost was that much.
In theory it would be better if people do a degree that is relevant to what they want to do but it is employers and the "herd" (the critical mass of people that have the most common/important credential in that industry) that decide which credential to pursue. In other words, degrees are purely about doing something someone else would like you to be doing.
In my opinion all the wishy washy "there must be some understandable reason for this" or "degrees aren't just about jobs" arguments are only there to detract and confuse people and make them have doubts instead of making rational decisions and getting on with their lives. The bullshit becomes bearable the moment you are fully convinced it is bullshit. If you are on the edge and have doubts that it isn't bullshit enjoy suffering through 5 irrational years while believing they are rational.
I think there's an argument to be made that computer scientists benefit from studying liberal arts; but I think the author fails to make that argument (let alone that CS is actually liberal arts, as per the subject).
Wait a minute, what of 7 liberal arts are History and Literature in? I can not see any place for that in both Trivium and Quadrivium.
I'd be inclined to count astronomy, geometry and arithmetic as STEM subjects, rather than liberal arts. But I don't think trivium and quadrivium have been a thing since the Middle Ages, and I'm sure that's not what the author was referring to.
Yes it is a STEM degree: no rigor - no computation. Understanding how the universe works is necessary in order to exploit matter and convince it to do computations for us.
Everything humans do (STEM included) is for humans; and by humans.
This bipartisan view of universities and faux-conflict isn’t useful.
I would disagree with this statement. I have a pet AI program which can get some work done and gain some cryptocurrencies for that and pay for its hosting for keep doing that work. I am sure the AI will overlive all the humans and it really needs some computations for living.
Why do humans need/invent computation, hosting, cryptocurrencies and AI?
I can’t fathom any data center remaining online for more than a few weeks/months if all humans keeping it running magically disappeared.
My point is the people in charge of curriculum and education are all $200K+/yr tenured professors in the style of CS is Knuth and Knuth is CS and that's the end of the convo, so no great surprise that CS curricula are mostly weed-out classes mixed with mathematical theory classes, because the old generation will always tutor the new generation in its own image.
You have to notice that everyone in the author's list of notables is very interesting but has ZERO soft power and none of them are tenured profs or administrative department heads at uni.
My gut level guess of where this is all going by my grandkids generation is there are about 1000 framing carpenters for every 100 general contractors and about 1 structural engineer (your locale may vary, ours has weird snow load problems). So in my grandkids generation "front end" "UI" people will likely come from apprenticeships or 2-year community college at most, whereas you want a "back-end" guy who can do some architecture he's going to have a very technical 4-year, and every company will have maybe one programmer with a classic CS background who does architecture and algo optimization all day.
When I was a young guy, everyone who graduated with a CS degree had to write a language using lex and yacc, maybe not much of a language but you had to get something to compile at minimum. Now I enjoyed that class immensely and it was one of my favorites and I've never used any of the skills since then, but that class is kinda dumb if 95%+ of jobs now will be front end javascript level work.
I think this sentence sums it up more than relating it to publish-or-perish. It comes down to what is the purpose of university. Is it job training, as companies want it to be (because why should they train their employees when they can outsource it; this has led students to expect it to be job training too), or is it actually about learning the fundamentals of why things work, in preparation to go further on in said field. Or just about learning about 'humanity' in general (as universities were more in the past; humanities oriented). I think this is the root issue. To me, university should be (2) and (3), not (1). But companies want it to be (1), and students expect it to be (1), whereas professors want (2) and (3) depending on field, and that's where part of the problem lies.
Tbf, that kind of thinking actually goes back to the origins of medieval universities, so there is some case to be made (a lot of universities still award BAs for pretty much every subject). But I guess the true intention here is to lower the barrier in technical terms for claiming CS degrees and SE salaries.
To what end? That is not a scientific question.
To steal the sentiment from a meme.
Scientist: what is philosophy good for?
Philosopher: I don’t know. What is science good for?
Scientist: Well science has broad application in…
Philosopher: aaaand you are doing philosophy *drops mic*
That approach has been used for great justice in my recent work/life. When you can see that far ahead in the argument because you are correct, you just lead your conversation partner to make your point for you.
CS is not engineering, not much actual science or working principles get applied for most of the work done.
CS is design, but design of a 4D artifact, something that moves in time and space, not just 3D. To make things more tractable, we do this in discreet space, not continuous space, which brings its own qualities and issues (e.g. non-locality - there is no underlying strata based on nearness).
Design is concerned also with the who and the why, rather than just the what and the how. Hence a broad education is helpful.
Earlier this year I wrote about HCI as the intersection of technical craft and social sciences: https://www.designdisciplin.com/hci-profession/
Interestingly the responses I got from people in the HCI field was the inverse of the sentiment in this article. Here it seems that the author is arguing to increase social sciences in CS, and getting pushback. One of my arguments was to increase tech/eng competences in HCI, and I got pushback on that too.
Some things seem defined not just by intersection but by exclusion. I've experienced both sides. As a computer scientist working in arts and music, I find the "computer music" field builds on a strong affinity. Technology and arts form a natural positive bond, although one meets the occasional purist who only hand-carves their own medieval flutes. It's a fusion intersection to which one can never bring too much humanities nor science. I don't feel out of place discussing philosophy and matrix multiplication in the same breath.
As I matured my interests post 2013 changed focus to digital rights and cybersecurity. It seems to me this area is currently defined by antagonism. It is a human-computer design field, yet is a chasm between human values and rigid thinking where people and systems clash.
In computer music, what is at stake is mostly joy. In cybersecurity what is at stake is power. As in any struggle the technocrats just wanna "hit them harder with more". More cryptography. More lockdown. More central authority. The actual utility, or god forbid 'pleasure' of computing be damned.
But there is another movement emerging in cybersecurity, to which I am affiliated. "Computing in the public interest", or "humanistic computing", whatever you want to call it, where technical concerns are fused on an equal basis with rights, freedoms and responsibilities.
Existing dead centre of that exclusion means getting push-back from both sides. But, to be honest I take that as confirmation that the work is fresh, valid, and essential.
On the other point, offering CS degrees as liberal arts degrees wouldn't meant "reclassifying CS as some bullshit" (or, indeed, reclassifying CS at all). There are many fields where some colleges already choose to offer the major as a B.A. while others offer it as a B.S. It's not a difference in the field, it's a difference in what requirements a college implements for getting a degree in the field. In other words, exactly what you suggested should happen.
Why would you need a university CS degree to do UX design and write some JavaScript? There should be other degrees for that to be honest.
I’m hoping this trend will now reverse and “real” software engineers will reclaim their profession, despite now being in the “minority”.
Personally I’ve started calling myself a “deep tech software engineering entrepreneur” to try and distance myself from this “majority” of overeducated JavaScript fiddlers.
What's the problem with having a computer science education and writing JS? There are ample situations to utilize CS in browser code.
If so, I'm shocked. Bellotti asserted this several times without anything to substantiate the claim.
Kill It with Fire was on my reading list. I think I want to read more reviews now.
Every now and then you notice it in what people do and do not know.
There's a lot of heavy lifting being done by that parenthetical. I don't think the point of a CS education is to prepare people to work in software. It's to teach them the theoretical groundings of computation and how to engage in abstract reasoning about it. It always felt a lot more similar to applied mathematics to me than anything else.
I sense an is/ought conflation from the author. I could agree that software engineering as a profession could benefit from more practitioners with a liberal arts background.
The thing is, I just don't know if that is necessary for more than a self selecting group. A liberal arts degree has more to do with going to a liberal arts institution with a common core curriculum that teaches one how to read, write, and interact critically with great books and history. I had such an undergraduate experience and I felt like a benefitted from it significantly.
It's hard to get into a good liberal arts college, just like it's hard to get into an Ivy League institution. I don't think one can democratize the intrinsically elitist aspects of a holistic liberal arts education because the vast majority of people are simply not interested in it and will never be. The only way I could see that changing is with a vast fundamental overhaul of the K-12 education system that actually prepares citizens from childhood to adulthood for such an education; in which case I think it is then perfectly fine and reasonable to expect the entire adult populous to be prepared to get such an education.
It seems like this is how it works in many European countries. But it's not how it works in the USA, where I live.
As to whether one feels better about having a BA vs a BS, in reality most people don't care too much about things like that. A BA may leave more room for classes in other subjects, which can be beneficial. A BS might be better preparation for a grad program in that subject, otherwise your grad program might require a year of in-subject coursework.
Isn’t this why STEM acronym has evolved to incorporate Art, and is now called STEAM?
The post says “but liberal arts is about critical thinking, logic, picking apart complex problems, and ethics.” and I would say the same applies to a technical education.
There doesn't even seem to be an agreed upon definition of what liberal arts truly are in 2022 so this whole discussion seems quite pointless to me.
1) This is ass backwards. We don't need CS who know about accounting, hr, etc. Jobs of the future will be automated. Dev is an essential skill, the same way English or maths used to be. We need these professionals to learn how to code to "gain one level up", and make the computer do whatever devs are building for them now. 2) Market has needs for a lot of people who know how to program using high level frameworks. CS programs have evolved accordingly. 20y ago, it was a room full of geeks (with the original meaning), coding on freebsd. Program had electronics, assembler, C, you learned to build a compiler from scratch, a virtual machine, a shell, stdio, etc. There was a lot of tinkering with dark bsd flavors. Programs today are at a much higher level, learning how to use react, and frameworks built by others. To the point where I see devs who don't know what OSI means and don't even know how to reinstall windows themselves. I don't think it's bad, I think the need for CS has remained somewhat similar, what we need today is app developers which is very different. You don't need a tech genius to build an accounting app. You need someone who can understand these needs and transfer them into relatively straight forward code over all the abstraction levels built by these tech geniuses.
So I think the claim that CS is a liberal art is preposterous. I think that what people call CS has evolved into two things, CS and App dev, the latter which should start moving to other professionals, and that people didn't realize it yet.