MIT offers the "missing CS course"

In summary, MIT has created a new course called the "missing semester" in computer science. The course covers topics such as shell scripts, command line, and version management, with a focus on using GIT. Some aspects of the course may seem outdated, such as using sed and awk for data reformatting, but these tools can still be useful. The importance of GIT is compared to the importance of Word for writing documents. However, some may argue that a plain text editor is the fundamental tool for writing documents. Some people may prefer old-fashioned tools like vi, but others may find it easier to use tools like Word or markdown. Some management may not see the value in teaching programmers basic tools like GIT, but it can be a valuable
  • #1
scottdave
Science Advisor
Homework Helper
Insights Author
Gold Member
1,983
962
MIT has created a new course they call the "missing semester" in computer science. https://missing.csail.mit.edu/
It looks interesting - shell scripts, command line, version management, to name a few.
 
  • Like
  • Love
  • Wow
Likes harborsparrow, hagopbul, kith and 8 others
Technology news on Phys.org
  • #2
Their idea of "version management" is to toss you at GIT. Sigh. Maybe *after* you learn version management you can look at GIT.
 
  • Like
Likes harborsparrow, jim mcnamara and jedishrfu
  • #3
Parts of it look surprisingly old-fashioned. Doing data reformatting using sed, awk, etc. is, IMHO, primitive compared to Perl (and perhaps Python).
 
  • #4
DEvens said:
Their idea of "version management" is to toss you at GIT. Sigh. Maybe *after* you learn version management you can look at GIT.
GIT should be as fundamental a tool for a programmer as Word is to a person writing a document.
 
  • Like
Likes pbuk
  • #5
FactChecker said:
GIT should be as fundamental a tool for a programmer as Word is to a person writing a document.

That's as may be. But if you were trying to teach somebody to be an auto-mechanic, somebody who had never seen a hand tool, would you sit them down on the seat of a bulldozer equipped with a jet engine? Or would you *start* with "Now this is a wrench. You hold this end. You use it to tighten or loosen nuts. This is is a nut. Let's tighten it a bit."

Also, Word is not a *fundamental* tool to an author. It's a "place for my stuff." And I would not consider "Here, start up Word" to be any kind of instruction on how to author a document.
 
  • Like
Likes Tom.G and jim mcnamara
  • #6
FactChecker said:
GIT should be as fundamental a tool for a programmer as Word is to a person writing a document.

I write lots of documents without using Word. If there is a fundamental tool for writing documents, it's a plain text editor.
 
  • Like
Likes Tom.G, jim mcnamara and DEvens
  • #7
The first time a programmer modifies a file of code, version.c, and names the modified file version2.c, he needs to start using GIT instead. My guess is that it will happen in the first couple of days of programming.
 
  • Like
Likes jedishrfu
  • #8
FactChecker said:
Parts of it look surprisingly old-fashioned. Doing data reformatting using sed, awk, etc. is, IMHO, primitive compared to Perl (and perhaps Python).
Years ago, I asked an engineer who was using vi why wasn't he using emacs. His answer was simple vi is everywhere on UNIX. This is still true today. I use vim a lot but every so often it's not there but vi is (as in a minimal docker image). The same goes for sed, awk and other "old fashioned tools". They are useful to get the job done quickly and arcanely in a script.

Usually, when my scripts become unwieldy maintenance-wise or comprehension-wise I switch and rewrite using pure python or python that calls UNIX commands. While you can use python as a script, sometimes the old tools make the script simpler to write.
 
  • Informative
Likes Klystron
  • #9
PeterDonis said:
I write lots of documents without using Word. If there is a fundamental tool for writing documents, it's a plain text editor.

Sadly, it gets harder and harder to use the simple text editor and one is forced to write using Word. The only intermediate way is to use markdown markup language in plain text. However for markdown, formatting varies from tool to tool.
 
  • Like
Likes FactChecker
  • #10
jedishrfu said:
Years ago, I asked an engineer who was using vi why wasn't he using emacs.
I have vim on my phone - an excellent editor for a tiny keyboard.
 
  • #11
I used Word as an example simply because I have had this exact argument over GIT with management who disallowed open-source software. They appreciated the value of Word, email, etc., but saw no need for programmers to have a basic tool like GIT.
 
  • Like
Likes scottdave
  • #12
FactChecker said:
I used Word as an example simply because I have had this exact argument over GIT with management who disallowed open-source software. They appreciated the value of Word, email, etc., but saw no need for programmers to have a basic tool like GIT.

I agree that does seem like a bad policy decision on management's part.
 
  • #13
I "wrote" and then used a 6-line awk script today that saved me about 2 or 3 hours work.
 
  • #14
One of the best programming exercises I ever did was reimplementing a large portion of the unix core utils from scratch using the man page as a spec (cat, find, grep, sort, echo, tee, head, tail, split etc). I don't know if "More Python the Hard Way" was the first place to ever suggest this, but it's a great idea.

You learn how to program *and* learn how to use all these great tools.
 
  • #15
What course do you take to know what “GIT” stands for?
 
  • #16
chemisttree said:
What course do you take to know what “GIT” stands for?
One given by https://www.linuxfoundation.org/blog/2015/04/10-years-of-git-an-interview-with-git-creator-linus-torvalds/.
 
  • Like
Likes Nugatory

Related to MIT offers the "missing CS course"

1. What is the "missing CS course" offered by MIT?

The "missing CS course" offered by MIT is a computer science course that covers essential topics and skills that are not typically taught in traditional computer science curriculum.

2. Who is eligible to take the "missing CS course" at MIT?

The "missing CS course" is open to all undergraduate students at MIT, regardless of their major or previous experience in computer science.

3. What are some of the topics covered in the "missing CS course" at MIT?

The course covers a range of topics including data structures, algorithms, software engineering, and machine learning, as well as skills like debugging, testing, and project management.

4. Is the "missing CS course" a required course for computer science majors at MIT?

No, the "missing CS course" is not a required course for computer science majors at MIT. However, it is highly recommended for students who want to supplement their computer science education with additional skills and knowledge.

5. How can I enroll in the "missing CS course" at MIT?

Enrollment in the "missing CS course" is done through the regular course registration process at MIT. Students can add the course to their schedule during registration period, just like any other course.

Similar threads

  • Programming and Computer Science
Replies
1
Views
811
  • STEM Academic Advising
Replies
2
Views
1K
  • Programming and Computer Science
Replies
4
Views
441
  • STEM Academic Advising
Replies
3
Views
933
Replies
6
Views
1K
  • Electrical Engineering
Replies
4
Views
283
Replies
8
Views
2K
  • Sticky
  • General Discussion
Replies
0
Views
190
  • STEM Academic Advising
Replies
13
Views
3K
  • STEM Academic Advising
Replies
3
Views
1K
Back
Top