Skip to main content

BIM 404 - System Programming

Faculty of Engineering and Natural Sciences · Computer Engineering · Undergraduate

ECTS: 5 T+P+L: 2+0+1 Departmental Elective
Coordinator: Dr. Öğr. Üyesi Abdullah SÖNMEZ

Course Objective

The aim of this course is to teach how to design and develop software components of an operating system. The goal of the course also include to build advanced level of C programming skills for controlling computer hardware effectively.

Course Content

Number systems, basic computer architecture, assembly language programming, assemblers, relocation, linkers, loaders, macro processors, text editors, debugging programs, formal specification of programming languages, interpreters, introduction to operating systems, Linux shell programming.

Course Learning Outcomes

  1. Gains the ability to develop programs in 8086 architecture and assembly language.
  2. Explains the fundamental working principles of assemblers, compilers, and interpreters.
  3. Applies system calls and advanced C programming techniques.
  4. Performs file and process management operations in the UNIX operating system.
  5. Uses UNIX operating system commands and layers effectively.
  6. Analyzes fundamental concepts specific to operating systems and system programming.
  7. Utilizes inter-process communication mechanisms in multi-process applications.
  8. Implements design and coding principles of operating system subunits.

Core Area Distribution

(46) Mathematics and Statistics%20 (48) Computing%50 (52) Engineering and Engineering Trades%30

Teaching Methods

ExpressionQuestion-AnswerDiscussionExercise and PracticeGuided PracticeSelf studyProblem Solving

Assessment & Evaluation

HomeworkTesting (Essay / Tests: True-Falls, multiple-choice, short answer, matching)

ECTS / Workload

ActivityQuantityDuration (h)Total Workload
Course Duration (Including Exam Week)15230
Out of Class Study Period15230
Midterm122
Quiz000
Assignment22550
Practice15115
Final122

Course Schedule

WeekSubjectPreparation
1Introduction to System Programming.
2Input / Output Subroutines.
3Input / Output Subroutines (Continue'd).
4Real-Time Systems Concepts.
5Real-Time Systems Concepts (Continue'd).
6Concepts Related to Software Development.
78086 Architecture.
8Data Formats.
9Ramadan Feast Holiday.
10Midterm Exam.
11Machine Language.
12Assembler Directives.
13Introduction to UNIX.
14Basic UNIX Commands.
15Shell Programming.
16Processes and Files in UNIX.