2007-2008 (Computer Science Department, Univ. of Ioannina)

Introduction to Programming

Algorithms and programming languages. Programming with C. Program structure. Stepwise refinement. Variables and operators. Statements, data structures, arrays, structures, pointers, functions. Call by value and by reference. Structured programming. Debugging.

Data Structures

Abstract data types. Time and space complexity. Arrays, lists, stacks, queues, heaps, trees, binary search trees, balanced trees. Graphs. Hashing.

Distributed Computing and Network Security

Distributed computing in networks with mobile agents (communication networks, distributed databases, internet, etc). Different models. Synchronous vs asynchronous models. The rendezvous problem. Anonymous mobile agents in anonymous networks with or without orientation. Unsolvability detection. Exploration and communication protocols in networks with faulty links and hostile hosts. Algorithms for hostile hosts detection. Fault tolerance algorithms. Optimal and approximation algorithms. Negative results.

Updated: 12-Oct-2023                                                                               email: e<lastname>@dib.uth.gr