Qualified Writers
Rated 4.9/5 based on 2480 reviews

100% Plagiarism Free & Custom Written - Tailored to Your Instructions

Software Development Tools

Getting started

The Current Students websiteprovides links to essential information which will assist you in your studies at USQ. Use this site as a reference point to find information on:

• getting started

• organising enrolment

• assignment

• learning support

• student services

• student support

• opportunities

• graduation and beyond


Welcome to the course CSC2408, Software Development Tools. The aim of this course is to give you a sound basic knowledge of the most important tools available under the Unix operating system. This is particularly important as many of the courses which you will undertake require use of Unix, and appropriate use of the tools provided will make your practical work much easier to complete. Although the focus of this course is on Unix tools, many of the tools that you will use are generic. That is, tools of very similar functionality, though most likely with a different interface, exist under other operating systems.Hence Unix-specific knowledge gained in this course can be transferred later to other operating environments.A look at the table of contents of the Study Book will indicate the topics covered. Note that installing Linux is not an assessable part of the course — we assume that you have used the materials available on the Departmental DVD-ROM set to install Linux.This course is user-focused; we concentrate entirely on tools used by the general user, rather than the system administrator. System administration is covered by another course by name of System and Security Admin-istration.

Course Organization

The Study Book together with the Study Schedule on page 10 of this book are your main guides to completing this course. You should work through the Study Guide at the rate described in the Study Schedule. Many of the exercises in the Study Book must be completed and handed in for assess-ment. It is strongly recommended that you attempt all exercises, whether or not they are assessable. Be aware that skills and knowledge gained from completing non-assessable exercises may still be examined in the examina-tion.

Resource Materials

Study Book

This is your primary reference. It contains some original material which will be needed to complete exercises, but most of the study material is derived from the textbook. The Study Book contains a large number of exercises; many of these must be completed and handed in for assessment.

Text book

There are a number of excellent texts about the Unix operating system.Some are brief introductions, while others are much wider in scope. Some texts also include some programming guidance. We have chosen the A Prac-tical Guide to Linux Commands, Editors, and Shell Programming by Sobell.This is an excellent book. It is perhaps less tutorial in style than some other books, but it contains a wealth of detailed, well organized informa-tion. While it is not the appropriate choice for someone wanting a quick introduction to Unix, it is ideal as a long term companion.You may choose to use or consult other Unix texts rather than the recom-mended text. This is acceptable and as long as you are able to complete the exercises and can cover the conceptual material contained in chapters 2, 3 and 4.


These are supporting documentation not covered by the textbook. Also included for your convenience are copies of some Unix man pages. The largest part of the Readings is the complete GNU Make manual, which you should find useful in many other courses.

Course DVD-ROM

The course DVD-ROM contains a complete pre-installed Virtual Debian system created from the Department’s Debian/GNU Linux Distribution.This DVD-ROM is for emergency use only. It is for students having trouble installing Debian Linux on their computer—they will have access to a Linux distribution that will allow them to do the exercises and assignments without falling behind—while they sort out the problems of their installation.A virtual operating system is no substitute for an installed operating system— remember this is not the only course you will do that will require access to a Linux operating system—it is far better to install the Operating System rather than rely on a virtual system.


All course material is available from the Course Home Page accessible via the USQStudyDesk

This is important!

The course webpage described above is your primary point of contact with the university for this course. You can submit as-signments via this site, and also retrieve results and feedback.


You are required to complete three (3) assignments and an examination. Details of due dates and weighting appear in the Table below and in the assignment specifications later in this book. The course specification can be accessed via the course home page. As there are three(3) assignments you must complete them in a timely man-ner. In particular, you must ensure that you install Linux early in the semester so that you can proceed with the assignments.

What and how to hand in

The course webpage contains a link for you to submit an assignment. Penal-ties will apply for late submissions (see the course specification).Normally Do not submit via email. You, however, need to contact the examiner to get a permission if you are restricted from the Internet.

Here is a good way of creating the assignment text file (the first of the two items above). Have two terminal or windows open on your screen. One is a standard window used to type in the commands and inspect the result. The second one contains an editor session. Now try out the commands needed for the assignment in the first window; when you get it right highlight (click and drag the left mouse button) the command and its response. Then paste into the editor session using the middle mouse button. If the text you want to highlight is longer than a screenfull either copy and paste a screenfull at a time or do the following to highlight it (we assume a three button mouse) before a single paste operation.

• Scroll up in the window using the middle mouse button while pointing at the scroll bar.

• Highlight the initial part of the text by click and dragging with the left mouse button.

• Scroll down to the end of the text to be selected.

• Extend your initial selection by click and dragging the right mouse button.

How to Lay Out Assignments

The powerful text editor vim will be introduced in this course, you hence have to use vim (or vim) to edit all three assignments. The submission by any other word processing software package(such as Microsoft Word or Writer) are NOT acceptable. In addition, you have to use LATEX to process A2 & A3 before making submission for grading.

Suppose a Question in an Assignment is What is inode?, your answer to it should indicate clearly which question using some suitable marker like


+ Question 2: What is an inode?


inode is a data structure that contains information about a file. An inode for a file contains the file’s length, the times the file was last accessed and modified, It is vitally important that your assignment is clearly laid out. It must be a straightforward matter for the examiner to determine that you have completed each question satisfactorily. We want quality not quantity, nor the amount of time you sent on it. Poorly organized submissions will be rejected.

Assignment Results and Feedback

Assignment results will be posted on your StudyDesk. It is your responsi-bility to check the assignment link regularly to determine your result.

Course Support

Support for this course is available for all enrolled students. The main avenues for help, in order, are

• The discussion forums on the course web pages. Any query posted to the course forums should be answered by anyone who can. It is not just to be a forum for the lecturer of the course but as a general communication forum for all the students in the course.

• If you need to communicate to the examiner of the course then send email via message facility available on the course web pages.

• You can also communicate to the lecturer of the course via Ask USQ

– from the homepage: UConnect > UAsk > Ask USQ.

Study Desk

Your StudyDesk in UConnect gives access to a home page for every course in which you are currently enrolled. Content available from the course home page will vary according to the teaching requirements of the course, but may include:

• course materials and resources,

• electronic discussion facilities,

• access to past examination papers.

As each course has specific learning requirements, availability of these fea-tures will vary between courses.


UConnect gives access to the Library and the Academic Learning Support site, as well as the Quick Links list of University sections and services.

Study Schedule

The following table contains a recommended study pattern which will see you handing in all there assignments on time.The first five weeks are probably a little easier than the later weeks. This allows you plenty of time to get used to Linux, which you must do as soon as possible. Weeks 6–8 will be pretty hard going, as other assignments will be no doubt due as well during this period. If at all possible you should try to “get ahead” of this schedule. For instance, try and finish assignment 1 early, and then make a start on assignment 2 as soon as possible. This also applies to assignment 3, as there is little time between handing in assignment 2 and when assignment 3 is due.

Assignment 1

Question 1. (10 marks)

Assume that a file’s permissions give you read and write access.

• What is the difference between ls -l and ls -ld?

• If a directory has “r” only access, can you change into the directory?

• If a directory has “x” only access, can you list the content of that directory?

• What operations can you perform on the file if it is in a directory which has “r” (read) only access?

• What operations can you perform on the file if it is in a directory which has “x” (execute) only access?

Question 2. (10 marks)

Answer the following questions about regular expressions (note not globing ), give examples if necessary.

• what is the difference between and ab*cd?

• what is the difference between ab.*cd and abb*cd ?

• what is the difference between ^abc and ^abc$?

• what is the difference between [abc]d and [^abc]d?

• What is the difference between [A-Z][_a-zA-Z0-9]* and [A-Z_][a-zA-Z0-9]*?

(Note the regular expression “x*$” could be described as a line has “zero or more x at the end of the line”.)

Question 3. (10 marks)

• Give the command-line of using find to list all the files having specific username in the current directory

• Give the command-line of using find to list all the subdirectories in the current directory

• Use find to produce a long ls listing of all files in /usr/bin that are more than 750Kb long. Give all the arguments and options in the following command-line

find ..... -exec ls -l {} ;

Note that pay special attention to the arguments or options. The semicolon must be escaped, but not the {}.

Question 4. (10 marks)

Create a big file (If you don’t know how to create a big file, try ls -l /usr/bin > bigfile). Create two copies of it using cp, and call them big1 and big2.

• Give the command-line of compressing big1 using gzip (should pro-duce big1.gz).

• Compress big2 using bzip2(should produce big2.bz2).

• Give the command-line of comparing the sizes of the compressed files

(big1.gz and big2.bz2) and the original (bigfile) using ls -l

• Give the command-line of checking the file type of compressed files and the original.

• Give the command-line of displaying the contents of big1.gz using zcat and big2.bz2 but using bzcat without uncompress them. (You may pipe the output to head -10 to avoid lots of output).

Question 5. (10 marks)

• Use tar to create an archive (don’t use the z or j option) of all the files in the current directory.

• Compress the tar file with gzip.

• View the contents of archive with gunzip -c gzipped-tar-file | tar tfv -

• View without using gunzip but use the tar instead. (Hint: find the right option to use from the man page).

• Create a subdirectory of the current directory.

• Use tar to unpack the archive into that directory at the current di-rectory.

Question 6. (10 marks)

Assume you have a text file called file. Explain the following command-lines.

1. sed "s/the/a/g" file

2. sed -n "s/[A-Z]/&/gp" file

3. sed "32,45 s/[()]//g" file

4. sed "/^$/d" file

5. sed "s/([0-9])-([0-9])/12/g" file

6. sed "80q" file

For example, sed ’s/fox/ox/g’ file will replace all occurance of fox with ox and not the just the first one in file.

Price: £109

100% Plagiarism Free & Custom Written - Tailored to Your Instructions