The basic target of this course is the study of fundamental data structures and algorithms. More specifically, this study contains some theoretical issues as well as their practical applications. In particular, we study arrays, lists, stacks, queues and priority queues, search trees, hashing, graphs as well as searching, sorting, shortest paths and many fundamental algorithms that are based on these data structures.

Basic elements of Propositional and Predicate Logic, Proof Techniques, Number Systems – Basic Elements of Number Theory, Sets, Functions – Relations, Recurrences, Sums and Asymptotic Notation, Basic Elements of Counting – Combinations and Permutations of Objects, Discrete Probability, Graphs and Trees.

Introduction to the design and analysis of algorithms. Brute force methods. Divide and Conquer. Reduce and Conquer. Transform and Conquer. Time and Space Trade-offs. Dynamic programming. Greedy Algorithms. Iterative Improvement. Network Flows. Algorithmic Power Limitations and methods to overcome them. Investigation of a big variety of sorting, search, graph, string matching, combinatorial, geometrical and numerical problems.

Introduction. Storage media. System architecture. Entity-relationship model. Relational model. Relational algebra and relational calculus. Functional and multivalued dependencies. Normalization and Normal forms. SQL language. Mandatory lab exercises with MS SQL Server.

Basic concepts in operating systems. Operating system structure and design principles. Structue, representation and process management. Process scheduling and synchronization. Deadlocks detection and prevention. Main and secondary memory management. File System principles. Popular Operating systems overview (such as Unix, Linux, Windows). Examples of contemporary operating systems (such as in mobile devices).

Introduction. Paths and cycles. Trees, Spanning trees. Conectivity. Planarity. Coloring. Directed graphs. Flows and Networks. Matching and covers.

1. Amortized Analysis 2. Priority Queues 3. Union Find of sets 4. Competitive Analysis 5. Weighted Balanced trees 6. Self-adjusting trees 7. Advanced issues in Hashing 8. Data structures for integers(Van Emde Boas trees) 9. Fractional Cascading 10. Lower Bounds 11. Persistence 12. Strings

Introduction, data issues and data preprocessing, data warehouses, classification, clustering, association rules, outlier detection, applications and case studies, practical exercises in MatLab/SQLServer.

Introduction to Distributed Operating Systems. Process Synchronization and the client-server model. The RPC model and remote methods invocation. Distributed shared memory and distributed file systems (the file systems e.g. NFS and AFS) . Introduction to Web Operating Systems. Extending and integrating current operating systems in the Web framework. Distributed Web storage caching frameworks and Operating system services for naming, secure access and protection under distributed systems and the Web. Overview of the distributed operating systems (Mach, WebOS, Ghost etc) and new distributed technologies for Web information management (grid, cloud, directories etc).

Training on methodologies for knowledge discovery in databases. Understanding of the main methodologies for classification, clustering, and association rules. Deeper study of database technologies and familiarization with data warehouses. Acquisition of skills in applying data warehouse and data mining techniques, and in using existing tools. Acquisition of skills in extractging knowledge from data and evaluating the results.

Linear Programming (e.g., duality, simplex method, interior point algorithms). Number-theoretic algorithms (e.g., modular arithmetic, primality testing, integer factorization). Randomized algorithms. Approximation algorithms. Probabilistic analysis. Online algorithms and competitive analysis. Local Search.

– fundamental issues – classic information retrieval models – reference collections – document preprocessing – inverted indexing – signature indexing – index compression – relevance feedback – multimedia retrieval – retrieval in the world wide web – parallel and distributed information retrieval

Basic concepts for Web information systems. Design and implementation of Internet based applications by using modern frameworks and techniques (Java, XML, PHP technologies) . Models and information structures appropriate for data management by using applications and tools (PHP, MySQL) for Web data accessing. Web applications protocols and infrastructures. Java advanced functionalities and applets with emphasis on the database and information systems connectivity. The Social Web environment and data management applications with the use of Web 2.0 technologies. Web search engines and their functionality.

Basic concepts of Distributed Databases (DDB), Distributed Database Systems, DDB Architecture, Autonomy and Heterogeneity Issues, Design of DDBs and Data Allocation, Distributed query processing and optimization, Distributed Database Transactions, reliability and data replication, Parallel databases and relationship with DDBs, Grid data management, Adaptive query processing, Map-Reduce techniques, Modern systems, NoSQL DBMSs and current research issues.

Text Processing, Language Modeling with N-Grams, Text Classifiers, Vector Semantics, Neural Nets and Neural Language Models, Part-of-speech Tagging, Sequence Processing with Recurrent Networks, Information Extraction, Question Answering, Dialog Systems and Chatbots (Conversational Agents)

Centrality measures, network models (random) and characteristics (small world phenomena, power law distribution on various networks characteristics), mechanisms for network generation (preferential attachment), network robustness. Online social data sources, community detection, sentiment analytics basics, information diffusion, influence detection, fraud detection.

Introduction and General vision of the Semantic Web (SW). SW Architecture. Technologies and Languages of the SW. XML (Description, DTD, XML Schema, Namespaces, XPath, XSLT, XML tools). RDF (Description, XML syntax, RDF Schema, RDF/RDFS Semantics, Querying RDF/RDFS with SPARQL, Linked Open Data, RDF tools). OWL (Introduction to ontologies and OWL, Description and syntax, OWL flavors, Examples, OWL in OWL, Future extensions, OWL tools). OWL2 Presentation. Ontology Engineering (Ontology creation, Reusing ontologies, Semi – automatic methods). SW Applications. Linked Open Data. Logic and Inferencing (SWRL, OWL2 RL, RIF, RuleML).