of informatics of university of piraeus

Courses of 4th semester

Computer Networks

Course Code
Course Type Obligatory
Teaching Hours 4 Theory + 1 Laboratory

This course describes in an introductory, but complete, way the basic concepts and principles of networking and of the protocols on which the different types of networks are based, with emphasis on the internet protocols.

In particular, the following are analysed:

• Basic concepts and principles of networking
- types of networks (switching networks, internet), design (OSI reference architecture and TCP/IP architecture)

• Links and transmission of information
- transmission and transmission of signal through a link, transmission speed, multiplexing
- algorithms and technologies for access to a common medium
- reliable transmission

• Switching Networks
- forwarding and switching technologies

• Internetworking
- general principles of networking, routing, types of routing algorithms
- IP networks: addressing, ARP, forwarding, routing (OSPF,BGP), hashing, ICMP

• End-to-end communication
- process communication (basic mechanisms)

• UDP and TCP protocols
• Wireless Communications
- Principles of mobile operation
- Media access protocols on local wireless networks

• Applications Performance
- Coding and quality of service
- protocols for video transfer

With the successful completion of the course the student will be able to understand concepts such as:
• Network architectures: Switching, Circuit switching and packet switching, Network types (local networks, metropolitan networks, wide area networks, wired and wireless networks), Network topologies (grid, artery, ring, star).
• Performance measures: delay, bandwidth, bit rate, packet loss rate.
• Network design : Layering, Protocols and Standards, Connection-oriented and connectionless Services.
• The OSI reference model, the TCP/IP protocol stack, and the role of Standardization Organizations.
• Physical layer: analog and digital representation, Encoding and modulation, ,transmission media, Error Detection and Correction, Multiplexing.
• Data Link Layer: framing, error checking (ARQ protocols), flow control, second layer standards and protocols (DSL, ISDN).
• Multi-Access Control: addressing, multiple access with and without competition, local network technologies (Ethernet, Token Ring, Gigabit Ethernet), Repeaters, bridges, hubs and switches.
• Wireless local networks (wifi) and mobile networks (3rd and 4th generation).
• Switching Network applications: packet switching and virtual circuits, switches and internetworking; routing: distance vector routing and link statealgorithms, Congestion Control, IP protocol (addressing, OSPF and BGP routing protocols, fragmentation).
• Transport layer: (multiplexing/demultiplexing, reliable data transfer, flow control), congestion control and UDP and TCP.
• TCP congestion control
• Application layer: transfer-level service models, client-server model, peer-to-peer model, popular application-level protocols: HTTP, SMTP/POP3/IMAP, DNS.

302,Central Building
+30 210 4142137
fax +30 210 4142472


Course Code
Course Type Obligatory
Teaching Hours 4 Theory

The subject of the course is to study techniques for solving basic computational problems (Divide-and-Conquer, Dynamic Programming, Greediness etc.) and present them without reference to a specific programming language. The problems studied are central to the Computer Science and the design of efficient solving techniques for these specific problems contributes to the rapid resolution of a very large number of other computational problems that arise in various application areas.

In presenting the relevant algorithms, emphasis is placed on their execution time and the number of key operations in an algorithm is analytically determined. The solution quality of an algorithmic technique is also analyzed when achieving the best solution is practically impossible due to overly long execution time.

Among other things, algorithms are presented for sorting, searching, graph problems such as traversals, connected components, topological sorting, minimal spanning trees and shortest paths. Algorithms for basic numerical calculations (matrix multiplication, polynomial value calculation, Fast Fourier Transformation) are also presented.

Finally, an introduction to the basic concepts of Theory of Computation (Complexity Classes, etc.) is included.

Upon completion of the course, students will be able to:
1. Calculate the number of key operations in an algorithm.
2. Apply suitable algorithmic techniques for the solutions of computational problems that arise in the different application fields.
3. Understand the inherent difficulty of an algorithmic problem.
4. Decompose an algorithmic problem into its components.
5. Design and develop effective solution techniques.
6. Assess the solution quality of an algorithm, both analytically and experimentally.
7. Decide on the basis of the above and choose the optimal solution for each problem.
8. Analytically determine the time and space complexity of algorithmic techniques.
9. Implement efficient algorithms taking into consideration the specific implementation platforms.

301, Lam. 126


Course Code
Course Type Obligatory
Teaching Hours 4 Theory + 2 Laboratory

The course offers knowledge about Database design. In particular, it covers topics such as:
1. DB theoretical background (Relational model, Relational algebra),
2. SQL language,
3. DB design techniques, including normalization theory,
4. Hands-on using a popular DB system (PostgreSQL).

Upon the successful completion of the course, the students will be able to:
- Understand topics related to the theoretical background of Databases, including Relational Algebra and SQL language
- Exploit on the theoretical knowledge gained in order to be able to design an Information System
- Use the ubiquitous SQL language at an advanced level
- Embed database design techniques and methodologies
- Have a global view, both from the research and the empirical perspective, in order to specialize in Information Systems and Databases.

501,Central Building

Internet and Web Programming

Course Code
Course Type Obligatory
Teaching Hours 4 Theory + 2 Laboratory

The course covers the theoretical study and the practical training in the area of Internet and World Wide Web programming , such as sockets programming, client-server applications and 3-tier architectures. In particular it includes the following:
1. Client-Server Architecture
2. Network Programming (socket programming, tcp-udp)
3. HTTP protocol (description with respect to the client server model)
4. HTTP Programming: Web server implementation
5. Customer-Server Architecture Variations (3-trier architectures)
6. Server programming (Java servlets)
7. Permanent storage of data in web applications.

Upon completion of the course students are expected to:
1. Be able to list the basic architectures for developing applications on the Internet and the World Wide Web, such as client-server and 3-tier architectures.
2. Know the basic technologies for the Internet and the World Wide Web such as IP, TCP, UDP and HTTP protocols, sockets technology, web servers and application servers.
3. Be able to develop web applications using an appropriate programming environment.
4. Be able to implement sockets programming (TCP sockets and UDP sockets).
5. Implement client-server applications.
6. Be able to integrate 3-tier architecture into their applications.


Principles and Applications of Signals and Systems

Course Code
Course Type Obligatory
Teaching Hours 4 Theory + 1 Laboratory

The topic of systems and systems has been growing with a fast and continuous rate for the last decades and is a fundamental topic in many undergraduate courses internationally, including study programs in informatics. In parallel, it lays the foundation of the teaching of more advanced and specialized technological courses, such as Pattern Recognition, Image Analysis, Computer Vision, Telecommunication Systems, Computer Networks, Multimedia Systems and Voice Recognition.

This particular course is divided into 7 units:
Unit 1: Introduction to the concepts of signals and systems, examples of signals and systems in Informatics, signal classifications, basic signal properties
Unit 2: Signal tranforms
Unit 3: Signal Sampling and quantization
Unit 4: Linear, time-invariant systems
Unit 5: Communication Systems and modulation
Unit 6: Digital Communication Systems
Unit 7: The Matlab programming environment

After the completion of this course the student will be able to:
1. Understand and define the notions of signals and systems
2. Classify signals in digital and analog and in continuous and discrete time
3. Identify and research the basic properties of systems, such as linearity, causality and time invariance
4. Identify the concept of the discrete and of the continuous Fourier transform
5. Design and implement the (periodic) sampling procedure
6. Apply the uniform (linear and nonlinear) quantization
7. Define the concepts of convolution, impulse response and transfer function of linear, time-invariant systems
8. Know and manage Analog and Digital Communication Systems
9. Use analog modulation: amplitude, angle (phase, frequency), pulse
10. Be aware of the concept of multiplexing
11. Analyze and evaluate the performance of systems under the presence of noise
12. Define and develop pulse code modulations systems
13. Apply the Shannon Hartley theorem
14. Detect binary signals
15. Program and implement transmissions in the basic zone
16. Use bandbass digital modulation techniques
17. Program with MATLAB (or equivalent software)

302,Central Building
+30 210 4142137
fax +30 210 4142472

302,Central Building

Computers in Education

Course Code
Course Type Elective
Teaching Hours 4 Theory

The course deals with the utilization of Information and Communication Technologies (ICT) in education. More specifically, it deals with methods, techniques, platforms, software, etc. that offer support in the processes of teaching, assessment and learning. In more detail, the contents of this course are:
• Historical background on the use of ICT in education.
• Asynchronous and modern e-learning.
• Benefits of using-integrating ICT in education.
• Familiarity with Web 2.0 technologies.
• Familiarity with educational software for creating quizzes, comics, posters, crossword puzzles, web browsing, wikis, avatars, etc.
• Introduction to the national accumulator of educational content and software "Photodentro".
• Designing educational scenarios that include the use of ICT in the process and the way of teaching a knowledge domain.
• Evaluation of educational software.
• Familiarity with CMS (Content Management Systems) and LMS (Learning Management Systems).
• Use of open source software (Moodle) to create online courses.
• Educational games.
• Adaptive Educational Software.

Upon completion of the course students will be able to:
• Describe and explain terms and concepts related to the use of ICT (Information and Communication Technologies) in education.
• Know and understand the benefits of ICT in education.
• Utilize web2.0 technologies in the educational process.
• Identify and interpret the terms CMS (Content Management System) and LMS (Learning Management System) and recognize their differences.
• Be able to identify if an application-system is a CMS or LMS.
• Operate existing educational software and platforms and be able to use them either as an adjunct to the teaching process of a knowledge domain, or to create e-courses.
• Integrate computer applications in the educational process.
• Propose solutions related to the use of ICT to improve the educational process.
• Recognize the features that an educational software should have.
• Compare educational software.
• Evaluate an educational software.
• Develop their own educational software.

207,Central Building

Information and Coding Theory

Course Code
Course Type Elective
Teaching Hours 4 Theory

1. Introduction to Information theory
2. Entropy, entropy as an Information measure, randomness
3. Channel bandwidth
4. Trustworthy data transmission and Shannon’s second theorem
5. Channels
6. Code theory
7. Codes
8. Errod detecting codes, encoding without noise, encoding with noise, codes with variable length (Fano-Shannon, Huffman), data compression algorithms(Lempel Ziv, Arithmetic codes)
9. Algebraic codes, Linear-Cyclic codes

Upon successful completion of the course the students would be able to:
• Understand Code Theory
• Classify the different methods
• Delve in their theory for exploiting them in the future in the scope of designing, developing and applying the corresponding code
• Explore alternative encodings
• Assess the amount of information that can be transferred through a communication channel
• Assess the randomness of a source
• Develop compression algorithms
• Detect and correct random errors in a signal during its transmission
• Detect and correct random errors in a file system due to physical damages

Applied Combinatorics

Course Code
Course Type Elective
Teaching Hours 4 Theory

1. Combinatorial objects and parameters,

2. Generating functions (ordinary, exponential, multivariate),
3. Combinatorial generation (backtracking, Gray codes, ranking-unranking),
4. Enumeration and fast generation for sets, permutations, combinations, set partitions, integer partitions, trees, lattice paths,
5. Young tableaux, the RSK algorithm, hook-length formulas,
6. Partial orders – Lattices – Mobius inversion
7. Paths in graphs: The transfer-matrix method, The Gessel-Viennot Lemma,
8. Enumeration under symmetry: Polya Theory

After successfully completing this course, students will:
• be able to use basic enumeration tools such as generating functions and Polya Theory.
• know the basic techniques for constructing combinatorial objects.
• be able to design and implement efficient algorithms for generating combinatorial objects.
• know the basic combinatorial tools used in search problems, optimization problems, in large discrete structures (internet, DNA, human brain), as well in algorithms analysis.

Manes Konstantinos

Business Strategy

Course Code
Course Type Elective
Teaching Hours 4 Theory

A common and core feature of all long-term successful firms is the development and preservation of strategic competitive advantages. Therefore, the development of "business strategies" is applicable to any business or organization operating in competitive markets. The subject of the course is, on the one hand the introduction of students to the methods and tools that help a company to plan, evaluate, implement and control its strategy. On the other hand, it is the systematic analysis of case studies of Greek and foreign companies in order to connect the theory with practice. The course includes: creating business plans, Game Theory applications, Business Reengineering strategies, business differentiation & cost strategies and strategic ways of using information technologies, change management strategies, etc. The course examines a set of concepts, contexts, methods and tools for shaping a company's strategy and implementing it.

Specifically, the following strategic sections are analyzed:
• Necessity of strategy, concept of strategic management
• Strategic positioning of the company: analysis of internal and external environment, strategic mission and vision of a company
• Business strategy - Strategy for developing a competitive advantage
• Group level strategy - Business development strategy
• Strategy Implementation Methods: organic development, acquisitions and mergers, strategic alliances
• Business Internationalization Strategy
• Implementation of the strategy in practice: Structures, procedures, management of strategic changes.

Upon successful completion of the course students will be able to:
• Understand the key concepts of strategy and the views and approaches developed in the literature and business practice.
• Learn how to use the techniques and methods of strategic analysis, to recognize their advantages and disadvantages.
• Determine how the strategy is shaped, given a number of strategic choices (which include: scope and type of activities, competitive strategy, strategy implementation through acquisitions / mergers / alliances / same development, and timing of strategy moves).
• Evaluate and select the best strategy options.
• Understand the importance of the strategy development and the role that the effective management, systems, human resources, values, and culture play in its successful implementation.
• Delve into strategic decision-making techniques and common mistakes in strategy design and implementation.
• Use the available software to set a strategic goal.
• Control and supervise the achievement of targets and goals through the collection, processing and analysis of data by employing strategic ways of using ICT, databases and electronic applications both in the virtual context of a business and in real cases.

Πολλάλης Ι

Foreign Language Terminology of ICT

Course Code
Course Type Elective
Teaching Hours 4 Theory

1. Computer machines (history – functional parts) Vocabulary exercises
2. A brief history of informatics (terminology beginning with a, b) Exercises
3. Education of Informatics students (terminology beginning with c), Exercises
4. Task list of an Informatics professional (c cont.), Exercises
5. Informatics applications (c cont.), Exercises
6. Informatics businesses (c cont., d), Exercises
7. Information encoding, digital systems, numbers, alphanumeric characters (d cont. and e), Exercises
8. Programming languages (e cont. and f) , Exercises
9. Programming proverbs (f cont. and g) , Exercises
10. Processing systems (terminology beginning with h and i) , Exercises
11. Telematics (i, j, k, l) , Exercises
12. Networks (l), Exercises
13. preSoftware (m), Exercises
14. Software attributes (m), Exercises
15. Files (n, o), Exercises
16. Databases (p), Exercises
17. International Committee on Information and Freedoms (p, q, r), Exercises
18. Artificial Intelligence (r, s), Exercises
19. Internet timeline(s, t), Exercises
20. Multimedia (t, u, v, w, x, y, z), Exercises

Upon successful completion of the course students are expected to:
1. Have enriched their vocabulary with advance Informatics Terminology.
2. Compose specialized scientific text.
3. Have familiarized themselves with professional terminology and be able to seamlessly incorporate it in their oral and written communication.
4. Be able to use software for machine translation to and from French for specialized purposes.
5. Be able to analyze, distinguish and evaluate information derived from existing Databases of scientific content.
6. Process and synthesize derived information, making the most of appropriate processing systems.
7. Be able to utilize networks and evaluate collected data.
8. Exchange information and expertise through telematics.
9. Sort data by creating appropriate files.


Mamakou Eirini

126 +30 2104142641

Dynamical Systems

Course Code
Course Type Elective
Teaching Hours 4 Theory

An analytical description of the subjects covered throughout the course is given below:
• Elements of mathematical analysis required for solving ordinary differential equations.
• Elements of linear algebra, linear mappings, eigenvalues and eigenvectors.
• Algorithms for solving non-linear differential equations.
• Two-dimensional flows and phase-space representation.
• Ordinary differential equations and linear dynamical systems.
• Discrete dynamical systems and difference equations.
• Non-linear dynamics.
• Chaotic dynamical systems.

Πιο συγκεκριμένα παρατίθεται αναλυτικά το περιεχόμενο του μαθήματος:
1. Στοιχεία Ανάλυσης και επίλυση συνήθων διαφορικών εξισώσεων ειδικού τύπου.
2. Στοιχεία Γραμμικής Άλγεβρας, γραμμικές απεικονίσεις, ιδιοτιμές, ιδιοδιανύσματα.
3. Αλγοριθμική Επίλυση Μη – Γραμμικών Διαφορικών Εξισώσεων.
4. Δισδιάστατες ροές, χώρος φάσεων.
5. Συνήθεις διαφορικές εξισώσεις και γραμμικά δυναμικά συστήματα.
6. Διακριτά δυναμικά συστήματα – Εξισώσεις διαφορών.
7. Μη γραμμική δυναμική.
8. Χαοτικά Δυναμικά Συστήματα.

By completing this course, students are expected to:
1. solve algebraic and differential equations,
2. compute the eigenvalues and eigenvectors of linear mappings,
3. identify, formulate and solve dynamical systems (autonomous and non-autonomous) in terms of the underlying differential equations that govern their behavior,
4. understand the notion of stability within the context of dynamical systems,
5. discriminate discrete and non-linear dynamical systems,
6. describe the chaotic behavior of a dynamical system,
7. acquire the ability to simulate and algorithmically solve non-linear dynamical systems for which it is impossible to derive the analytical expressions describing their time evolution,
8. understand and evaluate the conditions under which a dynamical system exhibits chaotic behavior,
9. study dynamical systems in a unified framework that combines both theoretical and practical understanding focusing on applications in physics, biology and economics.

+30 210 4142314

Computational Number Theory

Course Code
Course Type Elective
Teaching Hours 4 Theory

Divisibility relation, prime numbers, GCD and LCM, complexity of arithmetic operations, Euclidean and extended Euclidean algorithm, linear Diophantine equations, groups, rings, fields, modulo, Chinese Residue Theorem, Euler-Fermat Theorem, Fermat’s little Theorem, RSA algorithm, principal roots, power residues, square residues, Legendre and Jacobi symbols, finding square root of modulo n, prime number verification: Fermat criteria, Solovay-Strassen, Miller-Rabin, integer factorization algorithms: Dixon, p-1 and ρ of Pollard, continuous fractions, quadratic sieve, number field sieve, discrete logarithm algorithms.

Upon completion of the course, students will be able to:
1. understand the basic properties that result from the divisibility of numbers,
2. calculate the complexity of arithmetic operations,
3. apply the Euclidean and extended Euclidean algorithm,
4. solve linear Diophantine equations,
5. understand basic properties of the equivalency relations. They will be able to apply the Euler-Fermat theorems and the Chinese Residue Theorem. They will know the RSA algorithm,
6. calculate and use square residues, the symbols of Legendre and Jacobi,
7. apply prime number verification algorithms such as the Fermat criterion and the Miller-Rabin algorithm,
8. apply integer factorization algorithms such as Pollard algorithms and the quadrative sieve algorithm,
9. apply algorithms for calculating the discrete logarithm.

542, CB
+30 210 4142313

English ΙV

Course Code
Course Type Foreign Language
Teaching Hours 4 Theory

1. Vocabulary, Syntax, Writing in English
2. Teaching authentic scientific texts
3. Interconnection of Informatics with topics of other scientific fields, through text presentation
4. Familiarization with scientific papers
5. (Structure and content of English CVs)
6. Translation of texts from Greek to English and vice versa

Upon successful completion of the course students are able to:
1. Understand authentic oral and written discourse for constructive communication and participation in international scientific and professional environments.
2. Acquire enriched knowledge of vocabulary and syntax in the context of scientific/academic writing addressed to international environments.
3. Understand and process authentic research papers and informative texts of interdisciplinary interest related to the utilization of Informatics in the fields of Product Promotion (Marketing, E-Commerce, etc.), bank operation and banking transactions through software, Operational Research, Accounting Software, Accounting , electronic Stock Market and financial monitoring applications, Pollution of the Environment etc.
4. Evaluate the content and the degree of documentation of the findings of the English research texts/papers.

Mormori Pelagia

French ΙV

Course Code
Course Type Foreign Language
Teaching Hours 4 Theory

1. Reading comprehension
2. Information identification
3. Critical review article
4. Arguments formulation
5. Essay
6. Formal letter
7. Submission of candidacy
8. Negotiation
9. Submitting complaints
10. Oral communication: Understanding specialized discussions 11. Oral communication: Interactive exercises 12. Oral communication: Monologue

Upon successful completion of the course students are expected to:
• Have an advanced knowledge (vocabulary, syntax, wording) of the French language in written and oral form, and have enriched their vocabulary with basic terminology of Informatics.
• Be able to use terminology of their scientific field and compose specialized text.
• Locate information in scientific articles and incorporate it in exercises assigned to them in other courses of their curriculum.
• Synthesize information from data collected in foreign language publications.
• Check the validity and critically evaluate the collected information in order to structure their arguments, wherever and whenever such an approach is deemed necessary.
• Focus on the important points and formulate their opinions.
• Compose articles in a well-organized manner, resulting in substantive conclusions and proposals.
• Write high class formal letters and CVs.
• Have oral and writing skills stating strong arguments even in cases of international negotiations.