Faculty Of Engıneerıng
Computer And Software Engıneerıng

Course Information

OPERATING SYSTEMS PROGRAMMING
Code Semester Theoretical Practice National Credit ECTS Credit
Hour / Week
CSE312 Spring 2 2 3 3

Prerequisites and co-requisites None
Language of instruction English
Type Required
Level of Course Bachelor's
Lecturer Asst. Prof. Volkan Kadir GÜNGÖR
Mode of Delivery Face to Face
Suggested Subject None
Professional practise ( internship ) None
Objectives of the Course To help students understand the development toolchain consisting of the compiler, the linker, and the loader. To develop projects at the operating system kernel level. To teach system programming both at kernel- and user-space layers.
Contents of the Course Assemblers, compilers, linkers, loaders. Operating system kernel, system calls. Kernel modules, device drivers. File systems.

Learning Outcomes of Course

# Learning Outcomes
1 Can use high level programming languages together with low level programming languages for the parts in a project where a more efficient usage of system resources is required.
2 Knows how to add or modify a feature in an operating system kernel.
3 Knows the advantages and drawbacks of modular development in operating system kernels and can choose the appropriate method for a new project.
4 Knows the concepts in developing a file system.

Course Syllabus

# Subjects Teaching Methods and Technics
1 PC Assembly Language Lecture, discussion, presentation
2 C and Assembly Lecture, discussion, presentation
3 Kernel Architecture Lecture, discussion, presentation
4 Kernel Architecture Lecture, discussion, presentation
5 C with Assembly Lab Lecture, discussion, presentation
6 C with Assembly Lab Lecture, discussion, presentation
7 Accessing Devices Lecture, discussion, presentation
8 Midterm Exam Exam
9 Kernel Lab Lecture, discussion, presentation
10 File System Lecture, discussion, presentation
11 Device Driver Lab Lecture, discussion, presentation
12 Device Driver Lab Lecture, discussion, presentation
13 File System Lab Lecture, discussion, presentation
14 RPC & Socket programming Lecture, discussion, presentation
15 Shell Programming Lecture, discussion, presentation
16 Final Exam Exam

Course Syllabus

# Material / Resources Information About Resources Reference / Recommended Resources
1 Introduction to Systems Programming, Prof. Dan Connors
2 Jonathan Corbet, Alessandro Rubini, Greg-Koah Hartman, "Linux Device Drivers", O'Reilly, 2005, ISBN 0-596-00590-3. (http://lwn.net/Kernel/LDD3/)

Method of Assessment

# Weight Work Type Work Title
1 40% Mid-Term Exam Mid-Term Exam
2 60% Final Exam Final Exam

Relationship between Learning Outcomes of Course and Program Outcomes

# Learning Outcomes Program Outcomes Method of Assessment
1 Can use high level programming languages together with low level programming languages for the parts in a project where a more efficient usage of system resources is required. 1͵2͵3 1͵2
2 Knows how to add or modify a feature in an operating system kernel. 1͵2͵3 1͵2
3 Knows the advantages and drawbacks of modular development in operating system kernels and can choose the appropriate method for a new project. 1͵2͵3 1͵2
4 Knows the concepts in developing a file system. 1͵2͵3 1͵2
PS. The numbers, which are shown in the column Method of Assessment, presents the methods shown in the previous table, titled as Method of Assessment.

Work Load Details

# Type of Work Quantity Time (Hour) Work Load
1 Course Duration 14 4 56
2 Course Duration Except Class (Preliminary Study, Enhancement) 14 2 28
3 Presentation and Seminar Preparation 0 0 0
4 Web Research, Library and Archival Work 0 0 0
5 Document/Information Listing 0 0 0
6 Workshop 0 0 0
7 Preparation for Midterm Exam 1 2 2
8 Midterm Exam 1 1 1
9 Quiz 0 0 0
10 Homework 0 0 0
11 Midterm Project 0 0 0
12 Midterm Exercise 0 0 0
13 Final Project 0 0 0
14 Final Exercise 1 1 1
15 Preparation for Final Exam 1 1 1
16 Final Exam 1 1 1
  90