Would I really benefit from reading this?

Eli Phillips
Eli Phillips

I'm currently a Math Major. Will this distill most of CS? How will this compare to PAPL? papl.cs.brown.edu/2016/

Attached: images-(8).jpeg (13.81 KB, 220x318)

Other urls found in this thread:

racket-lang.org/
docs.racket-lang.org/sicp-manual/index.html
wiki.tcl-lang.org/page/Critcl?
github.com/ossu/computer-science
functionalcs.github.io/curriculum/#sec-2-2
inst.eecs.berkeley.edu/~cs61c/sp19/
pdos.csail.mit.edu/6.828/2018/xv6.html
en.wikipedia.org/wiki/Compatible_Time-Sharing_System
pdos.csail.mit.edu/~rsc/plan9.html

Hudson Howard
Hudson Howard

I'm currently a Math Major.
I just graduated math

Will this distill most of CS?
What do you mean by that?

How will this compare to PAPL?
Never read that one

SICP is a great book especially if you are a mathematician. The first chapter is all about functional programming, which should make you feel right at home, unlike the imperative languages. At least for me it really helped me bridge math and computer science (my applied field). The only downside is that the book will leave you feeling miserable because good luck getting a job that lets you do functional programming instead of writing enterprise-level Java shit.

Make sure to work along the text and do the exercises. You can also watch the MIT lectures on YouTube. For a Scheme implementation I recommend Racket with the SICP language.
racket-lang.org/
docs.racket-lang.org/sicp-manual/index.html

Racket is sort of like the Python of Scheme, it has an IDE (you don't have to use it), a package manager, very good documentation and a large collection of libraries. I even used Racket to write a simulation of my thesis topic, the included plotting libraries made it really easy to get visual results and actually see what I was writing about.

Caleb Morris
Caleb Morris

What I meant to say was, would it make me more knowledgeable than a Computer Science graduate?

My plan is to absorb everything from the book and do some personal projects on Python. Then i'll try doing TAOCP.

Colton Stewart
Colton Stewart

What I meant to say was, would it make me more knowledgeable than a Computer Science graduate?
You mean someone with a masters degree? No way, there is way more to know than can fit into one book. SICP is a book about computer science in general, it will touch one some topics, like algorithms, data structures or abstraction, but it will not dive into details. It gives you a good overview of the field, and you can then read more specialized books on top of that. For instance, if you have developed a good intuition of algorithms and efficiency and you have a good intuition for other CS topics, you will have a much easier time reading a book about algorithms specifically than if you were to dive into algorithms without preparation.

My plan is to absorb everything from the book and do some personal projects on Python. Then i'll try doing TAOCP.
Sounds like a good plan. I haven't read TAOCP, so I cannot comment on it (will it ever even get finished?). It is important to switch between theory and practice, don't be someone who only reads books.

Hudson Myers
Hudson Myers

I haven't read PAPL, but SICP is a genuinely good book. No, it won't
"distill" CS, in fact, it contains some simple, yet deep and important
truths about programming and computer science in general.
If anything, more people should read it. Beware that Scheme is but a
means to an end in this book: its goal is to teach fundamental
programming concepts, not learn Scheme specifically. Even if you never
use it again, what you learn there is applicable in pretty much any
language.

Luis Morris
Luis Morris

What I meant to say was, would it make me more knowledgeable than a Computer Science graduate?
Considering the level of the average computer science graduate nowadays, it unironically can.

Julian Nguyen
Julian Nguyen

If I'm thinking about the right book, personally, I couldn't read it. It's way too academic, so it just bored me to death and I had to go to sleep, or to read something written by humans. I could give it a 0/10 just for the dry and boring writing, but maybe that would be too cruel, because of my biases, as someone that just reads for fun most of the time. That's just how these people write, because it makes their fake jobs look more impressive. Maybe I'm just too much of a Terry. More of an industry guy. I think I tried one or two books that were also related to Lisp, and they were also too unbearably boring for me to read. The language seems to attract these types, since it's never actually used for anything useful these days.

When you write something, don't try to be as boring as possible so you can feel more important. Anyone that isn't completely retarded can see through it. Politicians do it nonstop, and they are a bunch of retards. Not impressive. Overall, I would rather read a book written by someone with actual practical experience. Some of those people aren't amazing at teaching, but they are always better than actual teachers anyway. Maybe I'm thinking about some other book, though. I just ended up avoiding the memes and reading normal, practical books. In my case, I just learned C, whether that was a good choice or not. My goal was to have an overall understanding of how computers actually work, so maybe going full low-level would have been a better idea. Skipping C and going straight for asm would have been more efficient.

Nolan Butler
Nolan Butler

If you want to learn how computers work learn verilog / vhdl

Jonathan Perry
Jonathan Perry

Is the Python version of SICP any good? The one made by Berkeley.

That's why I'm transferred to Math. Our CS department is pretty much Software Engineering focused.

Good point. I need something in-between. I want to do something related to AI but I heavily lack some prerequisites.

Isn't that for comp engs? I'm quite interested about computers, specially quantum computers.

Jack Rivera
Jack Rivera

Even though current CS is in very bad shape, SICP is still only an introductory book. A great one, but introductory nonetheless.
Note that this field has a serious problem with falling for hyped fads and disregarding its own history, so one tip I can give you that will put you above a massive number of programmers is to look into older stuff. On the language front, Ada and Common Lisp are very good examples of how good design looks like. You will probably find decent books on them in your university library that haven't been lent out in years.

Afaik Python SICP is still SICP. You'll have to deal with the peculiarities of Python (which is frankly just a really badly made language) and Scheme is much nicer in that it gets out of the way, but it's not like the python version is unreadable.

quantum computers
These still don't exist as originally postulated, for the record. Concentrate on the classical side first.

Robert Reed
Robert Reed

Good point. I need something in-between. I want to do something related to AI but I heavily lack some prerequisites.
For AI there is Paradigms of Artificial Intelligence Programming (PAIP), I'm currently reading it myself (I have only made it chapter 5 out of 25 though). It uses Common Lisp instead of Scheme; Common Lisp is a larger and uglier language, but it includes a lot of things that are useful for real-world application instead of being an academic toy. Every Scheme that wants to be more than just an academic toy has to extend the language so much that it basically becomes a new language of its own.

Joshua Young
Joshua Young

SICP is out dated and nobody reads it. Not even the people who recommend it.

Justin Powell
Justin Powell

Different user here.
I'm learning Guile scheme, but I have previous experience with languages like C++ and jabbashit. I also know the basics of CS.
Is the purple book for me?

Adrian Nelson
Adrian Nelson

u can finish it in a week
just do it faggot

Isaiah Cox
Isaiah Cox

I don't think I can find jobs here that uses LISP. But I'll study that anyways

Jose Barnes
Jose Barnes

SICP is pretty outmoded; it teaches relatively simple concepts in roundabout ways using archaic syntax. I'm sorry I don't have an alternative I could recommend, but a CS curriculum will teach you the concepts in the book anyways.

Logan Bell
Logan Bell

Would I really benefit from reading this?
Ofc OP. If you don't read and memorize it by heart then you won't get even half of the ancient maymays here.

Easton Perez
Easton Perez

The Art of Computer Programming. And ditch Python for Tcl, you'll thank me.

Zachary Adams
Zachary Adams

TAOCP is certainly valid, but it's really more of a reference imho. It's likely not meant to be read from cover to cover, and I honestly doubt anyone (besides obviously Knuth himself) actually has.
SICP is comprehensive, but still realistically readable from cover to cover.

Jacob Johnson
Jacob Johnson

Why tcl? I intend to use python for scientific computing and statistics

Caleb Hall
Caleb Hall

you should drop out of college and get a real job

Owen Price
Owen Price

What exactly is roundabout about SICP?

Jacob Long
Jacob Long

Because it's not gay faggotry without a clear and minimalist design behind it. Tcl doesn't have Numpy, but why would you care when you have wiki.tcl-lang.org/page/Critcl? There's also tclquadcode coming together slowly but surely.
Also, you can escape Python's leaderless "diversity is a strength" mob.

Brandon Price
Brandon Price

What I meant to say was, would it make me more knowledgeable than a Computer Science graduate?
Obviously you will know more math than he does, but depending on how good the school was, and how much he studied, he might know more about electronics and hardware than you do, plus by the time he has finished college, he would have already programmed in about a dozen languages, with C or C++ or Java being his "main" language while stuff like Octave, Matlab(you should definitely check these two as well), Haskell, Prolog, Python, Assembly, VHDL, Verilog, SQL being used for one or two courses. Even with C, he would have probably done some basic networking, like a file sharing or messenger program, kernel modules, micro controller programming, and so on.
t. this is what I had at my university from Eastern Europe and no mandatory feminism courses

Landon Wilson
Landon Wilson

outdated
Because the transcendental concepts of computer science are so reliant on the latest javascript framework
Syntax is the simplest part of programming. Once you know one language, you can pick up another in a week. Algorithms, data structures, and ways of thinking all are independent of the language and haven't evolved very much, especially not at the undergrad level, since SICP was first published.

Ian Harris
Ian Harris

Not to say actual CS isn't a worthy area, but for someone looking to learn practical shit SICP is far from the best use of their time. Will reading it hurt? Hell no. Will it help? Probably. But you also don't have infinite time to read infinite books, so you have to think about priorities. SICP makes you do shit like write compilers. If that is your goal, great. If not...

Acting like everyone should main their theory lvl is dumb imo. It's like saying if you become a linguistics prof you can instantly comprehend all languages. But learning vocab and idioms still tales time. Just learning math won't make you an expert accountant or actuary, you'll still have to learn all the regulations and conventions. SICP will make other things easier to learn, but not necessarily so much that it will be worth the time, depending on topic. It will still take time to learn practicalities, it won't be instant. Syntax and javascript frameworks may be unglamarous but if that's what you need for your goal, why would you not go and learn directly that? Why take a giant detour to learn a bunch of theory you won't use?

Not even the author of SICP advocates programming from it anymore. They use it for advanced CS (ie. research) courses.

Robert Cook
Robert Cook

r u really at a point in your life where you cant take a couple days to read something that takes a commitment and a challenge for you learning ability?
these ivy league students. my god.

Leo Phillips
Leo Phillips

they use it for advanced cs courses
Isn't that a good thing tbh? Sure not helpful if you work as a JS paieet.

Luis James
Luis James

SICP only becomes interesting long after you have learned a bunch of other stuff. Starting with it is like starting with Aristophanes.

James Ward
James Ward

Advanced CS doesn't teach anything for people who just want to make small software projects. It's very abstract CS for writing theoretical papers and designing software that would need to be built by hundreds of people over many years. Unless these are your goal it's as useful as learning quantum chemistry to cook a soup.

Aiden Kelly
Aiden Kelly

SICP is notorious for taking many months to read. Exercises alone would take at least a month.

Evan Flores
Evan Flores

No. This is a horrible book for the average person. On top of using the horrible language scheme and the horrible paradigm of functional programming, it bombards you with too many ideas too rapidly. You probably learn more in the first chapter than you do in 2 years of CS at a state university. Problem is, you won't be able to follow it unless your IQ is 140+. It's not a step learning curve. It's like climbing up a wall. O(N), tail recursion, tree data structures, algorithm efficiency calculations, and other arcane topics discussed at length in the FIRST FUCKING CHAPTER.

Adrian Sanders
Adrian Sanders

no don't read SICP dude, you won't learn how to bash Javashit rocks together like a tard to make broken crap
the book is horrible, you actually learn stuff instead of reading 200 pages full of stuff that can be described in 20
even MIT doesn't use it, I won't say why though because that would make me look like a tard ecks dee
When the fuck did this board turn into Pajeet central?

Jace Myers
Jace Myers

Why are you so reddit?
A beginner should not start with functional programming, no matter what ivory tower academics think, simply because functional programming is not that common in practice.

Sebastian Lee
Sebastian Lee

There is nothing specifically functional about SICP, retard. Not that this line of arguing is sane in any way.
Why are you so reddit?
Right back at you, I bet you didn't even read the book.

Grayson Anderson
Grayson Anderson

There is nothing specifically functional about SICP
lmao

James Thomas
James Thomas

It's extremely comfy up here in this ivory tower. At least we aren't like imperative fags who literally have to use billions of transistors in order to offer a somewhat efficient imperative interface to program over.

Christian Perez
Christian Perez

lmao
calls others reddit
pottery

Adam Torres
Adam Torres


(if (equal? "lmao" "reddit") "lol" "lmao")

Matthew White
Matthew White

SICP will give you a mental model of how to build software via abstraction and modularity. It will not teach you the fundamentals of CS theory. By theory I mean data structures, algorithms, and complexity theory. If you're more interested in theory, check out CLRS and Papadimitriou.

Aaron Martinez
Aaron Martinez

What an argument you have there.

Kevin Fisher
Kevin Fisher

lispfag
back to reddit you go

Jose Hall
Jose Hall

LARPer begone.

Jacob Reed
Jacob Reed

I'm doing the book now. While also doing some Python projects

Brayden Perry
Brayden Perry

I learnt a lot about data structures, algorithms, and asymptotic notation from SICP.

Lucas Gomez
Lucas Gomez

There is nothing specifically functional about SICP, retard.
t. reddit
You dont need transistors if you don't write code, duh.

Elijah Mitchell
Elijah Mitchell

Would it be sufficient as an introduction to CS then? Can I compete well against CS undergrads/codemonkeys?

Xavier Perry
Xavier Perry

SICP (the 2nd edition) covers two semesters worth of material if you go through it from start to end, its mentioned in the preface IIRC. It covers a lot of ground, but CS undergrads have a whole curriculum that covers more than introductory programming classes on steroids. There really are some competent CS undergrads out there who have a strong foundation in math and theory from their courses, and for practical experience they might be learning on their own and/or through internships. Its not like they're all going to be lightweights, entry level positions are limited and competition is stiff. There is also favoritism for women, specific women events, scholarships, etc. that give female CS undergrads an advantage over everyone else. Just realize that if you are not especially gifted (in a self reliant, self advocating/shilling, socially competent way, plus being really good at ridiculous ACM ICPC style questions as pop quizzes, plus being young and photogenic in a steve jobs kind of way, plus.... etc) or you are not a woman, nobody really cares if you get involved or not in CS. There is a considerable amount of math in a real CS curriculum, the applied courses pretty much all involve math if its a serious institution.

OSSU's recommendations kind of give you a rough idea of what CS students might be learning, they have picked things that are available as online courses only though: github.com/ossu/computer-science

Asher Powell
Asher Powell

Most of the universities in this 3rd world shithole only teach the students on how to become codemonkeys(i.e. java colleges).

Would supplementing SICP with HTDP be overkill? I'm reading multiple books in order to expand my knowledge.

Connor Young
Connor Young

is there any way to use scheme without having to slog through emacs?

Blake Clark
Blake Clark

Why wouldn't you use the best tool for writing/developing in Lisp/Scheme? Don't gimp yourself and give Emacs some time and you'll see that it beats the competition.

Joseph Adams
Joseph Adams

tbh i set up racket + the sicp package just now and that works fine but i guess i'll try emacs again at your suggestion. there's an ubuntu package for mit-scheme that comes with an emacs-like editor, i'm just too attached to notepad++ style.

Nicholas Myers
Nicholas Myers

is there any way to use scheme without having to slog through emacs?
You don't really need Emacs. I am using Neovim with the REPL running in a terminal buffer. It's perhaps not the best setup, but it works well enough for me. SICP exercises are small enough that you don't need a full development setup.

You could also try Racket, they have their own Racket IDE called DrRacket.

Asher Robinson
Asher Robinson

You need like two commands to use emacs.

Thomas Morales
Thomas Morales

you need only one to uninstall it

Josiah Evans
Josiah Evans

If you are doing anything larger than editing config files emacs is worth using.

Dominic Young
Dominic Young

no, it's a meme.

Parker Hughes
Parker Hughes

They're both introductions to programming with their own approach, I don't think it would be a good idea since they are both long, plus SICP has video lectures to go through too. Its not like you'll lack things to do with either of them.

Isaac Cruz
Isaac Cruz

What should I do after SICP in order to get some practical knowledge?

Andrew Hill
Andrew Hill

You can use any editor you want. I wrote Scheme for years using Vim.
Emacs, however, is worth giving a try on its own, regardless of Scheme.

Blake Roberts
Blake Roberts

As others have said, I wouldn’t start with SICP. It’s doable, but I feel more will be gleaned from it once you already know - or can at least appreciate, and contextually understand and see a need for - a lot of what is being taught.

Daniel Smith
Daniel Smith

CAR
CDR
EVAL
APPLY

Attached: sicp.mp4 (7.39 MB, 578x360)

Christopher Nelson
Christopher Nelson

caar
cadaar

Alexander Barnes
Alexander Barnes

Something that covers systems programming with C (The C Programming Language is useful as a reference, and/or for simple exercises, but you're going to need something else, plus obviously you'll be reading manpages), some basic assembly, Unix-like stuff, etc.
Computer Systems: A Programmer's Perspective is used these days, but its a big tome of a book and tries to teach assembly via a fake x86 variant, which is kind of awkward. Its still pretty good, but too verbose at times. CMU had videos and lecture slides publicly available IIRC, but I don't know if you can still access them.
It doesn't mean you should immediately be using C for some project or follow Unix program design with all its pitfalls for every program you write, but it will help you understand some very common programs, languages, and systems.

Easton Morgan
Easton Morgan

If I want to focus on AI or none meme data science, would C still be useful? I've only seen SQL python and R being frequently used.

Tyler Rogers
Tyler Rogers

HAPAS ARE SUPERIOR TO WHITES

Leo Bailey
Leo Bailey

HAPAS ARE SUPERIOR TO WHITES

Evan Gonzalez
Evan Gonzalez

HAPAS ARE SUPERIOR TO WHITES

Benjamin Sanchez
Benjamin Sanchez

HAPAS ARE SUPERIOR TO WHITES

Xavier Powell
Xavier Powell

HAPAS ARE SUPERIOR TO WHITES

Christian Wilson
Christian Wilson

HAPAS ARE SUPERIOR TO WHITES

Daniel James
Daniel James

HAPAS ARE SUPERIOR TO WHITES

Nolan Reed
Nolan Reed

HAPAS ARE SUPERIOR TO WHITES

John Cook
John Cook

HAPAS ARE SUPERIOR TO WHITES

Benjamin Robinson
Benjamin Robinson

HAPAS ARE SUPERIOR TO WHITES

Jordan Barnes
Jordan Barnes

Europeons need to burn in a tar-pit. Disgusting

Colton Jackson
Colton Jackson

Mods are kikes. Why are they deleting my posts?

Aaron Rogers
Aaron Rogers

Get out boomer. GO back to facebook.

Grayson Martin
Grayson Martin

there is no better workflow for lisp-family languages than emacs.

t. vi-family hardliner since my first hair on neck

Henry Walker
Henry Walker

I'm currently a math major
If you're a real math major, go learn coq or idris or even haskell if you're ok with a little lack of rigor and stay the hell away from python. If you're an (((applied))) (read: fake) math major, then python will be fine.

Mason Smith
Mason Smith

someone that just reads for fun
Then learn something from it, learning is one of the funnest things you can do
>inb4 school was shit and killed my creative ability and will to live and made anything related to "learning" boring and menial

Julian Turner
Julian Turner

How the fuck do schools manage to suck childrens' natural curiosity right out of them?

Jayden Thompson
Jayden Thompson

You must not be from Burgerstan™, allow me to pontificate for your edification.
In Burgerstan™ all children (with few exceptions) are forced into the "public schooling system" or PSS for short.Once they arrive at PSS they are taught many things, a few of which may be:
truth comes from authority
2+2= what I say it is
you must do it our way, stay inside the lines
you must prepare for the test (read: memorize shit you will never need except for this one thing and then dump it)
All of this and more. You may ask "what's the purpose of this?" well it's simple, in Burgerstan™ there are no bright minds, only drones. So in order to feed the industrial machine the PSS only creates mindless drones who follow orders (even if begrudgingly). Of course they achieve this through re-worded threats of homelessness and starvation. Now if a student decides to opt out and possibly even run away, well then the Enforcers™ will hunt them down and either send them back or imprison them. Another possibility is that a Drone-Starter™ will become deppressed from the realization that he is nothing more than a cog in the industrial machine and cattle for it's herd, in such a case the Drone-Starter™ will be sent for re-education to a "Mental Health Facility™" or MHF for short, where they will be made to be afriad of being sad.
Another way that the PSS™ steals Drone-Starter™ souls is by enforcing conformity, so if you have a bright mind and can solve problems easily in your head, well you best kiss that goodbye unless you want the Enforcers™ to send you to MHF™ or McPrison that is, with an ending of painful death :)

Joseph Davis
Joseph Davis

Then learn something from it, learning is one of the funnest things you can do
Well, I do, but that kind of book is just shit so I don't read them. Learning from something well written, meant to actually be readable, is a lot more efficient. Many academic books tend to make learning as boring as possible. They are written by scum that just wants to feel more important, and to justify the current system and the current ideas about education. If they make learning on your own as boring as possible, then they can reinforce the idea that you have to go to school to learn anything, and that teachers are necessary.

Everyone hates school because it sucks, school is associated with learning, therefore people tend to learn to hate learning, over time, by association. Because of that, as soon as they graduate, people completely stop learning (and thinking). That's the logic, at least. In my case, I just despise teachers about as much as I despise the media. They are society's deceivers and propagandists, so they are actually the same thing. Schools also make learning seem to be pretty pointless, and disconnected from reality. Not a whole lot of real knowledge there.

An example would be that kids learn history almost 10 times in school, but they don't actually know jack shit about the past, like how people lived, how people did things back in the day, why things were the way they were, or even the fact that bullshit has always existed, so history can't fully be trusted, and sometimes there are multiple accounts coming from different groups that were in conflict at the time, and they tell completely different stories. There is no living knowledge there, only dead knowledge. And did you ever learn anything practical in school? Because I sure didn't. Everyone supposedly has an education, but no one knows how anything works, or knows how to do anything because they are just expected to hire someone else to do basic shit that they should be able to do themselves. It's ridiculous. College is particularly shitty. Go to trade school, it's much better.

Ian Nguyen
Ian Nguyen

Are there any calculus books that can teach you more than a math graduate student? No? Then why do you expect there to be such a text for computer science? Do you think it is a small subject that has little you can learn from? If you want to learn computer science, you will need to follow a curriculum from the basics to more advanced topics, depending on what you want to do with computer science. The basics are all the same, but whether you want to be excellent at writing code in a specific language or you want to figure out how to do general machine learning, these are different specialties.
A computer science major will touch on basic language topics, electrical engineering and logical circuits, compilers, operating systems, data structures, security, networking, and any number of additional topics while pursuing their bachelor's degree; graduates will continue exploring those topics.

You seem to be interested in learning Python, but for what purpose? Scientific Python is a handy skill but if you don't really learn computer science you're just going to end up like most math/physics/mechanical engineering majors I know: plugging code you copied from elsewhere into Jupyter Notebook and running it bit-by-bit until you get a result you like. Aimlessly seeking a workflow that works. Not understanding how to automate your entire workflow via piping between scripts. You need to learn how composition of digital functions works and how you can perform them.

is right. Just do SICP (or the Python version from Berkeley if you just want to learn Python) but you should probably spend time learning how to use numpy, matplotlib, and other Python libraries effectively if you just want to be a better Python programmer. But it's worth doing some functional programming to wrap your head around how to think.

Jonathan Miller
Jonathan Miller

It's written by jews.

Oliver Jones
Oliver Jones

Either burnout or slow pace.

For me it was the glacial pace of my peers. I just said fuck it, skipped school, and hung around my cousin and friends.

also this

Hudson Garcia
Hudson Garcia

There is lectures for PAPL
functionalcs.github.io/curriculum/#sec-2-2

It's probably the greatest introductory CS course since the 1980s when they invented 6.001.

Mason Reyes
Mason Reyes

have none of you guys heard of techyourselfcs.com?
if you don't like SICP read How to Design Programs or Concepts, Techniques, and Models of Computer Programming.
CS is more than just programming.

Nathan Morales
Nathan Morales

SICP doesn't cover everything, but at least you will learn some computer science. UNIX weenie courses, the kind that make people hate computers, don't even teach computer science. They teach how to run UNIX and compile C programs. Instead of calling it a UNIX class, they give it a name like "Operating System Engineering" (aka UNIX kludges) and "Great Ideas in Computer Architecture" (aka RISC and UNIX brain damage).

inst.eecs.berkeley.edu/~cs61c/sp19/
Great Ideas in Computer Architecture (Machine Structures)
C Intro, Pointers
C Arrays, Strings, Pointers
C Memory Management, Usage
Intro to Assembly Language, RISC-V Intro
Learning a new OS used to be something people would do when they get a new computer, but because of all the brain damage in UNIX, it takes many times longer to learn (years instead of weeks) even though it has less functionality and fewer features (unless you count bugs and remote exploits as features).

A real computer science class about operating systems would teach many different ones, and probably only one UNIX-like OS as a bad example. And you would know how much UNIX sucks just by comparing it to the other operating systems you learned. They don't even have to "teach" it because it's obvious. You could fail the class and still learn that UNIX sucks, just by having to use it after using something better.

pdos.csail.mit.edu/6.828/2018/xv6.html
For many years, MIT had no operating systems course. In the fall of 2002, one was created to teach operating systems engineering. In the course lectures, the class worked through Sixth Edition Unix (aka V6) using John Lions's famous commentary. In the lab assignments, students wrote most of an exokernel operating system, eventually named Jos, for the Intel x86. Exposing students to multiple systems–V6 and Jos–helped develop a sense of the spectrum of operating system designs.
MIT was able to create CTSS, Multics, ITS, and Lisp machines with no "operating systems" course. Apparently nobody at MIT learned anything about "operating systems" until 2 years after the last Multics installation closed down.

en.wikipedia.org/wiki/Compatible_Time-Sharing_System
The Compatible Time-Sharing System (CTSS), was one of the first time-sharing operating systems; it was developed at the MIT Computation Center. CTSS was first demonstrated on MIT's IBM 709 in November 1961; service to MIT users began in the summer of 1963 and was operated until 1973[1].
How could that be? Someone tell Wikipedia that this must be wrong because MIT didn't teach operating systems until 2002. C didn't even exist in 1961. This is what "CS grads" actually believe, and it sucks. Their knowledge of computing history is limited to C and UNIX, which makes them think everyone in the 70s was stupid and didn't know anything, when actually most "modern" inventions are just reinventions of 60s and 70s technology bolted on to C and UNIX.

pdos.csail.mit.edu/~rsc/plan9.html
This is not Plan 9 hacking per se, but it would be interesting to fix dot-dot in Unix. There might even be enough issues involved to make it a good senior or master's thesis. I don't use Unixes enough to do it myself, but if someone were interested I'd be glad to talk through problems and lend help.
I'm sure these students want to waste their time on fixing a phone company's brain damaged bullshit that was known to be bad in the 70s instead of doing something interesting and productive. By the way, this page was last modified in 2003. Was that problem fixed in the last 16 years? Of course not, it's UNIX!

>>The most productive programmers I have known here have
>>only recently been introduced to UNIX (most think it's
>>horrible).
>
> This anecdotal evidence proves nothing. Anyone who
> changes environments will notice only the features missing
> from their old environment, since the new and potentially
> useful features aren't yet a part of their work patterns.
> Thus, initial reactions to an environment change will
> almost always be negative. No surprise here.

Exactly. Which is why the part of my article that you _cut_
is relevant here. The people I'm talking have used _many_
different systems and have switched many times. They _know_
what's involved in moving to a new system. They _have_
learned a lot about the UNIX environment (in spite of only
recent exposure - for most systems, "recent" would be
defined as "the last few weeks", on UNIX the definition is
more like "the last year or so"; because UNIX is _MUCH_
harder to come to speed on). The conclusion is that UNIX
does _not_ have sufficient capability to offset those
features it lacks.

Ethan Thomas
Ethan Thomas

based