3 ms·
A suggestion of the lab course "Practical Computing". I have extended and revised a list I posted in response to a different thread. You could spend about 1 wee
by mikewarot 5y ago
A suggestion of the lab course "Practical Computing". I have extended and revised a list I posted in response to a different thread. You could spend about 1 week on each.
Spend 10-30 minutes or so the first day talking about the wild ride that is hardware improvement up to the present.
Show them how to use VirtualBox, or some other platform to make Virtual machines, install an OS, etc. Explain what a virtual machine is.
Show them how to make backups, and test them. They need to have confidence that they can recover, and can't damage things beyond repair.
Show them how to use apt-get to install and remove things. This is essentially giving them all of the open source software in the world.
Show them how to use keywords with google, especially -searchterm. This will aid them when they want to find things. Teach them about the "magic words" and how to find them... i.e. annotation instead of markup, that kind of thing.
Set them up a git repository and Notepad++. Teach them how to use it, along with GitHub or some equivalent. Just use plain text until they understand how it all works. After all, source code is merely executable collated knowledge that the compiler happens to accept. This gives them a platform for working with files that they can use as a foundation, instead of the stack of sequentially numbered zip files we had to use in the 1980s.
Walk them through their first pull request and fork. Show them the value of good communication, and set some expectations about working with others.
Set them up with Excel or the Open Equivalent. Show them how purely declarative programming works. Then show them how macros work. Everyone should know how declarative programming works.
Show them how double entry book keeping works. How errors in entry are detected and corrected.
Show them your favorite programming language. Explain how you came to value it, it's strengths and weaknesses. Show them, if possible, some of your code.
Show them lisp, forth, basic and prolog, and explain the strengths and weaknesses of each.
Show them how test driven development works. Make sure they know how to write good tests.
Show them how gnu readline works, have them read the manual for it, and bash (this one is a new thing to me, as an old windows user. You would not believe how powerful that thing is)
For the love of all that is good in the world, teach them how to name variables correctly, how to write useful comments, and how to smell code.
Teach them pair programming, the experience of a few hours can help them skip months of grief. It can be quite a bit of fun to show your kids something new. Don't be surprised when they return the favor.
Most of those are elements that are, as someone pointed out in the other thread, CS adjacent. Outside of the theoretic understanding of CS, I think that being able to wrangle a system is something that everyone should be able to do. Just as EE students should be able to build a power supply, learn that the Red wire is positive (unlike accounting), etc. Think of this as lab time.