Home > Undergraduate > CITS4407 Open Source Tools and Scripting   



Why do this unit?

Shell scripting was first developed in the 1970's/1980's to help systems administrators deal with the many repetitve tasks associated with running the computer systems of the day. Since then, there has been the advent of the Open Source software movment, and the creation of numerous Open Souce tools for a range of applications across programming and data science. Scripting provides a ready (quick/cheap) way of combining those tools, for rapid prototyping and first-pass data analyses.


  • Understand what is, and what is not, Open Source software, and get an appreciation for the benefits of the Open Souce approach to software development.
  • Be able to confidently write small shell applications based on open source programs, to automate repetitive tasks and for rapid prototyping of data analyses.

CITS4407 and CITS2003

This unit was originally designed as CITS4407 for the Masters of Information Technology course, but the need was recognised for an undergraduate offering for more advanced students. Thus, the two units are being offered together. However, in places you can see references to CITS4407, e.g. a link to the CITS4407 labs. While the lectures will be for both classes, there will be different final exams and assignments. On the other hand, the labs will be for either class, though those who are timetabled to be there will have priority.

Contacting me (unit coordinator)

Unit Co-ordinator:Assoc. Prof. Michael Wise
Email: [email protected]
Consultation Hours: Wednesdays 11am
Rm 1.18, CSSE Bldg
Other times available, just email me first, please, to arrange a mutually convenient time.
Please note that I am employed half-time at UWA, so generally unavailable on Tuesdays or Thursdays

Technology Issues

Computational Technology

This unit takes place in the world of Open Source computing, i.e. Unix/Linux. The only computers that are capable of properly running Linux are laptop computers or desktop computers; due to their operating systems, smart-phones and tablet computers will not be up to the task. Similarly, there are several competing implementations of shell programming languages and versions of Linux, so for this unit we will be standardizing on the Ubuntu flavour of Linux, with Bash as the shell and GNU shell tools.

The Bash/Ubuntu/GNU environment specified for this unit is available on the student computing facilities in the Department of Computer Science and Software Engineering, which you are welcome to come and use. That said, if you have your own device, could you please bring it to lectures as there will be interactive compponents to nearly all of the lectures. An early lecture and lab will be about how to set up your Windows or Apple Mac computer for this unit.

Communication Technology

Unfortunately, there is no single communications/content delivery technology available via the University that quite covers all aspects of this unit, particularly given the combined class, so the following is planned.
  • For any important announcements I will use the UWA email access provided via LMS announcements. You can go back over past announcements by logging into the LMS page for this unit.
  • The first test will be done via LMS, with Teams invigilation. On the other hand, the main exam at the end of the unit will be face-to-face, now that that is, once again, the assumed mode of instruction.
  • For the less important announcements, or discussions where you can raise questions or respond to postings, please use helpOSTS. The attraction of LMS announcements and helpOSTS is that postings end up in your email, which means you don't have to log regularly into LMS, for example, just to check if there have been any postings. HelpOSTS will be shared by both units, as the questions will, very likely, be the same. The attraction of helpOSTS is that it is an interactive forum, where you can ask questions or post suggested solutions to other peoples questions.
  • The online labs will be conducted via Teams.

Overview of the Assessment

The overall assessment scheme is:
  • 1hr timetabled 1hr online test, due in Week 7 (10% of the final mark)
  • First assignment, due on the Friday of Week 8 (20% of the final mark).
  • Second assignment, due on the Monday of Week 12 (20% of the final mark)
  • End of semester face-to-face test, exam period (50% of the final mark)
For all the details on what is due when, and associated links, please see the Weekly Schedule.


The arrival of Covid19 in 2020 turned things upside-down, but now that we we are in the the post-Covid new-normal, the university has gone back to primarily face-to-face teaching. In particular, lectures will now be face-to-face, though also recorded and made available for subsequent down-loading and review via Echo360, which you can reach from the LMS page for this unit.


It is expected that you will act professionally at all times, both face to face and via electronic media. Please see UWA Code of Conduct, which is founded on the University Code of Ethics.

It is also expected that you act ethically in your studies. You will have completed the Academic Conduct Essentials unit, which emphasises issues around plagiarism. There is also a link one the Resources page to a referencing guide (from MIT) specifically for code. However, in addition to that, please be aware of the issue of Contract Cheating, also known as Commercial Cheating Services, which are illegal in Australia. If you've not head of them before, this is where you pay someone else to do your work. Please, please don't go there!

On 27 February, the University released a policy statement on the appropriate and inappropriate used of AI systems, such as GPTChat, in courses. Please read it carefully. However, in additional to the ethics of the situation, if you don't do the work yourself you will struggle to pass the exams.

Department of Computer Science & Software Engineering
The University of Western Australia
Last modified: 27 February 2023
Modified By: Michael Wise