Workshops & talks
Debugging with GDB
This workshop I authored and presented myself in our department's IEEE Day in 2025. It had an attendance of a little over 20 people.
- Advanced debugging with GDB, covering breakpoints, step-wise execution, and runtime inspection of variables and program state.
- Demonstrated low-level debugging techniques, including memory inspection, stack tracing, and direct memory manipulation.
- Introduced participants to core dumps analysis, enabling post-mortem debugging of program crashes.
- Covered assembly-level debugging, including disassembly, instruction-level stepping, and switching between syntaxes.
- Presented multi-threaded debugging workflows, including thread inspection, scheduling control, and thread-specific breakpoints.
- Guided participants through compilation for debugging (e.g. -g, disabling optimizations) and practical debugging setups across Linux environments.
- Showcased advanced GDB features, such as watchpoints, conditional breakpoints, and integration with shell commands.
- Included hands-on exercises (e.g. CTF-style “crackme” challenges) to reinforce debugging and reverse-engineering concepts.
OS Installing workshop
Co-presented a beginner-oriented workshop (with Konstantina Liogka and Manolis Vellis) on operating system installation and basic concepts. The workshop was done as the second and final part of a mini series for the Nautilus student group. The first part was a PC Building workshop presented by Tsitsilidis Lampros and Amoiridis Andreas. Both workshops had attendance of around 20-30 people.
- Introduced differences between Linux and Windows, focusing on general usage, system structure, and typical workflows.
- Provided an overview of Linux distributions and discussed basic criteria for selecting a suitable system.
- Demonstrated installation processes, including use of live environments, basic partitioning, and dual-boot setups.
- Discussed the different package managers found on linux distributions.
- Took the opportunity to explain the benefits of free and libre software.
Data Stractures and Algorithms workshop
This workshop, authored and presented by me, was the second of two parts (the first part presented by colleagues Dimitris Agapiou and Ioannis Papadimitriou) as preparation for the IEEE Xtreme. The workshop was assisted by Ioannis Papadimitriou and had an attendance of about 15 people, most of whom were IEEE SB members.
- Introduced fundamental data structures and algorithms, including stacks, queues, trees, and graphs, with focus on practical use cases.
- Explained linear and binary search, highlighting differences in performance and applicability.
- Demonstrated sorting techniques (e.g. bubble sort) with step-by-step execution and visualizations.
- Covered graph traversal methods (DFS, BFS) with practical examples and implementations.
- Presented Python implementations, contrasting “pythonic” approaches with more explicit designs.
- Discussed time complexity and Big-O notation, building intuition around efficiency.
- Used visual aids and code walkthroughs to connect theory with practice.