ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Κωδικός μαθήματος
02.03Κ
Μονάδες ECTS
6
Εξάμηνο
Εξάμηνο Β
Κατηγορία μαθήματος
Διδάσκων καθηγητής

ΓΕΩΡΓΙΟΣ ΝΟΚΑΣ

ΘΕΟΔΩΡΟΣ ΚΟΤΣΙΛΙΕΡΗΣ

Περιγραφή μαθήματος
ΓΕΝΙΚΑ
ΑΥΤΟΤΕΛΕΙΣ ΔΙΔΑΚΤΙΚΕΣ ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΕΒΔΟΜΑΔΙΑΙΕΣΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ
Διαλέξεις 2
Εργαστήριο 1

ΤΥΠΟΣ ΜΑΘΗΜΑΤΟΣ

 

Γενικού Υποβάθρου

ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ ΜΑΘΗΜΑΤΑ:

 

Όχι
ΓΛΩΣΣΑ ΔΙΔΑΣΚΑΛΙΑΣ και ΕΞΕΤΑΣΕΩΝ: Ελληνική
ΤΟ ΜΑΘΗΜΑ ΠΡΟΣΦΕΡΕΤΑΙ ΣΕ ΦΟΙΤΗΤΕΣ ERASMUS Όχι
ΜΑΘΗΣΙΑΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ
Μαθησιακά Αποτελέσματα

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

Με την ολοκλήρωση του μαθήματος οι φοιτητές θα έχουν:

Γνώσεις: Να κατανοούν και να αναλύουν δομές δεδομένων κι αλγορίθμους, για την επίλυση προβλημάτων. Να μάθουν το αντικειμενοστραφές μοντέλο προγραμματισμού μέσω μιας γλώσσας 3ης γενιάς

Δεξιότητες: Να εφαρμόζουν τη μεθοδολογία ανάπτυξης του προγραμματιστικού υποβάθρου

Ικανότητες: Να αναπτύξουν αυτόνομα κώδικα αλλά θα έχουν και κατάλληλο υπόβαθρο για να ανταπεξέλθουν σε πιο προχωρημένα προγραμματιστικά μαθήματα.

Γενικές Ικανότητες

Οι ικανότητες που αναμένεται να αποκομίσει ο πτυχιούχος είναι οι ακόλουθες:

Αναζήτηση, ανάλυση και επεξεργασία δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών

Λήψη αποφάσεων κι ανάπτυξη αντίστοιχων εργαλείων με χρήση ΤΠΕ

Αυτόνομη εργασία

Ομαδική εργασία

Παράγωγή νέων ερευνητικών ιδεών

ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ

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

Το μάθημα αναπτύσσεται σε 13 μαθήματα που αποτυπώνονται στον ακόλουθο πίνακα.

 

Eισαγωγή στον αντικειμενοστραφή προγραμματισμό: Εισαγωγή στη γλώσσα Python. Αριθμητικές πράξεις, Τύποι μεταβλητών, Μεταβλητές, Διαχείριση και Δεικτοδότηση Αλφαριθμητικών, Προγράμματα σε Python

Κλάσεις και αντικείμενα: Γνωρίσματα, ιδιότητες, υποκλάσεις, κληρονομικότητα, αρχικοποίηση, πολυμορφισμός

Λίστες: Δείκτες θέσης, τροποποίηση λίστας, αντικατάσταση μέρους λίστας, αλφαριθμητικά, μορφοποίηση αλφαριθμητικών, μέθοδοι αλφαριθμητικών.

Έλεγχος ροής προγράμματος & Δομές ελέγχου: Έλεγχος ροής με if, συνθήκες & τελεστές σύγκρισης, ο βρόγχος while, ο βρόγχος for, επαναλήψεις σε λεξικά, παράλληλες επαναλήψεις, παραδείγματα ελέγχου ροής, παραδείγματα χρήσης δομών ελέγχου, if, while, for, εμφωλιασμένες επαναλήψεις, ορισμός και διαχείρηση πινάκων, συγκλίνον άθροισµα.

Συναρτήσεις: Παράμετροι, εμβέλεια μεταβλητών, δόµηση προγράµµατος, συναρτήσεις σαν αντικείµενα, Τοπικότητα παραµέτρων, πέρασµα µε τιµή/αναφορά, αναδρομικές συναρτήσεις (παραδείγματα: ύψωση σε δύναμη, παραγοντικό, αριθμοί Fibonacci), πολυπλοκότητα και χρόνος εκτέλεσης προγράμματος

Ταυτόχρονος προγραμματισμός και νήματα - Διαχείριση σφαλμάτων και εξαιρέσεων: Βασικές λειτουργίες νημάτων, κλειδώματα, συγχρονισμός, Τύποι σφαλμάτων, τύποι εξαιρέσεων, δήλωση και χειρισμός εξαιρέσεων, αποσφαλμάτωση.

 

Βασικές Έννοιες Δεδομένων και Αλγόριθμων: Τύποι Δεδομένων και Δομές Δεδομένων, Πίνακες, Πίνακες μιας διάστασης, Δισδιάστατοι πίνακες, Σύνθετη Δομή (Πίνακες με Δομές ή Εγγραφές), Πίνακες από Δομές, Δείκτες σε Δομές, Αλγόριθμοι, Παραγωγή Τυχαίων Αριθμών

Αναζήτηση, Ταξινόμηση, Αλγόριθμοι και Εφαρμογές σε Πίνακες: Κριτήρια κατηγοριοποίησης αλγορίθμων ταξινόμησης, Ταξινόμηση με εισαγωγή (insertion sort), Ταξινόμηση επιλογής (selection sort), Ταξινόμηση φυσαλλίδας (bubble sort), Σειριακή και δυαδική αναζήτηση, διαμέριση και διάμεσος πίνακα

Δομές Δεδομένων: Στοίβα, Ουρά, Συνδεδεμένες λίστες

Αναδρομή και Δενδρικές Δομές: Αναδρομή, Δένδρα, Δυαδικά δένδρα, Ουρές προτεραιότητας και σωροί, B-Trees, Ερυθρόμαυρα δένδρα

Σχεδίαση και Ανάλυση Αλγορίθμων: Κατηγορίες Αλγορίθμων και Ορολογία, Ανάλυση Αλγορίθμων, Χρονική Πολυπλοκότητα, Η Κλάση Προβλημάτων P, Η Κλάση Προβλημάτων NP, Παραδείγματα

Θεωρία Γραφημάτων: Ορισμοί και Ιδιότητες Γράφων, Κύκλος και Γράφημα Euler, Γράφος Hamilton, Αναπαράσταση Γράφων, Το πρόβλημα του Κινέζου ταχυδρόμου

Αλγόριθμοι Γραφημάτων: Διάσχιση ή Επίσκεψη ενός Γράφου, Πίνακας Αποστάσεων, Γνωστά Βασικά Προβλήματα Γράφων, Βελτιστοποίηση και αλγόριθμοι ACO (αποικίας μυρμηγκιών)

 

Η αρίθμηση αναφέρεται στην αντίστοιχη εβδομάδα του μαθήματος.

ΔΙΔΑΚΤΙΚΕΣ και ΜΑΘΗΣΙΑΚΕΣ ΜΕΘΟΔΟΙ - ΑΞΙΟΛΟΓΗΣΗ
ΤΡΟΠΟΣ ΠΑΡΑΔΟΣΗΣ

Διαλέξεις πρόσωπο με πρόσωπο

Ανάρτηση υλικού για περαιτέρω μελέτη και επίλυση εργαστηριακών ασκήσεων στην πλατφόρμα e-class

ΧΡΗΣΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

Χρήση ΤΠΕ στη διδασκαλία και την Εργαστηριακή Εκπαίδευση, ως εξής:

Aσκήσεις με χρήση διαδικτυακών διερμηνέων

Πρόσθετο κι ελεύθερα διαθέσιμο υλικό για την εμπέδωση στοιχείων θεωρίας κι επίλυση ασκήσεων μέσω διαδικτύου και μέσων κοινωνικής δικτύωσης

Υποστήριξη Μαθησιακής διαδικασίας μέσω της ηλεκτρονικής πλατφόρμας e-class

Επικοινωνία με φοιτητές μέσω πλατφόρμας e-class

 

 

 

ΟΡΓΑΝΩΣΗ ΔΙΔΑΣΚΑΛΙΑΣ

 

Δραστηριότητα Φόρτος Εργασίας Εξαμήνου
Διαλέξεις 39
Ασκήσεις όπου οι φοιτητές είτε σε μικρές ομάδες είτε μεμονωμένα θα ασκούνται στην εφαρμογή της θεωρίας. Οι ασκήσεις θα παρουσιάζονται από το διδάσκοντα και θα επιλύονται από τους φοιτητές ασύγχρονα. Η απάντηση θα παρέχεται αποκλειστικά μέσω της πλατφόρμας e-class ή εργαλείων υπολογιστικής νέφους (webmail, google-drive κλπ.) 40
Αυτοτελής Μελέτη 71
Σύνολο μαθήματος 150

ΑΞΙΟΛΟΓΗΣΗ ΦΟΙΤΗΤΩΝ

 

 

Η αξιολόγηση θα διενεργείται στην ελληνική γλώσσα με τρεις διακριτούς τρόπους:

Ενδιάμεση αξιολόγηση κατά την 7η ή 8η εβδομάδα (20%) που θα πραγματοποιείται με: Ερωτήσεις Πολλαπλής επιλογής, ερωτήσεις σύντομης απάντησης

Ασκήσεις (20%) που θα αξιολογούνται ως εξής: Ικανότητα επίλυσης προβλημάτων σε ομάδες, σύνταξη αναφοράς για την προτεινόμενη επίλυση, δημόσια παρουσίαση

Τελική εξέταση (60%) που θα πραγματοποιείται με: Ερωτήσεις πολλαπλής επιλογής, Επίλυση προβλημάτων, Ερωτήσεις Σύντομης Απάντησης, Ανάπτυξη στοιχείων θεωρίας, Ανάλυση ρόλων και ενδιαφερομένων μερών σε σύντομη, Μελέτη περίπτωσης, Συγκριτική αξιολόγηση στοιχείων θεωρίας

 

ΣΥΝΙΣΤΩΜΕΝΗ-ΒΙΒΛΙΟΓΡΑΦΙΑ

Παπουτσής Ι., «Εισαγωγή στις Δομές Δεδομένων και στους Αλγορίθμους», Εκδόσεις Σταμούλη, 2016, Β’ έκδοση

Nell Dale, John Lewis, «Computer Science Illuminated», Third Edition

Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με Python - Μια Προσέγγιση από την Πλευρά των Υπολογιστικών Συστημάτων, Μαγκούτης Κωνσταντίνος – Νικολάου Χρήστος, Ελληνικά Ακαδημαϊκά Ebooks, Κάλλιπος, 2015, (διαθέσιμο από: )

Εισαγωγή στον Προγραμματισμό με αρωγό τη γλώσσα Python, Μανής Γεώργιος, Ελληνικά Ακαδημαϊκά Ebooks, Κάλλιπος, 2015, (διαθέσιμο από: https://repository.kallipos.gr/handle/11419/2745)