Explore UCD

UCD Home >

COMP20200

Academic Year 2024/2025

UNIX Programming (COMP20200)

Subject:
Computer Science
College:
Science
School:
Computer Science
Level:
2 (Intermediate)
Credits:
5
Module Coordinator:
Assoc Professor Alexey Lastovetsky
Trimester:
Spring
Mode of Delivery:
On Campus
Internship Module:
No
How will I be graded?
Letter grades

Curricular information is subject to change.

This course focuses on introducing students to the core concepts of the Unix operating system and how to programme this system. Today, Unix and Unix-like operating systems are ubiquitous; they are widely used in servers, embedded devices and have a growing desktop and mobile market (Linux, Mac OS X, Android etc.). This module will teach students how to develop applications for such systems, assuming no other software layer but OS. Students will improve their existing C programming language skills and will learn some key POSIX APIs to support designing and writing programs in a portable, maintainable fashion. They will learn how to write mutlithreaded and multi-process applications as well as some basics of Unix networking. All this will be done through the Unix command line, and students will learn basic tools and how to write shell scripts to automate common tasks.
Students will need a version of Unix installed on their own laptop (ideally Linux), help with this will be provided in the first lab.

About this Module

Learning Outcomes:

On completion of this module students should be able to: (i) Understand the concepts and structure of the Unix operating system; (ii) Be able to use the core utilities and perform administrative tasks; (iii) Write and understand advanced C programmes; (iv) Write shell scripts; (v) Know how to use source-code packaging tools (GNU build system).

Indicative Module Content:

History, the origin and the current state of Unix
Introduction to Unix shell
Intro to kernel, virtual memory, process image
File system, I/O, I/O in C
Virtual memory, process image and memory management in C
Shell, command arguments, program arguments in C
Kernel and system calls in C
Compilation, debugging, make
Threads and multi-threaded programming
Processes, signals, inter-process communication, networking
Shell scripting

Student Effort Hours:
Student Effort Type Hours
Autonomous Student Learning

72

Lectures

24

Tutorial

12

Practical

12

Total

120


Approaches to Teaching and Learning:
The logic and basic concepts of each topic will be presented and explained at lectures. Lab exercises will be used to acquire basic practical skills. In addition, students will work on individual practical assignments, each requiring the development and implementation of a Unix program or script and developing advanced Unix programming skills.

Requirements, Exclusions and Recommendations
Learning Recommendations:

Students taking this course should have already successfully completed an introductory C programming course.


Module Requisites and Incompatibles
Equivalents:
UNIX Programming (COMP20150)


 

Assessment Strategy
Description Timing Component Scale Must Pass Component % of Final Grade In Module Component Repeat Offered
Exam (In-person): Written examination End of trimester
Duration:
2 hr(s)
Standard conversion grade scale 40% No
60
No
Assignment(Including Essay): Four programming assignments Week 6, Week 8, Week 11, Week 12 Standard conversion grade scale 40% No
40
No

Carry forward of passed components
No
 

Resit In Terminal Exam
Autumn Yes - 2 Hour
Please see Student Jargon Buster for more information about remediation types and timing. 

Feedback Strategy/Strategies

• Feedback individually to students, post-assessment
• Online automated feedback

How will my Feedback be Delivered?

Assignments' marks are released to students with comments. Student can ask TA and demonstrators for additional individual feedback on their assignments.

Name Role
Dr Hamidreza Khaleghzadeh Tutor

Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Spring Lecture Offering 1 Week(s) - 20, 21, 23, 24, 25, 26, 29, 30, 31, 32 Mon 11:00 - 11:50
Spring Practical Offering 1 Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 Tues 16:00 - 17:50
Spring Lecture Offering 1 Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 Wed 12:00 - 12:50