Undergraduate
studies

of informatics of university of piraeus

Courses of 2nd semester

Analysis II

Course Code
Course Type Obligatory
Track
Teaching Hours 4 Theory + 1 Tutorial
ECTS: 5

• Generalized integral.
• Gamma and Beta Functions.
• Laplace Transformation.
• Sequences and series of functions.
• Functions of two variables.
• Derivatives of functions of two variables.
• Double integral.
• Functions of many variables.
• Fourier series and integrals.
• Fourier transform.

After successfully completing this course, students are expected to have acquired the basic knowledge regarding some basic principles and notions of Mathematics and Mathematical Logic, which are necessary for the students of an undergraduate course in Computer Science.
• θα γνωρίζουν τον υπολογισμό των γενικευμένων ολοκληρωμάτων,
• θα γνωρίζουν τις συναρτήσεις Γάμμα και Βήτα και τις εφαρμογές τους,
• θα μπορούν να υπολογίζουν τον μετασχηματισμό Laplace και Fourier των συναρτήσεων, με εφαρμογές στην επίλυση πολλών κατηγοριών συναρτησιακών εξισώσεων,
• θα μπορούν να μελετήσουν τη σύγκλιση των ακολουθιών και σειρών συναρτήσεων, με εφαρμογές στην αναπαράσταση των συναρτήσεων με δυναμοσειρές,
• θα γνωρίζουν τις συναρτήσεις δύο (ή περισσοτέρων) μεταβλητών. Συγκεκριμένα θα γνωρίζουν το όριό τους, την μερική παράγωγό τους και την διαφορισιμότητα,
• θα μπορούν να επιλύουν ακριβείς διαφορικές εξισώσεις, να υπολογίζουν απλά και δεσμευμένα ακρότατα,
• θα γνωρίζουν πολλές τεχνικές για τον υπολογισμό του διπλού ολοκληρώματος,
• θα γνωρίζουν την αναπαράσταση μιας συνάρτησης με σειρά ή ολοκλήρωμα Fourier.

Sapounakis Aristides

542, CB
+30 210 4142262

542, CB
+30 210 4142313

Discrete Mathematics

Course Code
Course Type Obligatory
Track
Teaching Hours 4 Theory + 1 Tutorial
ECTS: 5

• Introduction to Graph Theory: Undirected Graphs. Directed Graphs. Applications of graphs in algorithms. Trees: Binary trees. Ordered trees. Decision trees
• Combinatorial numbers: Fibonacci numbers, Catalan, Motzkin, Narayana, Stirling, Bell.
• Generating functions: Normal and exponential sequence generating functions. Generating functions of sets. The problem of inversion (Lagrange theorem).
• Recurrence equations: Solving linear recurrence equations using the characteristic polynomial. Solving recurrence equations using generating functions.
• Asymptotic estimates: Asymptotic symbolism. The dominant term theorem. The Stirling equation. Sum approximations. Singularity analysis.
• Languages and Automata: Typical languages, D - automata. Recognizable languages.

Upon completion of the course, students will be able to:
1. understand basic concepts and basic results regarding graphs. For example, they will be able to see if two graphs are isomorphic or not,
2. explain combinatorial numbers Fibonacci, Catalan, Motzkin, Stirling, Bell etc. as well as their applications,
3. understand basic concepts of automatic and standard languages,
4. solve linear recurrence equations with or without generator functions,
5. understand basic concepts of standard and exponential function generators and how to use them to solve enumeration problems,
6. understand asymptotic symbolism and will be able to apply appropriate theorems and formulas to corresponding problems.

Sapounakis Aristides

542, CB
+30 210 4142262

542, CB
+30 210 4142313

Data Structures

Course Code
Course Type Obligatory
Track
Teaching Hours 4 Theory
ECTS: 5

The subject of the course is the study of the basic data structures used in the development of algorithms. Emphasis is placed on the execution time of the basic functions of the data structures and the detailed determination of the number of key operations required. The space of each data structure is also determined analytically.

Specifically, the structures of the array, linked list, stack, queue, heap and binary search trees are presented. The technique of hashing, balanced search trees (AVL, Red-Black and B-trees) and basic sorting algorithms are studied, as well.

Upon completion of the course, students will be able to:
1. Apply the appropriate data structures through analytical and critical approach in order to solve computational problems that arise in the different fields of application.
2. Assess the time required for the basic functions of a data structure both analytically and experimentally.
3. Determine the space complexity of a data structure both analytically and experimentally.
4. Develop and implement efficient data structures by selecting appropriate methods and tools after discovering, re-designing and evaluating the "behaviour", "usability" and general characteristics and parameters of each implementation platform.
5. Follow the methodology of discovery, examination, creation, composition, organization, revision and reconstruction of structures whenever there is a need or problem that needs to be solved.

301, Lam. 126
+302104142124

Object Oriented Programming

Course Code
Course Type Obligatory
Track
Teaching Hours 4 Theory + 2 Laboratory
ECTS: 5

General Skills

• Search, analysis and synthesis of data and information, using the necessary technologies
• Autonomous work
• Teamwork
• Project design and management
• Adaptation to new situations
Basic course content includes:

Main subject of the course is the introduction to object-oriented programming with a complete analysis of the JAVA programming language. Basic structures, inheritance, polymorphism, encapsulation, special classes, exceptions, special themes, libraries, interfaces, file access, access modifiers, non-access modifiers.

Upon successful completion of this course students will be able to:
1. To know the basic principles that govern object-oriented programming
2. Implement object-oriented programs
3. To design, develop and implement software as solutions to problems, consisting of objects and their interactions
4. Create classes, interfaces and objects
5. Use Java language modifiers correctly
6. Manage effectively and with the right tools the emerging exceptions
7. Handle files intended for reading and storing data
8. They keep pace with the changing technological requirements as they are exposed to modern programming techniques aimed at the quality of their software
9. Identify, evaluate and utilize software implemented in accordance with the basic principles of object-oriented design

540 Central Building

Computer Architecture

Course Code
Course Type Obligatory
Track
Teaching Hours 4 Theory + 1 Tutorial
ECTS: 5

1. Design, Organization and Technology of Computers.
2. Computer Performance and Performance Evaluation Metrics.
3. Instruction Set Architecture (Registers, Instructions, Addressing Methods).
4. Machine Language, Symbolic Language (Assembly) and Assemblers.
5. Computer Arithmetic. Representation of integers and floating-point numbers.
6. Processor Design: Datapath and Control Unit. 7. Performance mechanisms (pipeline).

The main goal of the course is to introduce students to the basic concepts of computer organization, the design and organization of the main computer components and the assembly language.

Upon successful completion of the course, the students:
• will be familiar with the basic design techniques of modern computers
• will have identified and understood the interface between software and computer hardware
• will have understood how the software controls the hardware
• will be able to design and develop programs in computer assembly language
• will know how to use processor architectural simulators tools and run assembly programs
• will be able to analyze/evaluate the performance of a program and advise the developer on how to improve it
• will be able to identify the parameters that affect the computer performance
• will be able to evaluate the performance and compare different processors

302/Lam.126
+302104142425

Applied Algebra

Course Code
Course Type Obligatory
Track
Teaching Hours 4 Theory + 1 Tutorial
ECTS: 5

• Algebraic structures: Groups. Rings. Fields. Vector spaces.
• Basic linear algebra: Matrices. Determinants. Linear Systems. Characteristic values: Eigenvalues. Eigenvectors. Diagonalization of matrices. Quadratic forms.
• Inner product: Orthonormalization. Gram-Schmidt method.
• Matrix Representations of Linear Transformations: Change of basis matrix. Matrix Representations of Linear Transformations.

Upon completion of the course, students will be able to:
1. understand basic operations and properties of Matrices,
2. calculate the value of a determinant using different techniques,
3. choose the appropriate algorithm to solve and investigate Linear Equation Systems,
4. calculate the eigenvalues and eigenvectors of a Matrix as well as to perform its Diagonalization,
5. understand the meaning of Vector space, linear combination, linear independence, dimension and their applications,
6. understand the meaning of the inner product, the length, the distance, the projection in a vector space. They will be able to model and solve problems of least squares and projection problems in spaces with smaller dimensions.

Sapounakis Aristides

542, CB
+30 210 4142262

542, CB
+30 210 4142313