Undergraduate
studies

of informatics of university of piraeus

Courses of 1st semester

Logic Design of Digital Systems

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

1. Binary arithmetic systems. Conversions between numbering systems. Integer representation.
2. Boolean algebra and logic gates. Optimization of Boolean functions.
3. Combinational logic. Hierarchical design.
4. Arithmetic circuits.
5. Multiplexers. Coders/decoders.
6. Modern sequential circuits.
7. Registers. Counters. State machines.
8. Memories.
9. Digital integrated circuits
10. Circuit simulation.
11. Introduction to hardware description languages.

The main goal of the course is to introduce the students to the basic concepts of digital systems design.

1. To know the basic principles that govern object-oriented programming
• Will have recognized the basic concepts of digital systems design.
• Will have understood the basic knowledge about digital systems: what are their main components, what functions they perform, how they are designed.
• Will have understood how numbers and data are represented in digital systems.
• Will be able to design and develop combinational and sequential digital circuits.
• Will be able to analyze the performance of a digital circuit and, after evaluating it, to improve it accordingly.
• Will be able to utilize digital circuit design and simulation tools
• Will have acquired the background knowledge to attend and understand more advanced courses in hardware and computer architecture.

302/Lam.126
+302104142425

Analysis I

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

• Sequences.
• Series.
• Functions of a single variable.
• Derivative.
• Indefinite integral.
• Differential Equations.
• Definite integra
• Numerical solution of equations.
• Polynomial interpolation of functions.
• Numerical integration.

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

Introduction to Programming

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

Course Description - Modern Programming Approaches and Technology
- IT & Software Development
- Computer Troubleshooting
- Programming in a Windows environment
- Evolution of programs languages
- Basic principles of C/C++
- C/C++ commands
- Operators and C/C++ Preprocessor
- Simple input/output and program applications in C/C++

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.
1. have acquired the basic knowledge about the scientific disciplines of Algorithms and Programming,
2. have understood the basic programming principles of a PC,
3. recognize and understand the basics of the C/C++ programming languages,
4. distinguish the basic principles of functional and object-oriented programming,
5. be able to utilize the basic algorithmic structures in C/C++ languages,
6. be able to solve simple and complex computational problems using basic Data Structures,
7. be able to take advantage of basic software development and debugging tools in a programming environment, critically evaluating their suitability according to its parameters.

303/Lam.126
+302104142476

Internet Technologies

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

• This course describes in an introductory, but complete, way the technologies and protocols on which the Internet and the World Wide Web are based and analyses in more detail the development of applications using specific tools/languages, which are performed on the client side and/or on the server side.

• Some of the concepts that are addressed are: TCP/IP protocol stack, transport and internet level, HTML5, CSS3, Javascript, jQuery, AJAX call, PHP nodejs, XML and JSON.

With the successful completion of the course the student will be able to:
• recognize the basic principles of protocols that support the Internet, with an emphasis on IP and TCP.
• understand the basic features of internet applications, their structure, their objectives as well as their interconnection.
• Έχει διακρίνει και εμβαθύνει στις των βασικές τεχνικές και εργαλεία, η αξιοποίηση των οποίων διασφαλίζει τον προγραμματισμό και τον άρτιο έλεγχο μιας τέτοιας εφαρμογής.
• Understand and have a basic working knowledge of the basic techniques and tools, the use of which ensures the planning and proper control of such applications.
• solve, compare, value and propose alternatives to existing web applications and their potential performance problems, and with traditional methods/tools.
• collaborate with his fellow students in the creation and execution of simple and complex web applications.

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

Introduction to Computer Science with the programming language PYTHON

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

Mathematics for Computer Science

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

Introduction to Set Theory: Sets. Mappings. Operations. Relations. Equivalent Sets.Basic Principles:Mathematical Induction. The Inclusion – Exclusion Principle. The Pigeonhole Principle. The Principle of Diagonalization.Mathematical Logic:Language of Propositional Logic. Truth Values. Truth Assignment. Logical Implication. Axioms and Completeness of Propositional Calculus. Truth Trees. Resolution Principle. First Order Logic. Quantifiers.Boolean Algebra:Lattices. Operations. Switching Circuits.Introduction to Combinatorics: Orderings. Permutations. Combinations.Differences – Sums:Difference Operator. Factorial Polynomials. Newton's Binomial Theorem.Elements of Number Theory: Divisibility. GCD. Euclid's Algorithm. Prime Numbers. Congruence Relations. Euler-Fermat Theorem.

2. Βασικές Αρχές: Μαθηματική επαγωγή. Αρχή εγκλεισμού – αποκλεισμού. Αρχή του περιστερεώνα. Αρχή της διαγωνιοποίησης.
3. Μαθηματική Λογική: Γλώσσα προτασιακού λογισμού. Τιμές αληθείας. Εκτίμηση. Λογικό Συμπέρασμα. Αξιώματα και πληρότητα του προτασιακού λογισμού. Δένδρα αληθείας. Αρχή της απόφασης. Κατηγορηματικός Λογισμός. Ποσοδείκτες.
4. Άλγεβρα Boole: Δικτυωτά. Πράξεις. Δίπολα.
5. Εισαγωγή στη συνδυαστική ανάλυση: Διατάξεις. Μεταθέσεις. Συνδυασμοί.
6. Διαφορές – Αθροίσματα: Ο τελεστής της διαφοράς. Παραγοντικά πολυώνυμα. Διώνυμο του Νεύτωνα.
7. Στοιχεία Θεωρίας Αριθμών: Διαιρετότητα. Μέγιστος κοινός διαιρέτης. Αλγόριθμος του Ευκλείδη. Πρώτοι αριθμοί. Ισοτιμίες. Θεώρημα Εuler-Fermat.

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.

• θα έχουν ολοκληρωμένη γνώση των βασικών εννοιών και συμβολισμών που αφορούν τα σύνολα, σχέσεις και απεικονίσεις,
• θα γνωρίζουν να εφαρμόζουν την αρχή της επαγωγής, την αρχή του περιστερεώνα και την αρχή εγκλεισμού-αποκλεισμού για την επίλυση προβλημάτων,
• θα γνωρίζουν τις βασικές έννοιες και τις βασικές τεχνικές του Προτασιακού Λογισμού, όπως για παράδειγμα, τους πίνακες αληθείας, την αρχή της απόφασης και τα δένδρα αληθείας,
• θα γνωρίζουν τις βασικές τεχνικές απαρίθμησης που βασίζονται στις απλές και επαναληπτικές διατάξεις, τους απλούς και επαναληπτικούς συνδυασμούς. Επίσης, θα μπορούν να δίνουν συνδυαστικές αποδείξεις σε προβλήματα απαρίθμησης,
• θα μπορούν να υπολογίζουν απλά αθροίσματα χρησιμοποιώντας τον τύπο του Διωνύμου του Νεύτωνα και τα παραγοντικά πολυώνυμα,
• θα γνωριζουν βασικά στοιχεία και τεχνικές από την θεωρία αριθμών όπως ο αλγόριθμος του Ευκλείδη, η έννοια και οι ιδιότητες του ισοϋπολοίπου, η εύρεση των λύσεων Διοφαντικών εξισώσεων, το θεώρημα Euler-Fermat και οι εφαρμογές του,
• θα γνωρίζουν τις βασικές ιδιότητες τις δυαδικής άλγεβρας Boole και θα μπορούν να απλοποιούν εκφράσεις και συναρτήσεις της άλγεβρας Boole.

Sapounakis Aristides

542, CB
+30 210 4142262

542, CB
+30 210 4142313