Extensive implementation of software systems, based on the contents of other courses, in three consecutive phases: a) Implementation of a simplified form of various internal layers of a Database Management System: block and record organization on disk, a static data structure on a file on disk (e.g., static hash table), a dynamic data structure on a file on disk (e.g., B+ tree), system catalogs, query processing for a simple database query language. b) Implementation of an application on top of some commercial Database Management System or the Internet or software based on some other technology, c) Adding multithreading support and other optimization features to the application of the previous phases. Emphasis is given in software development techniques, i.e. use of source control systems (git), unit testing, etc. The project concept is usually inspired from the previous SIGMOD programming contest.
A team of selected students take part as a NKUA team to the current year SIGMOD programming contest, and are evaluated based on their participation and effectiveness in the competition.
No specific textbook. The instructor suggests educational resources online as well as manuals of the technologies, software systems and software development tools used.