CS0010S / the-missing-bit

Overview of the course material design
0 stars 0 forks source link

Make outline for Mod 0 Base Camp #2

Open rjglasse opened 1 year ago

rjglasse commented 1 year ago

We discussed that students come with different computers/OSes and it would be a good idea to start off with a base camp module to try to get everyone to a working Bash shell. Should be short and simple and cover:

lhw-1 commented 1 year ago

I am assuming the knowledge base of students after their first semester in NUS Computer Science from my own experience, as well as what I have heard from my peers / juniors.

For Mod 0, we should come at it from the angle that their knowledge base in Computer Science consist of the basic courses taken in the first semester:

And they will be eager to learn about / prepare themselves for the next major hurdles in their journey:

From that perspective, I can identify 4 main points that I think may be worth addressing on this page, incorporating what you've mentioned @rjglasse:

  1. What is coming up next? Introduce them to the infamous unholy trinity of Level-2000 CS courses - CS2030S, CS2040S, and CS2100. We don't need to / want to delve too deeply into these courses and what they teach, so I think a small mention and a link to the respective course websites would be sufficient for guidance. In terms of bridging content, more reference to CS2030S (and CS2040S if possible) can be made here and there throughout the rest of the CS0010S course instead of here.

  2. What can I do next? Having gone through CS1101S, students would be familiar with the idea of programming to solve small problem sets. This is our chance to briefly showcase the scope of what is possible through programming - link it to NUSMods website (a student-run initiative), link it back to Source Academy (a student-drive project), and maybe link it to Orbital or Digital startups born from NUS SoC. Give the students a global overview of what is possible, yet is still out of reach for the time being.

  3. How do I do that? Here is where we introduce them to the set of tooling that we want to teach - a simple table of contents for the three units, with a brief overview of topics. We should take the time to explain how these three can help form the basis of larger software projects that are no longer limited to the Source Academy IDE.

  4. But how do I do that? And here is where we give them their main task of the week - set up their computer for simple development. Students who have Linux and Mac OS can use their Unix terminal as-is, so the majority of the issues will likely come from Windows users, who would have to deal with WSL2 (unless they are willing to learn to dual-boot 😁). For the first iteration, we can link to a tutorial on how to setup WSL2 Ubuntu on Windows 10 / 11 (for example, this guide for WSL2 on Windows 10), and for subsequent iterations, we can get feedback from students on what we would want to include.

*Alternative to (4): We can use some online Linux terminals (such as this one), though this is more of a band-aid solution than anything, and not preferred for short-term.

And I think these main 4 points can be the starting content for Mod 0 - more akin to a FAQ rather than a whole unit, but I think it should provide a nice, light overview for their journey ahead. NUS CS freshmen, after CS1101S, do worry quite a bit about what happens next (they hear about CS2030S, CS2040S, CS2100, as well as Orbital, and all the other modules they can / need to take), so some structured guidance may already serve as incentives for them (but sticking to advice and not recommendations, we don't want to over-influence their decisions on courses to take).

I am envisioning this module consisting of 4 units (including Mod 0) that nicely fits into the 4-week winter holidays, with each unit being covered in each week (and the first week can be purely for setup as a breather of sorts).

rjglasse commented 1 year ago

Great! This is a really nice way to contextualise the course for NUS SoC Sem 1 students :) #AddedValue

I agree this should be light enough to get through quickly, but also engaging to keep them onboard for the next three modules.

On the alternatives, are there any decent computer labs that we can recommend they use? I get the feeling students will focus on their own laptop, but perhaps worth mentioning the importance of not letting your cursed environment get in the way of your progress! After all, this will be a life of cursed environments; yours, your colleagues; your families!