Γλώσσες Προγραμματισμού Ι - Βιντεομάθημα

Νικόλαος Παπασπύρου, Κωστής Σαγώνας

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

Η ύλη περιλαμβάνει μια σύντομη εισαγωγή στις διάφορες οικογένειες γλωσσών προγραμματισμού, θέματα σχεδιασμού των γλωσσών προγραμματισμού, αρχές σύνταξης κσι συντακτικής ανάλυσης, δεδομένα και πράξεις. Εισαγωγή στις συναρτησιακές γλώσσες με αυστηρό σύστημα τύπων με χρήση κάποιας αντίστοιχης γλώσσας (π.χ. ML ή Haskell). Συμπερασμός τύπων και πολυμορφισμός. Ονόματα και εμβέλεια. Εγγραφές δραστηριοποίησης. Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό με χρήση κάποιας αντίστοιχης γλώσσας (π.χ. C++, Java ή C#). Διαχείριση μνήμης. Μηχανισμοί χειρισμού εξαιρέσεων. Παράμετροι και πέρασμα παραμέτρων. Εισαγωγή στις γλώσσες λογικού προγραμματισμού και στη θεωρητική τους θεμελίωση με χρήση της γλώσσας Prolog.

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

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

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

Programming Language Pragmatics), Michael Scott, εκδόσεις Κλειδάριθμος

Βιβλιογραφία

Χρήσιμοι Σύνδεσμοι

Online Course Material

E-books & on-line tutorials

Βιβλία:

Extra υλικό (για extra ψάξιμο...)

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

Διδασκαλία καθ' έδρας. Όπως φαίνεται και στον οδηγό σπουδών, το μάθημα έχει και εργαστηριακό μέρος. O σκοπός των εργαστηρίων, στα οποία η παρακολούθηση ναι μεν δεν είναι υποχρεωτική αλλά συνιστάται, είναι να βοηθήσουν την καλύτερη κατανόηση κάποιων χαρακτηριστικών των γλωσσών προγραμματισμού που θα παρουσιαστούν στις διαλέξεις, την εξοικείωση των σπουδαστών με τα περιβάλλοντα προγραμματισμού που θα χρησιμοποιηθούν για τις ασκήσεις του μαθήματος, και την παροχή χρήσιμων συμβουλών και εμπειριών για την επίλυση των ασκήσεων. Κάποιες από τις Πέμπτες του μαθήματος θα χρησιμοποιηθούν για εργαστήρια. Πιθανώς να προγραμματιστούν εργαστήρια και σε μέρες διαφορετικές από Πέμπτες ανάλογα με τη διαθεσιμότητα των PC Labs της Σχολής και την εξέλιξη του εξαμήνου.

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

Γραπτές εξετάσεις.

Προαπαιτούμενα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών, Προγραµµατιστικές Τεχνικές, Εισαγωγή στην Επιστήµη των Υπολογιστών.

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

Καλωσορίσατε στο μάθημα "Γλώσσες Προγραμματισμού Ι". Η ύλη περιλαμβάνει μια σύντομη εισαγωγή στις διάφορες οικογένειες γλωσσών προγραμματισμού, θέματα σχεδιασμού των γλωσσών προγραμματισμού, αρχές σύνταξης κσι συντακτικής ανάλυσης, δεδομένα και πράξεις. Εισαγωγή στις συναρτησιακές γλώσσες με αυστηρό σύστημα τύπων με χρήση κάποιας αντίστοιχης γλώσσας (π.χ. ML ή Haskell). Συμπερασμός τύπων και πολυμορφισμός. Ονόματα και εμβέλεια. Εγγραφές δραστηριοποίησης. Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό με χρήση κάποιας αντίστοιχης γλώσσας (π.χ. C++, Java ή C#). Διαχείριση μνήμης. Μηχανισμοί χειρισμού εξαιρέσεων. Παράμετροι και πέρασμα παραμέτρων. Εισαγωγή στις γλώσσες λογικού προγραμματισμού και στη θεωρητική τους θεμελίωση με χρήση της γλώσσας Prolog.

Διδάσκεται στη Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώνστο Εθνικό Μετσόβιο Πολυτεχνείο.

Η σελίδα αυτή παρέχει το υλικό του μαθήματος σε αρχειακή μορφή. Σύγχρονες εκδόσεις του μαθήματος θα βρίσκονται στην επίσημη σελίδα του στη Σχολή Σ.Η.Μ.Μ.Υ.Γλώσσες Προγραμματισμού Ι.

Στον παρακάτω συνδεσμο μπορείτε να βρείτε την έκδοση του μαθήματος σε επιπεδο Α-: Γλώσσες Προγραμματισμού Ι AOC.

Λέξεις Κλειδιά: Γλώσσες Προγραμματισμού Ι, βιντεομαθημα, βίντεο, Νικόλαος Παπασπύρου, Κωστής Σαγώνας, ΣΗΜΜΥ, ΕΜΠ, Programming Languages I, videocourse, video, Nikolaos Papaspyrou, Kostis Sagonas, ECE, NTUA, C, ML, Java, Prolog, σύνταξη, συντακτική ανάλυση, δεδομένα και πράξεις, συναρτησιακές γλώσσες με αυστηρό σύστημα τύπων, συμπερασμός τύπων, πολυμορφισμός, ονόματα, εμβέλεια, εγγραφές δραστηριοποίησης, αντικειμενοστρεφής προγραμματισμός, διαχείριση μνήμης, εξαιρέσεις, παράμετροι, πέρασμα παραμέτρων, λογικός προγραμματισμός, lexical analysis, syntax analysis, data types, strong typing, functional programming, type inference, polymorphism, names, scopes, activation records, object-oriented programming, memory management, exception handling, parameters, parameter passing, logic programming languages, Ηλεκτρολόγοι Μηχανικοί, Μηχανικοι Υπολογιστών, Εθνικό Μετσόβιο Πολυτεχνείο, National Technical University of Athens, ανοικτά ακαδημαϊκα μαθήματα, ανοικτά ακαδημαϊκα μαθήματα ΕΜΠ, ocw, opencourses, academic open courses

Θεματικές Ενότητες

Εισαγωγή στις γλώσσες προγραμματισμού.

Θέματα σχεδιασμού γλωσσών προγραμματισμού.

Σύνταξη και συντακτική ανάλυση.

Εισαγωγή στη γλώσσα ML.

Εισαγωγή στους τύπους.

Η γλώσσα ML σε βάθος

Συμπερασμός τύπων και πολυμορφισμός

Εργαστήριο στη χρήση και στον προγραμματισμό σε ML

Ονόματα και εμβέλεια.

Εγγραφές δραστηριοποίησης.

Εισαγωγή στη γλώσσα Java.

Διαχείριση μνήμης.

Διαπροσωπείες, ιεραρχίες κλάσεων και κληρονομικότητα στη Java.

Java generics και Αντικειμενοστρέφεια.

Εργαστήριο στη χρήση και στον προγραμματισμό σε Java.

Εξαιρέσεις (στη Java).

Πέρασμα παραμέτρων.

Εισαγωγή στη γλώσσα Prolog.

Περισσότερη Prolog, παραδείγματα, επισκόπηση μαθήματος.

Ανοικτό Ακαδ. Μάθημα

Ημερολόγιο

Ανακοινώσεις

  • - Δεν υπάρχουν ανακοινώσεις -