Αρχές Γλωσσών και Τεχνικές Προγραμματισμού - Γλώσσα C (Ηα1)

Κοτρώνης Γιάννης

Περιγραφή

Αρχές Γλωσσών και Τεχνικές Προγραμματισμού Μάθημα Α' Έτους Ηλεκτρονικού Αυτοματισμού

Θεωρία Τρίτη 3-6 στην αίθουσα A2.

Περισσότερα στοιχεία για το μάθημα στον σύνδεσμο Πληροφορίες

Στοιχεία επικοινωνίας e-mail cotronis at di.uoa.gr

Μαθησιακοί στόχοι

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

Να εισάγει τον δομημένο προγραμματισμό και τεχνικές ανάπτυξης προγραμμάτων (in-the small)

Περιεχόμενο μαθήματος

Αρχές Προγραμματισμού

Συντακτικό Γλωσσών Προγραμματισμού (Γραμματικές Chomsky, BNF, συντακτικά διαγράμματα), Παραγωγές, Συντακτικά Δένδρα. Βασικοί Τύποι Δεδομένων Αρχιτεκτονικής και Τύποι στις Γλώσσες. Αντικείμενα Μνήμης (απόδοση τιμής, dereferencing, δείκτες). Οργάνωση Μνήμης (στοίβα και σωρός). Περιοχές Ισχύος και Διάρκεια Ζωής. Χρήση Ονομάτων στο πρόγραμμα και συσχέτισή (binding) τους με θέση μνήμης (Δηλώσεις, εμβέλεια). Εκφράσεις και διάταξη Υπολογισμού (Παράμετροι συναρτήσεων, Πράξεις, προτεραιότητα και προσεταιριστικότητα). Υποπρογράμματα και τρόποι περάσματος παραμέτρων. Εντολές ελέγχου ροής.

Τεχνικές Προγραμματισμού

Τεχνικές Ανάπτυξης Προγραμμάτων. Διαγνωστικός Έλεγχος, Δομημένος Προγραμματισμός. Ανάπτυξη Προγραμμάτων από το Γενικό προς το Ειδικό (Top Down). Ενότητες (Modularity), Genericity.

Μέθοδοι διδασκαλίας

Το μάθημα παρουσιάζει το Συντακτικό και Σημασιολογικό των Γλωσσών Προγραμματισμού ανεξάρτητα από συγκεκριμένες γλώσσες προγραμματισμού. Θα στηριχτούμε κύρια στην C και σε στοιχεία της C++. Υποθέτει ότι ο φοιτητής έχει μικρή εμπειρία προγραμματισμού. Η προσέγγιση αποφεύγει την εμπειρική διδασκαλία γλωσσών και παρουσιάζει τις αρχές που διέπουν τις γλώσσες γενικά. Το μάθημα υποστηρίζεται από σεμινάριο στην γλώσσα C.

 Επίσης παρουσιάζει Τεχνικές Ανάπτυξης Προγραμμάτων (Top-Down Προγραμματισμός) και Τεχνικές Προγραμματισμού (Modularity, Genericity, testing).

 

Εκπαιδευτικές Δραστηριότητες

Οι φοιτητές εκπονούν μικρές εργασίες αυτοαξιολόγησης για όλες τις ενότητες.

Το εργαστήριο C απαραίτητο για όσους δεν έχουν βαθιά γνώση στην C.

Επίσης προσωπικό βοήθημα θα είναι η Teaching Machine.

Προτεινόμενα συγγράμματα

1. Programming Language Pragmatics, Michaele L. Scott, MK

2. The anatomy of Programming Languages, A. Fisher and F. Grodzinsky (δίδεται σε pdf)
3. Σημειώσεις Τεχνικές Προγραμματισμού Γ. Κοτρώνη

Μέθοδοι αξιολόγησης

Γραπτή εξέταση, όπου εξετάζεται αρχές προγραμματισμού (βιβλίο Anatomy kef 1-10) και εργασία, όπου εξετάζονται οι τεχνικές προγραμματισμού.

Η εργασία κατά 30%. (Πρέπει να έχει ολοκληρωθεί μέσα στην ακαδημαϊκή χρονιά. Προθεσμία υποβολής η ημερομηνία των γραπτών εξετάσεων Φεβρουαρίου και Σεπτεμβρίου)
Η τελική εξέταση κατά 70%.

Ώρες

Τριτη 3-6 στην A2 θεωρία

Ενότητες

Το υλικό που δείχνω με προσομοίωση προγραμμάτων.

Το TM τρέχει κανονικά σε windows 10, είναι μια παλιά έκδοση του 2008.

 

Προθεσμία Κατάθεσης 27/02/2021 στις Εργασίες.

Ημερολόγιο