Teaching

Data Structures

Undergraduate course, Giresun University, Department of Computer Engineering, 2026

data structure Data structures provide systematic ways to organize, store, and access data. Choosing an appropriate structure directly affects the efficiency of operations such as searching, insertion, deletion, and traversal. This course examines arrays, linked structures, stacks, queues, trees, hash tables, graphs, and sets, with an emphasis on their implementations, complexity, and practical applications. Read more

Computer Fundamentals and Introduction to Programming

Undergraduate course, Giresun University, Department of Electrical Electronics Engineering, 2026

computer and programming Modern computing encompasses a vast ecosystem of interconnected technologies and tools that have become integral to our daily lives. Computers are sophisticated electronic devices managed by operating systems, which serve as the interface between hardware and software. The Internet has transformed these individual machines into a global network, enabling instantaneous communication and access to unlimited information and services. In our professional lives, we regularly interact with office programs such as word processors, spreadsheets, and presentation software, which have digitized and streamlined workplace tasks. Behind all these tools lies the art of programming - the fundamental skill of creating software by writing instructions in various programming languages. Read more

Algorithmic Game Theory

Undergraduate course, Giresun University, Department of Computer Engineering, 2026

algorithmic game theory Algorithmic game theory studies strategic interaction through the lens of computation. It combines game-theoretic models with algorithms and complexity analysis to examine equilibria, auctions, market mechanisms, routing, online platforms, fairness, and the behavior of self-interested agents. Read more

Algorithms

Undergraduate course, Giresun University, Department of Computer Engineering, 2026

algorithms An algorithm is a finite and well-defined sequence of steps for solving a problem or performing a computation. Algorithms form the foundation of software systems and are used in tasks ranging from sorting and searching to graph processing, optimization, text analysis, and scientific computing. This course examines fundamental algorithm-design techniques, correctness, time and space complexity, and the practical trade-offs between alternative solutions. Read more

Operating Systems

Undergraduate course, Giresun University, Department of Computer Engineering, 2026

operating systems Operating systems are a fundamental part of modern computing. Operating systems manage hardware resources and provide abstractions and services for application software. They coordinate processor time, memory, storage, devices, and communication while supporting protection, isolation, and controlled resource sharing. An operating system provides a platform for programs to run. It acts as a bridge between hardware and software applications. This ensures that applications can interact with hardware using a standardized interface. The operating system handles tasks like memory management, process scheduling, and input/output operations. Without it, a computer is just a collection of hardware components. Read more

Object Oriented Programming with Java

Undergraduate course, Giresun University, Department of Electrical Electronics Engineering, 2026

object oriented programming Java is one of the most popular programming languages, extensively used in various fields such as web development, mobile app development, and game development. It encompasses key concepts like classes, objects, inheritance, polymorphism, encapsulation, and abstraction, which form the foundation of its Object-Oriented Programming (OOP) paradigm. These principles enable developers to create modular, reusable, and efficient code, fostering better software design and maintainability. Java’s platform independence, achieved through the Java Virtual Machine (JVM), allows applications to run on any device equipped with a JVM, making it a versatile choice for cross-platform development. Additionally, Java’s extensive standard library provides a wide range of tools and functionalities, simplifying many common programming tasks and enhancing productivity. Read more

Microprocessors

Undergraduate course, Giresun University, Department of Electrical Electronics Engineering, 2024

microprocessor Microprocessors execute instructions, process data, and coordinate the operations of modern computing systems. The 8086 architecture provides a useful foundation for studying processor organization, registers, memory access, instruction execution, and low-level programming. The 8086 is an early member of the x86 family. Although modern x86-64 processors are substantially more complex, the 8086 remains useful for introducing registers, segmentation, instruction execution, addressing modes, interrupts, and assembly programming. Read more

Procedural Programming with C

Undergraduate course, Giresun University, Department of Computer Engineering, 2023

procedural programming with c C is a general-purpose programming language widely used in systems programming, embedded software, operating systems, compilers, and performance-sensitive applications. It combines portable high-level constructs with low-level access to memory and hardware-related operations. C gives programmers substantial control over data representation, memory allocation, and program execution. This control can enable efficient software, but it also requires careful handling of memory, types, and undefined behavior. Read more