CS 193 was a very low effort class (1cr), where you could follow the command by command instructions and perform all the tasks necessary to pass.
Unfortunately tools like git, vim, and shells all possess philosophies and concepts that are very hard to grasp without context, and constant use.
We were on multiple occasions told the mantra, add-commit-push, which I will say is enough for basic git usage, but since pretty much none of the subsequent classes used git to any capacity, I would assume many students lost all familiarity within the next semester (Makefiles that automatically git added and pushed code were used for submitting code).
I also think most people were hindered by vim, lacking sufficient instruction but still being presented it as the primary option.
I think if you’re going to implement a similar class / program, the tools really have to have uptake beyond a single course.
Sidenote, the different shell types weren’t covered in my semester, we just used bash / dash.