Περιγραφή θέματος
Γενικά
- Εδώ αναρτώνται οι γενικές ανακοινώσεις από τους διδάσκοντες προς τους εγγεγραμμένους φοιτητές, οι οποίοι τις λαμβάνουν και στην ηλεκτρονική τους διεύθυνση.
Σε αυτό το forum, μπορεί οποιοσδήποτε εγγεγραμμένος φοιτητής να αναρτά ερωτήσεις σχετικές με το μάθημα και να λαμβάνει απαντήσεις από τους διδάσκοντες. Οι ερωτήσεις και οι απαντήσεις θα είναι διαθέσιμες σε όλους τους φοιτητές.
Οι φοιτητές μπορούν να δηλώσουν με την εγγραφή τους αν θέλουν να ενημερώνονται για τις αναρτώμενες ερωταπαντήσεις.
Διδάσκοντες
- Στάθης Ζάχος ()
- Δημήτρης Τσουμάκος ()
- Δημήτρης Φωτάκης ()
- Μάριος Κόνιαρης ()
- Πέτρος Ποτίκας ()
- Δώρα Σούλιου ()
Ώρες Γραφείου Διδασκόντων
- Δημήτρης Τσουμάκος: Παρασκευή 11.30 - 12.30, Γρ. 2.1.9, (Παλιό) Κτίριο Ηλεκτρολόγων.
- Δημήτρης Φωτάκης: Πέμπτη 16:00 - 17:00, στο γραφείο 1.1.10, (Παλιό) Κτίριο Ηλεκτρολόγων.
- Μάριος Κόνιαρης: θα ανακοινωθούν.
- Πέτρος Ποτίκας: θα ανακοινωθούν.
- Δώρα Σούλιου: Τρίτη 15:30 - 16:30 webex link
Υλικό
Γενικές Πληροφορίες
- Περιγραφή του μαθήματος, πρόγραμμα εργαστηρίου και διαδικαστικά θέματα: ενημερωτικό φυλλάδιο και αντίστοιχες διαφάνειες.
- Διαλέξεις Παρασκευής, 12:45 - 15:30, μέσω διαδικτύου για φοιτητές που δεν έχουν δεσμεύσει θέση για δια ζώσης διδασκαλία: Webex link.
- Οδηγίες σύνδεσης στο MS Teams (η διαδικασία σύνδεσης απευθύνεται σε φοιτητές που έχουν κωδικούς ΕΜΠ).
- Ιστοσελίδα ερωτήσεων και απαντήσεων σχετικά με το μάθημα και το εργαστήριο του ακαδ. έτους 2020-2021 (κατηγορία progintro).
- Βιντεοσκοπημένες διαλέξεις του ακαδημαϊκού έτους 2020-2021.
Διαφάνειες
Οι διαφάνειες που θα χρησιμοποιούνται στις διαλέξεις είναι διαθέσιμες από την παρούσα σελίδα για τη διευκόλυνση των φοιτητών, ώστε αυτοί να μη χρειάζεται να κρατούν εκτενείς σημειώσεις κατά τη διάρκεια των μαθημάτων. Η ύλη των διαφανειών παρουσιάζεται αναλυτικά στις σημειώσεις του μαθήματος. Μη σπεύσετε να εκτυπώσετε όλες τις διαφάνειες στην παρούσα μορφή. Ενδέχεται να τροποποιηθούν κατά τη διάρκεια του εξαμήνου.
- Σε μορφή για παρουσίαση, μία διαφάνεια ανά σελίδα.
- Σε μορφή για εκτύπωση, έξι διαφάνειες ανά σελίδα.
(τελευταία ενημέρωση: 2/10/2021)
Σημειώσεις
Οι σημειώσεις του μαθήματος διατίθενται σε ηλεκτρονική μορφή για διευκόλυνση των φοιτητών. Μη σπεύσετε να τις εκτυπώσετε στην παρούσα μορφή, γιατί ενδέχεται να τροποποιηθούν κατά τη διάρκεια του εξαμήνου.
Ιστοσελίδες Παλαιοτέρων Ετών
Links στην ιστοσελίδα του μαθήματος για τα ακαδημαϊκά έτη: 2020-21, 2019-20, 2018-19, 2017-18, 2016-17, 2015-16, 2014-15, 2013-14, 2012-13, 2011-12, 2010-11, 2009-10, 2008-09, 2007-08, 2006-07, 2005-06, 2004-05, 2003-04, 2002-03, 2001-02.
Θέματα Εξετάσεων Παλαιοτέρων Ετών
- Κανονική περίοδος 2003-04 (σε Pascal).
- Κανονική περίοδος 2004-05 (σε Pascal).
- Αρχείο παλιών θεμάτων στο forum των σπουδαστών ΣΗΜΜΥ.
Εργαστήριο
Γενικά
- Λόγω των περιορισμών εξαιτίας του COVID-19, το εργαστήριο του μαθήματος θα γίνεται online μέσω της πλατφόρμας Microsoft Teams. Για να συνδεθείτε με το MS Teams, πριν κάνετε οτιδήποτε άλλο, διαβάστε απαραίτητα τις οδηγίες σύνδεσης και χρήσης (οι οποίες αναφέρονται σε φοιτητές που έχουν κωδικούς πρόσβασης του ΕΜΠ, με άλλα λόγια σε φοιτητές που έχουν ολοκληρώσει την εγγραφή τους στη Σχολή). Για όσους φοιτητές έχουν κωδικούς ΕΜΠ, ο κωδικός του MS Teams για σύνδεση με το μάθημα είναι: 7dbngpl
- Tο εργαστήριο του μαθήματος γίνεται σε 3 βάρδιες (παρατίθενται και τα links για τα αντίστοιχα MS Teams meetings, για όσους φοιτητές δεν έχουν ακόμη κωδικούς ΕΜΠ και αναγκαστικά θα μπαίνουν στο εργαστήριο ως guests):
- Δευτέρα 15:15 - 17:00: Ονόματα: Α - ΚΑ, MS Teams Link.
- Τετάρτη 08:30 - 10:15: Ονόματα: ΚΕ - ΠΑΝ, MS Teams Link.
- Πέμπτη 15:15 - 17:00: Ονόματα: ΠΑΠ - Ω, MS Teams Link.
- Φροντίστε να προμηθευτείτε κωδικό για το εργαστήριο μέσω του get-your-account.
- Για να δουλέψετε τις εργαστηριακές ασκήσεις από το σπίτι:
- Αν έχετε Windows, πιθανώς θα χρειαστείτε το πρόγραμμα PuTTY
- Αν έχετε Linux ή MacOS πληκτρολογήστε σε Terminal: ssh pi21b600@novice.softlab.ntua.gr (προφανώς βάλτε το δικό σας login!)
- Και στις δύο περιπτώσεις, ίσως χρειαστεί να ρυθμίσετε το encoding (ISO-8859-7).
- Η υλοποίηση του PZhelp είναι διαθέσιμη από το GitHub. Κατεβάστε το αρχείο pzhelp και αποθηκεύστε το στον ίδιο κατάλογο με τα προγράμματά σας.
Οδηγίες
Ασκήσεις
- 1η σειρά ασκήσεων: εκφώνηση.
- 2η σειρά ασκήσεων: εκφώνηση.
- 3η σειρά ασκήσεων: εκφώνηση.
- 4η σειρά ασκήσεων: εκφώνηση.
- 5η σειρά ασκήσεων: εκφώνηση.
- 6η σειρά ασκήσεων: εκφώνηση.
- 7η σειρά ασκήσεων (για προπόνηση): εκφώνηση.
- 8η σειρά ασκήσεων: εκφώνηση.
Διαλέξεις
Διάλεξη 1/10/2021
- Υποδοχή
- Θέματα διεξαγωγής του μαθήματος και του εργαστηρίου
- Σκοπός του μαθήματος
- Σύντομη εισαγωγή στην Πληροφορική
Διάλεξη 8/10/2021
- Σύντομη εισαγωγή στην Πληροφορική
- Δομή του προγράμματος
- Συντακτικά διαγράμματα
- Δηλώσεις μεταβλητών
- Τι σημαίνει ορθό πρόγραμμα
- Ανάθεση τιμής σε μεταβλητή
- Έξοδος στην οθόνη
- Είσοδος από το πληκτρολόγιο
Διάλεξη 22/10/2021- Είσοδος από το πληκτρολόγιο
- Αριθμητικές παραστάσεις
- Λογικές παραστάσεις
- Σύνταξη παραστάσεων
- Λογικά διαγράμματα ροής
- Δομές ελέγχου
- Σύνθετη εντολή
- Εντολή if
- Εντολή switch
- Εντολή FOR / for
Διάλεξη 29/10/2021
- Εντολή FOR / for
- Εντολή while
- Εντολή do … while
- Εντολές break και continue
- Κενή εντολή
- Δομή του προγράμματος ξανά
- Σταθερές
- Συνώνυμα τύπων
- Διαδικασίες
Διάλεξη 5/11/2021
- Διαδικασίες (επανάληψη)
- Συναρτήσεις
- Δομημένος προγραμματισμός
- Βαθμιαία συγκεκριμενοποίηση
- Παρουσίαση και συντήρηση
- Μορφοποίηση εξόδου
- Ανακατεύθυνση
- Τακτικοί τύποι και τύποι απαρίθμησης
- Πίνακες
- Γραμμική αναζήτηση
- Δυαδική αναζήτηση
- Πολυδιάστατοι πίνακες
Διάλεξη 12/11/2021
- Πολυδιάστατοι πίνακες
- Πολλαπλασιασμός πινάκων
- Μαγικά τετράγωνα
- Αναδρομή
- Συνάρτηση παραγοντικού
- Αριθμοί Fibonacci
- Μέγιστος κοινός διαιρέτης
- Συνάρτηση παρόμοια με του Ackermann
- Αμοιβαία αναδρομή
- Αριθμητικοί υπολογισμοί
- Αριθμητικά σφάλματα
- Εύρεση τετραγωνικής ρίζας
- Προκαθορισμένες συναρτήσεις
- Τριγωνομετρικές συναρτήσεις
Διάλεξη 19/11/2021
- Εξαγωγή ψηφίων και μετατροπή σε άλλο σύστημα αρίθμησης
- Υπολογισμός δύναμης με επαναλαμβανόμενο τετραγωνισμό
- Από το PZhelp στη C++
- Τύποι δεδομένων
- Πρόγραμμα και υποπρογράμματα
- Ανάθεση
- Βρόχος for
- Είσοδος και έξοδος
- Δείκτες
- Πέρασμα παραμέτρων με αναφορά
- Δείκτες αντί περάσματος με αναφορά
- Πίνακες και δείκτες
- Επεξεργασία κειμένου
- Παραδείγματα: Διάβασμα και επεξεργασία χαρακτήρων και ακεραίων
Διάλεξη 26/11/2021
- Επεξεργασία κειμένου
- Παραδείγματα: Διάβασμα και επεξεργασία χαρακτήρων και ακεραίων
- Παράδειγμα: Μέτρηση χαρακτήρων και γραμμών
- Παράδειγμα: Μέτρηση λέξεων
- Παράδειγμα: Συχνότητες εμφάνισης μήκους λέξεων
- Παράδειγμα: Μετατροπή μεταξύ μικρών και κεφαλαίων γραμμάτων
- Παράδειγμα: Αντιστροφή χαρακτήρων κάθε γραμμής
- Παράδειγμα: Εύρεση εμφάνισης λέξης-κλειδιού
- Ταξινόμηση
- Με εισαγωγή (insertion sort)
- Με επιλογή (selection sort)
- Με τη μέθοδο της φυσαλίδας (bubble sort)
Διάλεξη 3/12/2021
- Ταξινόμηση
- Με εισαγωγή (insertion sort - επανάληψη)
- Με επιλογή (selection sort - επανάληψη)
- Με τη μέθοδο της φυσαλίδας (bubble sort - επανάληψη)
- Με συγχώνευση (merge sort)
- Με διαμέριση (quick sort)
- Ορθότητα
Διάλεξη 10/12/2021
- Σύνθετοι τύποι δεδομένων
- Δομές (struct)
- Ενώσεις (union)
- Αρχεία, κειμένου και δυαδικά
- Πολυπλοκότητα
- Αφηρημένοι τύποι δεδομένων
- Εισαγωγή στα αντικείμενα και τις κλάσεις της C++
- Στοίβες, υλοποίηση με πίνακα
Διάλεξη 17/12/2021
- Διαχείριση της μνήμης
- Δυναμική παραχώρηση μνήμης
- Σύνθετες δυναμικές μεταβλητές
- Δομές δεδομένων
- Συνδεδεμένες λίστες
- Στοίβες, υλοποίηση με συνδεδεμένη λίστα
- Ουρές, υλοποίηση με συνδεδεμένη λίστα
- Γραμμικές λίστες
Διάλεξη 7/1/2022
Διάλεξη 14/1/2022
- Δομές δεδομένων
- Γραμμικές λίστες (επανάληψη)
- Γράφοι και δέντρα
- Δυαδικά δέντρα
- Δυαδικά δέντρα αναζήτησης
Διάλεξη 21/1/2022
- Φιλοσοφία γλωσσών προγραμματισμού
- Επίλυση θεμάτων 3ης εργαστηριακής εξέτασης.
- Επανάληψη και επίλυση παλαιότερων θεμάτων εξέτασης.