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
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 statements; simple looping with while and for statements; simple arithmetic within the shell.
Assignment 1 released
and its Clarifications
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

and sample solutions and discussion

Exercises #4
and sample solutions and discussion

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
and sample solutions and discussion
Week 9
Mon 4th May
Using make
Managing project building and dependencies with make
Resources: lecture slides, and the calcmarks example (set of files).
Assignment 2 released
and its Clarifications
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?
Week 12
Mon 25th May
MATERIAL NOT ASSESSED IN FINAL EXAM
Version control with git
Problems needing version control; storage and distribution of files; using git to manage programming projects; multi-person collaboration.
Assignment 2 due
5pm Fri 29nd May

No laboratory session on Friday 29th.

This Page

Written by: [email protected]