First Cycle - Faculty of Engineering - Computer Engineering (English)
Y : Year of Study S : Semester
Course Unit Code Course Unit Title Type of Course Y S ECTS
CSE4034 Advanced Unix Programming Compulsory 4 7 5
Objectives of the Course
This course provides students a hand-on introduction to UNIX programming topics such as standard application programmer interfaces, concurrent programming, UNIX processes and threads, shell programming, UNIX interprocess communications, client/server designs, and application portability.
Learning Outcomes
1 program sockets to comminate over network
2 ability to to use threads
3 abiliy to write unix network programs
4 ability to write unix system programs
5 become familiar with internals of unix operating system
Mode of Delivery
Formal Education
Recommended Optional Programme Components
Course Contents
Files, signals, processes, threads, Using System Calls, Error Handling, UNIX Standards, Fie I/O, Advanced File I/O, Terminal I/0,
basic ,interprocess communications, advanced ,interprocess communications, Networking and Sockets,signals and timers

Weekly Detailed Course Contents
Week Theoretical Practice Laboratory
1 Fundamental Concepts, Files: Programs, Processes, and Threads, Signals, Process-IDs, Process Groups, and Sessions, Permissions, Other Process Attributes, Interprocess Communication
2 Using System Calls: C (and C++) Bindings, Other Language Bindings, Guidelines for Calling Library Functions, Function Synopses, Error Handling,. Checking for Errors
3 UNIX Standards, Evolution of the API Standards, Asking the System What It Has, Checking for Options, sysconf System Call, pathconf and fpathconf System Calls, Common Header File
4 Basic File I/O
5 Advanced File I/O
6 Terminal I/0
7 Basic Interprocess Communication
8 midterm
9 Networking and Sockets I Advanced Interprocess Communication
10 Networking and Sockets I
11 Networking and Sockets II
12 Signals and timers I
13 Signals and timers II
14 Processes and threads I
15 Processes and threads II
16 Final Study
17 Final Exam
Recommended or Required Reading
Advanced Programming in the UNIX Environment, R. Stevens, Addison Wesley
Advanced Unix Programming,Marc J. Rochkind,
Planned Learning Activities and Teaching Methods
Lecture Notes
some Kernel Projects
Term (or Year) Learning Activities60
End Of Term (or Year) Learning Activities40
Term (or Year) Learning ActivitiesQuantityWeight
Midterm Exam130
Homework Exam440
End Of Term (or Year) Learning ActivitiesQuantityWeight
Final Exam1100
Language of Instruction
Language Codes
Work Placement(s)
Workload Calculation
Activities Number Time (hours) Total Work Load (hours)
Theoretical 14 3 42
Midterm Preparation 1 10 10
Final Preparation 1 15 15
Home Work 4 6 24
Project 1 30 30
Total 21 64 121
Contribution of Learning Outcomes to Programme Outcomes
PO 1PO 2PO 3PO 4PO 5PO 6PO 7PO 8PO 9PO 10PO 11PO 12PO 13PO 14PO 15PO 16
LO 10000000000000000
LO 20000000000000000
LO 30000000000000000
LO 40000000000000000
LO 50000000000000000