İsmail Hakkı TURAN

Room 236-C, Computer Engineering Department,
Address: Körfez, 19 Mayıs Ünv. No:64, 55270 Atakum/Samsun

hakki.turan[at]bil.omu.edu.tr


Lois Haibt

System Programming Course

Dedicated Office Hours for the Course

Name In Person Online
İsmail Hakkı TURAN Personal Room
(09:00-12:00 Wednesday)
(15:30-17:00 Friday)
Chat and Meet Link
(bil.omu accounts)

1st Week (08.10.2026)

Shell Scripting Tutorial (Automatic Translation Available)

A quick catch-up with shell basics.

Session Notes

Please open this file with a .md file previewer or view online.

Last Year's Questions

Quiz I (2025-2026, Group D) questions with answers: download PDF.

Skills Learned from Week_1 Application:

  • Shell basics
  • Linux File System Hierarchy
  • PATH

How much was I able to work on the Week 1 application?



2nd Week (15.10.2026)

Introduction to Go Programming

15 short lessons that take you from "hello world" to file I/O, system calls, mmap, processes, signals, goroutines and benchmarks. They prepare you for the term project. Setup is a single command on Windows, macOS and Linux (Docker); follow the README in the repository.

Click the repository link

Live Go Programming Tutorial with Explanations

A complete Go course (freeCodeCamp) with step-by-step explanations and live coding.

Watch the video and use the course's repository .

Shell Scripts: Runnable Examples

Every command from the shell sessions as a ready-to-run script: variables, loops, find, grep and regex, job control, devices, disk, RAM and last, plus solutions to the quiz study questions. Read the README, then run the scripts week by week. New weeks will be added to the same repository.

Click the repository link

Continuation of Shell Basics

  • Defining variables (no spaces around =)
  • Arithmetic with $(( )), expr and bc
  • Conditionals with if / elif / else and comparison operators (-eq, -gt, ...)
  • while loops
  • for loops over lists, in C style and over files

Skills Learned from Week_2 Application:

  • Setting up a ready-to-use Linux environment for Go with Docker and running Go programs in it
  • Writing basic Go programs with variables, types, control flow, functions and error handling
  • Using arrays, slices, maps, structs, interfaces and pointers in Go
  • Reading and writing files in Go
  • Defining and using variables in shell scripts
  • Performing integer and floating-point arithmetic in the shell
  • Writing conditional logic with if / elif / else and comparison operators
  • Automating repetitive tasks with while and for loops

TO-DO from Week_2 Application:



3rd Week (22.10.2026)

Skills Learned from Week_3 Application:

  • Data-holding objects, POJO
  • Preparing objects to be sent over a stream, serialization

    (Click the serialization repository link)

  • Google’s protocol that enables object exchange between different programming languages and systems, Protocol Buffers
  • Common programming mistakes, and the concepts of mutable and immutable

    (Click the link )

  • Is it possible to send an email using telnet with SMTP, which is a text-based protocol?

4th Week (05.11.2026)

Internalize the hierarchies in the examples. Try to distribute the workload in multi-threaded matrix multiplication using different partitioning strategies. Run shell commands with their parameter options, and make it a habit. Click here to access the documentation page for the commands used in the final exercise.

5th Week (12.11.2026)

Run shell commands with their parameter options, and make it a habit. Click here to access the documentation page for the commands used in the final exercise.

The next exercise will be announced soon via Classroom...






Flag Counter