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 Thursday 3pm-4pm, Robert Street Lecture Theatre via Zoom 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
and sample solutions and discussion
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
and sample solutions and discussion
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
and sample solutions and discussion
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 and while statements; case statements; looping; reading input; generating output.
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; command substitution; the many forms of quoting; arithmetic within the shell.
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
Version control with git
Problems needing version control; storage and distribution of files; using git to manage programming projects; multi-person collaboration.
Assignment 2 released
Week 10
Mon 11th May
Using make
Managing project building and dependencies with make
Week 11
Mon 18th May
File-system attributes
File permissions, hard and soft (symbolic) links; archiving files with zip and tar; compressed archives; passing 'binary' information through pipes, and to subshells;
Week 12
Mon 25th 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?
Assignment 2 due
5pm Fri 29nd May

This Page

Written by: Chris.McDonald@uwa.edu.au