Teaching

I have been teaching undergraduate and graduate courses in Computer Engineering, Software Engineering, and related disciplines since 1990. My teaching experience has evolved from computer hardware, microprocessors, programming, and computer networks to software engineering, distributed and cloud systems, data science, machine learning, deep learning, generative artificial intelligence, and AI-assisted software and engineering education.
I supervised 11 master students , and also directed the theses of many undergraduate students .
Current Teaching
Istanbul Arel University — Computer Engineering
Professor of Computer Engineering
Fall 2026
Undergraduate
LCEN360 Neural Network (Deep Learning)
Graduate
YCEN110 Deep Learning
YCEN 106 Natural Language Processing
Spring 2026
Undergraduate
In these courses, I place particular emphasis on connecting fundamental engineering concepts with contemporary software-development practices, project-based learning, real-world engineering problems, software architecture, requirements engineering, modern development tools, and the appropriate use of Artificial Intelligence in engineering workflows.
My Courses on Google Classroom Since 2018
Google Classroom Course Archive — 2018–2026
Since 2018, I have used Google Classroom as an integral part of my undergraduate and graduate teaching. The classrooms have supported course materials, announcements, assignments, project activities, student communication, and the organization of teaching resources across courses in Artificial Intelligence, Machine Learning, Deep Learning, Software Engineering, Computer Engineering, and related areas.
Google Classroom courses taught by Halûk Gümüşkaya from 2018 to 2026
Courses I Have Taught in Universities Since 1990
The following list presents the principal undergraduate and graduate courses I have taught since 1990, grouped into five major academic areas.
Artificial Intelligence, Data Science, Machine Learning, Deep Learning
Istanbul Atlas University: Generative Artificial Intelligence (Spring 2025), Deep Learning (Spring 2025, 2024), Artificial Intelligence: Public (Spring 2024), Artificial Intelligence (Fall 2025, 2023), Machine Learning (Fall 2025, 2024, 2023), Design and Analysis of Algorithms (Spring 2023), Data Structures (Fall 2022).

Istanbul Aydın University: SEN 503 Artificial Intelligence (2020, 2021), SEN 339 Artificial Intelligence (2019, 2021), SEN 451 Deep Learning (2019, 2021), COM 521 Applied Data Science and Machine Learning (2016)
Cloud Computing and Big Data, Data Mining
COM 444/561 Cloud Computing, 4 times (2013 – 2015)
COM 451/535 Data Mining, 2 times (2012, 2016)
COM 521 Applied Data Science and Machine Learning, 2016
COM 448 Cloud Big Data Systems and Analytics, 2015
Software Engineering
Software Requirements Engineering (2020, 2024 Fall, 2026 Spring)
SEN 441 Software Testing and Validation (2021 Fall)
SEN 444 Special Topics in Software Engineering (2020)
COM 401/302/531 Software Engineering, 10 times (2003 – 2015)
COM 101/102 Introduction to Programming (C programming), 5 times, since 1990
COM 102 Object Oriented Programming (Java), 4 times (2003 – 2011)
COM 217 Object Oriented Design (using UML, Design Patterns, and Java), 3 times (2002 – 2005)
COM 511/531 Advanced Software Engineering, 2 times (2007, 2009)
CENG 530 Software Design Methodology, 2 times (2003, 2005)
COM 570 Software Analysis and Design, 2015
CENG 535/410 Design Patterns, 2003
Advanced Programming Techniques (Windows Programming using C++), 1997
Data Structures (using C), 2 times, 1997, 2009
Computer Networks and Distributed Systems
COM 362 Computer Networks, 13 times (2004 – 2015, 2018)
CENG 465/567 Mobile and Wireless Networking, 5 times (2004 – 2009, 2019)
CENG 564/463 Network Programming, 4 times (2002 – 2008)
COM 572 Open Systems Networking, 3 times (1997 – 1999)
COM 440 Distributed Systems, 2 times (1998, 2013)
COM 560 Computer Network Technologies and Applications, 3 times (2008 – 2011)
Computer Hardware Engineering
COM 353 Microprocessors, more than 10 times, since 1991, last time: 2018
EEE 251 Logic Design and Circuits, 4 times (2011, 1990 – 1997)
COM 252 Computer Organization, 2 times (2004, 2012)
SMY 533 Embedded Systems, 2 times (2011, 1990 – 1997)
CENG 321 Computer Architecture, 2003
Advanced Microprocessors, 1997
Advanced DSP Applications, 1997
Teaching Philosophy
My teaching philosophy has evolved through more than three decades of university teaching. I believe that effective engineering education should combine strong theoretical foundations with active learning, practical implementation, experimentation, project work, timely feedback, and continuous interaction between students and instructors. Students should understand not only how a technology or method works, but also why it is needed, when it should be used, what alternatives exist, and what engineering trade-offs are involved.
Principles of Good Teaching
  1. Encourage contact between students and faculty.
  2. Develop cooperation among students.
  3. Encourage active learning.
  4. Give prompt feedback.
  5. Emphasize time on task.
  6. Communicate high expectations.
  7. Respect diverse talents and ways of thinking.
  8. Relate theory to reality.
Always Explain “Why”
A central principle of my teaching is to explain why, not only how. Students should understand the engineering problem that motivates a method before concentrating on its implementation details. For example, when teaching networking, it is more important first to explain why an on-demand routing approach may be appropriate for a highly mobile ad-hoc network than simply to present the detailed operation of a particular routing protocol.
Active and Interactive Learning
I do not believe that engineering education should depend entirely on presentation slides. Slides are useful for organizing and presenting information, but interactive explanation, board work, step-by-step problem-solving, demonstrations, laboratory activities, and project work encourage students to become active participants in the learning process. Students generally understand and retain technical concepts better when they follow the reasoning process and actively construct the solution rather than only watching a completed presentation.
Frequent Feedback and Assessment
I favor continuous assessment and frequent feedback throughout a course. Multiple focused assessments, practical exercises, demonstrations, project milestones, and short examinations can provide both students and instructors with more useful information about learning progress than relying only on one or two major examinations.
Connecting Theory with Engineering Practice
An important part of my teaching has always been to connect theoretical concepts with real software, hardware, networks, systems, data, and engineering problems. Project-based learning, laboratory work, software development, system design, experimentation, and the analysis of real engineering cases help students understand both the scientific foundations of a subject and its practical limitations.