Online Resources
|
Student ResourcesAdmissions
|
Spring 2009 - (University of Cyprus)EPL446 - Advanced Database Systems: Spring 2009, Spring 2010The main objective of this undergraduate course is to provide an in-depth understanding of Database Management Systems. In particular, students will be exposed to the internal structures and algorithms of a relational database system. Students will get a deeper understanding by implementing components of the Minibase database system in the C++ language. Minibase is a database management system intended for educational use that includes a parser, optimizer, buffer pool manager, storage mechanisms (heap files, secondary indexes based on B+ Trees), and a disk space management system. The course is organized in four parts: i) Storage and Indexing, ii) Query Optimization, iii) Transaction Management and iv) Advanced Topics (Distributed Databases and XML Data Management). Outline: Introduction to Storage and Indexing, Storing Data: Disks and Files, Tree-based Indexing and Hash-based Indexing, Overview of Query Evaluation, External Sorting, Evaluating Relational Operators, Structure of a Typical Relational Query Optimizer, Overview of Transaction Management, Introduction to Concurrency Control (2PL, Serializability, Recoverability, Lock Conversions, Deadlocks), Concurrency Control with Locking, Dynamic Databases and the Phatom Problem, CC in B+trees, Multigranular locking, Concurrency Control without Locking (Optimistic, Timestamp, Multiversion), Introduction to Crash Recovery (ARIES, LOG, WAL, Checkpointing), Recovering from a System Crash (Analysis, Redo, Undo), Media Recovery, Distributed Databases (Architectures, Storage, Catalog Management and Query Processing) and XML Data Management (Models, Query Processing and XQuery) EPL371 - Systems Programming: Spring 2009, Spring 2010 In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the UNIX operating system (and all OS that belong to this family, such as Linux, the BSDs, and even Mac OS X) and its programming environment. Topics covered will include the user/kernel interface, fundamental concepts of UNIX, user authentication, basic and advanced I/O, fileystems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on UNIX systems will also be covered. The students are expected to have a good working knowledge of the C programming language (EPL132) and a good working knowledge of fundamental Operating System Concepts (EPL221). Outline: Main concepts of System Programming, Introductory and Advanced UNIX commands, System utilities and stream editors (awk,sed), Advanced Shell programming with an emphasis on Bash, Low-Level I/O in C, Files and Filesystem, Processes: Environment, Control and Signals, Interprocess Communication (IPC) with an emphasis on Pipes and Named Pipes (FIFO) in C, XSI IPC (Semaphores, Shared Memory and Message Queues) in C, Network IPC (TCP Sockets) and the client/server model in C, Multithreading in C, Performance evaluation (profiling). Issues in system security and system engineering, Systems Programming in Windows (threads, processes, IPC, sockets and Powershell programming), Scripting Languages: Perl, PHP, Python, TCL/TK. EPL342 - Databases: Fall 2009 The main objective of this undergraduate course is to provide an in-depth understanding of concepts related to the design and utilization of a database management system. Students will get a deeper understanding byimplementing these concepts in a commercial database management system. The course is organized in four parts: i) Introduction and Conceptual Modeling using the ER Model, ii) Relational Model and Relational Algebra, iii) Structured Query Language III, and iv) Database Design Theory and Methodology Outline: Introduction: Databases and Database Users, Database System Concepts and Architecture, Data Modeling Using the Entity-Relationship (ER) Model, The Enhanced Entity-Relationship (EER) Model, The Relational Data Model and Relational Database Constraints, Relational Algebra, Relational Database Design by ERand EER-to-Relational Mapping, SQL-99: Schema Definition, Constraints, Queries, and Views, Introduction to SQL Programming Techniques, Functional Dependencies and Normalization for Relational Databases, Relational Database Design Algorithms and Further Dependencies, Practical Database Design Methodology, Introduction to Data Storage, Indexing, Query Processing, and Physical Design |
2008-2009 (Open University of Cyprus)Fundamental Specialization in Theory and Software: 2007-2008; 2008-2009
|