Εισαγωγή στον Προγραμματισμό

Κωδικός Μαθήματος: 
ΘΠ0170
Είδος Μαθήματος: 
ΘΕ
Μονάδες ECTS: 
5
Εξάμηνο: 
6

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

Προσδοκώμενα αποτελέσματα. Με την ολοκλήρωση του μαθήματος οι φοιτητές θα είναι σε θέση να:

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

  • χρησιμοποιούν τις απλές και σύνθετες δομές δεδομένων που παρέχει η Python

  • χρησιμοποιούν προγραμματιστικές δομές απόφασης της Python

  • χρησιμοποιούν τις κυριότερες προγραμματιστικές δομές επανάληψης της Python

  • ορίζουν συναρτήσεις στην Python

  • δημιουργούν νέες δομές δεδομένων με τη χρήση κλάσεων

  • αντιλαμβάνονται την έννοια της αναδρομής

  • περιγράφουν αλγορίθμους με βάση την πολυπλοκότητα τους

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

Διδασκαλία. Η διδασκαλία του μαθήματος περιλαμβάνει διαλέξεις και εργαστηριακές ασκήσεις.

Αξιολόγηση. Το τελικό παραδοτέο του μαθήματος περιλαμβάνει τη συγγραφή ενός μικρού προγράμματος για την επίλυση ενός προβλήματος. Οι φοιτητές εργάζονται σε μικρές ομάδες των 2-3 ατόμων για να γράψουν τον κώδικα. Η αξιολόγηση του μαθήματος περιλαμβάνει την προφορική υποστήριξη του κώδικα σε επίπεδο ομάδας.