OPS145 Weekly Schedule Newversion: Difference between revisions

From Littlesvr Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(13 intermediate revisions by the same user not shown)
Line 17: Line 17:
   <td style="border-bottom: thin solid black;">'''Course introduction'''
   <td style="border-bottom: thin solid black;">'''Course introduction'''
   <ul>
   <ul>
     <li>Professor introduction</li><li>How to be successful</li><li>A bad start will almost always lead to a bad finish.</li><li>Hardware requirements, laptop strongly recommended</li><li>Course policies</li><li>What is a computer</li><li>What is software, source code</li><li>What is open source</li><li>Different Licences and why they matter</li><li>Short Linux history</li><li>Linux distributions</li>
     <li>Professor introduction</li><li>How to be successful. Grades don't matter, hard work does.</li><li>A bad start will almost always lead to a bad finish.</li><li>Hardware requirements, laptop strongly recommended</li><li>Course policies</li><li>What is a computer</li><li>What is software, source code</li><li>What is open source</li><li>Different Licences and why they matter</li><li>Short Linux history</li><li>Linux distributions</li><li>Who uses Linux</li>
   </ul>
   </ul>
   </td>
   </td>
Line 24: Line 24:
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 2:'''<br>11 - 15 september<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 2:'''<br>11 - 15 september<br></td>
   <td style="border-bottom: thin solid black;">W'''''orkstation setup<ul>
   <td style="border-bottom: thin solid black;">'''Workstation setup'''<ul>
     <li>Virtualization</li><li>Install VirtualBox and a Linux Mint Workstation VM. Including GuestAdditions.</li><li>Work in full screen.</li><li>Make snapshots, and backups.</li><li></li>
     <li>Virtualization</li><li>Install VirtualBox and a Linux Mint Workstation VM. Including GuestAdditions.</li><li>Work in full screen.</li><li>Make snapshots, and backups.</li><li>Experiment with system settings, applets</li><li>Firefox for web browsing</li><li>Thunderbird - connect to student email</li><li>Installing extra software</li><li>File manager</li><li>Graphical text editor</li><li>Terminal</li><li>ls, cat, less, cd</li><li>How to submit labs in this course</li>
   </ul></td>
   </ul></td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 1 Newversion|Lab 1]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 1 Newversion|Lab 1]]</td>
Line 31: Line 31:
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 3:'''<br>18 - 22 september<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 3:'''<br>18 - 22 september<br></td>
   <td style="border-bottom: thin solid black;">''''''
   <td style="border-bottom: thin solid black;">'''L''<nowiki/>''inux terminal'''
     <ul>
     <ul>
     <li></li>  
     <li>Why a terminal is useful, and used all the time.</li><li>Command arguments; revisit ls</li><li>Hidden files</li><li>man pages: search techniques, scrolling, quitting</li><li>Never ever use Ctrl+z for any reason.</li><li>Ctrl+c and wait, or close the terminal if that doesn't work.</li><li>pwd, mkdir, tree/find, rm, mv, cp and their common arguments</li><li>Case sensitivity for file names, command arguments</li><li>wget, tar to extract sample files and directory structures</li><li>Command history, history command</li><li>Reading error messages. They're not always obvious, and on rare occasions they are plain wrong.</li><li>Minimal vi: modes, move cursor, save and exit, exit without saving.</li>  
     </ul>
     </ul>
   </td>
   </td>
Line 40: Line 40:
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 4:'''<br>25 - 29 september<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 4:'''<br>25 - 29 september<br></td>
   <td style="border-bottom: thin solid black;">''''''<ul>
   <td style="border-bottom: thin solid black;">'''P''<nowiki/>''aths, symbolic links'''<ul>
     <li></li>
     <li>root directory</li><li>Absolute paths</li><li>Relative paths</li><li>Your home directory</li><li>Relative-to-home paths</li><li>Revisit ls, cat, less, pwd, mkdir, rm, mv, cp with more complicated paths</li><li>Creating and using symbolic links </li><li>echo $PWD, export</li>
   </ul></td>
   </ul></td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 3 Newversion|Lab 3]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 3 Newversion|Lab 3]]</td>
Line 47: Line 47:
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 5:'''<br>2 - 6 october<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 5:'''<br>2 - 6 october<br></td>
   <td style="border-bottom: thin solid black;">''''''<ul>
   <td style="border-bottom: thin solid black;">'''W''<nowiki/>''ildcards, quotes'''<ul>
     <li></li>
     <li>*</li><li>?</li><li>Single & double quotes to work with filenames with spaces</li><li>Back-quote does something else</li><li>Revisit ls, cat, mkdir, rm, mv, cp with spaces and special characters</li><li>Mismatched quotes</li><li>Quotes to work with filenames with special characters, and other quotes</li><li>Variables in single, double quotes</li>
   </ul></td>
   </ul></td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 4 Newversion|Lab 4]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 4 Newversion|Lab 4]]</td>
Line 55: Line 55:
   <td width="20%" style="border-bottom: thin solid black;">'''Week 6:'''<br>10 - 13 october<br />
   <td width="20%" style="border-bottom: thin solid black;">'''Week 6:'''<br>10 - 13 october<br />
(monday is a holiday)<br></td>
(monday is a holiday)<br></td>
   <td style="border-bottom: thin solid black;">''''''<ul>
   <td style="border-bottom: thin solid black;">'''C''<nowiki/>''atch-up week'''<ul>
   </ul></td>
   </ul></td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 5 Newversion|Lab 5]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;"></td>
  </tr>
  </tr>
  <tr valign="top">
  <tr valign="top">
Line 74: Line 74:
   <td width="20%" style="border-bottom: thin solid black;">'''Week 8:'''<br />30 october - 3 november
   <td width="20%" style="border-bottom: thin solid black;">'''Week 8:'''<br />30 october - 3 november
</td>
</td>
   <td style="border-bottom: thin solid black;">''''''<ul>
   <td style="border-bottom: thin solid black;">'''S''<nowiki/>''tandard input/output/error'''<ul>
     <li></li>
     <li>New commands: grep, head, tail, wc</li><li>Every Linux application has STDIN, STDOUT, STDERR</li><li>Redirect STDOUT to file</li><li>Redirect STDERR to file </li><li>Redirect STDERR to /dev/null</li><li>Many commands can read from STDIN. E.g.: cat, less, tar, grep, head, tail</li><li>The STDOUT from one command can be piped to the STDIN of another</li>
   </ul></td>
   </ul></td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 6 Newversion|Lab 6]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 5 Newversion|Lab 5]]</td>
  </tr>
  </tr>
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 9:'''<br>6 - 10 november<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 9:'''<br>6 - 10 november<br></td>
   <td style="border-bottom: thin solid black;">''''''<ul>
   <td style="border-bottom: thin solid black;">'''Binary, permissions, boolean logic'''<ul>
     <li></li>
     <li>What is binary and why it matters</li><li>Representing numbers from 0 to 255 as bits in a byte</li><li>Representing numbers from 0 to 7 in 3 bits</li><li>User, group, others permissions for files</li><li>User, group, others permissions for directories</li><li>Practice using file and directory permissions</li><li>Binary AND/OR</li><li>Running multiple commands at the same time with <code>;</code>, <code>&&</code>, <code>||</code></li> </ul></td>
  </ul></td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 6 Newversion|Lab 6]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 7 Newversion|Lab 7]]</td>
  </tr>
  </tr>
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 10:'''<br>13 - 17 november<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 10:'''<br>13 - 17 november<br></td>
   <td style="border-bottom: thin solid black;">''''''<ul>
   <td style="border-bottom: thin solid black;">'''S'''<nowiki/>'''SH, SCP'''<ul>
     <li></li> </ul></td>
     <li>Create an account on ops345.ca for ssh practice</li><li>The "server" concept</li><li>Using ssh to control a remote Linux server</li><li>Remote credentials don't need to match local credentials</li><li>Permissions work the same way, they apply to the user who is logged in</li><li>Practice with permissions on files you own and files you don't own</li><li>Copy files between Linux machines using scp</li><li>Copy directories</li><li>Note how ownership applies to files transferred between systems</li> </ul></td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS245 Lab 8|Lab 8]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS145 Lab 7 Newversion|Lab 7]]</td>
  </tr>
  </tr>
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 11:'''<br>20 - 24 november<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 11:'''<br>20 - 24 november<br></td>
   <td style="border-bottom: thin solid black;">''''''<ul>
   <td style="border-bottom: thin solid black;">'''T''<nowiki/>''rivial shell scripting'''<ul>
     <li></li> </ul>
     <li>echo command</li><li>Hello world shell script with shebang line and optional .sh extension</li><li>Simple scripts using commands from the course so far</li><li>Sample scripts simulating repetitive human-error-prone tasks</li><li>Simple backup script</li><li>Simple "print report" script</li> </ul>
   </td>
   </td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS245 Lab 9 Newversion|Lab 9]]</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS245 Lab 8|Lab 8]]</td>
  </tr>
  </tr>
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 12:'''<br>27 november - 1 december<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 12:'''<br>27 november - 1 december<br></td>
   <td style="border-bottom: thin solid black;">''''''<ul>  
   <td style="border-bottom: thin solid black;">'''S''<nowiki/>''till simple shell scripting'''<ul>    
     <li></li></ul>
     <li>Bash is not a general-purpose programming language</li><li>if/else</li><li>Return codes</li><li>Using existing and creating new variables</li><li>Better versions of scripts from previous week</li></ul>
   </td>
   </td>
   <td style="border-bottom: thin solid black;font-weight:bold;">'''[[OPS245 Lab 10 Newversion|Lab 10]]'''</td>
   <td style="border-bottom: thin solid black;font-weight:bold;">[[OPS245 Lab 9 Newversion|Lab 9]]</td>
  </tr>
  </tr>
  <tr valign="top">
  <tr valign="top">
   <td width="20%" style="border-bottom: thin solid black;">'''Week 13:'''<br>4 - 8 december<br></td>
   <td width="20%" style="border-bottom: thin solid black;">'''Week 13:'''<br>4 - 8 december<br></td>
   <td style="border-bottom: thin solid black;">'''Review'''</td>
   <td style="border-bottom: thin solid black;">'''Review week'''</td>
   <td style="border-bottom: thin solid black;font-weight:bold;"></td>
   <td style="border-bottom: thin solid black;font-weight:bold;"></td>
  </tr>
  </tr>

Latest revision as of 12:06, 26 October 2023

THIS PAGE IS WORK IN PROGRESS, GO HERE for the current usable version

Note: Each professor will indicate the due dates for labs, tests and assignments for their sections. This schedule is a general guideline for week-by-week content.
Week Objectives and Tasks Labs
Week 1:
5 - 8 september
(monday is a holiday)
Course introduction
  • Professor introduction
  • How 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 recommended
  • Course policies
  • What is a computer
  • What is software, source code
  • What is open source
  • Different Licences and why they matter
  • Short Linux history
  • Linux distributions
  • Who uses Linux
Course Introduction
Week 2:
11 - 15 september
Workstation setup
  • Virtualization
  • Install VirtualBox and a Linux Mint Workstation VM. Including GuestAdditions.
  • Work in full screen.
  • Make snapshots, and backups.
  • Experiment with system settings, applets
  • Firefox for web browsing
  • Thunderbird - connect to student email
  • Installing extra software
  • File manager
  • Graphical text editor
  • Terminal
  • ls, cat, less, cd
  • How 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 ls
  • Hidden files
  • man pages: search techniques, scrolling, quitting
  • Never 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 arguments
  • Case sensitivity for file names, command arguments
  • wget, tar to extract sample files and directory structures
  • Command history, history command
  • Reading 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 directory
  • Absolute paths
  • Relative paths
  • Your home directory
  • Relative-to-home paths
  • Revisit ls, cat, less, pwd, mkdir, rm, mv, cp with more complicated paths
  • Creating and using symbolic links
  • echo $PWD, export
Lab 3
Week 5:
2 - 6 october
Wildcards, quotes
  • *
  • ?
  • Single & double quotes to work with filenames with spaces
  • Back-quote does something else
  • Revisit ls, cat, mkdir, rm, mv, cp with spaces and special characters
  • Mismatched quotes
  • Quotes to work with filenames with special characters, and other quotes
  • Variables in single, double quotes
Lab 4
Week 6:
10 - 13 october
(monday is a holiday)
Catch-up week
Week 7:
16 - 20 october
Evaluation
  • Midterm test
Study Week:

23 - 27 october

Week 8:
30 october - 3 november
Standard input/output/error
  • New commands: grep, head, tail, wc
  • Every Linux application has STDIN, STDOUT, STDERR
  • Redirect STDOUT to file
  • Redirect STDERR to file
  • Redirect STDERR to /dev/null
  • Many commands can read from STDIN. E.g.: cat, less, tar, grep, head, tail
  • The 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 matters
  • Representing numbers from 0 to 255 as bits in a byte
  • Representing numbers from 0 to 7 in 3 bits
  • User, group, others permissions for files
  • User, group, others permissions for directories
  • Practice using file and directory permissions
  • Binary AND/OR
  • Running multiple commands at the same time with ;, &&, ||
Lab 6
Week 10:
13 - 17 november
SSH, SCP
  • Create an account on ops345.ca for ssh practice
  • The "server" concept
  • Using ssh to control a remote Linux server
  • Remote credentials don't need to match local credentials
  • Permissions work the same way, they apply to the user who is logged in
  • Practice with permissions on files you own and files you don't own
  • Copy files between Linux machines using scp
  • Copy directories
  • Note how ownership applies to files transferred between systems
Lab 7
Week 11:
20 - 24 november
Trivial shell scripting
  • echo command
  • Hello world shell script with shebang line and optional .sh extension
  • Simple scripts using commands from the course so far
  • Sample scripts simulating repetitive human-error-prone tasks
  • Simple backup script
  • Simple "print report" script
Lab 8
Week 12:
27 november - 1 december
Still simple shell scripting
  • Bash is not a general-purpose programming language
  • if/else
  • Return codes
  • Using existing and creating new variables
  • Better 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