Teaching & Courses

Over 22 years of teaching experience across 15+ courses in Computer Science and Operations Research

Teaching Philosophy

"Learning is more effective when it is an active rather than a passive process" - Kurt Lewin

My teaching philosophy is rooted in the conviction that education should inspire curiosity, foster critical thinking, and equip students with the theoretical knowledge and practical skills necessary for success in rapidly evolving fields. With over 22 years of teaching experience across diverse academic environments in Tunisia, Saudi Arabia, and through international collaborations, I have developed an approach that emphasizes active learning, real-world applications, interdisciplinary integration, and student-centered pedagogy.

Active Learning & Real-World Application

Learning is most effective when students actively engage with material through hands-on projects. My industry experience with FedEx-SMSA, the Tunisian National Oil Office, and as co-founder of Filloop.com enriches my teaching by incorporating actual consulting problems, demonstrating how academic concepts translate to business value.

Critical Thinking & Inclusive Learning

I challenge students to move beyond memorization through open-ended problems with multiple solution approaches, class discussions defending methodology choices, and collaborative projects. I create an inclusive classroom atmosphere by accommodating diverse learning styles and providing multiple pathways to demonstrate mastery.

Technology Integration

I actively incorporate modern technologies including programming environments (Python, Java, C++), optimization solvers (CPLEX, Gurobi), machine learning frameworks (TensorFlow, PyTorch), visualization tools for algorithm analysis, and online collaboration platforms for group projects.

My commitment to student mentorship is demonstrated through successfully supervising 7 Ph.D. students (6 completed) and 11 Master's students, with many now serving as faculty members or industry professionals. I emphasize regular meetings with clear objectives, progressive independence, publication mentorship, and career development support.

Teaching Impact: Multiple Ph.D. graduates now serving as faculty members, Best Student Paper Award (IEEE LOGISTIQUA 2011), and consistent positive feedback highlighting clarity of explanation, enthusiasm, availability, and practical relevance of content. I have contributed to curriculum development committees, program accreditation processes, and designed new courses addressing emerging areas such as Cloud Computing Optimization and AI for Healthcare.

Current Courses (2025-2026)

OA

Optimization Algorithms

Master

This course provides an in-depth exploration of optimization algorithms and their role in artificial intelligence. It covers single-solution and population-based metaheuristic techniques, including local search, tabu search, genetic algorithms, and swarm intelligence. Students learn to analyze, evaluate, and implement these techniques to solve complex optimization problems. The course emphasizes practical implementation, enabling students to build intelligent software solutions and enhance computational efficiency in real-world scenarios.

Chapter 1: Introduction to Optimization
PDF • 76 slides • 7.3 MB
Chapter 2: Main Common Concepts for Metaheuristics
PDF • 58 slides • 0.96 MB
Chapter 3: Local Search-Based Algorithms
PDF • 38 slides • 0.83 MB
Chapter 4: Tabu Search Algorithm
PDF • 22 slides • 0.6 MB
Chapter 5: Evolution Strategies and Genetic Algorithm
PDF • 28 slides • 0.6 MB
Gurobi Solver Hands-On
GitHub Repository • Practical Examples
DPS

Design of Problem Solvers

Master

This course focuses on the design and implementation of problem-solving systems based on logic and optimization principles. It introduces students to logic problem solvers, including data representation, query formulation, and reasoning mechanisms. The course covers query evaluation and optimization techniques, constraint satisfaction problems, and linear programming methods for modeling and solving optimization problems. Through theoretical study and practical exercises, students develop effective problem-solving solutions for various computational domains.

Chapter 1: Introduction to Logic Problem Solvers
PDF • 27 slides • 1.2 MB
Chapter 2: Datasets for Logic Problem Solvers
PDF • 42 slides • 0.77 MB
Chapter 3: Queries and Updates for Logic Problem Solvers
PDF • 73 slides • 0.82 MB
Chapter 4: Query Evaluation and Optimization
PDF • 76 slides • 1.0 MB
Chapter 5: Constraint Satisfaction Problems
PDF • 71 slides • 1.3 MB
Chapter 6: Linear Programming for Optimization Problems
PDF • 34 slides • 2.5 MB
NMC

Numerical Mathematics and Computing

PhD

This course introduces advanced numerical computation concepts essential for PhD-level scientific computing. Topics include numerical precision, error sources, floating-point computation, algorithmic stability, and optimization. Students develop theoretical understanding and practical implementation skills using Python through analytical exercises, coding tasks, and research-oriented projects.

Chapter 1: Numerical Precision, Error, and Efficient Computation
PDF • 43 slides • 0.39 MB
Chapter 2: Taylor Series and Polynomial Approximations
PDF • 37 slides • 0.51 MB
Chapter 3: Floating-Point Representation and Errors
PDF • 65 slides • 1.1 MB
Chapter 4: Loss of Significance and Stability
PDF • 62 slides • 1.2 MB
OS

Operating Systems

Bachelor

This course covers fundamental concepts underlying contemporary operating systems. Students learn about process management, CPU scheduling, synchronization, and deadlock prevention. Topics include memory management strategies with contiguous and non-contiguous allocation, and virtual memory concepts. Through theoretical study and programming assignments, students develop skills to analyze operating system performance and understand hardware resource management.

Chapter 1: Introduction to Operating Systems
PDF • 41 slides • 7.0 MB
Chapter 2: Processes
PDF • 22 slides • 4.1 MB
Chapter 3: Threads and Concurrency
PDF • 53 slides • 3.4 MB
Chapter 4: CPU Scheduling
PDF • 51 slides • 2.1 MB
Chapter 5: Synchronization
PDF • 34 slides • 1.0 MB
Chapter 6: Deadlocks
PDF • 51 slides • 1.6 MB
Chapter 7: Memory Management
PDF • 32 slides • 3.0 MB
Chapter 8: Virtual Memory
PDF • 36 slides • 3.4 MB

Previous Courses

Courses taught over 21 years at various universities

AI

Artificial Intelligence

Bachelor Master

Introduction to AI covering intelligent agents, search algorithms, knowledge representation, logic, machine learning fundamentals, and neural networks. Students implement AI algorithms and work on practical projects.

ADS

Algorithms and Data Structures

Bachelor

Fundamental data structures (arrays, linked lists, trees, graphs, hash tables) and algorithms for sorting, searching, and graph traversal. Covers complexity analysis and algorithm design paradigms.

COA

Complexity of Algorithms

Bachelor Master

Computational complexity of Algorithms and Problems. Topics include P vs NP, NP-completeness, reductions, approximation algorithms, and randomized algorithms. Applications to real-world problems.

OOP

Object-Oriented Programming

Bachelor

Object-oriented programming principles: encapsulation, inheritance, polymorphism, and abstraction using Java programming language. Emphasizes design patterns and best practices.

DS

Distributed Systems

Bachelor

Design and implementation of distributed systems covering communication protocols, consensus algorithms, fault tolerance, and consistency models. Includes microservices, cloud computing, and distributed data processing.

GT

Graph Theory

Bachelor

Mathematical foundations of graphs including traversal algorithms, shortest paths, minimum spanning trees, network flows, and graph coloring. Applications to network routing and optimization problems.

LP

Linear Programming

Bachelor Master

Mathematical optimization using simplex algorithm, duality theory, sensitivity analysis. Applications include production planning, transportation, and resource allocation using CPLEX and Gurobi.

HM

Heuristics and Metaheuristics

Master

Heuristic and metaheuristic techniques including Genetic Algorithms, Simulated Annealing, Tabu Search, and Particle Swarm Optimization. Applications to scheduling, routing, and combinatorial optimization problems.

PAOR

Programming Applied in Operations Research

Master PhD

Programming for operations research using modeling languages (AMPL, OPL) and solvers (CPLEX, Gurobi). Implementing custom algorithms and building decision support systems.

DM

Discrete Mathematics

Bachelor

Mathematical foundations including logic, proof techniques, set theory, combinatorics, discrete probability, and Boolean algebra. Essential preparation for computer science.

PL

Programming Languages C/C++

Bachelor

Systems programming using C and C++. Covers pointers, memory management, OOP concepts, templates, and STL. Essential for operating systems and embedded systems development.

ATAI

Advanced Topics in AI

Bachelor Master

Recent advances in AI including deep reinforcement learning, neural architecture search, transformers, generative models, and explainable AI. Features research paper discussions and implementation projects.

Teaching Overview

21+
Years Teaching
15+
Courses Taught
1000+
Students
18
Ph.D. & M.Sc. Supervised

Available Resources

Lecture Slides

Comprehensive slide decks for all lectures, available in PDF format

Code Examples

Working code samples and implementations on GitHub

Reading Materials

Textbooks, papers, and additional reading resources

Video Lectures

Recorded lectures and tutorial videos

Assignments

Problem sets, projects, and practice exercises

Discussion Forum

Online forum for questions and discussions

Note for Students

All course materials are regularly updated. Students enrolled in current courses can access additional resources through the university's learning management system. For any questions regarding course materials or access, please contact me via email.