Topic outline

  • Γενικά

    • Σε αυτό το forum, μπορεί οποιοσδήποτε εγγεγραμμένος φοιτητής να αναρτά ερωτήσεις σχετικές με το μάθημα και να λαμβάνει απαντήσεις από τους διδάσκοντες. Οι ερωτήσεις και οι απαντήσεις θα είναι διαθέσιμες σε όλους τους φοιτητές. 

      Οι φοιτητές μπορούν να δηλώσουν με την εγγραφή τους αν θέλουν να ενημερώνονται για τις αναρτώμενες ερωταπαντήσεις.


    • Εδώ αναρτώνται οι γενικές ανακοινώσεις από τους διδάσκοντες προς τους εγγεγραμμένους φοιτητές, οι οποίοι τις λαμβάνουν και στην ηλεκτρονική τους διεύθυνση.

  • Διδάσκοντες

    • Στάθης Ζάχος ()
    • Νίκος Παπασπύρου ()
    • Δημήτρης Φωτάκης ()
    • Μάριος Κόνιαρης ()
    • Πέτρος Ποτίκας ()
    • Δώρα Σούλιου ()


    Ώρες Γραφείου Διδασκόντων

    • Νίκος Παπασπύρου: Παρασκευή 11:00-12:00, στο Εργαστήριο Τεχνολογίας Λογισμικού, 1.1.25, (Παλαιό) Κτήριο Ηλεκτρολόγων.
    • Δημήτρης Φωτάκης: Πέμπτη 16:00-17:00, στο γραφείο 1.1.10, (Παλαιό) Κτήριο Ηλεκτρολόγων.
    • Μάριος Κόνιαρης: Πέμπτη 14:00-15:00, Κτήριο Υπολογιστικού Κέντρου, Α’ όροφος, γρ. 1.13.
    • Πέτρος Ποτίκας: Πέμπτη 14:00-15:00, στο γραφείο 1.1.30, (Παλαιό) Κτήριο Ηλεκτρολόγων.
    • Δώρα Σούλιου: Πέμπτη 13:00-14:00, στο γραφείο 1.1.30, (Παλαιό) Κτήριο Ηλεκτρολόγων.

  • Υλικό

    Γενικές Πληροφορίες

    • Περιγραφή του μαθήματος, πρόγραμμα εργαστηρίου και διαδικαστικά θέματα: ενημερωτικό φυλλάδιο και αντίστοιχες διαφάνειες.
    • Οι διαλέξεις του μαθήματος γίνονται κάθε Παρασκευή, 12:45 - 15:30, στα Αμφιθέατρα 1, 3 και 5, στο Νέο Κτήριο της Σχολής ΗΜΜΥ.
    • Το εργαστήριο του μαθήματος γίνεται στα PCLAB, στον 1ο όροφο του Νέου Κτηρίου της Σχολής ΗΜΜΥ. Κάθε φοιτητής παρακολουθεί 2 ώρες εργαστηρίου κάθε εβδομάδα.  
    • Ιστοσελίδα ερωτήσεων και απαντήσεων σχετικά με το μάθημα και το εργαστήριο του ακαδ. έτους 2020-2021 (κατηγορία progintro).
    • Βιντεοσκοπημένες διαλέξεις του ακαδημαϊκού έτους 2020-2021.  

    Διαφάνειες

    Οι διαφάνειες που θα χρησιμοποιούνται στις διαλέξεις είναι διαθέσιμες από την παρούσα σελίδα για τη διευκόλυνση των φοιτητών, ώστε αυτοί να μη χρειάζεται να κρατούν εκτενείς σημειώσεις κατά τη διάρκεια των μαθημάτων. Η ύλη των διαφανειών παρουσιάζεται αναλυτικά στις σημειώσεις του μαθήματος. Μη σπεύσετε να εκτυπώσετε όλες τις διαφάνειες στην παρούσα μορφή. Ενδέχεται να τροποποιηθούν κατά τη διάρκεια του εξαμήνου.

    (τελευταία ενημέρωση: 21/9/2023)

    Σημειώσεις

    Οι σημειώσεις του μαθήματος διατίθενται σε ηλεκτρονική μορφή για διευκόλυνση των φοιτητών. Μη σπεύσετε να τις εκτυπώσετε στην παρούσα μορφή, γιατί ενδέχεται να τροποποιηθούν κατά τη διάρκεια του εξαμήνου.

      Ιστοσελίδες Παλαιοτέρων Ετών

      Links στην ιστοσελίδα του μαθήματος για τα ακαδημαϊκά έτη: 2022-232021-222020-212019-202018-192017-182016-172015-162014-152013-142012-132011-122010-112009-102008-092007-082006-072005-062004-052003-042002-032001-02.

      Θέματα Εξετάσεων Παλαιοτέρων Ετών



    • Εργαστήριο

      Γενικά 


      • Tο εργαστήριο του μαθήματος γίνεται στα PCLAB, στον 1ο όροφο του Νέου Κτηρίου της Σχολής ΗΜΜΥ. Κάθε φοιτητής απασχολείται στο εργαστήριο 2 ώρες κάθε εβδομάδα. Το εργαστήριο γίνεται σε 3 βάρδιες, σύμφωνα με το παρακάτω πρόγραμμα:

        • Δευτέρα 12:45-14:30: Ονόματα φοιτητών: Α-ΚΑ.
        • Τετάρτη 08:45-10:30: Ονόματα φοιτητών: ΚΕ-ΠΑΝ. 
        • Πέμπτη 15:15-17:00: Ονόματα φοιτητών: ΠΑΠ-Ω.

      • Φροντίστε να προμηθευτείτε κωδικό για το εργαστήριο μέσω του get-your-account.

      • Για να δουλέψετε τις εργαστηριακές ασκήσεις από το σπίτι:
        • Αν έχετε Windows, πιθανώς θα χρειαστείτε το πρόγραμμα PuTTY
        • Αν έχετε Linux ή MacOS πληκτρολογήστε σε Terminal: ssh pi23b600@novice.softlab.ntua.gr ή ssh -oHostKeyAlgorithms=+ssh-rsa pi23b600@novice.softlab.ntua.gr (προφανώς βάλτε το δικό σας login!)
        • Και στις δύο περιπτώσεις, ίσως χρειαστεί να ρυθμίσετε το encoding (ISO-8859-7).
        • Η υλοποίηση του PZhelp είναι διαθέσιμη από το GitHub. Κατεβάστε το αρχείο pzhelp και αποθηκεύστε το στον ίδιο κατάλογο με τα προγράμματά σας.

      Οδηγίες


      Ασκήσεις


      • Εδώ μπορείτε να υποβάλετε τις λύσεις των θεωρητικών ασκήσεων των πρώτων τριών σειρών (μόνο για  φοιτητές που έχουν λογαριασμό στο helios και έχουν κάνει enroll στο μάθημα).

        Κάθε υποβολή μπορεί να περιλαμβάνει το πολύ 4 αρχεία, συνολικού μεγέθους μέχρι 20ΜΒ.

        Οι φοιτητές που δεν έχουν λογαριασμό στο helios, μπορούν να υποβάλουν τις λύσεις των θεωρητικών ασκήσεων ηλεκτρονικά στο https://courses.corelab.ntua.gr/progintro (αφού κάνουν εγγραφή στο moodle https://courses.corelab.ntua.gr και enroll στο μάθημα progintro). 


    • Διαλέξεις

      Διάλεξη 29/9/2023

      • Θέματα διεξαγωγής του μαθήματος και του εργαστηρίου
      • Σκοπός του μαθήματος
      • Σύντομη εισαγωγή στην Πληροφορική
      • Δομή του προγράμματος
      • Συντακτικά διαγράμματα

      Διάλεξη 6/10/2023

      • Συντακτικά διαγράμματα
      • Δηλώσεις μεταβλητών
      • Τι σημαίνει ορθό πρόγραμμα
      • Ανάθεση τιμής σε μεταβλητή
      • Έξοδος στην οθόνη
      • Είσοδος από το πληκτρολόγιο

      Διάλεξη 13/10/2023

      • Είσοδος από το πληκτρολόγιο
      • Αριθμητικές παραστάσεις
      • Λογικές παραστάσεις
      • Σύνταξη παραστάσεων
      • Λογικά διαγράμματα ροής
      • Δομές ελέγχου
      • Σύνθετη εντολή
      • Εντολή if
      • Εντολή switch
      • Εντολή FOR / for

      Διάλεξη 20/10/2023

      • Εντολή FOR / for
      • Εντολή while
      • Εντολή dowhile
      • Εντολές break και continue
      • Κενή εντολή
      • Δομή του προγράμματος ξανά
      • Σταθερές
      • Συνώνυμα τύπων

      Διάλεξη 27/10/2023

      • Διαδικασίες
      • Συναρτήσεις
      • Δομημένος προγραμματισμός
      • Βαθμιαία συγκεκριμενοποίηση
      • Παρουσίαση και συντήρηση
      • Μορφοποίηση εξόδου
      • Ανακατεύθυνση
      • Τακτικοί τύποι και τύποι απαρίθμησης
      • Πίνακες
        • Γραμμική αναζήτηση
        • Δυαδική αναζήτηση

      Διάλεξη 3/11/2023

      • Δυαδική αναζήτηση (επανάληψη)
      • Πολυδιάστατοι πίνακες
        • Πολλαπλασιασμός πινάκων
        • Μαγικά τετράγωνα
      • Εξαγωγή ψηφίων και μετατροπή σε άλλο σύστημα αρίθμησης
      • Αναδρομή
        • Συνάρτηση παραγοντικού
        • Αριθμοί Fibonacci
        • Μέγιστος κοινός διαιρέτης
        • Συνάρτηση παρόμοια με του Ackermann
        • Αμοιβαία αναδρομή

      Διάλεξη 10/11/2023

      • Αναδρομή (σύντομη επανάληψη)
      • Υπολογισμός δύναμης με επαναλαμβανόμενο τετραγωνισμό
      • Αριθμητικοί υπολογισμοί
        • Αριθμητικά σφάλματα
        • Εύρεση τετραγωνικής ρίζας
        • Προκαθορισμένες συναρτήσεις
        • Τριγωνομετρικές συναρτήσεις
      • Από το PZhelp στη C++
        • Τύποι δεδομένων
        • Πρόγραμμα και υποπρογράμματα
        • Ανάθεση
        • Βρόχος for
        • Είσοδος και έξοδος

      Διάλεξη 24/11/2023

      • Δείκτες
        • Πέρασμα παραμέτρων με αναφορά
        • Δείκτες αντί περάσματος με αναφορά
        • Πίνακες και δείκτες
      • Συμβολοσειρές
      • Επεξεργασία κειμένου
        • Παραδείγματα: Διάβασμα και επεξεργασία χαρακτήρων και ακεραίων
        • Παράδειγμα: Μέτρηση χαρακτήρων και γραμμών
        • Παράδειγμα: Μέτρηση λέξεων
        • Παράδειγμα: Συχνότητες εμφάνισης μήκους λέξεων
        • Παράδειγμα: Μετατροπή μεταξύ μικρών και κεφαλαίων γραμμάτων
        • Παράδειγμα: Αντιστροφή χαρακτήρων κάθε γραμμής
        • Παράδειγμα: Εύρεση εμφάνισης λέξης-κλειδιού

      Διάλεξη 1/12/2023

      • Συμβολοσειρές
      • Ταξινόμηση
        • Με εισαγωγή (insertion sort)
        • Με επιλογή (selection sort)
        • Με τη μέθοδο της φυσαλίδας (bubblesort)
        • Με συγχώνευση (mergesort)

      Διάλεξη 8/12/2023

      • Ταξινόμηση
        • Με διαμέριση (quicksort)
      • Ορθότητα
      • Σύνθετοι τύποι δεδομένων
        • Δομές (struct)

      Διάλεξη 22/12/2023

      • Σύνθετοι τύποι δεδομένων
        • Δομές (struct)
        • Ενώσεις (union)
        • Αρχεία κειμένου και δυαδικά αρχεία
      • Πολυπλοκότητα
      • Αφηρημένοι τύποι δεδομένων
        • Εισαγωγή στα αντικείμενα και τις κλάσεις της C++
        • Στοίβες, υλοποίηση με πίνακα
        • από το 1:29:38
      • Προετοιμασία για την εργαστηριακή εξέταση


      Διαδικτυακή διάλεξη (θα γινόταν στις 12/1/2024)

      • Διαχείριση της μνήμης
        • Δυναμική παραχώρηση μνήμης
        • Σύνθετες δυναμικές μεταβλητές
      • Δομές δεδομένων
        • Συνδεδεμένες λίστες
        • Στοίβες, υλοποίηση με συνδεδεμένη λίστα
        • Ουρές, υλοποίηση με συνδεδεμένη λίστα
        • Γραμμικές λίστες

      .


      Διαδικτυακή διάλεξη (θα γινόταν 19/1/2024)

      • Δομές δεδομένων
        • Γράφοι - Αναπαράσταση: πίνακας γειτνίασης, λίστα γειτνίασης
        • Δυαδικά δέντρα: αναπαράσταση με πίνακα και με δείκτες
        • Διάσχιση δυαδικών δέντρων
        • Δυαδικά δέντρα αναζήτησης: αναζήτηση, εισαγωγή και διαγραφή

      .


      Επιπρόσθετη διαδικτυακή διάλεξη

      • Φιλοσοφία γλωσσών προγραμματισμού
      • Κώδικες Huffman

      .

      Το περιεχόμενο αυτής της διάλεξης είναι εκτός εξεταζόμενης ύλης.