Course Syllabus
Syllabus
Making the most of it
Follow the numerical sequence of training camps and the numerical sequence of tasks therein within a given training camp. Each task usually tends to build upon results from a previous task. Each training camp should take about two hours to complete (including time for taking notes). All 10 of them together, for all intents and purposes, could be treated as a 1-credit course. The material is subject to change based on feedback from students (past and current), faculty, staff, academic and industrial collaborators, technological trends and accepted/expected standards.
Seeking help
Keeping detailed notes is a very good habit to cultivate/maintain. It can save time and frustration when things go wrong. Saving meaningfully named electronic screenshots of the Terminal is another very useful habit. Notes should include the date and time, location (building, floor and room #) and the hostname of the workstation being used. External help could be limited in their absence.
Clicking the True (or Yes) button at the end of each task without actually completing it is an act of academic dishonesty and will be reported as such to the Office of Academic and Community Conduct.
Feel free to contact Dr. Gowtham (foss101-admins-l@mtu.edu) and schedule a meeting - in-person or via Zoom - if/when in need of help. He'd be happy to work with you as you work through these Training Camps. Including FOSS 101: and a brief description of the issue/problem in the subject line of such emails will expedite time to resolution. It is valuable to note that Dr. Gowtham's responses outside of our University's normal business hours may be slower. Continuing ahead without resolving an issue in any one task/module, however trivial it might be, will likely lead to many more issues in subsequent tasks/modules and making it more difficult to problem-solve. Depending on the complications of such a scenario resulting from compounding issues/errors, a particular module (or worse, the entire course) may have to be restarted.
Feedback continues to show that the exposure and experience gained in FOSS101 helps designing efficient computational workflows and in turn, improve research productivity during (and/or beyond) one's stay at Michigan Tech.
Training Camp #01
| Task #01 | Accessing colossus.it.mtu.edu and guardian.it.mtu.edu |
| Task #02 | Basic commands |
| Task #03 | Built-in reference manual for commands |
| Task #04 | Navigating the file system |
| Task #05 | Username and groups |
| Task #06 | Permissions and ownerships |
| Task #07 | Variables |
| Task #08 | SSH keys |
| Task #09 | Command history |
| Task #10 | Reflection and feedback |
Training Camp #02
| Task #01 | Introduction to Revision Control System and GitHub.com |
| Task #02 | Git - update the profile |
| Task #03 | Git - add SSH key |
| Task #04 | Git - establish local identity |
| Task #05 | Git - cloning a repository |
| Task #06 | Git - making and committing (and undoing) changes |
| Task #07 | Git - permanently deleting entities |
| Task #08 | Git - tagging a commit |
| Task #09 | Git - viewing commit history |
| Task #10 | Reflection and feedback |
Training Camp #03
| Task #01 | Creating and deleting files |
| Task #02 | Creating and deleting folders |
| Task #03 | Creating and deleting symbolic links |
| Task #04 | Copying and moving files and folders |
| Task #05 | Finding files, folders and symbolic links |
| Task #06 | Adding content to files |
| Task #07 | Spell check a file |
| Task #08 | Opening a file in read-only mode |
| Task #09 | Comparing files |
| Task #10 | Reflection and feedback |
Training Camp #04
| Task #01 | Patching a file |
| Task #02 | Integrity of a file |
| Task #03 | Finding strings in a file |
| Task #04 | Text manipulation without opening a file |
| Task #05 | Pattern recognition in a file |
| Task #06 | Combining files |
| Task #07 | Splitting a file |
| Task #08 | Compressing and uncompressing a file |
| Task #09 | Reading a compressed file |
| Task #10 | Creating and managing file archives |
Training Camp #05
| Task #01 | Adding (and testing) BASH shortcuts |
| Task #02 | Setting up symbolic links in ${HOME} |
| Task #03 | Adding (and testing) vim shortcuts |
| Task #04 | Output of one command as input for the next |
| Task #05 | Capturing the output of commands with tee |
| Task #06 | Capturing commands and their output with script |
| Task #07 | Taking the Terminal to go |
| Task #08 | Terminal mathematics - (sequence of and random) numbers |
| Task #09 | Terminal mathematics - basic arithmetic and statistics |
| Task #10 | Exit/Return codes |
Training Camp #06
| Task #01 | Data visualization |
| Task #02 | gnuplot - basics and a basic plot |
| Task #03 | gnuplot - an improved basic plot |
| Task #04 | gnuplot - partial automation |
| Task #05 | gnuplot - nearly complete-automation |
| Task #06 | gnuplot - complete automation |
| Task #07 | gnuplot - data manipulation on the fly |
| Task #08 | gnuplot - dataset with missing points |
| Task #09 | gnuplot - curve fitting |
| Task #10 | convert - different image formats |
Training Camp #07
| Task #01 | LaTeX document preparation system |
| Task #02 | LaTeX - text |
| Task #03 | LaTeX - text and equation (without a cross-reference) |
| Task #04 | LaTeX - text and equations (with a cross-reference) |
| Task #05 | LaTeX - text and table (without a cross-reference) |
| Task #06 | LaTeX - text and tables (with a cross-reference) |
| Task #07 | LaTeX - text and graphic (without a cross-reference) |
| Task #08 | LaTeX - text and graphics (with a cross-reference) |
| Task #09 | LaTeX - text and bibliography |
| Task #10 | LaTeX - modularization |
Training Camp #08
| Task #01 | Functions |
| Task #02 | Functions - with arguments |
| Task #03 | Functions - ${HOME}/bin/functions.sh |
| Task #04 | Functions - Hello, World |
| Task #05 | Functions - login counter |
| Task #06 | Functions - input validation |
| Task #07 | Functions - mathematical operations |
| Task #08 | Functions - string operations |
| Task #09 | Functions - seconds in human readable format (hh:mm:ss) |
| Task #10 | Functions - smart extraction |
Training Camp #09
| Task #01 | Scripts - Hello, World |
| Task #02 | Scripts - using a local function |
| Task #03 | Scripts - using an external function library |
| Task #04 | Scripts - LaTeX compilation with exit codes |
| Task #05 | Scripts - PDFLaTeX compilation with exit codes |
| Task #06 | Scripts - reading/parsing an input file one line at a time |
| Task #07 | Scripts - data backup |
| Task #08 | Scripts - data restoration |
| Task #09 | Scripts - sophisticated options and arguments |
| Task #10 | Scripts - semi-comprehensive automated workflow |
Training Camp #10
| Task #01 | Systems administration (SA) |
| Task #02 | SA - process management and timing things |
| Task #03 | SA - host, ping and traceroute |
| Task #04 | SA - running things at witching hours |
| Task #05 | SA - facilitating accidental learning |
| Task #06 | Downloading content from the internet |
| Task #07 | Third-party software compilation |
| Task #08 | Accessing a remote workstation |
| Task #09 | Managing SSH keys |
| Task #10 | Final thoughts and digital badging |
Course Summary:
| Date | Details | Due |
|---|---|---|