<story><title>The missing semester of CS education</title><url>https://missing.csail.mit.edu/</url></story><parent_chain><item><author>Jonhoo</author><text>Over the years, we (@anishathalye, @jjgo, @jonhoo) have helped teach several classes at MIT, and over and over we have seen that many students have limited knowledge of the tools available to them. Computers were built to automate manual tasks, yet students often perform repetitive tasks by hand or fail to take full advantage of powerful tools such as version control and text editors. Common examples include holding the down arrow key for 30 seconds to scroll to the bottom of a large file in Vim, or using the nuclear approach to fix a Git repository (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;xkcd.com&amp;#x2F;1597&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;xkcd.com&amp;#x2F;1597&amp;#x2F;&lt;/a&gt;).&lt;p&gt;At least at MIT, these topics are not taught as part of the university curriculum: students are never shown how to use these tools, or at least not how to use them efficiently, and thus waste time and effort on tasks that should be simple. The standard CS curriculum is missing critical topics about the computing ecosystem that could make students’ lives significantly easier.&lt;p&gt;To help mitigate this, we ran a short lecture series during MIT’s Independent Activities Period (IAP) that covered all the topics we consider crucial to be an effective computer scientist and programmer. We’ve published lecture notes and videos in the hopes that people outside MIT find these resources useful.&lt;p&gt;To offer a bit of historical perspective on the class: we taught this class for the first time last year, when we called it “Hacker Tools” (there was some great discussion about last year’s class here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=19078281&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=19078281&lt;/a&gt;). We found the feedback from here and elsewhere incredibly helpful. Taking that into account, we changed the lecture topics a bit, spent more lecture time on some of the core topics, wrote better exercises, and recorded high-quality lecture videos using a fancy lecture capture system (and this hacky DSL for editing multi-track lecture videos, which we thought some of you would find amusing: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;missing-semester&amp;#x2F;videos&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;missing-semester&amp;#x2F;videos&lt;/a&gt;).&lt;p&gt;We’d love to hear any insights or feedback you may have, so that we can run an even better class next year!&lt;p&gt;-- Anish, Jose, and Jon</text></item></parent_chain><comment><author>fuzzy2</author><text>That’s cool. Now, on to my possibly unpopular opinion: This isn’t what computer science is about. In fact, you don’t even need to use a computer to do computer science.&lt;p&gt;Sure, some stuff you learn in CS can make you a better software engineer. CS cannot make you a software engineer.&lt;p&gt;CS can definitely not make you adept at using computers and neither should it. That’s something earlier education institutions must tackle.&lt;p&gt;It’s always good to have optional courses for various topics of interest. _Requiring_ students to learn, say, MS Office (I had to), is just plain ridiculous.</text></comment>
<story><title>The missing semester of CS education</title><url>https://missing.csail.mit.edu/</url></story><parent_chain><item><author>Jonhoo</author><text>Over the years, we (@anishathalye, @jjgo, @jonhoo) have helped teach several classes at MIT, and over and over we have seen that many students have limited knowledge of the tools available to them. Computers were built to automate manual tasks, yet students often perform repetitive tasks by hand or fail to take full advantage of powerful tools such as version control and text editors. Common examples include holding the down arrow key for 30 seconds to scroll to the bottom of a large file in Vim, or using the nuclear approach to fix a Git repository (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;xkcd.com&amp;#x2F;1597&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;xkcd.com&amp;#x2F;1597&amp;#x2F;&lt;/a&gt;).&lt;p&gt;At least at MIT, these topics are not taught as part of the university curriculum: students are never shown how to use these tools, or at least not how to use them efficiently, and thus waste time and effort on tasks that should be simple. The standard CS curriculum is missing critical topics about the computing ecosystem that could make students’ lives significantly easier.&lt;p&gt;To help mitigate this, we ran a short lecture series during MIT’s Independent Activities Period (IAP) that covered all the topics we consider crucial to be an effective computer scientist and programmer. We’ve published lecture notes and videos in the hopes that people outside MIT find these resources useful.&lt;p&gt;To offer a bit of historical perspective on the class: we taught this class for the first time last year, when we called it “Hacker Tools” (there was some great discussion about last year’s class here: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=19078281&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=19078281&lt;/a&gt;). We found the feedback from here and elsewhere incredibly helpful. Taking that into account, we changed the lecture topics a bit, spent more lecture time on some of the core topics, wrote better exercises, and recorded high-quality lecture videos using a fancy lecture capture system (and this hacky DSL for editing multi-track lecture videos, which we thought some of you would find amusing: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;missing-semester&amp;#x2F;videos&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;missing-semester&amp;#x2F;videos&lt;/a&gt;).&lt;p&gt;We’d love to hear any insights or feedback you may have, so that we can run an even better class next year!&lt;p&gt;-- Anish, Jose, and Jon</text></item></parent_chain><comment><author>foobarian</author><text>Since you mention scrolling using key repeat - it truly is painful to watch someone do it on default settings.  And there are usually better ways to do that sort of thing.  But sometimes, there is no substitute: going to the right spot in the middle of a word&amp;#x2F;line, moving around a page, browser title bars, etc.  Here&amp;#x27;s the kicker though: most keyboard repeat rate settings around have a maximum that is pretty much unusable!  But you can fix it thusly:&lt;p&gt;xset r rate 180 60&lt;p&gt;When I work on my computer it&amp;#x27;s like driving a Porsche.  When I sit at someone else&amp;#x27;s it&amp;#x27;s like I tripped over a door threshold.&lt;p&gt;There are ways to adjust this on OSX too but it&amp;#x27;s a lot more touchy.   Haven&amp;#x27;t attempted on Windows.</text></comment>