Extensive implementation of software systems, based on the contents of other courses, in two 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.