Closed waciumawanjohi closed 3 years ago
I support the proposal.
I also support the proposal.
This sounds like a great solution!
Great! I'm doing this course right now and it really has a lot of content, tools, techniques and concepts. Once I will spend the next few months at programming/math classes, probably I will forgot 70% of the content and I will need to do it all over again.
So, I like the idea of taking this class later in the curriculum.
I completed the 4th lesson now and I strongly agree that this course should come later in the curriculum.
It sounds like cs50 has its own IDE. And I know that Nand2Tetris supplies its own software. Perhaps it'd be better to fit this in after those classes but before operating systems. (I don't know networking, so can't comment on it).
I have been using bash
and vim
for a really long time. Where I did my PhD, the program administrators required that everyone in their first year of PhD (irrespective of degree enrolled, students of medicine, humanities, everyone), do a 2-day software carpentry training course that covered shell, automation and text editing at a command line. I am not a CS major, but I still picked this up rather quickly, and was using them daily in my research.
I don't know if it is so hard that it needs to be deliberately moved beyond various CS subjects. I find algorithms, programming etc hard relative to some basic filesystem moves etc at the command line.
I agree that moving it later is a better option, but not because it is challenging. I agree with @cauequeiroz in that if you don't use these tools right away, you will probably forget them. Might as well teach them either immediately before or in parallel with classes that will take advantage of these skills.
My main concern with moving it later is with things that are easy to understand but require a lot of time to get comfortable with, like Vim. If you leave it too late, the projects you're gonna be working on are going to feel extra hard if you're just learning Vim, while if you begin it early you may have a bit of an easier time since the courses are not on the same level. I myself haven't reached that far into the program so I can't really say for sure though.
I am in the middle of the course and yes there are a lot of tools introduced but for me, this seems like a good choice to give the students the knowledge about the existence of these tools so that they start using it. I've been using git and terminal right from the beginning of the curriculum and also created a personal repository just to test different topics of git.
I would say to take this course as an exploration of what's possible and come back to it when you need it.
The course is all over the place in the content coverage (and hence, the "missing semester" title, I get it).
I strongly believe that one shouldn't proceed too far into the OSSU curriculum without knowing some form of version control. This can be an invaluable tool for incrementally working on homework assignments. (eg. can progressively make small commits towards attaining an optimal solution to algorithm homeworks, without worrying too much about messing up/destroying currently working code).
I think a strong substitute in the early stages are the lessons from Software Carpentry, especially the git
lesson (and the Unix Shell lesson).
Software Carpentry is a non-profit organization founded nearly 10 years ago by a professor at Univ of Washington, and they run regular 2-day FREE workshops all over the world, where these lessons are covered.
The material itself is licensed CC-BY.
Later on in the curriculum, the "missing semester" could be revisited. This sort of breaking up a course within OSSU curriculum is already advocated for CS50 (I think, where the guidance is to skip the 2nd part or something).
I think the proposal makes a lot of sense. No need to burden the students with topics that will not be useful or relevant right away. It would be better to do the courses later as proposed, where the student might get practical application from them soon after completion.
In this case (or moving it to a later stage), we need to insert the software carpentry's phenomenal git course, which can help to version control their homeworks (for all courses).
Findings: The majority of contributors agree with the reasoning for moving The Missing Semester.
Conclusion The Missing Semester will be placed before Core Systems.
Problem: The Missing Semester is a challenging course early in the curriculum.
Duration: 2020-09-10
Background: The Missing Semester is meant to teach students how to use a number of tools of computer science. These include the terminal, git, and vim.
However, numerous students have given feedback that the assignments are quite challenging. Examples can be found in this issue. The course also occurs quite early in the curriculum.
In addition, the courses immediately after this one do not leverage the lessons learned. How to Code is taught entirely within Dr. Racket. Students will most benefit from exposure to command line environments before studying operating systems and networks.
Proposal: Move The Missing Semester immediately before Core Systems.
Alternatives: