2008-2013 (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.

Programming Language Theory

Introduction and history, Syntax and Semantics, Grammars, Control Structures, Types, Logic Programming with Prolog.

Updated: 19-July-2017                                                                               email: emarkou@ucg.gr