The University of Western Australia
Computer Science and Software Engineering

Department of Computer Science and Software Engineering

CITS4407 Open Source Tools and Scripting

Schedule of topics in 2020

The presentation of each of these topics will commence during each week's Thursday's lecture. This schedule is almost guaranteed to change. Please refer to this webpage (not a printed copy) when revising material.

The materials presented here do not define the whole unit. Attending lectures and reviewing their material comprises about of the effort required for this unit. The remainder of your time should be spent reading the recommended reading, and undertaking the laboratory tasks and projects.

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:
  1. The Art of Unix Programming, Chapter 1. Philosophy.
  2. Open source licenses: What, which, and why
    Learn what open source licenses are, which one to choose, and why it matters.
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
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?

This Page

Written by: [email protected]