Summary Education Access & Digital Literacy Champions
The Missing Semester landing page promotes equitable access to computer science education through a free, multilingual, globally distributed course on professional developer tools. The site demonstrates strong commitment to Articles 19 (free expression), 25-27 (education and cultural participation) through open-source licensing, 16-language translations, and explicit sharing beyond institutional boundaries, though privacy practices (Google Analytics tracking without consent) negatively impact Article 12 protections.
Great to see a chapter on version control. It is such a shame that almost no CS program teaches proper version control. VCSs and the commit history can be such a tremendously valuable tool when used correctly.
git bisect/blame/revert/rebase/… become so much less useful when VC is treated as a chore and afterthought, and basically amounts to: “Feature is done, my work is complete, just do `git commit -am "changes"` and be done with it.”. And don’t get me started on commit messages.
It is shameful that for a large part of the industry, this is the norm. It is shameful that for a lot of professional, who call themselves software architects or reliability engineers and such fancy titles, still have essentially no idea what they are doing with git, and their response when git add/commit/push/pull don’t work is to shrug, and just delete and re-clone the repo.
Version control should be treated with care and attention to detail. It pays for itself 100 times over.
If your commit history is maintained and tells a story, it is a joy to review your PR. If you just `git commit -am "try fix"` 26 times over, and all that is left in the end is a ball of mud, it is horrible.
> In particular, we’re curious to hear the community’s take on our inclusion of AI-related topics
I think this is fine and if anything you should give it more space. It doesn't replace foundational understanding, but the course is explicitly about "practical" aspects, we can assume said foundational understanding is developed in other courses.
Something like "build your own agent" would be a great intuition pump. The model is doing the heavy lifting and a basic harness is a couple hundred lines of simple code. It could fit in a single lecture and it would be very high signal in my opinion.
Not an entire semester, but I'm really glad my uni had a semester long core CS course on exactly this. Still one of the most useful courses I've ever taken, I refer my notes from that class even now.
In some way this could be the most important course.
You don't appreciate it when you're studying, because obviously it sounds a bit soft. But when you're learning how something works, often the thing that stops you isn't the fundamentals, which you know what are, it's the little frustrations like not knowing how to commit or pull code, or not knowing how to navigate the terminal.
One of my large enterprise clients currently requires all tech staff to complete 18h (yes, eighteen hours!) of "agile training", in addition to speed-running 14 separate mandatory online courses.
This time would be much better spent watching these 9h of lectures.
I have a bit of unsolicited feedback (in this terms): the basic IT skills, not CS or CE, but IT, that everyone needs but most don't realize, including techies who often stay in their bubble and don't truly understand the classic desktop model despite having the skills to do so, are a bit different IMVHO:
- first of all, you need to know how to manage your own digital information. Even though it's taken for granted that a CS/CE freshman knows this, well, in my experience, that's usually not the case also for many PhD... Information management isn't just a taxonomy of files and dirs; it's also about evaluating, for example, what happens if the software you use for your notes is discontinued, or if your photo gallery disappears, and so on, and acting accordingly knowing your SPOFs and how to mitigate them;
- then you need to know how to write, in the broadest sense, which includes mathematical notation, generating graphs, "freehand" drawing like simple CAD, and formatting your work for various purposes and media, whether it's emails, theses, reports, or general messages. This is where teaching LaTeX, org-mode, R/Quarto, etc comes in. It's not "advanced" is the very basic. Before learning to program and no, Office suites are not an answer, they are monsters from a past era, made to makes untrained human with little culture to use a computer for basic stuff instead of typewriters, a student is not that;
- you need to know how to crunch numbers. Basic statistics are useful, but they're largely stuck in another era. You need to know how to do math on a computer, symbolic computation, whether it's Maxima or SymPy, doesn't really matter, and statistical processing basis. For instance, knowing Polars/Plotly/* at a minimum level are basic skills a freshman should have at a software/operational level, because they should be working in these environments from day one, given that these are the epistemological tools of the present, not paper anymore.
Then you also need to manage code, but in the broadest sense. A dSCM is also for managing your own notes and documents, not just software, and you need to know how to share these with others, whether it's Radicle or Forgejo or patches vua mail doesn't really matter, but this family of software needs to be introduced and used at least at a basic level. A DynDNS services should be also given so anyone could try to self-host the services they want.
Knowing how to communicate is an essential skill, and it's not about using Gmail or Zoom... it's about learning how to self-host basic communication services. It doesn't really matter if it's XMPP, Matrix, or Nostr, but the concept must be clear, and understanding the distributed and decentralized options we have today is vital. A student needs to learn how to stand on their own two feet, not on someone else's servers.
These are basic IT skills that aren't "advanced" at all, despite what many people think, or "sysadmin-level" and so on; they're simply what a freshman should have as someone who loves knowledge and wants to get their hands dirty.
I'd include sed and awk, because these tools are ubiquitous and can accomplish in a few readable lines what people write long programs to handle in other languages, seemingly because they are unaware of sed and awk, don't know how to use them, or are required for some reason to do it in the project language.
In fact, generally teaching people to select the right tool for the job is a good skill to prevent them from using golden hammers.
I'm glad to see there is a "Beyond the Code" section that discusses comments. Here's what I typically told my students in Intro to Programming"
Good comments lend insight into the code. Reading the code itself tells you the what. Comments should explain the why. Comments like "i+=1; /* Increment i */" are of little value. However comments such as "We increment i mid loop so that we can peek ahead at the next value for a possible swap" are more useful.
Use a narrative voice when writing comments, like you are explaining the code to your grandparent. This make digestion easier.
Remember, code spends most of its life, and most of its expense, in the maintenance phase. The easier you make your code to understand, the less it will cost and the longer it will live.
Just wondering - do you include information on interviewing, salary negotiation, communication with management, leading teams, and maybe topics on career progression?
These would have been very useful to me back when I was in the university.
If you want to master the shell (it will save years of your life), follow these guides. I highly recommend reading the entire BASH manual, it will answer every question you'll ever have, or at least give you a hint about it, as well as expose you to all the hidden knowledge (some call it "gotchas") you'll wish you knew later.
To find every Unix-y program and get a 1-line description of it (and referenced programs/functions), run:
for i in $(ls /bin/* /usr/bin/* /sbin/* /usr/sbin/* | sed -E 's?.*/??g' | sort -u) ; do
echo "command: $i"
whatis "$(basename "$i")" | cat
echo ""
done | tee command-descriptions.log
View 'command-descriptions.log' with less command-descriptions.log, use arrow-keys and page up/down to navigate, and type 'q' to exit. To find out more about a program like df(1), run man 1 df.
That's actually brilliant! Most of my classes only taught what tools were needed to accomplish coursework, not generally useful tools. Even our OS class focused on the workings of the kernel, not the Unix philosophy and how it influenced what tools were included, and how to use them. Then again, 20 years ago the year of the linux desktop was much farther away than it is today...
When I was a Physics Ph.D. student in NYU in the late nineties, I took a course called UNIX tools in the CS department. It was a hands on course where the instructor did live REPL in the terminal and we watched him showing us all the tricks. I got hooked with UNIX since then. Got myself a dialup terminal in my tiny apartment in east village and dial in to the workstation on campus. The latency is so bad that I can’t only see the feedback after a few keystrokes. That was when I trained my vi muscle memory. (EMacs was out of the question.)
Later I got my own IBM 386 and installed Linux on it and started to program in Perl …
I am a big fan of Jon’s YouTube videos on Rust and I started to use Rust in non conventional ways.
I am going to follow this lecture series and “port” them to rustdoc and see how it goes.
Another rabbit hole to fall down, it is going to be fun.
Purdue CompE has long had a 1 credit hour course that is just this. Lots of bash and git and then a little Python and Tkinter at the end. Other courses them assumed we had this knowledge - the 300-level ASIC class had us submit assignments by pushing to a remote, for instance. Definitely one of the most useful credit hours I had.
I think we might need to take a hard look at the higher end path of CS and ask why we're not focused more on Software Engineering.
Research is great, but if wre trying to train people to make real things, there's a whole different set of skills where you only need a thin vineer of CS training and a deeper understanding of software maintenance.
It seems most people learn git only through necessity. I've heard people say "I just want to code, I don't care about the peripherals". JIT learning is a good way to acquire capabilities with real-world application, but there is not JIT pull that forces people to learn about bisect, git objects, git logging, etc. These things can only be learnt either through setting off time to read documentation or by being taught through a course.
I think this is a good argument for teaching git, and being thorough in doing so, as many people are likely to never take that initiative themselves, while the benefits to being good at git are so obvious.
This feels harsh. Engineers have an endless list of other things to learn that are arguably more important, and it isn’t always worth understanding all the weird edge cases that almost never pop up (to say nothing of Git’s hostile, labyrinthine UX that one would have to deal with).
I don't think students in 2026 need any encouragement to use LLMs, but sure, it would be strange if the LLM companies didn't give away student plans cheaply.
If most people are not using a tool properly, it is not their fault; it is the tool's fault.
Git is better than what came before, and it might be the best at what it does, but that does not mean that it is good.
- The interface is unintuitive.
- Jargon is everywhere.
- Feature discoverability is bad.
- Once something goes wrong, it is often more difficult to recover. If you're not familiar enough with Git to get yourself into that situation, then you certainly aren't familiar enough to get yourself out of it.
Many of those issues are due to git being a command line interface, but others (like no general undo and funny names) are simply due to bad design.
I think it is about time that we try again and build a better version control tool, but maybe git is just too entrenched.
I have heard of each of those tools but I've never really used them for real.
Like, I attempt to write good commit messages and stage my changes in such a way that the commits are small, obvious, and understandable. That's about it. But the advanced tooling around git is scary ngl.
I agree that these shells are better than bash, etc. But some bash knowledge is probably a must, given its ubiquity. You're not always going to have the option to install fish.
(Sadly, most of my jobs, including my current one, require tcsh).
A big part of the problem is being permitted to teach this stuff. As a UK CS grad from the early-2000s, my observation was that academic staff recognized the need for these skills. They weren't permitted to teach it due to time available and the view that it wasn't academic. Thankfully, my university's CS department offered courses in these kinds of topics taught by the support staff (read: sysadmins). These courses existed to help other departments with skills but were open to students.
Fast forward twelve years and my wife did the MCIT at UPenn (https://catalog.upenn.edu/graduate/programs/computer-informa...) where git and other topics woven into the curriculum. Even then, they were perhaps a novelty because their focus was bringing non-CS undergrads into a CS Masters program. So-called "conversion" master's degrees were the norm in the UK in 2002.
I think looking at some of the documentation for oils (née oil sh) and ysh - as well as [looking at using] these two projects [in place of bash] - is also a good idea today:
I work in IT and can’t tell you the number of talented software engineers I’ve worked with who were just as bad (or worse) than the most tech illiterate HR person you could imagine. I’d add basic troubleshooting methodology to this list. So many engineers assume they know the problem and start headbashing a fix without bothering to evaluate the scope of a problem, form a hypothesis, or validate that their assumed fix actually worked.
Content strongly emphasizes education and development. 'We'll teach you how to master the command-line' and 'proficiency with their tools' signal commitment to capability building. Explicit educational mission: 'proficiency with tools' and 'fluid and frictionless learning experience' (from DCP mission analysis).
FW Ratio: 50%
Observable Facts
Page explicitly states educational mission: 'Classes teach you... but there's one critical subject that's rarely covered... We'll teach you how to master the command-line.'
Content is available in 16 languages with invitation for community translations.
Materials are shared on educational platforms (Reddit /r/learnprogramming, OSSU Discord) and licensed for non-commercial educational reuse (CC BY-NC-SA).
Inferences
Comprehensive multilingual and multi-platform approach structurally maximizes educational access globally.
Open licensing and community translation model democratizes CS education beyond institutional boundaries.
Focus on practical tool mastery addresses education gap identified as 'missing' from traditional CS curriculum.
Content strongly promotes adequate standard of living through professional skill development. 'Master the command-line, use a powerful text editor, use fancy features of version control systems' are foundational to tech work and economic security.
FW Ratio: 57%
Observable Facts
Course is offered at no cost with no stated enrollment fees or prerequisites.
Content provides professional development in high-value skills: 'command-line, text editor, version control systems.'
Sixteen language translations are offered to enable access across language backgrounds.
YouTube videos provide asynchronous access for those unable to attend live classes.
Inferences
Free access to professional CS education structurally enables pathway to economic security for marginalized communities.
Multilingual and flexible access removes barriers based on language, income, schedule, or geography.
Focus on practical tool mastery directly supports economic self-sufficiency in tech industry.
Content strongly promotes freedom of expression through multiple distribution channels and explicit commitment to sharing knowledge widely. 'We've shared this class beyond MIT in the hopes that others may benefit' directly supports expression and information dissemination.
FW Ratio: 50%
Observable Facts
Content is distributed across 10+ platforms without restrictions: YouTube, Hacker News, Reddit, X, Bluesky, Mastodon, LinkedIn, Lobsters.
GitHub link enables public code contributions with 'contribution & translation guidelines.'
Page explicitly invites: 'Have you created a translation of the course notes from this class? Submit a pull request so we can add it to the list.'
Inferences
Multi-channel distribution model structurally maximizes reach and accessibility of expression.
Community contribution system democratizes speech by enabling others to translate and extend content.
Absence of centralized gatekeeping protects freedom of expression across platforms.
Content promotes participation in cultural and scientific life through open sharing of CS knowledge and tools: 'We've shared this class beyond MIT in the hopes that others may benefit from these resources.' Acknowledgment of contributors (Elaine Mello, Luis Turino/SIPB, MIT Open Learning) demonstrates respect for collective cultural creation.
FW Ratio: 57%
Observable Facts
Page states: 'We've also shared this class beyond MIT in the hopes that others may benefit from these resources.'
Contributors and supporters are explicitly acknowledged: 'We thank Elaine Mello and MIT Open Learning... We thank Luis Turino / SIPB.'
Community is invited to contribute: 'Have you created a translation of the course notes from this class? Submit a pull request so we can add it to the list.'
Materials are licensed under CC BY-NC-SA with 'contribution & translation guidelines' for participatory involvement.
Inferences
Explicit sharing beyond institutional boundaries signals commitment to global participation in CS culture.
Public acknowledgment of contributors recognizes cultural creation as collective achievement.
Community contribution system structurally enables others to participate in evolving CS knowledge and practice.
Content explicitly supports freedom of movement and circulation through multiple distribution channels (YouTube, Discord, Hacker News, Reddit, social media, Mastodon, Bluesky). Notes that 'We've shared this class beyond MIT in the hopes that others may benefit.'
FW Ratio: 60%
Observable Facts
Content is shared across 10+ public platforms: YouTube, Hacker News, Lobsters, Reddit, X, Bluesky, Mastodon, LinkedIn.
Source code is publicly available via GitHub link with explicit invitation for community contributions.
No geographic restrictions or access limitations are stated anywhere on the page.
Inferences
Multi-platform distribution strategy facilitates unrestricted circulation of educational content.
Open-source model and community translation system structurally enable freedom of information flow.
Content emphasizes democratization of CS education and open sharing beyond institutional boundaries. Explicitly references sharing materials widely and community translations, signaling commitment to universal education access principles.
FW Ratio: 60%
Observable Facts
Page states 'We've also shared this class beyond MIT in the hopes that others may benefit from these resources.'
Sixteen community translations are listed with invitation for more: 'Have you created a translation of the course notes from this class? Submit a pull request.'
Lecture videos are publicly available on YouTube with multiple annual postings across years.
Inferences
The emphasis on sharing and translation signals commitment to breaking down barriers to CS education globally.
The invitation for community-contributed translations suggests partnership model rather than top-down knowledge distribution.
Content promotes freedom of peaceful assembly and association through open discussion forums and public acknowledgment of collaborators: 'co-taught by Anish, Jon, and Jose' and acknowledgment of Luis Turino/SIPB support.
FW Ratio: 60%
Observable Facts
Page explicitly lists 'You can discuss the course in the OSSU Discord' with specific channels for forums and social chat.
Multiple social platforms (Hacker News, Reddit, X, Bluesky, Mastodon) are listed as discussion venues.
Staff are publicly identified: 'This class is co-taught by Anish, Jon, and Jose.'
Inferences
Public identification of collaborators demonstrates openness to collective action and association.
Provision of open discussion spaces structurally enables peaceful assembly around shared interests.
Content implicitly supports asylum and refuge through universal educational access. Explicit statement 'We've also shared this class beyond MIT in the hopes that others may benefit from these resources' suggests commitment to transcending institutional boundaries.
FW Ratio: 50%
Observable Facts
Community translations are offered in 16 languages, removing language barriers for non-English speakers.
Materials are shared globally across social platforms without geographic restrictions.
Inferences
Multilingual approach suggests recognition that educational access should not be determined by national origin or primary language.
Global distribution model removes institutional citizenship barriers.
Content supports right to work and favorable conditions through emphasis on tool proficiency reducing friction: 'make the experience as fluid and frictionless as possible' and 'lets you solve problems that would previously seem impossibly complex.' Tools are framed as enabling efficient, dignified work.
FW Ratio: 50%
Observable Facts
Content states: 'Students spend hundreds of hours using these tools over the course of their education (and thousands over their career), so it makes sense to make the experience as fluid and frictionless as possible.'
Lecture videos are available on YouTube (asynchronous access) in addition to live classes, enabling flexible participation.
Inferences
Focus on reducing friction in tool use reflects concern for dignified, efficient work conditions.
Flexible access models (live + YouTube) enable participation by those with time or mobility constraints.
Content implicitly supports social and international order enabling rights through emphasis on shared educational infrastructure and knowledge: 'We've shared this class beyond MIT in the hopes that others may benefit' suggests commitment to global cooperation for human development.
FW Ratio: 50%
Observable Facts
Course materials are shared across international platforms: Hacker News, Reddit, Mastodon, Bluesky, and community translation sites.
Community translations enable participation across 16 language communities globally.
Inferences
Multi-language and multi-platform approach structurally enables international cooperation in knowledge sharing.
Global distribution model demonstrates commitment to international social order supporting education rights.
Content promotes learning and skill development as intrinsic dignity, framing tool mastery as enabling human potential ('solve problems that would previously seem impossibly complex'). No explicit equality language but structure assumes universal applicability.
FW Ratio: 60%
Observable Facts
Course is offered free with no enrollment restrictions stated.
Content emphasizes universal utility: 'Students spend hundreds of hours using these tools over the course of their education (and thousands over their career).'
Public discussion channels (Discord, social media) enable peer interaction without gatekeeping.
Inferences
The framing of tool mastery as foundational suggests recognition that equal opportunity requires equal access to practical skills development.
Free, open-source model structurally removes economic barriers to participation.
Content supports freedom of thought and conscience implicitly through promotion of AI awareness with caveats: 'When used appropriately and with awareness of their shortcomings' suggests critical thinking approach to technology adoption.
FW Ratio: 50%
Observable Facts
Content states: 'When used appropriately and with awareness of their shortcomings, these can often provide significant benefits' regarding AI, suggesting critical evaluation approach.
OSSU Discord and multiple social platforms are provided for open discussion without stated content restrictions.
Inferences
Critical framing of AI adoption suggests encouragement of independent thought rather than uncritical acceptance.
Provision of unmoderated discussion spaces structurally enables freedom of thought and conscience.
Content supports social security implicitly through emphasis on access to tools that enable economic participation: 'proficiency with their tools' and 'solve problems that would previously seem impossibly complex' support capability development for economic security.
FW Ratio: 50%
Observable Facts
Course is offered at no cost with no enrollment fees stated.
Content emphasizes economic utility: 'Students spend hundreds of hours using these tools over the course of their education (and thousands over their career).'
Inferences
Free access to professional development tools structurally enables economic security for those without commercial training resources.
Content implicitly supports rest and leisure through emphasis on tool mastery reducing wasted time: 'spend less time on figuring out how to bend your tools to your will' suggests protection of personal time from unnecessary tool friction.
FW Ratio: 50%
Observable Facts
Content emphasizes time efficiency: 'spend less time on figuring out how to bend your tools to your will.'
YouTube videos enable asynchronous access, allowing learners to study during self-chosen times.
Inferences
Emphasis on reducing time waste from tool friction suggests recognition of personal time as valuable.
Flexible access model structurally enables learners to balance education with rest and personal commitments.
Content implicitly supports political participation through emphasis on shared governance model ('co-taught by three instructors'). No explicit engagement with political processes.
FW Ratio: 50%
Observable Facts
Course is co-taught by multiple instructors rather than single authority figure.
Community input is solicited for translations: 'Submit a pull request so we can add it to the list.'
Inferences
Multi-instructor model suggests collaborative governance approach.
Community contribution model enables non-instructors to shape course knowledge.
Structure enables comprehensive freedom of expression: public GitHub repository, multiple social media platforms, Discord channels, YouTube distribution, and explicit invitation for community translations ('Submit a pull request'). No content restrictions or censorship mechanisms visible.
Structure enables cultural participation: public GitHub repository, CC BY-NC-SA licensing enabling free reuse, community translation system, and explicit invitation for contributions. Multiple platforms enable global participation in knowledge creation and sharing.
Structure enables association: public Discord community, multiple social media groups (Hacker News, Reddit, social media), and public discussion forums. No restrictions on who can participate or organize are stated.
Multilingual support (16 languages) and global distribution channels structurally enable access regardless of national origin or status. No citizenship requirements stated.
Structure removes barriers to workforce participation by providing free access to industry-standard tools and knowledge. Multiple language support and flexible scheduling (async YouTube videos) enable participation across circumstances.
Structure supports international cooperation: materials shared globally across multiple platforms, community translations in 16 languages, and open-source licensing enabling international reuse and adaptation.
Site provides multiple access pathways (YouTube, Discord, social media, GitHub), 16 language translations, and CC BY-NC-SA licensing enabling global participation and knowledge distribution aligned with Preamble values.
Discussion platform (Discord) and multiple social media channels structurally enable free exchange of ideas. No content moderation policies are visible, suggesting openness to diverse perspectives.
Free course structure removes economic barriers to accessing professional development resources that would otherwise require commercial training. CC BY-NC-SA licensing enables non-commercial sharing.
Free course, open licensing, and low-barrier access pathways suggest structural commitment to equal participation, though no explicit equality statements present.
Structure includes community participation in translations and contributions, suggesting distributed decision-making, though formal governance mechanisms are not visible.
Google Analytics tracking (G-P7WVHD84D1) implemented without visible consent banner or privacy policy link on page. Structural practice conflicts with privacy protection principles.
Multiple language options and open Discord channels suggest structural inclusivity, but no explicit non-discrimination statement or accessibility commitments visible.
CC BY-NC-SA licensing explicitly protects intellectual property rights and attribution. Source code is publicly available under open license, respecting creators' rights while enabling reuse.
Course legitimacy is established through MIT institutional affiliation and acknowledgment of MIT Open Learning support, which may inflate credibility beyond the instructional content itself.
bandwagon
Multiple social platform discussion links (Hacker News, Reddit, Mastodon, etc.) and explicit acknowledgment of previous years' discussions create impression of widespread adoption and acceptance.
build 1ad9551+j7zs · deployed 2026-03-02 09:09 UTC · evaluated 2026-03-02 11:31:12 UTC
Support HN HRCB
Each evaluation uses real API credits. HN HRCB runs on donations — no ads, no paywalls.
If you find it useful, please consider helping keep it running.