|
COM3000 | System Programming | 3+0+0 | ECTS:5 | Year / Semester | Spring Semester | Level of Course | First Cycle | Status | Compulsory | Department | DEPARTMENT of COMPUTER ENGINEERING | Prerequisites and co-requisites | DC 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 Delivery | Face to face | Contact Hours | 14 weeks - 3 hours of lectures per week | Lecturer | Doç. Dr. Hüseyin PEHLİVAN | Co-Lecturer | None | 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 Outcomes | CTPO | TOA | Upon successful completion of the course, the students will be able to : | | | LO - 1 : | manage shell environments from the command line. | 2,3,4 | 1 | LO - 2 : | explain how shell and system commands are handled. | 2,3,4 | 1 | LO - 3 : | write shell scripts for various system tasks. | 2,3,4 | 1 | LO - 4 : | manipulate any regular file data using regular expressions. | 2,3,4 | 1 | LO - 5 : | use software development tools to construct programs in high level programming languages. | 2,3,4 | 1 | LO - 6 : | use the system call interface through C or C++ programs. | 2,3,4 | 1 | LO - 7 : | manage file and process subsystems via system calls. | 2,3,4 | 1 | 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 | |
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 | Week | Subject | Related Notes / Files | Week 1 | Introduction to UNIX Systems | | Week 2 | Unix File Systems | | Week 3 | Editors and Shell Operators | | Week 4 | Regular Expressions and Unix Window System | | Week 5 | Shell environments and Betik Kavramları | | Week 6 | Script Programming - I | | Week 7 | Script Programming - II | | Week 8 | Program Development Tools (gcc, make, gdb) and Others (sed, awk, perl) | | Week 9 | Mid-term exam | | Week 10 | File Management - I (open, creat, read, write, lseek) | | Week 11 | File Management - II (chmod, chdir, link, fcntl, ioctl) | | Week 12 | Process Management - I (fork, exec, wait) | | Week 13 | Process Management - II (pipe, dup, close) | | Week 14 | Sockets | | Week 15 | Basic Unix System Management | | Week 16 | End-of-term exam | | |
1 | Kochan, S. G., Wood, P., 2016, Shell Programming in Unix, Linux and OS X, 4th ed., Addison-Wesley Professional, 416 p. | | 2 | Palakollu, S. M., 2021, Practical System Programming with C - Pragmatic Example Applications in Linux and Unix-Based Operating Systems, Apress, 286 p. | | |
1 | Wang, K. C., 2018, Systems Programming in Unix/Linux, Springer, 468 p. | | 2 | Harwani, B. M., 2013, Unix and Shell Programming, Oxford University Press, 734 p. | | |
Method of Assessment | Type of assessment | Week No | Date | Duration (hours) | Weight (%) | Mid-term exam | 9 | | 2 | 50 | End-of-term exam | 16 | | 2 | 50 | |
Student Work Load and its Distribution | Type of work | Duration (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 load | | | 151 |
|