IMO it’s better to focus on fundamentals like math/algorithms that can be applied in multiple areas rather than specific tools.
IMO it’s better to focus on fundamentals like math/algorithms that can be applied in multiple areas rather than specific tools.
Everything in a CS curriculum is easily Google-able.
Being functionally illiterate at the command line is harmful for productivity, so I think it's deserving of some in-class attention.
Imagine handing this to a person who's never heard of a shell, doesn't know how to `cd` or `ls`:
https://www.gnu.org/software/bash/manual/html_node/What-is-a...
> 1.2 What is a shell?
> At its base, a shell is simply a macro processor that executes commands. The term macro processor means functionality where text and symbols are expanded to create larger expressions.
> A Unix shell is both a command interpreter and a programming language. As a command interpreter, the shell provides the user interface to the rich set of GNU utilities. The programming language features allow these utilities to be combined. Files containing commands can be created, and become commands themselves. These new commands have the same status as system commands in directories such as /bin, allowing users or groups to establish custom environments to automate their common tasks.
"Macro processor?" "Expressions?" "Unix?" "Command interpreter?" "GNU utilities?" "Directories?" (you mean folders?) "/bin?" "Environments?"
My undergraduate advisor said since the second-semester lab was the basic lab, the first-semester lab had to be the basement lab.
Not in my experience, it isn't. Maybe for the first two years of undergrad but after that I've found that Google rapidly becomes useless.
The class almost went off the rails the first time before I realized half the students didn't know what a text editor or shell was. I ended up writing a document at a slightly lower level than this "missing semester" course (though taking some inspiration from it).
If I teach the course again, I plan to do one week shell bootcamp with "get to know your system" exercises spread throughout.
There are four quadrants of knowledge:
1) What you know you know
2) What you know you don't know
3) What you don't know you know
4) What you don't know you don't know
College is in large part about covering (4) and turning it into (2) or (1). You're describing turning (2) into (1) - you need to know what to Google in the first place.