DS-529 Data Analytics [C]

- Course Code DS-529 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 5
- Semester 4th Semester Faculty Christos Doulkeridis

In this course, methods and techniques for data analysis are taught: visualization methods for data exploration, data modeling, data mining, and applications of data analysis and use of data. The aim of the course is to familiarize students with the concept of data analysis, and to obtain skills in management and analysis of data sets in real-life applications.

Upon successful completion of the course, the students will be in position:

- to understand the basic concepts of data analytics
- to use tools and techniques for exploratory data analysis
- to understand the properties and characteristics of a given data set
- to solve practical problems of data analysis using real data sets
- to model problems concerning data analysis and use the model for drawing conclusions for any given data set
- to apply predictive models and algorithms on data sets

- Introduction to data analysis: data, data types, data quality, data preprocessing, similarity measures, similarity of multidimensional data, string similarity, similarity between sets and lists, text similarity.
- Univariate and bivariate analysis: visualization, histograms, cumulative distribution function, elements of descriptive statistics, measures of position and spread, correlation, alternative mapping techniques using plots.
- Time-series analysis: trend, seasonality, noise, smoothing methods, moving averages, autocorrelation function, analyzing time-series in practice.
- Multivariate analysis: using visualization techniques for multivariate data analysis, the curse of dimensionality, empty space phenomenon, dimensionality reduction techniques.
- Modeling: computations and estimations, model building, from descriptive modeling to mathematical modeling.
- Probability theory and statistics: Binomial distribution and Bernoulli trials, the significance of the Normal distribution, Central Limit Theorem, power-law distributions, construction method for generator of random data distributions.
- Simulation: how simulations can be used for extracting information from data, Monte-Carlo simulations, simulation when analytical modeling is complex, model building with simulations, model validation with simulations.
- The problem of clustering, pre-processing and post-processing, clustering methods, center-seekers, tree builders, neighborhood growers.
- Principal component analysis (PCA), the problem of finding important attributes, feature selection methods, application of PCA in practice.
- Predictive analytics, the problem of classification, classification algorithms, training, testing, evaluation of classification results, techniques for improving precision.

DS-210 Operating Systems – UNIX [C]

- Course Code DS-210 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 5
- Semester 4th Semester FacultyD. Georgiou

The purpose of the course is to highlight the particular requirements and features of operating system multiprocessor systems, multi-computers, distributed systems and multimedia systems. Also it covers operating system’s security issues as well as the basic design principles. At the same time, emphasis is placed on the UNIX operating system (use and programming).

In this context, the learning outcomes of the course, after its successful completion, are that the students will be able:

- to understand the basic concepts of operating systems for multiprocessing, multi-computing and distributed systems.
- to know the basic security mechanisms (authentication, authentication, access control, etc.) that an operating system implements and the basic principles of designing an operating system.
- to analyse, evaluate and justify alternative technologies / mechanisms of operating systems.
- to design scripts for implementing specific functionalities at the operating system level.

- Operating Systems for Multiprocessors, Multi-Computers and Distributed Systems.
- Multimedia Operating Systems: Multimedia Files, Video Compression.
- Time scheduling of Multimedia Files.
- Security of Operating Systems: Threats, Attacks, User Identity Certification, Access Control Mechanisms.
- Design principles of Operating Systems.
- Smart Card Operating Systems: Multi-application support from a service provider, multi-application support, JAVA cards.
- UNIX History and Basic Concepts: File System Navigation, UNIX shell, Utilities, The Kernel Structure.
- UNIX Processes.
- Memory management in UNIX.
- Input – Output in UNIX.
- The UNIX File System.
- The Bourne shell: Use, shell Environment Adaptation, Redefining Input and Output.
- Shell Programming: Variables, Flow Control, Regular Expressions, Signals.
- System Management, User and Group Management, Disk Management and File Systems, Software Installation and Management.

DS-011 Statistics [C]

- Course Code DS-011 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 5
- Semester 4th Semester Faculty Michael Filippakis

This course attempts to enhance the knowledge gained in the course Statistics and to provide an appropriate mathematical background that enables the students to study the fields of computers and computers networks. After successfully completing this course, students are expected to have acquired the basic knowledge of the fundamental concepts Statistics. The course directly supports most of the curriculum subjects and lessons: Note that during the lesson, specific examples of application are discussed in some of the above curricular subjects such as applications in telecommunication systems, cryptography, digital services such as e- learning, e-health. In conclusion, the students through the course process develop mathematical thinking and analyze, adapt their acquired knowledge to apply them to a variety of subjects in the field of study or the field of study, as well as to acquire new knowledge. In addition, they learn to solve complex or new problems in their scientific field of study by developing integrated as well as creative or innovative solutions and approaches while supporting their solutions and views in a methodical and scientific way. Finally, they learn to analyze and critically and responsibly choose ideas and information about those elements that concern them.

- Sample theory, samples, replacement, random samples and numbers.
- Sampling distributions and statistical interrelations.
- Frequency and relative frequency.
- Cluster sampling, stratified sampling, systematic sampling, statistical estimations unbiased estimations.
- Reliability and confidence intervals.
- Hypotheses testing and importance of statistics hypotheses, significance level, normal distribution testing.
- Interpretation of criterion t for dependent and independent samples.
- Adaptation test x2.
- Adaptation curve, regression and cross-correlation adaptation curve, regression, least square.
- Multiple regression, estimation fault, factors of cross-correlation.
- Correlation and independence.
- Interpretation of indicators of cross-correlation, Pearson, Spearman, Biserial, φ.
- Propagation analysis, interpretation of propagation analysis.
- Multiple-variables statistical analysis.

DS-101 Algorithms and Complexity [C]

- Course Code DS-101 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 5
- Semester 4th Semester Faculty George Vouros

Upon successful completion of this course, students should be able:

- to explain and deal with fundamental concepts regarding algorithms and complexity, such as “problem” and “problem class”, algorithm, instance, computational resources and resource requirements as a function of instance’s size, asymptotic behavior, symbols for asymptotic behavior, recursive functions and methods for their resolution.
- to analyse, select and evaluate algorithms based on the concepts and methods mentioned above.
- to design computationally effective algorithms based on the above concepts and algorithms’ design techniques (divide and conquer, greedy, dynamic programming).
- to communicate algorithmic ideas in a concise and formal way.

Towards constructing and evaluating computational programs and advancing their computational effectiveness.

- Asymptotic notation
- Examples of algorithms and their analysis in priority queues and heaps
- Sorting in linear time: Union-Find
- Divide and Conquer: examples of algorithms and their analysis (mergesort, multiplication of numbers and matrices, nearest points), master theorem and proof.
- More on divide and conquer: quicksort and probabilistic quicksort as an example of non-deterministic algorithms and of their analysis
- Selection algorithms and analysis
- Greedy Algorithms, proofs fs soundness
- Dynamic programming and examples (including graph problems)

DS-320 Computer Networks Ι [C]

- Course Code DS-320 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 5
- Semester 4th Semester Faculty Panagiotis Demestichas
- A. Galani

The course Computer Networks I is expected to introduce students to the concepts of Computer Networks and more specifically in the network protocols’ hierarchy, emphasising on the network layer.

Through this course it is expected that the students will get acquainted with the functionality of computer networks and will be able to comprehend the principles on which data transfer is realised through computer networks.

When completing this course, students will know how the network protocols work and the functionalities of the network layer. Moreover, they will be able to select and apply the appropriate routing algorithms, so as to choose the most appropriate route each time, depending on the network needs, as well as to program such algorithms using C/C++ or Java.

- Introduction to networks, need for networks, categories of networks. Network elements and communication links.
- Protocols and protocol hierarchies/stacks, role of protocols.
- Functionality of network layer.
- Switching, circuit switching; packet switching, datagrams, virtual circuits.
- Routing, link state routing, Dijkstra, Bellman-Ford, spanning tree, multicast, broadcast.
- Congestion control.
- Students are asked to conduct small projects, related to the implementation of network level functionality and algorithms, through the use of C/C++ and/or Java.

In addition, articles, web addresses for useful information, as well as exercises for practicing students are posted in the platform Evdoxos.

More »DS-504 Database Systems Design [C]

- Course Code DS-504 Type of Course Core
- Theory/Lab Sessions 3 hours / 2 hours ECTS Credits 5
- Semester 4th Semester Faculty George Vassilacopoulos
- Maria Halkidi
- E. Stougiannou

The students upon the successful completion of the course will be able:

- to analyze a database design problem and collect the requirements for implementing a database system.
- to design a relational database at conceptual and logical level and create the appropriate data models
- to design and implement well structured databases based on normalization rules.
- to use the appropriate tools to design and implement a relational database
- to formulate SQL queries for defining and managing databases

- Introduction to Relational databases.
- Entity-Relationship Model: Basic concepts, Entity Sets, Relationship Sets; Design Issues: Keys, E-R Diagram, Design of an E-R Database Schema, Reduction of an E-R schema to tables.
- Relational model: Relations; Attributes; Relational schema; relational algebra (operations); relational calculus.
- Database design: Normalization, Integrity constraints, functional dependencies, decomposition, normal forms
- SQL: Basic structure, Set Operations, Aggregate Functions, Joins, Nested sub-queries, views, Modification of the Database (insert; update; delete), triggers.