Course Details

Course Information
SemesterCourse Unit CodeCourse Unit TitleT+P+LCreditNumber of ECTS CreditsLast Updated Date
7COMP455LINUX FOR ENGINEERS AND SCIENTISTS0+3+05514.05.2026

 
Course Details
Language of Instruction English
Level of Course Unit Bachelor's Degree
Department / Program COMPUTER ENGINEERING
Type of Program Formal Education
Type of Course Unit Elective
Course Delivery Method Face To Face
Objectives of the Course The aim of this course is to equip students in engineering and the natural sciences with practical command of GNU/Linux for modern research and engineering practice. Students will progress from end-users to confident practitioners who can configure their computational environment, automate workflows through shell scripting, manage code with version control, and exploit remote servers, HPC clusters, and containers for reproducible computational research.
Course Content This course covers the philosophy and architecture of UNIX/Linux systems, the Bash shell, file system management, text-processing tools (grep, sed, awk), regular expressions, process management, and shell scripting for automation. It further introduces the Linux development toolchain (GCC, make, gdb), version control with Git, secure remote access (SSH), and the scientific Python ecosystem (NumPy, SciPy, Jupyter). The course concludes with an introduction to high-performance computing using SLURM and containerization with Docker/Singularity for reproducible research.
Course Methods and Techniques The course is delivered through interactive lectures combined with live in-class demonstrations performed directly on a Linux terminal. Each topic is reinforced by hands-on assignments using real engineering and scientific datasets, along with a term project requiring students to build a complete Linux-based computational workflow. Active learning is encouraged through pair programming, troubleshooting exercises, and code review via Git/GitHub.
Prerequisites and co-requisities None
Course Coordinator Prof.Dr. Zafer Aydın
Name of Lecturers Asist Prof.Dr. ASLI EYECİOĞLU ÖZMUTLU
Assistants None
Work Placement(s) No

Recommended or Required Reading
Resources Nemeth, E., Snyder, G., Hein, T. R., Whaley, B. & Mackin, D. UNIX and Linux System Administration Handbook. Pearson.
Robbins, A. & Beebe, N. H. F. Classic Shell Scripting. O'Reilly.
Course Notes Primary Textbooks
• Shotts, W. E. The Linux Command Line: A Complete Introduction. No Starch Press (latest edition). [Free at linuxcommand.org]
• Ward, B. How Linux Works: What Every Superuser Should Know. No Starch Press.
• Scopatz, A. & Huff, K. D. Effective Computation in Physics: Field Guide to Research with Python. O'Reilly.

Course Category
Engineering %70
Engineering Design %30

Planned Learning Activities and Teaching Methods
Activities are given in detail in the section of "Assessment Methods and Criteria" and "Workload Calculation"

Assessment Methods and Criteria
In-Term Studies Quantity Percentage
Yarıyıl İçi Çalışmalarının Başarı Notunun Katkısı 1 % 25
Quiz/Küçük Sınav 3 % 15
Ödev 1 % 15
Proje/Çizim 1 % 15
Final examination 1 % 30
Total
7
% 100

 
ECTS Allocated Based on Student Workload
Activities Quantity Duration Total Work Load
Araştırma Ödevi 1 8 8
Yazılı Sınav 1 3 3
Ev Ödevi 1 20 20
Sunum için Hazırlık 1 3 3
Teslim İçin Hazırlık 1 2 2
Proje 1 24 24
Kısa Sınav 3 2 6
Araştırma 1 7 7
Kişisel Çalışma 14 1 14
Yazılım Deneyimi 1 10 10
Ders dışı çalışma 1 10 10
Yüz Yüze Ders 14 3 42
Final Sınavı 1 3 3
Total Work Load   Number of ECTS Credits 5 152

 
Course Learning Outcomes: Upon the successful completion of this course, students will be able to:
Bilgi 
1 Explain the architecture, file system hierarchy, and core operating principles of UNIX/Linux.
2 Define modern computing concepts such as version control, containerization, and HPC.
3 Explain open-source licensing models and the principles of reproducible research.
Beceri 
4 Effectively use the Linux command line and the Bash shell. Process scientific data using grep, sed, awk, and regular expressions. Automate computational workflows through Bash scripts.
5 Compile and debug software using GCC, make, and gdb. Manage source code with Git and carry out collaborative projects.
6 Run jobs on remote servers and HPC clusters using SSH and SLURM. Build reproducible containerized environments with Docker/Singularity.
Yetkinlik 
7 Solve engineering and scientific problems independently using Linux-based tools.
8 Work effectively in interdisciplinary teams through Git-based collaboration.
9 Continuously  update  themselves by following developments in open-source technologies.
10 Effectively communicate their work through technical documentation and presentations.

 
Weekly Detailed Course Contents
WeekTopicsStudy MaterialsMaterials
1 Introduction to UNIX and Linux Install a Linux environment (VirtualBox/VMware, WSL, or dual-boot Ubuntu) before class.
2 Linux file system & permissions Review basic file/directory concepts from any operating systems course.
3 The Bash shell Practice basic navigation commands (cd, ls, pwd, mkdir) from Week 1 demos.
4 Text processing & regular expressions Read a short introduction to regular expressions (e.g., regexone.com).
5 Processes, jobs, and signals Review the concept of processes from an operating systems textbook
6 Shell scripting I Refresh basic programming logic (conditionals, loops) in any language.
7 Shell scripting II Complete Week 6 exercises and bring a real-world automation problem in mind
8 Midterm exam Review all lecture notes, scripts, and homework from Weeks 1–7.
9 Development toolchain Review basic C/C++ syntax and the compilation concept.
10 Version control with Git  Create  a GitHub account and install Git locally before class
11 Networking & remote computing Obtain SSH access credentials to the department/lab server in advance.
12 Scientific computing environment Install Anaconda or Miniconda and refresh basic Python syntax.
13 High-performance computing (HPC) Read a short overview of parallel computing concepts (shared vs. distributed memory).
14 Containerization & reproducible research Install Docker Desktop and prepare term project for presentation.

 
Contribution of Learning Outcomes to Programme Outcomes
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15
In1 1 3 3
In2 2 3 2 2
In3 1 3 2 1
Sk4 2 3 2 3 2
Sk5 2 2 3 3 2
Sk6 1 3 2 3
Co7 3 3 2
Co8 3 2 2
Co9 3 1
Co10 1 3

  Contribution: 1: Very Slight 2:Slight 3:Moderate 4:Significant 5:Very Significant

  
  https://sis.agu.edu.tr/oibs/bologna/progCourseDetails.aspx?curCourse=78282&lang=en