Computer Programming

Code 3.4.3020.1
Semester 1st
Category Obligatory
Credits 5
Class Hours - Lab Hours 3 - 2
Lecturers Dimitris Fotakis, Nikolaos Papaspyrou, Stathis Zachos, Petros Potikas (T & R Associates), Theodora Souliou (T & R Associates), Konstantinos Tzamaloukas (T & R Associates)
Links MyCourses, Course's Website
Web Platform Microsoft Teams


Introduction to computer programming and to algorithmic problem solving. Program structure, syntax, semantics. Data types. Arithmetic and logical expressions. Flow control. Structured programming, procedures, functions, call by value and call by reference. Ordinal and enumerated types, arrays, linear and binary search, multidimensional arrays. Recursion. Pointers, pointers and arrays, dynamic memory management. Structured data types: strings, structs, unions, text and binary files. Text processing. Data structures: computational complexity, linked lists, abstract data types, stacks, queues, graphs, binary trees, binary tree traversals. Sorting: selection sort, insertion sort, bubble sort, mergesort, quicksort. Arithmetic computations: square root, trigonometric functions. Program correctness, assertions, invariants, verification. Lab: a set of problems to be solved in a subset of C/C++.