Week | Lecture recordings available on Thursdays | Practical work |
---|---|---|
Week 1 Mon 24th Feb |
Introduction and administrivia
Introductory discussion about Open Source software, and its history. Reading to be discussed in Week 2:
|
No practical work |
Week 2 Mon 2nd Mar |
An introduction to basic commands
Starting with discussion on last week's reading. Online documentation; Command switches and arguments; Basic commands to navigate the file-system, make new files and directories. |
Exercises #1 |
Week 3 Mon 9th Mar |
Managing text files
File types and extensions; Displaying and searching text files; Extracting data; Simple input and output redirection, appending to files. Pipelines of commands; filtering commands; viewing and extracting data from multi-column textfiles, using head, tail, cut, colrm, sort. |
Exercises #2 |
Week 4 Mon 16th Mar |
Lecture and Workshops cancelled this week
|
|
Week 5 Mon 23rd Mar |
Text editing and shellscripts
Using a simple (and yet powerful) text editor - vi. Writing and executing shellscripts. Environment variables; Passing arguments to shellscripts. |
Exercises #3 |
Week 6 Mon 30th Mar |
The shell as a programming language
An introduction to the shell as a programming language; the exit status and conditional execution; if statements; simple looping with while and for statements; simple arithmetic within the shell. |
Assignment 1 released |
Two non-teaching weeks: Mon 6th - Sun 19th April
|
||
Week 7 Mon 20th Apr |
Shell control structures
The shell's hereis input redirection; collating and plotting data with Google Charts. Shell functions; globbing; while and case statements; review of the many forms of quoting; command substitution; reading input; generating output. |
Assignment 1 due 9am Mon 20th Apr Exercises #4 |
Week 8 Mon 27th Apr |
Regular expressions
Commands aware of regular expressions - grep and sed; programmatically modifying files and text streams; programming through pattern-matching using AWK. |
Exercises #5 |
Week 9 Mon 4th May |
Using make
Managing project building and dependencies with make | Assignment 2 released |
Week 10 Mon 11th May |
File-system attributes
File attributes; hard and soft (symbolic) links; archiving files with zip and tar; compressed archives; passing 'binary' information through pipes, and to subshells. |
|
Week 11 Mon 18th May |
Reflection
On the benefits and pitfalls of scripting and a small-tools approach; what works well, and what not; and if it could all be redesigned again? |