Το Επιμορφωτικό Πρόγραμμα «Τεχνικές Προγραμματισμού» αποσκοπεί στην εξοικείωση των συμμετεχόντων με τις βασικές αρχές και τεχνικές του προγραμματισμού Η/Υ καθώς και με την Aλγοριθμική επίλυση προβλημάτων. Έννοιες και Θέματα που θα αναπτυχθούν είναι: 1) Δομή του προγράμματος, σύνταξη και σημασιολογία, αριθμητικές και λογικές παραστάσεις, 2) Δομές ελέγχου: διακλαδώσεις, βρόχοι, 3) Δομημένος προγραμματισμός: διαδικασίες, συναρτήσεις, 4) Πίνακες, γραμμική αναζήτηση, δυαδική αναζήτηση, πολυδιάστατοι πίνακες, 5) Επανάληψη ή αναδρομή, 6) Δυναμική διαχείριση της μνήμης, 7) Διαφορετικοί μέθοδοι ταξινόμησης και πολυπλοκότητά τους, 8) Σύνθετοι τύποι δεδομένων: συμβολοσειρές (strings), δομές, αρχεία (files), 9) Επεξεργασία κειμένου, 10) Πολυπλοκότητα, 11) Αφηρημένοι τύποι δεδομένων, συνδεδεμένες λίστες, στοίβες, ουρές, γραφήματα, δυαδικά δέντρα (διάσχιση), 12) Αντικειμενοστραφής προγραμματισμός: κλάσεις, αντικείμενα, κληρονομικότητα, 13) Βασικές αλγοριθμικές τεχνικές επεξεργασίας γραφημάτων.
Η γλώσσα προγραμματισμού που θα διδαχθεί είναι η C++. Θα δοθεί μια σειρά πρακτικών προβλημάτων από τις περιοχές της μηχανικής μάθησης και της ανάλυσης δεδομένων προς επίλυση. Οι λύσεις θα υποβάλλονται σε αυτόματο σύστημα βαθμολόγησης (grader) και θα παρουσιάζονται σε συναντήσεις με βοηθούς διδασκαλίας με σκοπό την επίλυση αποριών και αδυναμιών.
Μέσω του προγράμματος οι εκπαιδευόμενοι θα αποκτήσουν την ικανότητα ανάπτυξης / συγγραφής αποδοτικού και εύκολα συντηρήσιμου λογισμικού-προγράμματος. Θα μπορούν να κατανοήσουν την έννοια του αποδοτικού αλγορίθμου τόσο θεωρητικά όσο και πρακτικά (μέσα από παραδείγματα). Θα μάθουν να χρησιμοποιούν μεθόδους ελέγχου (testing) για να βρίσκουν και να διορθώνουν σημασιολογικά λάθη των προγραμμάτων. Επιπλέον, θα κατανοούν τις βασικές αρχές ανάπτυξης λογισμικού καθώς και του κύκλου του λογισμικού.
Η επιμόρφωση προγραμματιστών και επιστημόνων στα αντίστοιχα θέματα είναι καίριας σημασίας για την επιβίωση και ανάπτυξη κρίσιμων τομέων της οικονομίας. Υπάρχει στη χώρα μας πληθώρα νέων επιστημόνων που διαθέτουν επαρκές υπόβαθρο σε θετικές επιστήμες, αλλά στερούνται εξειδικευμένων γνώσεων στον τομέα του προγραμματισμού ηλεκτρονικών υπολογιστών. Ο στόχος του προτεινόμενου προγράμματος είναι να εφοδιάσει το δυναμικό αυτό με τις απαραίτητες θεωρητικές και πρακτικές γνώσεις ώστε να μπορούν να εργαστούν άμεσα σε θέσεις που σχετίζονται με την ανάπτυξη λογισμικού και προγραμματιστικών εφαρμογών κάθε είδους. Προσδοκούμε ότι το πρόγραμμα θα τους βοηθήσει τους αποφοίτους του να βελτιώσουν τη θέση τους στην αγορά εργασίας, αυξάνοντας τις πιθανότητες της επαγγελματικής τους αποκατάστασης, ενισχύοντας παράλληλα τις επιχειρήσεις και την εθνική οικονομία.
Το προτεινόμενο πρόγραμμα έχει σκοπό ο εκπαιδευόμενος:
◨ να κατανοήσει πώς να μοντελοποιεί ένα πρόβλημα, πώς να το επιλύει αλγοριθμικά, και πώς να κωδικοποιεί αποδοτικά τη λύση σε γλώσσα προγραμματισμού C++.
◨ να εξοικειωθεί με τις τεχνικές του δομημένου και του αντικειμενοστραφούς προγραμματισμού και να μάθει να αναπτύσσει σύνθετα προγράμματα σε καθένα από τα δύο είδη.
◨ να μάθει να υλοποιεί και να χρησιμοποιεί δομές δεδομένων για την αποδοτική επίλυση υπολογιστικών προβλημάτων.
◨ να μπορεί να κάνει συντήρηση και αποσφαλμάτωση κώδικα.
◨ 1η ΕΝΟΤΗΤΑ: Σύντομη Εισαγωγή στην πληροφορική
◨ 2η ΕΝΟΤΗΤΑ: Δομή του προγράμματος, Συντακτικά Διαγράμματα, Δηλώσεις Μεταβλητών, Ανάθεση τιμής, Είσοδος-Έξοδος
◨ 3η ΕΝΟΤΗΤΑ: Δομές Ελέγχου. Εντολές επανάληψης (for, while, do … while) – Εντολές break
και continue
◨ 4η ΕΝΟΤΗΤΑ: Σταθερές, μεταβλητές, Τύποι δεδομένων, Είσοδος-έξοδος, Μορφοποίηση εξόδου
◨ 5η ΕΝΟΤΗΤΑ: Διαδικασίες, συναρτήσεις, Πέρασμα παραμέτρων, Δομημένος προγραμματισμός
◨ 6η ΕΝΟΤΗΤΑ: Πίνακες, Αναζήτηση (γραμμική – δυαδική), Πολυδιάστατοι πίνακες
◨ 7η ΕΝΟΤΗΤΑ: Αναδρομή, Αριθμητικοί υπολογισμοί, Επεξεργασία κειμένου (Παραδείγματα)
◨ 8η ΕΝΟΤΗΤΑ: Αλγόριθμοι Ταξινόμησης – Υλοποίηση και Υπολογισμός Πολυπλοκότητας
(insertion sort, selection sort, bubble sort, merge sort, quick sort)
◨ 9η ΕΝΟΤΗΤΑ: Σύνθετοι τύποι δεδομένων (Δομές (struct), Ενώσεις (union), Αρχεία κειμένου
και Δυαδικά αρχεία)
◨ 10η ΕΝΟΤΗΤΑ: Χρόνος εκτέλεσης προγραμμάτων, αποδοτικότητα, Αποδοτικότητα αλγορίθμων, Πολυπλοκότητα
◨ 11η ΕΝΟΤΗΤΑ: Εισαγωγή στη C++. Αφηρημένοι τύποι δεδομένων (κλάσεις και αντικείμενα
της C++, στοίβες – υλοποίηση με πίνακα)
◨ 12η ΕΝΟΤΗΤΑ: Διαχείριση της μνήμης (Δυναμική παραχώρηση μνήμης, Σύνθετες Δυναμικές
Μεταβλητές)
◨ 13η ΕΝΟΤΗΤΑ: Δομές δεδομένων (Συνδεδεμένες λίστες, Υλοποίηση στοίβας και ουράς με
συνδεδεμένη λίστα, Γραμμικές λίστες)
◨ 14η ΕΝΟΤΗΤΑ: Δομές δεδομένων (Γράφοι, Δυαδικά δένδρα, Δυαδικά δέντρα αναζήτησης)
◨ 15η ΕΝΟΤΗΤΑ: C++ templates, Function Templates, Class Templates
◨ 16η ΕΝΟΤΗΤΑ: Αντικειμενοστρεφής προγραμματισμός (Κληρονομικότητα, κλάσεις και
εμβέλεια, πολλαπλή κληρονομικότητα, επισκίαση μεθόδων, εικονικές μέθοδοι,
πολυμορφισμός)
Το πρόγραμμα ολοκληρώνεται με τη συμπλήρωση ερωτηματολογίων σε σχέση με την ποιότητα των σπουδών για τους σκοπούς της αξιολόγησης του ΚΕΔΙΒΙΜ και για στατιστικούς σκοπούς.
Το ωρολόγιο πρόγραμμα θα είναι διαθέσιμο προσεχώς.
Μέσω του προγράμματος οι εκπαιδευόμενοι:
◨ θα αποκτήσουν την ικανότητα ανάπτυξης / συγγραφής αποδοτικού και εύκολα συντηρήσιμου λογισμικού-προγράμματος.
◨ Θα μπορούν να κατανοήσουν την έννοια του αποδοτικού αλγορίθμου τόσο θεωρητικά όσο και πρακτικά (μέσα από παραδείγματα).
◨ Θα μάθουν να χρησιμοποιούν μεθόδους ελέγχου (testing) για να βρίσκουν και να διορθώνουν σημασιολογικά λάθη των προγραμμάτων.
◨ Επιπλέον, θα κατανοούν τις βασικές αρχές ανάπτυξης λογισμικού καθώς και του κύκλου του λογισμικού.
Η επιμόρφωση προγραμματιστών και επιστημόνων στα αντίστοιχα θέματα είναι καίριας σημασίας για την επιβίωση και ανάπτυξη κρίσιμων τομέων της οικονομίας. Υπάρχει στη χώρα μας πληθώρα νέων επιστημόνων που διαθέτουν επαρκές υπόβαθρο σε θετικές επιστήμες, αλλά στερούνται εξειδικευμένων γνώσεων στον τομέα του προγραμματισμού ηλεκτρονικών υπολογιστών. Ο στόχος του προτεινόμενου προγράμματος είναι να εφοδιάσει το δυναμικό αυτό με τις απαραίτητες θεωρητικές και πρακτικές γνώσεις ώστε να μπορούν να εργαστούν άμεσα σε θέσεις που σχετίζονται με την ανάπτυξη λογισμικού και προγραμματιστικών εφαρμογών κάθε είδους. Προσδοκούμε ότι το πρόγραμμα θα τους βοηθήσει τους αποφοίτους του να βελτιώσουν τη θέση τους στην αγορά εργασίας, αυξάνοντας τις πιθανότητες της επαγγελματικής τους αποκατάστασης, ενισχύοντας παράλληλα τις επιχειρήσεις και την εθνική οικονομία.
Οι ενδιαφερόμενοι θα πρέπει να είναι απόφοιτοι σχολών θετικών επιστημών ή πολυτεχνικών σχολών και να διαθέτουν στοιχειώδεις γνώσεις μιας γλώσσας προγραμματισμού.
Ο Αριστείδης Παγουρτζής είναι Καθηγητής στην Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του ΕΜΠ και μέλος του Εργαστηρίου Λογικής και Επιστήμης Υπολογισμών.
Είναι διπλωματούχος μηχανικός και διδάκτορας της ίδιας Σχολής.
Κατείχε ακαδημαϊκές θέσεις στα πανεπιστήμια Ιωαννίνων, Liverpool, Αθηνών, ETH Zürich, ΟΠΑ.
Ο Δημήτρης Φωτάκης είναι Αναπληρωτής Καθηγητής της Σχολής Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, του Εθνικού Μετσόβιου Πολυτεχνείου.
Υπηρετεί ως μέλος ΔΕΠ του ΕΜΠ από τον Φεβρουάριο 2009.
Ο Πέτρος Ποτίκας είναι Εργαστηριακό Διδακτικό Προσωπικό στη Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Εθνικού Μετσόβιου Πολυτεχνείου από το 2014, και μέλος του Εργαστηρίου Λογικής και Επιστήμης Υπολογιστών.
Η Θεοδώρα Σούλιου είναι Εργαστηριακό Διδακτικό Προσωπικό στη Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Εθνικού Μετσόβιου Πολυτεχνείου και μέλος του Εργαστηρίου Λογικής και Επιστήμης Υπολογιστών.
Πριν προχωρήσετε στην πληρωμή των διδάκτρων βεβαιωθείτε ότι έχετε διαβάσει τους ΕΙΔΙΚΟΥΣ ΟΡΟΥΣ (εάν υπάρχουν) του προγράμματος που έχετε επιλέξει.
Γενικά, τα δίδακτρα καταβάλλονται σε δύο δόσεις (εκτός εάν αναφέρεται διαφορετικά στους ΕΙΔΙΚΟΥΣ ΟΡΟΥΣ στο τέλος της παρούσας ενότητας):
50% με την ολοκλήρωση της εγγραφής
και 50% κατόπιν ενημέρωσης από τη Γραμματεία
πριν το τέλος των μαθημάτων
Η αποπληρωμή είναι απαραίτητη για την συμμετοχή στις τελικές εξετάσεις καθώς και για την απόκτηση του πιστοποιητικού ολοκλήρωσης του προγράμματος.
Τα δίδακτρα πληρώνονται με τραπεζική κατάθεση στον παρακάτω τραπεζικό λογαριασμό του Ε.Λ.Κ.Ε. Ε.Μ.Π στην ΕΘΝΙΚΗ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ:
IBAN: GR0901100800000008001170649
Αρ. Λογ.: 080/011706-49
BIC: ETHNGRAA
αναγράφοντας ως αιτιολογία κατάθεσης το Ονοματεπώνυμό σας και τον Τίτλο του Προγράμματος που θα παρακολουθήσετε.
–
Σε περίπτωση που επιθυμείτε να συμπληρώσετε την πλήρη αίτηση προεγγραφής, επισκεφτείτε τη σελίδα του προγράμματος από σταθερό υπολογιστή.
(Στην έκδοση του website για κινητά-tablet, έχει απενεργοποιηθεί η ανάρτηση συνημμένων εγγράφων για διευκόλυνσή σας).
Για το συγκεκριμένο πρόγραμμα επιμόρφωσης δεν υπάρχουν ανακοινώσεις. Για οποιαδήποτε πληροφορία μπορείτε
να απευθυνθείτε στη γραμματεία
του ΚΕ.ΔΙ.ΒΙ.Μ. του ΕΜΠ με email, στο: kedivim@mail.ntua.gr