H
HN HRCB top | articles | domains | dashboard | models | factions | about | exp
home / missing.csail.mit.edu / item 34934216
+0.45 The Missing Semester of Your CS Education (2020) (missing.csail.mit.edu)
1024 points by saikatsg 1097 days ago | 336 comments on HN | Moderate positive Landing Page · v3.7 ·
Summary Education Access & Digital Equity Champions
The Missing Semester is a free, MIT-led CS course that champions universal access to professional development education through open distribution, multilingual translations, and community platforms. Content strongly aligns with UDHR provisions on education (Article 26), free expression (Article 19), and fair opportunity (Articles 1-2), with intentional efforts to remove economic and linguistic barriers to learning. A minor privacy concern from embedded analytics without visible consent detracts slightly from structural alignment.
Article Heatmap
Preamble: +0.47 — Preamble P Article 1: +0.37 — Freedom, Equality, Brotherhood 1 Article 2: +0.50 — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: -0.15 — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: ND — Property Article 17: No Data — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.67 — Freedom of Expression 19 Article 20: +0.27 — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: +0.40 — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: ND — Standard of Living Article 25: No Data — Standard of Living 25 Article 26: +0.80 — Education 26 Article 27: +0.60 — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: +0.30 — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Weighted Mean +0.45 Unweighted Mean +0.42
Max +0.80 Article 26 Min -0.15 Article 12
Signal 10 No Data 21
Confidence 22% Volatility 0.25 (Medium)
Negative 1 Channels E: 0.3 S: 0.7
SETL -0.10 Structural-dominant
FW Ratio 57% 25 facts · 19 inferences
Evidence: High: 2 Medium: 8 Low: 0 No Data: 21
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.45 (3 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: -0.15 (1 articles) Personal: 0.00 (0 articles) Expression: 0.47 (2 articles) Economic & Social: 0.40 (1 articles) Cultural: 0.70 (2 articles) Order & Duties: 0.30 (1 articles)
HN Discussion 20 top-level · 30 replies
dfee 2023-02-25 06:09 UTC link
The content taught here is the highest payout thing you can learn, in my opinion. Certainly more important than actually writing code or learning algos.

What this content covers should unlock iteration speed, which is the single greatest lever in learning and growing faster (on a computer). Thus it gives you more cycles to go back to improving your code, experimenting with algos, etc. Probably also highly correlated with upwards mobility in the software job market.

Great seeing this under a common umbrella I can hand to students and new grads.

mydriasis 2023-02-25 06:11 UTC link
I love vim, it's great to know how to navigate it, but I have met very few people who use it professionally. I'd love to hear others' experiences, there.
oconnor663 2023-02-25 06:29 UTC link
As far as cryptography is concerned, I think one of the best options these days is to teach the libsodium API. It's very rationally structured and well documented, and also available on every platform and in every language. Most importantly of all, there's nothing in there that you shouldn't use, which is one of the biggest problems with real world cryptography.
hardwaregeek 2023-02-25 06:32 UTC link
It's amazing how many CS programs fail to teach you even the basic tools of being a software developer. Yes, yes, CS is not programming, but there is a non-trivial amount of CS that is indeed programming, and that is generally what people do with their CS degrees, so it'd make sense for a CS program to teach the basics. Maybe even more than the basics.
mauro3 2023-02-25 07:27 UTC link
We're teaching a course at ETH Zurich [1] where --besides the actual payload of solving partial differential equations (PDEs) on GPUs-- we put a lot of emphasis on "tools". Thus students learn how to use git and submit their homework via pushing to a repo of theirs on github, we teach testing and continuous integration, writing documentation, running code on a cluster, etc. In their final project, again submitted as a GitHub repo, they need to make use of all of theses skills (and of course solve some PDEs).

Note that excellent work in this space is done by the Software Carpentry project which exists since 1998 [2].

[1] https://pde-on-gpu.vaw.ethz.ch/ [2] https://software-carpentry.org/

theonething 2023-02-25 07:47 UTC link
Lots of laudatory comments here about this being essential but missing teaching but I have a different take. The content looks good, nothing wrong with teaching these things. But these things can be and are learned on the job fairly quickly for anyone interested enough in the field and with enough aptitude. In fact, I would say these things can be learned on your own time as a side effect of being interested in computers.

So I would say it's good content, but not essential for a CS program.

ukoki 2023-02-25 08:32 UTC link
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.

riedel 2023-02-25 08:41 UTC link
Always think we should do this at uni and even for our PhDs. Some students are actually much better in control of those tools than their advisors, but it is still a minority. Always lacking the time to teach this. German system lacks incentives for actual sensible courses IMHO (applied universities might be a bit different)

BTW: Pops up every year seemingly. E.g. 3yrs ago with more than 1000 comments:

https://news.ycombinator.com/item?id=22226380

zamnos 2023-02-25 11:17 UTC link
What's has only a single, passing mention in the article, and none here, is how this fits in to MIT's curriculum. The content is supremely useful, but does not properly fit into a traditional college semester 10-week course schedule. MIT has this weird 'half semester' in which to fit this, and similar shaped content, for all disciplines. It is largely student run, as we see here.

> Independent Activities Period (IAP) is a four-week period in January during which faculty and students are freed from the rigors of regularly scheduled classes for flexible teaching and learning and for independent study and research. IAP is part of the academic program of the Institute—the "1" month in MIT's "4-1-4" academic calendar. Students are encouraged to explore the educational resources of the Institute by taking specially designed subjects, arranging individual projects with faculty members, or organizing and participating in IAP activities. They may also pursue interests independently either on or off campus.

http://catalog.mit.edu/mit/undergraduate-education/academic-...

btheshoe 2023-02-25 11:27 UTC link
I personally don't like the undertone of the class (tho very grateful that this material exists!!!) - this idea that universities are failing their students by not teaching them necessary material. I think a better phrasing is that students are failing themselves by not learning the material. I've personally never considered it the responsibility of my university to educate me - some of the classes are certainly useful for learning, but the ultimate onus falls on me to gain the skills that will lead me to success. I find it kind of distasteful how classes encourage a sort of passive victim mentality when it comes to learning - as if students need to be bribed with credits and cudgeled with a gpa to be forced to learn genuinely useful things.
lizknope 2023-02-25 14:23 UTC link
I started college in 1993 and my school had a mandatory "Introduction to Unix Computing Environment" class for all incoming engineering freshmen.

We learned the basics of the shell, file system, file editing, AFS ACL's for group projects, and more. It looks very similar to this MIT course which makes sense as our school's computing environment was based on MIT's Project Athena and AFS (Andrew File System)

https://en.wikipedia.org/wiki/Project_Athena

I looked and the same course is still mandatory for incoming engineering students.

I'm in the semiconductor industry and everything runs on Unix / Linux. Back in 2000 we would get new grads that knew very little about Unix, command lines, or scripting. That kind of stuff is half my job. These days Linux is so popular that most of the new grads know this stuff.

dreamcompiler 2023-02-25 15:48 UTC link
Kind of ironic that this course is from MIT and it teaches Vim without even mentioning Emacs.

I get that they chose Vim because it's more popular, but it feels as weird as taking a course from Apple that teaches you how to use Windows.

readingnews 2023-02-25 15:51 UTC link
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)
  - There is a huge push, even by ABET, for security and crypto to be somehow integrated into nearly every class. 
  - Professors seem aware that we need this "missing class", but it is hard for administrators to implement, because: Universities were pressured into lowering credits to grad, so some courses were removed, so there is no room left for another course. 
I am not pushing one way or another, and I only have the vision of working at two universities, but I think unis need to take a real hard look at their courses from a holistic point of view. I recall stumbling across that MIT course at least 5 years ago. I do not know many others who implemented something like that.
anarticle 2023-02-25 16:01 UTC link
Excellent guide! Lol at title though, I just realized how spoiled I was with my CS degree from Drexel.

We had a UNIX tools and an Advanced Programming Techniques course. Both gold. Taught from the sausage dog book and the Unix Programming Environment book iirc. Totally standard texts I thought?

Link to sausage dog (ha!): https://en.wikipedia.org/wiki/The_Practice_of_Programming

Advanced Unix: https://en.wikipedia.org/wiki/Advanced_Programming_in_the_Un...

Some of it is old hat, but TPOP ages particularly well due to its lack of language specificity. Something we could all do with :).

WoodenChair 2023-02-25 17:12 UTC link
Instead of smashing tools into a single class, they should be incorporated early and throughout the curriculum so they can aid students as they progress.

For example we have a sophomore fall class called Linux/Unix Programming that covers about half of these topics and a sophomore spring class called Open Source Software Development that covers the rest (and philosophy, history, etc.). We have an advantage for this sort of work, though, in that we’re not a prestigious research university, but instead a small teaching college that calls ourselves “professionally focused.” Meaning while we have a CS degree, we acknowledge that 90% of our graduates will become software developers. That approach means that while theory is still important, tools for software development are very intentionally incorporated as part of the core of what we teach. Think of it as a blend of CS and software engineering (which is also one of our concentrations for a deeper dive).

2OEH8eoCRo0 2023-02-25 19:04 UTC link
I'm torn on this. As somebody who is too stupid to goto MIT, I chuckle thinking of spoon-feeding how to use Git or a terminal to MIT students. It's useful information but not everything useful needs a sit-down, by-the-numbers, "this is how you branch" discussion. I also wonder if it does more harm than good teaching these topics so matter-of-factly since it's only the current programming zeitgeist anyway. It only further entrenches the "way things are". Like depriving children of that impactful exploratory phase and sticking them into a rigid box. In any case- won't these topics propagate natually from good professors using them themselves? What do I know, I'm too stupid to attend MIT.
MacroChip 2023-02-25 19:05 UTC link
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).
mindcrime 2023-02-25 19:34 UTC link
A thought occurred to me when I read this bit. Two thoughts, actually. But they're related.

We’ve also shared this class beyond MIT in the hopes that others may benefit from these resources.

Thought one: they should make this an official OCW thing

Thought two: OCW class resources should be a two way street, like open source development, not just a "throw it over the wall" model.

Not that I'm criticizing MIT for making any content freely available, mind you. Any free, high quality, educational content makes the world an overall better place IMO. No, it's just that I saw this bit:

Editors (Vim)

and couldn't help but think "Great, but what about Emacs?" Which got me thinking something like "Well, why couldn't I, or somebody else (preferably somebody actually qualified) create a corresponding 'Editors (Emacs)' section and contribute it back?"

I dunno, maybe it's a nutty idea. And certainly for the stuff that is released by OCW under corresponding open licenses, I suppose one could "fork" the class somewhere else and run it on a model where outside contributions are accepted. Anyway, this just got me thinking about this concept.

EDIT: never mind, I actually just noticed that this particular course actually is on Github[1], and they do accept pull requests! Very cool.

Would still be cool to see that approach become even more widespread for OCW courses (both from MIT and elsewhere).

[1]: https://github.com/missing-semester/missing-semester/pulls

adarshaj 2023-02-28 01:05 UTC link
The content similar to this is being taught at Indian Institute of Technology Kanpur for well over a decade. It runs as 3 different courses seperated in different semesters depending on complexity and prerequisites:

* CS251 - Computing Laboratory - 1 - https://www.cse.iitk.ac.in/pages/CS251.html

* CS252 - Computing Laboratory - 2 - https://www.cse.iitk.ac.in/pages/CS252.html , and

* CS253 - Software Development And Operations - https://www.cse.iitk.ac.in/pages/CS253.html

amai 2023-03-06 21:31 UTC link
I think they should add a lecture on test driven development and CI/CD pipelines (e.g. Github actions). And I think after such a course people should be capable of using Github, but for that it also lacks a discussion of issues (or ticket systems in general) and pull requests.

Instead of a whole lecture on Vim they should rather teach a modern editor like VS Code or how to use a real IDE like IntelliJ. With these modern editors you also get refactoring and a Gui for Git, which makes it much less painful to use.

So all in all its a good start, but already outdated on several topics.

danmur 2023-02-25 06:14 UTC link
Lots of people at my work use it, but I don't know if I'd consider it essential. If you can use any editor/IDE very fluently that's good; probably doesn't hurt to learn with vim if you don't already have that.
ar_lan 2023-02-25 06:33 UTC link
I use (Neo)vim as my daily driver, professionally (for the past 4 years, coming from Goland). I've found every other editor to be too heavy/slow (VScode/Jetbrains), or too noisy (regarding features).

Neovim allows me to specify the precise minimum I desire to have a fully functional IDE-like experience (basically treesitter + LSP + DAP + minimal extra plugins).

It's super fast, I'm already in my shell, and my memory usage gets to stay super low :)

whateveracct 2023-02-25 06:46 UTC link
I went to Purdue over a decade ago and we had a 1 credit hour lab that taught this stuff. Unix command line, git, bash, and finally some python.

Like you said, it's been a complete game changer. I feel these skills continue to differentiate me from my peers in terms of how I can attack arbitrary problems bravely to this day.

never_inline 2023-02-25 07:00 UTC link
In India we usually call it "Computer Science & Engineering".

But name is the only thing we get right in CS education.

jojo14 2023-02-25 07:02 UTC link
I use Vim infrequently. I know it and if it was the only option I'd be efficient with it. I've even started with Vi as the only option. However I prefer Emacs because I feel way more efficient and comfortable with it. As a bonus main key bindings are consistent with Bash and others GNU tools. The course should introduce Emacs as well so that students can choose on their own. Whatever your preferred editor is IMHO it is up to an IDE to integrate with it.
xavdid 2023-02-25 07:04 UTC link
CS programs prepare you first and foremost for a PhD in CS. They're great for learning the theory and fundamentals, but teach practical Software Engineering skills as a side effect.
6LLvveMx2koXfwn 2023-02-25 07:12 UTC link
I sat with a talented developer whilst we wrestled with a threading issue this past week. I wanted to inspect the value of a variable within a method during execution and asked him to set a breakpoint. He didn't know how to do that in the IDE, which he'd been using for over a year. Debugging is indeed a skill which needs learning.
vyskocilm 2023-02-25 07:15 UTC link
I use neovim with Ale plugin for LSP and linters. Somehow it maps into my brain better than anything else. Its fast, on cli, feature rich, usable without a mouse...

The only thing where vim/neovim really sucks against other tools is the project specific configuration.

vincent-manis 2023-02-25 07:29 UTC link
I was on the CS faculty at a Canadian university in the 1980s. I proposed a course with almost exactly this outline, only to be told it wasn't university-level material. MIT seems not to have got this message; good on them!
vincent-manis 2023-02-25 07:48 UTC link
I'm not fond of Vim, have been an Emacs user for going on 40 years, starting with Gosmacs. That said, I'd rather that students learn one editor really well, rather than the smattering of editor/IDE usage most of them seem to acquire. So, fine, teach them enough Vim that they can use it well, afterwards, they can use whatever editor they choose.
Shacklz 2023-02-25 07:48 UTC link
As an alumni, thanks a lot for doing this. Looking back, all the things that I've learned in just the first few weeks in the industry made writing code so much more productive - if only someone had shown some of it already during some early semester, even just during some assistant teaching hour, it would have saved so many hours.

I remember specifically when one of the exercises for some compiler lecture contained unit tests the code had to satisfy, and I was like, wow, why didn't I already knew about this during algorithm classes earlier where I was fumbling around with some diff-tools to check my output. Let alone proper version control, now that would have been a blessing.

In hindsight, it's a bit embarrassing that I didn't bother to, well, just google for it, but neither did my colleagues - I guess we were so busy with exercises and preparing for exams that we just didn't have the time to think further than that.

fierro 2023-02-25 08:04 UTC link
I don't think you're wrong that you can learn this stuff on the job, but a "primer" kind of class like this which surveys several useful tools helps new engineers develop pattern matching skills around how to continue self-teaching these kinds of things. Shell/scripty/vim-ey,linux-ey stuff can be really challenging to learn how to learn for some people.
aerhardt 2023-02-25 08:06 UTC link
Whether you think that:

a) Universities are places of higher learning that do not need to cater to industry

b) There is an implicit social contract whereby universities should produce industry-ready graduates

c) Something in-between

… the skills taught in this course are as useful for the PhD candidate as for the junior software engineer.

Why leave these out or up to the student, then?

Furthermore, in many other academic disciplines, it’s very common to teach applied technique (eg, on writing essays or structuring research), is this any different?

noisenotsignal 2023-02-25 08:24 UTC link
I think it’s dependent on the person learning the material. My college had a similar course and it was also highly regarded as useful by students. However, while I found the course fun I already knew most of the basics from my research job, and the advanced stuff hasn’t really come up again even in work (e.g. fancy git or gdb commands), so I’ve entirely forgotten it; my biggest takeaway is probably ctrl r for searching in shell. But I can see why a guided intro would be really helpful to someone who had no experience or some trouble getting started learning this kind of material (which is very different from programming or computer science).

There’s probably an aptitude threshold past which the course’s value diminishes - don’t mean any disrespect to anyone, just trying to expand on your point. The top students either have already figured it out or will do so easily, so they might be better off doing something else with the time they would’ve invested in this. But for a lot of students learning about these tools and concepts can be a real force multiplier, more so than a random upper level course.

Epa095 2023-02-25 08:27 UTC link
I think it can be useful to distinguish between the "known and unknown unknowns" here. For example, everyone will quickly realise that that they need to know git, and they will learn what they need to know (a known unknown). A university course would maybe save them time, but it would not really change what you know after 2 years in industry. Compared to e.g awk or shell scripting which can be incredible usefull, but maybe not something people realise by themselves that they need (a unknown unknown). A university should make people at least aware of these latter tools.
noisenotsignal 2023-02-25 08:55 UTC link
Any reason why you would use jq over Python? Certainly this can be attributed to my lack of knowledge in jq, but anything beyond a simple query is going to be done with Python for me. Beyond not having to look up query syntax, doing it in Python (or any script) is easier to read (both during and after writing it) due to auto formatting in an editor.
pjmlp 2023-02-25 09:24 UTC link
I think this is mostly a US thing, or countries based on similar education systems.

In Portugal our computing degrees are Informatics Engineering to use a literal translation, a mix of CS stuff and Engineering. And validated by the Engineering Order as fulfilling certain requirements, for anyone that at end of the degree also wants to do the admission exam for the professional title.

Those that only care about the theory part of CS take a mathematics degree with major in computing.

lordnacho 2023-02-25 11:04 UTC link
I have this feeling that the kids who appear better at uni are the ones who happened to pick up certain not-quite-programming skills before they started. Basics of networking, how installation of programs happens, how to use the command line, that kind of thing.

I looked over her shoulder as my wife was doing a CS degree, and I realised there's a bunch of these little things that make life a lot easier if you know them.

bmitc 2023-02-25 11:32 UTC link
You don't consider paying tens of thousands of dollars as creating responsibility to educate?

Of course, students need to be active in the learning process. But in my experience, it is more likely that professors and departments are terrible at educating than it is for students to not be motivated to learn.

pcthrowaway 2023-02-25 11:39 UTC link
I'm surprised anyone would object to this. Universities have a responsibility to prepare their students.

When I saw the title I figured it was another "computer science" class. But the curriculum was a significant portion of what I lacked when I graduated, which prevented me from finding work for a year.

Had someone at university told me before I graduated that I'd have no chance of finding work if I didn't know Git, Linux, REST, how to use the command-line, how to use an IDE, how to use an editor on the command line, and bash, I would have prepared myself for those things.

agumonkey 2023-02-25 12:43 UTC link
Not sure if that fits, but it reminds me of Gary Bernhardts "Unix Chainsaw" talk

https://www.youtube.com/watch?v=ZQnyApKysg4

It's all about leveraging "simple" cli tools and combine their powers to cut through work very swiftly. The opposite of many days for many people.

tkiolp4 2023-02-25 13:42 UTC link
Indeed. While I think learning algorithms and ds is a non-negotiable thing, in 90% of the companies out there in 90% of the situations one will never have to write a binary search from scratch or implement a queue from scratch. On the other hand, profiling, debugging, glueing things together via bash, etc., that’s what distinguishes you from the colleges who only write passable code.
commandersaki 2023-02-25 13:43 UTC link
> The class is being run during MIT’s “Independent Activities Period” in January 2020 — a one-month semester that features shorter student-run classes. While the lectures themselves are only available to MIT students, we will provide all lecture materials along with video recordings of lectures to the public.

It seems that the course is only 1 month and runs alongside some student-run classes. So this is from the get go not an essential course of a CS program.

enumjorge 2023-02-25 14:17 UTC link
I think you’re conflating two different things: universities selecting and presenting a syllabus needed to earn a certain degree, and students actually learning the material.

The latter is the solely the responsibility of each student, but I don’t understand why the former would be. Some of the content in this course strikes me as unknown unknowns for new programmers. Why would they be to blame if no one told them to learn a particular skill?

ghaff 2023-02-25 14:39 UTC link
Even though a lot of incoming students would have had PCs by that time, they'd mostly have been running Windows. As you suggest, as I understand it MIT really focused on Project Athena clusters for engineering work and people used PCs more for word processing, etc.
adrianmonk 2023-02-25 16:00 UTC link
> the ultimate onus falls on me to gain the skills that will lead me to success

I see where you're coming from, but sometimes you don't even know what the necessary skills are. Even if you're very self-motivated and enthusiastic, you can still benefit by being pointed in the right direction. That's part of what a good school or teacher should do for you. (And while they're at it, they can provide materials that smooth out the path to get there.)

You should never expect them to cover 100% of that, but if they're aware of a way that they can get closer to 100% than they currently are, then it's a good thing for them to do it.

ghaff 2023-02-25 16:10 UTC link
Note that this is not part of the CS curriculum at MIT. It's a series of classes during Independent Activities Period in January which is mostly unstructured time when students can do or not do any activities that catch their fancy. It works well for this sort of thing but students also do a ton of stuff that isn't especially academically-related.
jcelerier 2023-02-25 16:38 UTC link
> I do not know many others who implemented something like that.

the school I did in france, ENSEIRB-MATMECA, started with three weeks where you only learn shell commands, emacs, LaTeX etc before doing anything else. Here are the slides (in french sorry, although they all have useful reference cards at the end):

- intro: http://mfaverge.vvv.enseirb-matmeca.fr/wordpress/wp-content/...

- unix, shell: https://cours-mf.gitlabpages.inria.fr/if104/docs/01-unix.pdf

- emacs: https://cours-mf.gitlabpages.inria.fr/if104/docs/02-emacs.pd...

- latex: https://mfaverge.vvv.enseirb-matmeca.fr/wordpress/wp-content...

- "advanced" shell scripting: https://cours-mf.gitlabpages.inria.fr/if104/docs/05-scripts....

precompute 2023-02-25 16:41 UTC link
I think it's because it's a course focused on Linux and not Emacs. Different operating systems.
gumby 2023-02-25 17:36 UTC link
This “MIT Course” was taught by grad students because they felt the actual course work left this out.

So when you say it’s a shame your uni doesn’t teach this, well, that’s what these grad students were saying as well. Perhaps the students could seize the initiative at your institution as well?

Editorial Channel
What the content says
+0.80
Article 26 Education
High Advocacy Framing Practice
Editorial
+0.80
SETL
0.00

Content explicitly advocates for filling a critical gap in CS education; states that classes 'teach advanced topics' but neglect practical tool proficiency. Course is framed as solution to this educational deficit.

+0.60
Article 19 Freedom of Expression
High Framing Coverage Practice
Editorial
+0.60
SETL
-0.26

Content explicitly promotes open sharing of ideas and resources across platforms; encourages discussion and community contribution (translations, pull requests).

+0.60
Article 27 Cultural Participation
Medium Framing Practice
Editorial
+0.60
SETL
0.00

Content explicitly integrates cutting-edge AI tools across curriculum; emphasizes developing 'working knowledge' of AI with awareness of 'shortcomings'. This balances engagement with technology advancement with critical literacy.

+0.50
Article 2 Non-Discrimination
Medium Framing Practice
Editorial
+0.50
SETL
0.00

Explicit recognition of linguistic diversity through community translation efforts; course welcomes contributions from non-English speakers.

+0.40
Preamble Preamble
Medium Framing Practice
Editorial
+0.40
SETL
-0.22

Content frames educational access as democratizing opportunity, emphasizing that students spend hundreds/thousands of hours with tools, making proficiency training essential.

+0.40
Article 23 Work & Equal Pay
Medium Framing Practice
Editorial
+0.40
SETL
0.00

Content emphasizes practical professional skills (command-line, version control, debugging, development environments, packaging) directly applicable to software engineering employment.

+0.30
Article 1 Freedom, Equality, Brotherhood
Medium Framing Practice
Editorial
+0.30
SETL
-0.20

Content treats all prospective students equally without distinction; course motivation emphasizes universal need for tool mastery.

+0.30
Article 29 Duties to Community
Medium Framing Practice
Editorial
+0.30
SETL
0.00

Content teaches responsible technology use; explicitly notes that AI tools should be used 'with awareness of their shortcomings' and emphasizes developing critical knowledge rather than uncritical adoption.

+0.20
Article 20 Assembly & Association
Medium Framing Practice
Editorial
+0.20
SETL
-0.17

Course facilitates community connection through structured channels; mentions collaborative learning and discussion.

ND
Article 3 Life, Liberty, Security

Not addressed.

ND
Article 4 No Slavery

Not addressed.

ND
Article 5 No Torture

Not addressed.

ND
Article 6 Legal Personhood

Not addressed.

ND
Article 7 Equality Before Law

Not addressed.

ND
Article 8 Right to Remedy

Not addressed.

ND
Article 9 No Arbitrary Detention

Not addressed.

ND
Article 10 Fair Hearing

Not addressed.

ND
Article 11 Presumption of Innocence

Not addressed.

ND
Article 12 Privacy
Medium Practice

Not addressed.

ND
Article 13 Freedom of Movement

Not addressed.

ND
Article 14 Asylum

Not addressed.

ND
Article 15 Nationality

Not addressed.

ND
Article 16 Marriage & Family

Not addressed.

ND
Article 17 Property

Not addressed.

ND
Article 18 Freedom of Thought

Not addressed.

ND
Article 21 Political Participation

Not addressed.

ND
Article 22 Social Security

Not addressed.

ND
Article 24 Rest & Leisure

Not addressed.

ND
Article 25 Standard of Living

Not addressed.

ND
Article 28 Social & International Order

Not addressed.

ND
Article 30 No Destruction of Rights

Not addressed.

Structural Channel
What the site does
+0.80
Article 26 Education
High Advocacy Framing Practice
Structural
+0.80
Context Modifier
ND
SETL
0.00

Comprehensive, free educational content covering 8 lecture topics taught by experienced instructors; materials freely available on YouTube and linked platforms with no paywall; explicitly made available beyond MIT; translated into 13 languages.

+0.70
Article 19 Freedom of Expression
High Framing Coverage Practice
Structural
+0.70
Context Modifier
ND
SETL
-0.26

Materials distributed across multiple platforms: YouTube, Hacker News, Lobsters, Reddit (r/learnprogramming, r/programming), X, Bluesky, Mastodon, LinkedIn; Discord community channels enable ongoing dialogue.

+0.60
Article 27 Cultural Participation
Medium Framing Practice
Structural
+0.60
Context Modifier
ND
SETL
0.00

Course structure incorporates latest tools and techniques into lectures; shares knowledge via accessible platforms (YouTube, social media); invites community participation through translation.

+0.50
Preamble Preamble
Medium Framing Practice
Structural
+0.50
Context Modifier
ND
SETL
-0.22

Course is freely accessible globally; materials available on multiple platforms (YouTube, social media, Discord); translations in 13+ languages demonstrate commitment to universal access.

+0.50
Article 2 Non-Discrimination
Medium Framing Practice
Structural
+0.50
Context Modifier
ND
SETL
0.00

Materials available in 13 languages; invitation for additional translations via pull request shows structural commitment to language inclusivity.

+0.40
Article 1 Freedom, Equality, Brotherhood
Medium Framing Practice
Structural
+0.40
Context Modifier
ND
SETL
-0.20

Publicly accessible course with no enrollment restrictions, merit gates, or discriminatory barriers; explicitly available to anyone.

+0.40
Article 23 Work & Equal Pay
Medium Framing Practice
Structural
+0.40
Context Modifier
ND
SETL
0.00

Free skill-development platform removes barriers to acquiring job-relevant technical competencies; tools taught are industry-standard.

+0.30
Article 20 Assembly & Association
Medium Framing Practice
Structural
+0.30
Context Modifier
ND
SETL
-0.17

Discord platform provides infrastructure for peaceful assembly and collaborative learning; community translation efforts enable collective participation.

+0.30
Article 29 Duties to Community
Medium Framing Practice
Structural
+0.30
Context Modifier
ND
SETL
0.00

Course structure embeds critical literacy about tools throughout; teaching critical use of technology reflects duty to community regarding potential harms.

-0.15
Article 12 Privacy
Medium Practice
Structural
-0.15
Context Modifier
ND
SETL
ND

Page embeds Google Analytics tracking (gtag) without visible consent mechanism or privacy notice on landing page itself.

ND
Article 3 Life, Liberty, Security

Not addressed.

ND
Article 4 No Slavery

Not addressed.

ND
Article 5 No Torture

Not addressed.

ND
Article 6 Legal Personhood

Not addressed.

ND
Article 7 Equality Before Law

Not addressed.

ND
Article 8 Right to Remedy

Not addressed.

ND
Article 9 No Arbitrary Detention

Not addressed.

ND
Article 10 Fair Hearing

Not addressed.

ND
Article 11 Presumption of Innocence

Not addressed.

ND
Article 13 Freedom of Movement

Not addressed.

ND
Article 14 Asylum

Not addressed.

ND
Article 15 Nationality

Not addressed.

ND
Article 16 Marriage & Family

Not addressed.

ND
Article 17 Property

Not addressed.

ND
Article 18 Freedom of Thought

Not addressed.

ND
Article 21 Political Participation

Not addressed.

ND
Article 22 Social Security

Not addressed.

ND
Article 24 Rest & Leisure

Not addressed.

ND
Article 25 Standard of Living

Not addressed.

ND
Article 28 Social & International Order

Not addressed.

ND
Article 30 No Destruction of Rights

Not addressed.

Supplementary Signals
Epistemic Quality
0.71
Propaganda Flags
0 techniques detected
Solution Orientation
No data
Emotional Tone
No data
Stakeholder Voice
No data
Temporal Framing
No data
Geographic Scope
No data
Complexity
No data
Transparency
No data
Event Timeline 20 events
2026-02-26 12:20 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 12:18 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 12:17 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 12:16 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 10:35 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:33 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:33 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:31 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:30 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:29 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:28 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:28 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:27 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:27 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:27 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:24 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:24 credit_exhausted Credit balance too low, retrying in 340s - -
2026-02-26 10:23 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:23 dlq Dead-lettered after 1 attempts: The Missing Semester of Your CS Education (2020) - -
2026-02-26 10:22 credit_exhausted Credit balance too low, retrying in 306s - -
About HRCB | By Right | HN Guidelines | HN FAQ | Source | UDHR | RSS
build 1686d6e+53hr · deployed 2026-02-26 10:15 UTC · evaluated 2026-02-26 12:13:57 UTC