TR EN

UNIX/LINUX PROGRAMING PROGRAMME COURSE DESCRIPTION

Code Name of the Course Unit Semester In-Class Hours (T+P) Credit ECTS Credit
BIL424 UNIX/LINUX PROGRAMING 5 3 3 6

GENERAL INFORMATION

Language of Instruction : Turkish
Level of the Course Unit : BACHELOR'S DEGREE, TYY: + 6.Level, EQF-LLL: 6.Level, QF-EHEA: First Cycle
Type of the Course : Elective
Mode of Delivery of the Course Unit -
Coordinator of the Course Unit Assist.Prof. OĞUZHAN ÖZTAŞ
Instructor(s) of the Course Unit
Course Prerequisite No

OBJECTIVES AND CONTENTS

Objectives of the Course Unit: The goal is to provide the infrastructure for students to develop services offered to the operating system and services provided to the hardware.
Contents of the Course Unit: The scope and tasks of system programming include Unix and Windows architectures, services, and features; the steps in program software development; preprocessor, macros, compiler, and linker; shell environments and shell programming; system calls and library calls; processes, parent and child processes, inter-process synchronization, multiprogramming, and threads; disk operations, memory operations, and virtual memory; inter-process communication, files, pipes, message queues, shared memory, signals and semaphores; sockets, UDP and TCP sockets, remote procedure calls; client-server architectures with inter-process communication; operating system customization; and device driver development.

KEY LEARNING OUTCOMES OF THE COURSE UNIT (On successful completion of this course unit, students/learners will or will be able to)

Can program tasks to perform specific functions related to the operating system.
Can develop services offered to the operating system and services provided to the hardware.
Can manage system resources through programming.
Can perform a requirements analysis for a system based on the target platform.
Can design a system based on the requirements of the target platform.

WEEKLY COURSE CONTENTS AND STUDY MATERIALS FOR PRELIMINARY & FURTHER STUDY

Week Preparatory Topics(Subjects) Method
1 - Scope and Functions of System Programming: Traditional areas of system programming. System programming in an OS environment. History, architecture, services, and features of Unix and Windows. -
2 - A Program in a Unix Environment: Steps involved in software development of a program. Preprocessor, Macros, Compiler, Modules, Linker. Command-line parameters, Environment parameters, Shell programming. -
3 - System Calls, Importance, and Classification: System calls and library calls. System calls for Inter-process Communication (IPC) and Network Programming. System and library calls in UNIX, their general structure and interfaces. -
4 - Processes: Creating processes in UNIX. Parent and Child processes. -
5 - Usage of Processes: Fork() system call. Exec() family of system calls. Synchronization between parent and child processes: system(), wait(), exit(), etc. -
6 - Multiprogramming and Thread Basics: -
7 - Disk Operations: I/O directories and file system operations. Virtual memory. -
8 - MID-TERM EXAM -
9 - Inter-Process Communication (IPC): Purpose and usage in system programming. IPC mechanisms. Pipes as IPC: Named and unnamed pipes. -
10 - Message Queues -
11 - Signals, Semaphores, and Shared Memory -
12 - Sockets and IPC Usage: UDP and TCP sockets. Network programming. -
13 - RPC (Remote Procedure Call) -
14 - Operating System Customization: Device driver development demo applications. -
15 - General Review -
16 - FINAL EXAM -
17 - FINAL EXAM -

SOURCE MATERIALS & RECOMMENDED READING

The Linux Programming Interface: A Linux and UNIX System Programming Handbook Michael Kerrisk

ASSESSMENT

Assessment & Grading of In-Term Activities Number of Activities Degree of Contribution (%) Description Examination Method
Mid-Term Exam 1 30 Optical (Test) Exam
Homework Assessment 1 10
Practice 1 10
Final Exam 1 50 Optical (Test) Exam
TOTAL 4 100
Level of Contribution
0 1 2 3 4 5

CONTRIBUTION OF THE COURSE UNIT TO THE PROGRAMME LEARNING OUTCOMES

KNOWLEDGE

Theoretical

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Explains the fundamental engineering concepts of computer science and relates them to the groundwork of computer science.
1

KNOWLEDGE

Factual

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Uses theoretical and practical knowledge coming from mathematics, probability, statistics and various other branches of life sciences, to find solutions to engineering problems.
4

SKILLS

Cognitive

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Determines the components and the underlying process of a system and designs an appropriate computational model under reasonable constraints.
4
2
Designs a computer-aided conceptual model with modern techniques.
4

SKILLS

Practical

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Determines, detects and analyzes the areas of computer science applications and develops appropriate solutions.
2
2
Identifies, models and solves computer engineering problems by applying appropriate analytical methods.
4
3
Determines and uses the necessary information technologies in an efficient way for engineering applications.
2

OCCUPATIONAL

Autonomy & Responsibility

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Possess the responsibility and ability to design and conduct experiments for engineering problems by collecting, analyzing and interpreting data.
2
2
Possess the ability to conduct effective individual study.
2
3
Takes responsibility as a team work and contributes in an effective way.
2

OCCUPATIONAL

Learning to Learn

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Monitors the developments in the field of information technologies by means of internet and related journals and possess the required knowledge for the management, control, development and security of information technologies.
3
2
Develops positive attitude towards lifelong learning.
3

OCCUPATIONAL

Communication & Social

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Communicates effectively by oral and/or written form and uses at least one foreign language.
3
2
Possess sufficient consciousness about the issues of project management, practical applications and also environmental protection, worker's health and security.
3

OCCUPATIONAL

Occupational and/or Vocational

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Possess professional and ethical responsibility and willingness to share it.
3
2
Possess sufficient consciousness about the universality of engineering solutions and applications and be well aware of the importance of innovation.
3

WORKLOAD & ECTS CREDITS OF THE COURSE UNIT

Workload for Learning & Teaching Activities

Type of the Learning Activites Learning Activities (# of week) Duration (hours, h) Workload (h)
Lecture & In-Class Activities 14 3 42
Preliminary & Further Study 14 3 42
Land Surveying 0 0 0
Group Work 0 0 0
Laboratory 0 0 0
Reading 0 0 0
Assignment (Homework) 2 2 4
Project Work 0 0 0
Seminar 0 0 0
Internship 0 0 0
Technical Visit 0 0 0
Web Based Learning 0 0 0
Implementation/Application/Practice 0 0 0
Practice at a workplace 0 0 0
Occupational Activity 0 0 0
Social Activity 0 0 0
Thesis Work 0 0 0
Field Study 0 0 0
Report Writing 0 0 0
Final Exam 1 1 1
Preparation for the Final Exam 14 3 42
Mid-Term Exam 1 1 1
Preparation for the Mid-Term Exam 7 2 14
Short Exam 2 1 2
Preparation for the Short Exam 2 2 4
TOTAL 57 0 152
Total Workload of the Course Unit 152
Workload (h) / 25.5 6
ECTS Credits allocated for the Course Unit 6,0