Παρουσίαση/Προβολή

Επιλέχθηκε εικόνα

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

(DI119) -  Παναγιώτης Σταματόπουλος

Περιγραφή Μαθήματος

Το μάθημα εντάσσεται στα υποχρεωτικά μαθήματα του Προγράμματος Σπουδών του Τμήματος Πληροφορικής και Τηλεπικοινωνιών, διδάσκεται στο 1ο εξάμηνο και είναι υποχρεωτικό για όλους τους φοιτητές. Η διδασκαλία του θεωρητικού μέρους διαρκεί 26 ώρες και τα φροντιστήρια (επίδειξη συγκεκριμένων προγραμμάτων) 26 ώρες, επίσης. Κάθε φοιτητής συμμετέχει και σε ένα εργαστηριακό τμήμα, με μέγιστο αριθμό φοιτητών ανά τμήμα ίσο με 30, στο οποίο γίνεται πρακτική εξάσκηση στον προγραμματισμό. Η εργαστηριακή εξάσκηση διαρκεί 26 ώρες συνολικά. Στις διαλέξεις του μαθήματος, αρχικά γίνεται μία σύντομη εισαγωγή στην επιστήμη των υπολογιστών, περιγράφοντας συνοπτικά τις έννοιες του υλικού και του λογισμικού. Στη συνέχεια, η έμφαση δίνεται στην αλγοριθμική επίλυση προβλημάτων που συναντώνται στην καθημερινή ζωή και μετά στην αντιμετώπιση προβλημάτων υπολογισμού (μαθηματικών και άλλων) με τη βοήθεια αλγορίθμων. Τέλος, παρουσιάζονται αναλυτικά οι δυνατότητες της γλώσσας προγραμματισμού C και το μεγαλύτερο μέρος του μαθήματος αφιερώνεται στον προγραμματισμό με τη γλώσσα αυτή. Στα εργαστήρια, ακολουθούνται συγκεκριμένα σενάρια αντιμετώπισης προβλημάτων μέσω συγγραφής προγραμμάτων στη γλώσσα προγραμματισμού C, όπως αυτά περιγράφονται στα σχετικά εργαστηριακά φυλλάδια.

Ημερομηνία δημιουργίας

Παρασκευή 7 Αυγούστου 2015

  • Περίγραμμα

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

    Γενικά περί υπολογιστών και προγραμματισμού υπολογιστών. Ιστορική αναδρομή. Η δομή του υπολογιστή. Η πληροφορία στον υπολογιστή. Λογισμικό και γλώσσες προγραμματισμού. Απαιτήσεις από μια διαδικαστική γλώσσα προγραμματισμού. Εκτελέσιμα προγράμματα. Μεταγλώττιση και σύνδεση.

    Η γλώσσα προγραμματισμού C. Προγραμματιστικά περιβάλλοντα για την C. Ο μεταγλωττιστής gcc. Παραδείγματα απλών προγραμμάτων στην C. Χαρακτηριστικά και δυνατότητες της C. Μεταβλητές, σταθερές, τύποι και δηλώσεις. Εντολές αντικατάστασης, τελεστές και παραστάσεις. Η ροή του ελέγχου. Δομή προγράμματος, συναρτήσεις και εξωτερικές μεταβλητές. Εμβέλεια και χρόνος ζωής μεταβλητών. Αναδρομή. Διευθύνσεις θέσεων μνήμης, δείκτες και πίνακες. Δυναμική δέσμευση μνήμης. Συμβολοσειρές. Πίνακες δεικτών, δείκτες σε δείκτες και πολυδιάστατοι πίνακες. Δείκτες σε συναρτήσεις. Ορίσματα γραμμής εντολών. Απαριθμήσεις, δομές, αυτο-αναφορικές δομές (λίστες, δυαδικά δέντρα), ενώσεις, πεδία bit και δημιουργία νέων ονομάτων τύπων. Είσοδος και έξοδος. Χειρισμός αρχείων. Προεπεξεργαστής της C και μακροεντολές. Αλγόριθμοι ταξινόμησης πινάκων και αναζήτησης σε πίνακες. Οδηγίες σωστού προγραμματισμού. Συχνά προγραμματιστικά λάθη στην C.

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

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

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

    Το μάθημα στοχεύει να αποτελέσει το υπόβαθρο για όλα τα προγραμματιστικά μαθήματα (κορμού και επιλογής) που ακολουθούν στο Πρόγραμμα Σπουδών του Τμήματος.

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

     Διαλέξεις, Εργαστηριακή Άσκηση, Φροντιστήριο, Συγγραφή εργασίας / εργασιών

    Διδάσκοντες

     

    Σταματόπουλος Παναγιώτης

     

    Βαθμίδα: Επίκουρος Καθηγητής
    Τομέας: Υπολογιστικά Συστήματα και Εφαρμογές

    Web Page: http://cgi.di.uoa.gr/~takis/

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

    Προαπαιτούμενη γνώση αποτελούν τα μαθηματικά Γυμνασίου/Λυκείου.

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

    Συγγράμματα που προσφέρονται μέσω του συστήματος ΕΥΔΟΞΟΣ

    • Brian W. Kernighan, Dennis M. Ritchie. "Η Γλώσσα Προγραμματισμού C", Prentice-Hall (Ελληνική μετάφραση, εκδόσεις Κλειδάριθμος), 1988.
    • Herbert Schildt. "Οδηγός της C", 3η έκδοση, McGraw-Hill (Ελληνική μετάφραση, εκδόσεις Γκιούρδας), 2004.
    • Γ. Σ. Τσελίκης, Ν. Δ. Τσελίκας. "C: Από τη Θεωρία στην Εφαρμογή", 2010.
    • Νικόλαος Μισυρλής. "Εισαγωγή στον Προγραμματισμό με την C", 2003.
    • Νίκος Χατζηγιαννάκης. "Η Γλώσσα C σε Βάθος", 3η έκδοση, εκδόσεις Κλειδάριθμος, 2009.

    Άλλα βιβλία (Textbooks)

    • Eric S. Roberts. "Η Τέχνη και Επιστήμη της C", Addison-Wesley (Ελληνική μετάφραση, εκδόσεις Κλειδάριθμος), 2004.
    • Brian W. Kernighan, Rob Pike. "The Practice of Programming", Addison-Wesley, 1999.
    • Jon Bentley. "Programming Pearls", 2nd edition, Addison-Wesley, 2000.
    • Steven S. Skiena. "The Algorithm Design Manual", Springer-Verlag, 1998.
    • H. M. Deitel, P. J. Deitel. "C: How to Program", 3rd edition, Prentice Hall, 2001.
    • Νικόλαος Θ. Αποστολάτος. "Προγραμματισμός - Εφαρμογές", 1995.
    • Διομήδης Σπινέλλης. "Ανάγνωση Κώδικα - Η Προοπτική του Ανοικτού Λογισμικού", εκδόσεις Κλειδάριθμος, 2005.
    • Brian W. Kernighan, Rob Pike. "Το Περιβάλλον Προγραμματισμού Unix", Prentice-Hall (Ελληνική μετάφραση, εκδόσεις Κλειδάριθμος), 1989.
    • Donald E. Knuth. "The Art of Computer Programming: Sorting and Searching (Vol. 3)", 2nd edition, Addison-Wesley, 1998.
    • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. "Introduction to Algorithms", 2nd edition, The MIT Press, 2001.

    Εκπαιδευτικό υλικό στο Διαδίκτυο

    http://phaistos.di.uoa.gr:8080/

    http://cgi.di.uoa.gr/~ip/Cfunctionsref.html

    http://www.ubuntu.com/

    http://cgi.di.uoa.gr/~ip/debug.html

    http://cgi.di.uoa.gr/~ip/vim-tutor.gr.txt

    http://cgi.di.uoa.gr/~ip/Unix.pdf

    http://cgi.di.uoa.gr/~ip/Odigos.pdf

    http://sourceforge.net/projects/orwelldevcpp/

    http://ideone.com/

    http://www.codeblocks.org/

    http://www.codelite.org/

    http://www.thocp.net/

    http://www.faqs.org/faqs/C-faq/faq/

    http://www.doc.ic.ac.uk/lab/cplus/cstyle.html

    http://cslibrary.stanford.edu/107/UnixProgrammingTools.pdf

    http://gcc.gnu.org/

    http://www.mingw.org/

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

    • Brian W. Kernighan, Dennis M. Ritchie. "Η Γλώσσα Προγραμματισμού C", Prentice-Hall (Ελληνική μετάφραση, εκδόσεις Κλειδάριθμος), 1988.
    • Herbert Schildt. "Οδηγός της C", 3η έκδοση, McGraw-Hill (Ελληνική μετάφραση, εκδόσεις Γκιούρδας), 2004.
    • Γ. Σ. Τσελίκης, Ν. Δ. Τσελίκας. "C: Από τη Θεωρία στην Εφαρμογή", 2010.
    • Νικόλαος Μισυρλής. "Εισαγωγή στον Προγραμματισμό με την C", 2003.
    • Νίκος Χατζηγιαννάκης. "Η Γλώσσα C σε Βάθος", 3η έκδοση, εκδόσεις Κλειδάριθμος, 2009.

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

    Γραπτή εξέταση (ερωτήσεις πολλαπλής επιλογής, ερωτήσεις σύντομης απάντησης, ερωτήσεις ανάπτυξης, επίλυση προβλημάτων), γραπτή εργασία, προφορική εξέταση, εργαστηριακή εργασία