Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 0
Καλωσήρθατε στην «Εισαγωγή στον Καλή αρχή! Προγραμματισμό Υπολογιστών»
Εισαγωγική διάλεξη 1. Πληροφορίες για το μάθημα 2. Βασικές έννοιες Πληροφορική, αλγόριθμος Πρόγραμμα & προγραμματισμός
Πληροφορίες για το μάθημα
Πληροφορίες Διδακτική ομάδα: Αντώνης Δημάκης (dimakis@aueb.gr) Γραφείο: κτήριο οδού Τροίας 2, γραφείο 506 Ώρες γραφείου: Τρίτη 11-1, Παρασκευή 1-3 Χρήστος Καλλέργης (xsk@aueb.gr) Μαρία Τογαντζή (mst@aueb.gr) 4-5 Υποψήφιοι Διδάκτορες Διαλέξεις: Τρίτη & Παρασκευή 9-11 Αμφιθέατρο Β Την Τετάρτη 11-1 θα γίνονται ΣΥΖΗΤΗΣΕΙΣ(ΦΡΟΝΤΙΣΤΗΡΙΑ) όταν χρειαστεί και μετά από ανακοίνωση (Ελάτε μόνο εάν δείτε ανακοίνωση)
Επικοινωνία!!!Εγγραφείτε στο μάθημα στο eclass (http://eclass.aueb.gr/courses/inf108/)!!! Πληροφορίες, ανακοινώσεις Υλικό διαλέξεων Εκφώνηση & παράδοση ασκήσεων Βοηθητικό υλικό (π.χ., οδηγίες εγκατάστασης Python) Χώρος συζητήσεων (forum)
Εργαστήρια 6-7 εργαστηριακά τμήματα Αρχίζουν την ερχόμενη εβδομάδα Θα λάβετε ανακοίνωση με email (αν εγγραφείτε στο eclass!) Προγραμματιστικές ασκήσεις πάνω στις έννοιες που έχουν καλυφθεί στις διαλέξεις Πιο εξειδικευμένα παραδείγματα αλγορίθμων, στοιχείων της γλώσσας Python
Εργαστήρια Τμήμα Ημέρα & ώρα Εργαστήριο Διδάσκων ΑΜ 1 Τετάρτη 11-1 CSLAB2 Κ. Τσιούτας 3xx0001-3xx0035 2 Τετάρτη 5-7 CSLAB1 Ι. Καρακωνσταντής 3xx0036-3xx0070 3 Πέμπτη 11-1 CSLAB1 Χ. Καλέργης 3xx0071-3xx0105 4 Πέμπτη 1-3 CSLAB1 Μ. Τογαντζή 3xx0106-3xx0140 5 Πέμπτη 3-5 ΗΥ1 Μ. Τογαντζή 3xx0141-3xx0175 6 Πέμπτη 3-5 ΗΥ2 Χ. Καλέργης Όλοι οι άλλοι 7 Παρασκευή 3-5 CSLAB1 K. Παλτόγλου 3xx0176-3xx0210 8 Παρασκευή 5-7 CSLAB1 Π. Γεωργακόπουλος 3xx0211-3xx0245
Τρόπος βαθμολόγησης 6 σειρές ασκήσεων! = βαθμός ασκήσεων (άριστα =10) # = βαθμός εργαστηριακής εξέτασης (άριστα=10) $ = βαθμός τελικής εξέτασης (άριστα=10) Τελικός βαθμός Β = 0,6$ + 0,2+ + 0,2,, εάν $ 3 = $, εάν / < 3 Προβιβάσιμος βαθμός: Β βάση = 5
Συγγράμματα 1. «Υπολογισμοί και Προγραμματισμός με την Python», John V. Gu6ag, 2015, κωδικός Ευδόξου: 50656350. 2. «Εισαγωγή στον Προγραμματισμό με την Python», David Schneider, 2016, κωδικός Ευδόξου: 59357236. Ελεύθερη διανομή από διαδίκτυο: 1. Εισαγωγή στον προγραμματισμό με την Python, Ν. Α. Αγγελιδάκης, 2015 2. Εισαγωγή στον Προγραμματισμό με αρωγό τη γλώσσα Python, Γ. Μανής, 2015 Η δομή της ύλης ακολουθεί το ηλεκτρονικό σύγγραμμα Composing Programs, John DeNero, 2015: βασισμένο στο Structure and InterpretaPon of Computer Programs, Abelson, Sussman & Sussman, MIT Press, 1979
Πληροφορική, αλγόριθμοι, υπολογιστές, προγραμματισμός
Πληροφορική Η μελέτη προβλημάτων με πολλά και σύνθετα δεδομένα, όπου συνήθως απαιτείται για τη λύση τους η χρήση Η/Υ Π.χ., ταξινόμηση, πρόβλεψη καιρού, δρομολόγηση τρένων, ανίχνευση γονιδίων στο DNA, κρυπτογραφία,... Τομείς Αλγόριθμοι Θεωρία υπολογισμού, γλωσσών, Βάσεις και επεξεργασία δεδομένων Συστήματα Αρχιτεκτονική Τεχνητή νοημοσύνη Γραφικά υπολογιστών και οπτικοποίηση Αριθμητικοί υπολογισμοί
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα)
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα? Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insermon sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insermon sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insermon sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insermon sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα αταξινόμητη στοίβα Αλγόριθμος ταξινόμησης insermon sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Αλγόριθμος: διαδικασία λύσης ενός προβλήματος με μια σειρά απλών βημάτων (που δεν περικλείουν το ίδιο ή δυσκολότερα πρόβλημα) ταξινομημένη στοίβα Thanks bud! Αλγόριθμος ταξινόμησης insertion sort Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα
Αλγόριθμοι Χρήση των αλγορίθμων στην Ιστορία Οδηγίες, βήματα εκτέλεσης συνταγών, κυνηγιού, γεωργίας, στη σιδηρουργία κτλ. Αλγόριθμοι που εκτελούν αριθμητικούς υπολογισμούς: 1700-2000 πχ: πολλαπλασιασμός ακεραίων (Αιγύπτιοι) 1600 πχ: παραγοντοποίηση,! (Βαβυλώνιοι) 300 πχ: ΜΚΔ (αλγόριθμος του Ευκλείδη) 200 πχ: εύρεση πρώτων αριθμών (κόσκινο του Ερατοσθένη) 263 μχ: λύση συστημάτων γραμμικών εξισώσεων (Απαλοιφή κατά Gauss - Λιού Χούι ) 820 μχ: λύση γραμμικών και τετραγωνικών εξισώσεων (Αλ Κουαρίσμι)
Αλγόριθμοι & Υπολογιστές Αρχικά, οι αλγόριθμοι εκτελούνταν από ανθρώπους (μαθηματικούς, γραμματείς, ) Υπολογιστές = άνθρωποι Γλώσσα προγραμματισμού = φυσική γλώσσα NACA computer room (1949) Απελπιστικά αργοί και ακριβοί υπολογισμοί Μεγάλοι & αναξιόπιστοι πίνακες τιμών (πχ, τιμές των! ", log ', () ' για πολλά διαφορετικά ') Πριν τον 17ο αιώνα υπήρχαν μηχανές που εκτελούσαν εξειδικευμένους υπολογισμούς, πχ μηχανισμός Αντικυθήρων Μπορεί να κατασκευαστεί «μηχανή» που εκτελεί οποιονδήποτε υπολογισμό; Προγραμματισμός: εισαγωγή στη μηχανή του υπολογισμού που θα εκτελεστεί
Υπολογιστές 1650: Pascaline του Blaise Pascal Μηχανικό «κομπιουτεράκι» του Blaise Pascal 1822: Μηχανή διαφορών του Charles Babbage Μηχανικό «επιστημονικό κομπιουτεράκι» 1837: Αναλυτική μηχανή του C. Babbage Πρώτος ψηφιακός υπολογιστής Προγραμματισμός με διάτρητες κάρτες 1842: Πρώτη προγραμματιστής: Augusta Ada King, Countess of Lovelace Πρόγραμμα υπολογισμού σταθερών Bernoulli για την Αναλυτική μηχανή του C. Babbage
Υπολογιστές 1936: Μηχανή Turing Υποθετική μηχανή Απλός μηχανισμός που μπορεί να υπολογίσει οτιδήποτε (μπορεί να υπολογιστεί) 1944-46: ENIAC, EDVAC Πρώτος ηλεκτρονικός ψηφιακός υπολογιστής (Mauchly, Eckert) Προγραμματισμός με καλώδια 1945: αρχιτεκτονική von Neumann Μνήμη περιέχει δεδομένα & πρόγραμμα Εύκολος προγραμματισμός
Αρχιτεκτονική υπολογιστών (von Neumann) δίαυλος CPU (κεντρική μονάδα επεξεργασίας) 0011010100011010 0111000110110100 1011101010100001 0010101010000101 0011010100011010 0111000110110100 1011101010100001 0010101010000101 0011010100011010 0111000110110100 1011101010100001 0010101010000101 0011010100011010 0111000110110100 1011101010100001 0010101010000101 0011010100011010 0111000110110100 1011101010100001 0010101010000101 μνήμη δευτερεύουσα μνήμη συσκευές εισόδου/εξόδου δίκτυο Προγραμματισμός σε γλώσσα μηχανής: σύνολο από βασικές εντολές CPU 1. Εντολές ανάγνωσης/εγγραφής μιας θέσης μνήμης 2. Εντολές εκτέλεσης αριθμητικών πράξεων (σχήμα του Eric Roberts (Stanford)) 3. Εντολές διακλάδωσης: επιλογή θέσης μνήμης όπου θα αναγνωστεί η επόμενη εντολή
Προγραμματισμός Προγραμματισμός: περιγραφή αλγορίθμου + δεδομένων στον υπολογιστή
Προγραμματισμός Προγραμματισμός: περιγραφή αλγορίθμου + δεδομένων στον υπολογιστή? Αλγόριθμος Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα Προγραμματιστής
Προγραμματισμός Προγραμματισμός: περιγραφή αλγορίθμου + δεδομένων στον υπολογιστή Αφαιρέσεις Αλγόριθμος Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα Προγραμματιστής
Προγραμματισμός Προγραμματισμός: περιγραφή αλγορίθμου + δεδομένων στον υπολογιστή Πρόγραμμα Αλγόριθμος Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα Αφαιρέσεις Προγραμματιστής void sort(int[] A) { for(int i = 1; i < A.length; i++) { int value = A[i]; int j = i - 1; while(j >= 0 && A[j] > value) { A[j + 1] = A[j]; j = j - 1; } A[j + 1] = value; } }
Προγραμματισμός Προγραμματισμός: περιγραφή αλγορίθμου + δεδομένων στον υπολογιστή Αλγόριθμος Δεδομένα = μη ταξινομημένη τράπουλα 1. Επιλογή πάνω φύλλου από τη μη ταξινομημένη στοίβα 2. Εισαγωγή στην ταξινομημένη στοιβα με τη σωστή σειρά 3. Επανάληψη των 1,2 μέχρι να μη μείνουν αταξινόμητα φύλλα Αφαιρέσεις Αντικείμενο του μαθήματος Προγραμματιστής Πρόγραμμα void sort(int[] A) { for(int i = 1; i < A.length; i++) { int value = A[i]; int j = i - 1; while(j >= 0 && A[j] > value) { A[j + 1] = A[j]; j = j - 1; } A[j + 1] = value; } }
Τo μάθημα «Εισαγωγή στον Προγραμματισμό Υπολογιστών» Αντικείμενο του μαθήματος: Χρήση αφαιρέσεων για τη δόμηση προγραμμάτων Συναρτήσεις & δεδομένα Βασικά προγραμματιστικά παραδείγματα Ανάπτυξη απλών αλγορίθμων Βασικές έννοιες της γλώσσας void sort(int[] A) { for(int i = 1; i < A.length; i++) { int value = A[i]; int j = i - 1; while(j >= 0 && A[j] > value) { A[j + 1] = A[j]; j = j - 1; } A[j + 1] = value; } }
Άσκηση 0 (δε βαθμολογείται) Στο μάθημα θα χρησιμοποιηθεί η γλώσσα προγραμματισμού Python Ασκήσεις, εξετάσεις, εργαστήρια Έκδοση 3.x (οποιοδήποτε x είναι οκ!) Τελευταία έκδοση: 3.7 (1/10/18) Προσοχή: η έκδοση 2 ΔΕΝ ΕΊΝΑΙ ΣΥΜΒΑΤΗ με την 3 Αν έχετε προσωπικό υπολογιστή, κατεβάστε την (έκδοση 3) από το https://www.python.org και εγκαταστήστε Οδηγίες εγκατάστασης θα τοποθετηθούν αύριο στο eclass Τρέξτε από ένα τερματικό python3 και γράψτε: >>> 1839873489327432*239847329847392874
Ευχαριστώ, τα λέμε την Παρασκευή 9-11, Αμφ. Β Bye guys!