Teaching

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

Data Structures

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

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

Algorithmic Game Theory

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

algorithmic game theory This course aims to explore the intersection of game theory and computer science, focusing on the algorithmic aspects of strategic decision-making in multi-agent environments. Game theory provides a powerful framework for analyzing the behavior of rational agents, while algorithms enable us to design intelligent systems that can reason, strategize, and interact in complex game scenarios. Throughout this course, we will delve into fundamental concepts such as Nash equilibrium, mechanism design, and auction theory, examining how they can be applied in various real-world domains including economics, social networks, and online platforms. Read more

Computer and Programming with Java

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

object oriented programming This course is designed to provide a comprehensive understanding of fundamental concepts in computer science and information technology. Covering essential topics such as Basic Computer Knowledge, Word Processing with Microsoft Word, Spreadsheet Software using Excel, Presentation Skills with PowerPoint, Computer Arithmetic, Hardware and Software fundamentals, Introduction to Algorithms, Pseudo Code, Flowcharts, and Basic Java Programming. This course aims to equip with the necessary skills to navigate the digital landscape. 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