| Week | Objectives and Tasks | Labs | 
 
 
   | Week 1: 5 - 8 september
 (monday is a holiday)
 
 | Course introduction 
     Professor introductionHow to be successful. Grades don't matter, hard work does.A bad start will almost always lead to a bad finish.Hardware requirements, laptop strongly recommendedCourse policiesWhat is a computerWhat is software, source codeWhat is open sourceDifferent Licences and why they matterShort Linux historyLinux distributionsWho uses Linux | Course Introduction | 
 
   | Week 2: 11 - 15 september
 
 | Workstation setup 
     VirtualizationInstall VirtualBox and a Linux Mint Workstation VM. Including GuestAdditions.Work in full screen.Make snapshots, and backups.Experiment with system settings, appletsFirefox for web browsingThunderbird - connect to student emailInstalling extra softwareFile managerGraphical text editorTerminalls, cat, less, cdHow to submit labs in this course | Lab 1 | 
 
   | Week 3: 18 - 22 september
 
 | Linux terminal 
     Why a terminal is useful, and used all the time.Command arguments; revisit lsHidden filesman pages: search techniques, scrolling, quittingNever ever use Ctrl+z for any reason.Ctrl+c and wait, or close the terminal if that doesn't work.pwd, mkdir, tree/find, rm, mv, cp and their common argumentsCase sensitivity for file names, command argumentswget, tar to extract sample files and directory structuresCommand history, history commandReading error messages. They're not always obvious, and on rare occasions they are plain wrong.Minimal vi: modes, move cursor, save and exit, exit without saving. | Lab 2 | 
 
   | Week 4: 25 - 29 september
 
 | Paths, symbolic links 
     root directoryAbsolute pathsRelative pathsYour home directoryRelative-to-home pathsRevisit ls, cat, less, pwd, mkdir, rm, mv, cp with more complicated pathsCreating and using symbolic links echo $PWD, export | Lab 3 | 
 
   | Week 5: 2 - 6 october
 
 | Wildcards, quotes 
     *?Single & double quotes to work with filenames with spacesBack-quote does something elseRevisit ls, cat, mkdir, rm, mv, cp with spaces and special charactersMismatched quotesQuotes to work with filenames with special characters, and other quotesVariables in single, double quotes | Lab 4 | 
 
   | Week 6: 10 - 13 october
 (monday is a holiday)
 
 | Catch-up week |  | 
 
   | Week 7: 16 - 20 october
 
 | Evaluation |  | 
 
   | Study Week: 
 23 - 27 october
 |  | 
  
   | Week 8: 30 october - 3 november
 | Standard input/output/error 
     New commands: grep, head, tail, wcEvery Linux application has STDIN, STDOUT, STDERRRedirect STDOUT to fileRedirect STDERR to file Redirect STDERR to /dev/nullMany commands can read from STDIN. E.g.: cat, less, tar, grep, head, tailThe STDOUT from one command can be piped to the STDIN of another | Lab 5 | 
 
   | Week 9: 6 - 10 november
 
 | Binary, permissions, boolean logic 
     What is binary and why it mattersRepresenting numbers from 0 to 255 as bits in a byteRepresenting numbers from 0 to 7 in 3 bitsUser, group, others permissions for filesUser, group, others permissions for directoriesPractice using file and directory permissionsBinary AND/ORRunning multiple commands at the same time with ;,&&,|| | Lab 6 | 
 
   | Week 10: 13 - 17 november
 
 | SSH, SCP 
     Create an account on ops345.ca for ssh practiceThe "server" conceptUsing ssh to control a remote Linux serverRemote credentials don't need to match local credentialsPermissions work the same way, they apply to the user who is logged inPractice with permissions on files you own and files you don't ownCopy files between Linux machines using scpCopy directoriesNote how ownership applies to files transferred between systems | Lab 7 | 
 
   | Week 11: 20 - 24 november
 
 | Trivial shell scripting 
     echo commandHello world shell script with shebang line and optional .sh extensionSimple scripts using commands from the course so farSample scripts simulating repetitive human-error-prone tasksSimple backup scriptSimple "print report" script | Lab 8 | 
 
   | Week 12: 27 november - 1 december
 
 | Still simple shell scripting      
    Bash is not a general-purpose programming languageif/elseReturn codesUsing existing and creating new variablesBetter versions of scripts from previous week | Lab 9 | 
 
   | Week 13: 4 - 8 december
 
 | Review week |  | 
 
   | Week 14: 11 - 13 december
 (wednesday is last day)
 
 | Exam |  |