Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

251–260 of 347 posts

Re: The Missing Semester of Your CS Education (2020)

#251

My university had Dijkstra's quote "Computer science is no more about computers than astronomy is about telescopes". They made us aware of tools and we were free to use them as little or as much as possible to do the science. I always assumed that software engineering degrees focused on tools more than computer science degrees (among other differences).

The following isn't aimed at you in particular, but in HN threads about the Missing Semester there will always be someone who earnestly repeats this stinking turd of a Dijkstra quote, so I'll put my rant here:

Dijkstra was full of it. He wanted CS to be just a branch of abstract mathematics but that's never been the case. That's a retconning of history by people with math envy. Before Alan Turing had ever heard of the Entscheidungsproblem, he had already built simple mechanical computers with his bare hands.

It's cousin to a stupid mindset you see in software engineering, that you can somehow be a good engineer while not knowing what your hardware is actually doing. That's how you get complicated architecture-astronaut systems with good theoretical big-O characteristics, that get crushed by a simple for loop written by the guy who ran a profiler and knows what a cache line is. We live in a world made of atoms, not lemmas.

Research fields go rotten when they don't come into contact with reality enough: quantum computing, string theory, etc.

And as for astronomy: knowing how telescopes are constructed, how they work, their optical characteristics, limitations, failure modes, all of that is essential to observational astronomy. And if you study astronomy, you sure as fuck are taught how to use a telescope!!!

Astronomy as we know it didn't exist until we had good telescopes. Cosmological theories have risen and fallen on the advances in optical theory and engineering. Astronomy is very much about telescopes.

What other field is so ashamed of its own tools? Like, art isn't about pencils, but art students are taught how to hold a pencil! Stop repeating this thought-terminating cliche.

Re: The Missing Semester of Your CS Education (2020)

#252
post #203

Earlier quoted context omitted.

LaTeX? Is this a dual math-cs program?

I find this comment a bit odd. I teach CS and our students are required to use LaTeX for everything they hand in (internship report, project work, BA thesis). We also publish everything using LaTeX if possible. There's some conferences which use Word templates (shudder) but mostly it's LaTeX. Citations and bibliography management are easy, it's super easy to switch from IEEE to Harvard or whatever and as soon as you…

Interesting, we never used LaTeX at all in our CS program. We also didn't have very many papers to write in our CS program anyway, most were coding or proofs which we could use regular Google Docs with their math support, or do it by hand.

Re: The Missing Semester of Your CS Education (2020)

#253

Earlier quoted context omitted.

I had a guitar tutor once and I asked him if I honestly had a chance to get into the Royal College of Music. He said absolutely, no problem, as long as you practice for at least two hours per day. Every day. For the next ten years... High-level CS is the same and I don't see any reason why it should be different. There is just no, or very little, time to teach introductory programming classes at most universities.

Am I unique in not romanticizing computer science? I see it more as a trade. There can certainly be some beauty to it. I’m sure coal miners hold some of their own in special regard too.

Software development is a trade, if all you aspire to be is a WordPress or frontend developer then you don't need a fancy degree, you can just as easily go to a 6 to 8 week code camp for that.

Computer science is a pathway for those that want to delve deeper, and that necessitates rigorous fundamentals in applied mathematics and information theory.

Re: The Missing Semester of Your CS Education (2020)

#254

I have tried in vain to get this implemented at our uni. I can say a few things I find interesting: - Students used to get this stuff but no longer do, for example all workstations used to be unix, so when you left, you "knew" "unix" (shell, vim, etc) - Due to things like ABET, classes are crammed with need-to-know-for-accreditation info so, well, some items need to go by the wayside (many are in the MIT list) - Ther…

We had this class, Unix, in freshman year (VT). This isn't normal?

Re: The Missing Semester of Your CS Education (2020)

#255
post #203

Earlier quoted context omitted.

I find this comment a bit odd. I teach CS and our students are required to use LaTeX for everything they hand in (internship report, project work, BA thesis). We also publish everything using LaTeX if possible. There's some conferences which use Word templates (shudder) but mostly it's LaTeX. Citations and bibliography management are easy, it's super easy to switch from IEEE to Harvard or whatever and as soon as you…

Ah, that makes sense. The reason is that I was a math major and now doing programming, have lamented my LaTeX being utterly useless; the only thing I use it for is (perhaps somewhat ironically) my resume document, and I've forgotten so much that I don't even list it on my resume (if I even thought it was relevant). But I had not considered that during the degree program itself, you will lose LaTeX quite frequently, w…

> have lamented my LaTeX being utterly useless

ConTeXt integrates Lua. KeenWrite[0] is my text editor that converts Markdown to XHTML then pipes that XML document into ConTeXt for typesetting[1]. ConTeXt does an amazing job of keeping presentation logic separated from the content. Meaning, once you've created a theme template, it's easy to pick it back up to create new ones.

There's a video series showing how to use KeenWrite.[2]

[0]: https://github.com/DaveJarvis/keenwrite

[1]: https://www.youtube.com/watch?v=qNbGSiRzx-0

[2]: https://www.youtube.com/playlist?list=PLB-WIt1cZYLm1MMx2FBG9...

Re: The Missing Semester of Your CS Education (2020)

#256

Earlier quoted context omitted.

Is the average .net developer terrified of F# because they're not talented enough, or because it's different?

It's 100% the latter. I get "ok we don't want to mix codebases" and that's fine, but if you can code in C# you can probably get up and running in F# in a week, maybe a month if you struggle with some of the concepts. One major issue I do see coming from the C# side is "well how do I do this then?!", which often the answer is "you don't, because you don't need to" or "well what if it's more performant to do it mutably…

I normally write C++, but I've also written in Rust, Python, Ruby and bunch of other languages. I've never had trouble with a programming language until Haskell, and had to accept that I'm just probably just not smart enough to do it.

However, I wrote my first thing a port of a small C# tool of a couple hundred lines, to F# in about an hour. It's been about a week now, and things are considerably smoothing out.

To be considered niche, the F# tooling has been great. Also, having the .NET libraries available adds a lot of built-in capability.

Re: The Missing Semester of Your CS Education (2020)

#257
post #101

Earlier quoted context omitted.

It's an interesting phenomenon because F# is far easier to learn than C#.

Perhaps if you already know C#, otherwise I doubt it. Of course it depends on ones prior experience, but F# is functional but still requires you to understand OO in order to interact with the framework.

Knowing a good bit of Rust helped me considerably, due to the commonalities of being expression-based, pattern matching and sum-types. F# almost feels like a more functional and GC'd Rust.

Re: The Missing Semester of Your CS Education (2020)

#258

My university had Dijkstra's quote "Computer science is no more about computers than astronomy is about telescopes". They made us aware of tools and we were free to use them as little or as much as possible to do the science. I always assumed that software engineering degrees focused on tools more than computer science degrees (among other differences).

Completely agree. Things like shell scripting, debugging tools, IDE usage can all be naturally picked up on the job given whatever tools that they recommend you use at their company.

You know what you're not going to be able to pick up at your first software engineering position? Discrete mathematics or linear algebra.

Re: The Missing Semester of Your CS Education (2020)

#260
post #69

I would add jq to the data wrangling section https://stedolan.github.io/jq/ Being moderately competant at jq on a team that doesn't know jq is a super power.

Incidentally I found that chat GPT is excellent for asking for complex csv/json transformation queries and having it spit out the correct script.
Post reply on HN