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

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

Περιγραφή

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

Περισσότερα  
CC - Αναφορά - Μη Εμπορική Χρήση - Παρόμοια Διανομή
Περιεχόμενο μαθήματος

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

Η γλώσσα προγραμματισμού 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.
Μέθοδοι αξιολόγησης

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

Ενότητες

Εισαγωγική ενότητα για τη χρησιμότητα του προγραμματισμού υπολογιστών στην αντιμετώπιση καθημερινών υπολογιστικών προβλημάτων.

Επισκόπηση της γλώσσας προγραμματισμού C μέσω της παράθεσης μικρών προγραμμάτων που επιδεικνύουν το μεγαλύτερο μέρος των δυνατοτήτων της γλώσσας.

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

Δόμηση προγραμμάτων μέσω συναρτήσεων και εξωτερικών μεταβλητών.

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

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

Αναλυτική περιγραφή των συναρτήσεων της πρότυπης βιβλιοθήκης εισόδου/εξόδου της C.

Παρουσίαση αλγορίθμων ταξινόμησης πινάκων και αναζήτησης σε πίνακες.

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

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A+

Αρ. Επισκέψεων :  0
Αρ. Προβολών :  0

Ημερολόγιο

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

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