Türkçe | English
FACULTY of ENGINEERING / DEPARTMENT of COMPUTER ENGINEERING
(30%) English
Course Catalog
https://www.ktu.edu.tr/bilgisayar
Phone: +90 0462 377 2080
MF
FACULTY of ENGINEERING / DEPARTMENT of COMPUTER ENGINEERING / (30%) English
Katalog Ana Sayfa
  Katalog Ana Sayfa  KTÜ Ana Sayfa   Katalog Ana Sayfa
 
 

COM3000System Programming3+0+0ECTS:5
Year / SemesterSpring Semester
Level of CourseFirst Cycle
Status Compulsory
DepartmentDEPARTMENT of COMPUTER ENGINEERING
Prerequisites and co-requisitesDC must have been achieved from COM1002-Programming - II, DC must have been achieved from COM1000-Introduction To Computer Programming or DC must have been achieved from COM2001-Object Oriented Programming
Mode of DeliveryFace to face
Contact Hours14 weeks - 3 hours of lectures per week
LecturerDoç. Dr. Hüseyin PEHLİVAN
Co-LecturerNone
Language of instruction
Professional practise ( internship ) None
 
The aim of the course:
The course aims to provide an introduction to shell programming and system programming languages in the Unix environments, including Unix window systems, regular expressions, tailoring user environments, writing shell scripts, various software tools supporting systems programming (i. e. gcc, gdb, make, sed and awk) , operating system structures, file system operations, system calls and libraries, interprocess communication, pipes, and signals.
 
Learning OutcomesCTPOTOA
Upon successful completion of the course, the students will be able to :
LO - 1 : manage shell environments from the command line.2,3,41
LO - 2 : explain how shell and system commands are handled.2,3,41
LO - 3 : write shell scripts for various system tasks.2,3,41
LO - 4 : manipulate any regular file data using regular expressions.2,3,41
LO - 5 : use software development tools to construct programs in high level programming languages.2,3,41
LO - 6 : use the system call interface through C or C++ programs.2,3,41
LO - 7 : manage file and process subsystems via system calls.2,3,41
CTPO : Contribution to programme outcomes, TOA :Type of assessment (1: written exam, 2: Oral exam, 3: Homework assignment, 4: Laboratory exercise/exam, 5: Seminar / presentation, 6: Term paper), LO : Learning Outcome

 
Contents of the Course
Unix systems: Unix versions, layers, system login, command execution. Unix file systems: Working directory, file hierarchy, paths, standard directories, file types, file manipulation, file permissions, filename substitution, file systems. Shell operators: Standard files, file descriptors, I/O redirection, pipes, processes, filters, communication. Regular expressions (RE) : Commands using REs, egrep command, metacharacters. Window system: X windows, X server, window managers, desktop environment. Shell environments: Command line parsing, textual completion, aliases, command line editing, command history. Shell programming: shell variables, integer arithmetic, variable substitution, command line arguments, command substitution, control structures, function definition and invocation, login scripts, shell scripts. Program development tools: Creation of source files, separate compilation, running and testing, gcc and make commands. System programming: Files, directories, processes, unbuffered I/O, standard I/O, standard channels, system call interface. File operations: Basic file I/O, file descriptors, creating and opening files, reading and writing files, seeking files, atomic operations, file control, device files. Process operations: Creating processes, executing programs, exit status, zombies, pipe system call, signals.
 
Course Syllabus
 WeekSubjectRelated Notes / Files
 Week 1Introduction to UNIX Systems
 Week 2Unix File Systems
 Week 3Editors and Shell Operators
 Week 4Regular Expressions and Unix Window System
 Week 5Shell environments and Betik Kavramları
 Week 6Script Programming - I
 Week 7Script Programming - II
 Week 8Program Development Tools (gcc, make, gdb) and Others (sed, awk, perl)
 Week 9Mid-term exam
 Week 10File Management - I (open, creat, read, write, lseek)
 Week 11File Management - II (chmod, chdir, link, fcntl, ioctl)
 Week 12Process Management - I (fork, exec, wait)
 Week 13Process Management - II (pipe, dup, close)
 Week 14Sockets
 Week 15Basic Unix System Management
 Week 16End-of-term exam
 
Textbook / Material
1Kochan, S. G., Wood, P., 2016, Shell Programming in Unix, Linux and OS X, 4th ed., Addison-Wesley Professional, 416 p.
2Palakollu, S. M., 2021, Practical System Programming with C - Pragmatic Example Applications in Linux and Unix-Based Operating Systems, Apress, 286 p.
 
Recommended Reading
1Wang, K. C., 2018, Systems Programming in Unix/Linux, Springer, 468 p.
2Harwani, B. M., 2013, Unix and Shell Programming, Oxford University Press, 734 p.
 
Method of Assessment
Type of assessmentWeek NoDate

Duration (hours)Weight (%)
Mid-term exam 9 2 50
End-of-term exam 16 2 50
 
Student Work Load and its Distribution
Type of workDuration (hours pw)

No of weeks / Number of activity

Hours in total per term
Yüz yüze eğitim 3 14 42
Sınıf dışı çalışma 5 14 70
Arasınav için hazırlık 15 1 15
Arasınav 2 1 2
Dönem sonu sınavı için hazırlık 20 1 20
Dönem sonu sınavı 2 1 2
Total work load151