Programming with C
Advanced programming techniques with C. Pointers, call by reference, recursion, structures. Working with files. Abstract data types. Algorithms and complexity. Introduction to data structures. Lists, stacks, queues. Introduction to C++ and Java.
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.
Theory of Computation
Finite automata and regular expressions. Pushdown automata and context-free grammars. Turing machines and Church's thesis. Undecidability. Computational complexity.
2008-2009 (Computer Science and Biomedical Informatics, Univ. of Central Greece)
Programming with C
Advanced programming techniques with C. Pointers, call by reference, recursion, structures. Working with files. Abstract data types. Algorithms and complexity. Introduction to data structures. Lists, stacks, queues. Introduction to C++ and Java.
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.
Software Engineering
General principles of software engineering (computer technology, software development processes, project managment). Requirement engineering (software requirements, scope, necessity and evaluation of requirements, systems modelling, software prototyping, formal specification). Design (architecture design, distributed systems architectures, object-oriented design,design of real time systems, software reusability, design of user interfaces). System evaluation (software test, reliability, etc.).
Theory of Computation
Finite automata and regular expressions. Pushdown automata and context-free grammars. Turing machines and Church's thesis. Undecidability. Computational complexity.
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.
