Teaching

Data Structures

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

data structure Data structures are fundamental components in computer science, serving as the building blocks for organizing, managing, and storing data efficiently. They enable the systematic arrangement of data to facilitate various operations such as searching, sorting, inserting, and deleting. Common data structures include arrays, linked lists, stacks, queues, trees, and graphs, each with unique properties and use cases. These fundamental concepts are the cornerstone of computer science and programming, and a deep understanding of them empowers us to write more efficient, organized, and robust code. Read more

Computer and Introduction to Programming

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

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 an 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

Algorithms

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

algorithms An algorithm is a set of well-defined instructions for carrying out a particular task. Think of it as a recipe in a cookbook that guides you step by step to make a delicious dish. In the world of computing, algorithms are the backbone that powers programs and applications. They are logical sequences that tell a computer exactly what steps to take to solve a problem or achieve a goal. From simple tasks like sorting a list of numbers to complex operations like image processing or running search engines, algorithms are everywhere. Read more

Operating Systems

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

operating systems Operating systems are an essential part of modern computing, serving as the foundation of any computer system. They are responsible for managing the hardware and software resources of a computer and providing a platform for other programs to run on. An operating system acts as an intermediary between the computer hardware and the software applications that users interact with, providing a uniform interface that applications can use to communicate with the hardware. Without an operating system, a computer would be nothing more than a collection of hardware components that could not be easily controlled or utilized by users. Read more

Microprocessors

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

microprocessor Microprocessors act as the heartbeat of modern computing systems, executing numerous tasks with remarkable speed and precision. The x86 architecture, renowned for its adaptability and extensive use in personal computers and servers, provides a foundation for understanding the inner workings of contemporary processors. Microprocessor architecture is the driving force behind computation, makes these small but powerful devices. The complexity of the x86 instruction set and the fundamentals of assembly language programming are essential to directly communicating with the microprocessor. This includes covering the binary world and using the symbolic language of assembly to manipulate registers, control flow, and interact with memory. Read more

Object Oriented Programming with Java

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

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

Algorithmic Game Theory

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

algorithmic game theory Algorithmic Game Theory is an interdisciplinary field that blends the mathematical rigor of game theory with the practical, problem-solving techniques of computer science. This area of study focuses on designing and analyzing algorithms for solving games and game-like scenarios, where multiple players with potentially conflicting interests interact. It encompasses a wide range of topics, including the computation of equilibria, the efficiency and fairness of various algorithmic mechanisms, and the strategic behavior of rational agents in competitive environments. By leveraging computational methods, algorithmic game theory provides valuable insights into complex systems, from economic markets to networked environments, thereby bridging the gap between theoretical foundations and real-world applications. Read more

Procedural Programming with C

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

procedural programming with c C is a robust and flexible programming language employed in numerous applications, ranging from operating systems and embedded systems to game development and high-performance computing. As a low-level language, it offers significant control over hardware and memory management, enabling developers to write highly efficient and optimized code. This level of control makes it perfect for performance-critical tasks where speed and resource management are paramount. Its influence is also seen in many modern languages, which have adopted its syntax and features, solidifying C’s role as a foundational language in computer science and software development. Read more

Object Oriented Programming with Java Advanced

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

object oriented programming This course is designed to take your Java programming skills to the next level by exploring advanced topics and concepts in object-oriented design. In this course, you will learn how to implement complex data structures, design patterns, and advanced OOP principles such as interfaces, generics, and nested classes. You will also learn how to leverage Java’s powerful features such as streams and lambdas to write clean and concise code. Throughout the course, you will work on challenging assignments and projects that will help you apply the concepts you have learned in real-world scenarios. Read more

Wireless Sensor Networks

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

wireless sensor network This course provides an introduction to the fundamental concepts, technologies, and design principles of wireless sensor networks. Students will learn about the different types of sensors and communication technologies used in WSNs, as well as the various challenges that need to be addressed in the design and implementation of these networks. Topics such as medium access control, routing protocols, data management, power management, security, and applications of WSNs will be discussed in depth. By the end of the course, students will have a solid understanding of the key concepts and technologies involved in wireless sensor networks, as well as hands-on experience with programming and simulation tools. Read more