News for hackers. Stuff that matters.
Re:The Open Source Computer Science Degree by neofrommatrix on Friday August 16, 2024 @09:38AM (#41266321)
Question: is a CS degree complete without compilers? Or Networking and Distributed Systems?
Re:The Open Source Computer Science Degree by BadHumans on Friday August 16, 2024 @10:00AM (#41266504)
I have spent more time than I am willing to admit going through various CS degree syllabi and very few degrees require compilers or distributed systems. Those are usually master's degree courses. Some universities will make distributed systems an elective where you can do distributed systems, databases or something else in that area.
Re:The Open Source Computer Science Degree by throwaway2016a on Friday August 16, 2024 @10:48AM (#41266912)
My undergrad had those things and they are the courses that have been most helpful to me in the real world. But I generally agree, it is rare to see them outside of master's degrees but doesn't mean they shouldn't be in there.
Re:The Open Source Computer Science Degree by jcranmer on Friday August 16, 2024 @10:31AM (#41266787)
Absolutely!

To me, the necessary elements of a CS degree are the following:

* Discrete math in a fashion (as much a refresher in symbolic manipulation from high school algebra as anything else)

* Introduction to programming

* Introduction to computer architecture (basically nand2tetris in terms of scope)

* Data structures and algorithms

* Software design [this is usually flavored as intro to OOP, but that it be OOP isn't necessary]

After that, it's really down to a depth + breadth requirement: concentrate a certain amount of learning in a narrowish track, and also take some basic courses from other tracks. But I don't think there's any other particular course that I'd consider a graduate deficient if they didn't take that course.

Re:The Open Source Computer Science Degree by shagie on Friday August 16, 2024 @12:36PM (#41267916)
Building a complier is one of those things that rolls up a number of other parts of computer science.

You need to have familiarity with both a high level and a low level language.

Creating a lexer to match tokens uses finite state automata / regular languages.

Creating a parser to match a syntax uses push down automata.

There are some complex topics built on top of simple data structures. For example, symbol table lookups with scope.

Each one of those is a semester long class by itself (well, the DFA and PDA were both in the theory of computation class for me).

My complier class tied together many of the previous classes that I had and gave me a practical understanding of it. With that, I was then able to properly understand the tools of lex and yacc, the effort they saved me and the type of errors that I would encounter.

Re:The Open Source Computer Science Degree by pxc on Friday August 16, 2024 @09:58AM (#41266478)
Sure! Compilers was one of my favorite classes, but it was also one elective among many. There's other stuff I took here that was ommitted: courses on tbe completeness of first-order logic, Gödel's incompleteness theorem, natural language processing, graph theory, abstract algebra, numerical analysis... there's also a lot of applied/engineering math stuff in there (the latter two semesters of calculus, stats) which I took because I wanted to but was not at all required by my CS degree. Not all CS degrees look alike.
Re:The Open Source Computer Science Degree by Jtsummers on Friday August 16, 2024 @10:00AM (#41266502)
It is also mostly introductory courses. It’s equivalent to maybe 2-3 years worth of a CS degree program if you also don’t take any advanced courses or have a specialization.

Nand2tetris, for instance, is a course I like and recommend to the curious. But it is at best equivalent to a survey course in computer engineering. It’s a motivator to go deeper, but not where a college student should stop. If it were given for credit at a university it would be intended for first year students.

Re:The Open Source Computer Science Degree by shakna on Friday August 16, 2024 @10:49AM (#41266924)
My Bachelor in Computer Science didn't include either. I went off and studied those on my own. So... Certainly.
Re:The Open Source Computer Science Degree by eddd-ddde on Friday August 16, 2024 @11:17AM (#41267156)
Definitely, my understanding of writing code couldn't be called good until I understood how compilers read it.
Re:The Open Source Computer Science Degree by mamonster on Friday August 16, 2024 @12:03PM (#41267581)
Do you think people need to have compiler knowledge beyond the dragon book (for like a BS/MS equivalent level of knowledge)?

I remember that it took me quite some time to go through it coming from a math background, but it definitely improved my understanding of how stuff worked, and I haven't really done more learning since then.

Re:The Open Source Computer Science Degree by eddd-ddde on Saturday August 17, 2024 @06:12PM (#41278418)
I guess it depends, my compiler knowledge is not that deep, but my assembly knowledge is large enough that they kinda complete each other.

Once you understand how memory actually works, how processors execute conditionals, etc it helps massively understand what your high level language might be doing in the background.

Re:The Open Source Computer Science Degree by DonHopkins on Friday August 16, 2024 @11:18AM (#41267160)
"This is a curated list of free courses from reputable universities like MIT, Stanford, and Princeton that satisfy the same requirements as an undergraduate Computer Science degree, minus general education."

Is a CS degree complete without the general education?

Re:The Open Source Computer Science Degree by randomdata on Friday August 16, 2024 @11:35AM (#41267284)
A degree isn't compete until granted tenure.
Re:The Open Source Computer Science Degree by 3836293648 on Saturday August 17, 2024 @05:38AM (#41273092)
Yes. The general education thing is a weird American thing noone else does
Re:The Open Source Computer Science Degree by kyawzazaw on Friday August 16, 2024 @12:37PM (#41267928)
a lot of schools don't offer this or require this. many people graduate without either