Module Identifier COM3110  
Module Title THE UNIX ENVIRONMENT AND THE C LANGUAGE  
Academic Year 2002/2003  
Co-ordinator Dr Mora J McCallum  
Semester Available all semesters  
Pre-Requisite CO21120 , Available only to students taking the Diploma/MSc in Computer Science scheme in Singapore.  
Course delivery Other   Contact Hours. 34 hours of contact time plus about 65 hours of self study, practicals and assessment.  
Assessment Semester Exam   2 Hours   100%  
  Supplementary Exam   Supplementary examination will take the same form, under the terms of the Departments policy.    
Further details http://www.aber.ac.uk/compsci/ModuleInfo/COM3110  

Learning outcomes

On successful completion of this module, students will be able to:

Brief description

This module is designed to to provide experience of using the Unix environment and supporting tools as well as an understanding of the programming language C.

Content

1. Introduction
Overall introduction to the module.

2. Unix at the command line
An introduction to the alternative Unix shells. Shell built-in commands and commonly used external commands and editors.

3. Shell Script programming
The programming language provided by a selected Unix shell in common usage.

4. Tools of the Unix Environment
Purpose and usage of Unix environment tools such as sed, sort, uniq, awk, grep and so on.

5. Basic Concepts of "C"
History of the C language, philosophical differences between C language design and Java. Basic form of a C program compared with that of a Java program. Using the compiler.

6. Control Structures
Sequence, branching and iteration in C compared with that of Java.

7. Basic Data Structures
Review of basic data types and operators in C.

8. Functions
Discussion of ways in which functions are implemented, and used in C, including parameter passing mechanisms. Input/Output.

9. Composite Data Structures
A first discussion of Arrays in C.

10. Software Support Tools
Make, Lint, Debuggers. Libraries and library utilities.

11. C Programming Style and Portability
Language standards. Portability. Programming standards.

12. Arrays, Pointers and Functions
A discussion of pointer data types, how they relate to arrays, and how they contrast with references to Java objects.

13. Dynamic Data Structures
Implementation of various record structures and dynamic structures. Pointers. Malloc. Examples in C. Parallels will be drawn with how the internals of Java do this for you.

14. Pitfalls
Major problem areas. Design rationale of C and of Java in problem areas.

15. Further Features
C preprocessor, header files, conditional inclusion, macro substitution, bitwise operators, casts, enumeration, scope, static and external declarations, separate compilation.

Reading Lists

Books
** Recommended Text
A. Kelley and I. Pohl. (1998) A Book on C: programming in C. 4th Edition. Addison-Wesley Pub Co ISBN 0201183994
** Consult For Futher Information
Ellen Siever (Editor), Jessica P. Hekman, Stephen Figgins and Stephen Spainhour. (2000) LINUX in A Nutshell: A Desktop Quick Reference. O'Reilly & Associates ISBN 0596000251