ossu / computer-science

🎓 Path to a free self-taught education in Computer Science!
MIT License
172.94k stars 21.86k forks source link

Request for Comment: Add "The Missing Semester" #678

Closed waciumawanjohi closed 4 years ago

waciumawanjohi commented 4 years ago

Problem: OSSU does not teach students to use the tools of computing.

Duration: 2020/04/20

Background: OSSU has long discussed the need to teach nuts and bolts tools to students. The wiki proposing a possible v9 includes a section with a number of different resources to meet this goal.

Recently a team at MIT have taken an in person class on tooling and made it's materials available online. They call this The Missing Semester of Your CS Education. The course has recorded lectures. It also includes exercises that students are encouraged to undertake.

These topics, how to use version control, what the terminal shell is, how to use the most ubiquitous command line editor, will help OSSU students across a wide range of courses and projects.

Proposal: Add "The Missing Semester of Your CS Education" in Intro to CS, after "Introduction to Computer Science and Programming using Python."

Alternatives: 1) Software Carpentry is a set of open source lessons along similar lines. As text resources, these look very fleshed out, but there are no recorded lectures. Students can follow along with the instructions on their own machine, but there are no independent exercises.

2) OSSU could recommend a collection of courses that focus on the various topics. Udacity's "How to Use Git and Github" was an excellent course, it may be that their current Version Control with Git is similarly good. Similar high quality courses would need to be found for shells, command line editors, etc.

3) CMU offers Great Practical Ideas in CS which covers similar material. However, the material is text only and less fully explained than Software Carpentry. While CMU students have access to labs, these are password protected and not available to others.

Shout out to @daisein for first mentioning The Missing Semester in Gitter.

amorriscode commented 4 years ago

I think The Missing Semester looks great. I'm pretty happy with anything MIT and will likely take a look at completing this myself.

danyeet commented 4 years ago

I agree with @amorriscode - Even though I am far away from using most of the stuff in the missing semester most of us are already familiar with MIT's courses. So I am all for it.

pcolt commented 4 years ago

Right now I am doing "The Missing Semester of Your CS Education", (thank you for the suggestion I found on Gitter by the way) I am at the middle of the program and I am very happy with it. It is the kind of practical course I needed to feel more comfortable and confident studying Computer Science following the OSSU's curriculum. I have to say that until the second part of Nand to Tetris I didn't feel much need for a course like Missing Semester probably because all other courses I have taken so far where almost completely self-sufficient. I hope this helps and thank you for making OSSU possible <3

rkelf commented 4 years ago

This seems like exactly the type of course I need right now. I have completed the Intro to CS course and just finished HtC: Simple Data last week. Over this past weekend I took a step back and thought it would be useful to learn Git & GitHub now so I could continue using them throughout the rest of the curriculum. I found the udacity course Version Control with Git and finished that over the weekend, then used a couple of youtube videos to learn GitHub basics. I think there will be massive value in knowing this material early on in the curriculum.

I will spend the next few days going through The Missing Semester and just skip the Git part. Will report back my thoughts.

waciumawanjohi commented 4 years ago

@rkelf If you can do the git parts of The Missing Semester and report whether they appear sufficient to you, that will be very helpful for future students!

pcolt commented 4 years ago

I have just completed The Missing Semester. I think it is very good at teaching or at least at showing the tools that you as student of computer science are needing to be more confident and efficient. I think that a course teaching only Git and Git Hub will loose a lot of useful information that i found in The Missing Semester like for me was very valuable to gain more confidence with command-line and VIM, but also to be exposed to other topics and tools I may need soon or later. Now I also agree with the proposal to put this course after "Introduction to Computer Science and Programming using Python". I would just propose to explain that the course is more about an introduction and a reference to come back when you need to pick or refresh some particular tools. Sometimes I feel like is missing a little explanation of why and how a specific course is needed in relation to the whole curriculum.

spamegg1 commented 4 years ago

I agree with pcolt's last suggestion, put it right after Intro to CS with Python course.

pcolt commented 4 years ago

@spamegg1, actually it was originally suggested by @waciumawanjohi