ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Εαρινό Εξάμηνο
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 2 Εισαγωγή Διδάσκων: Κώστας Παναγιωτάκης Επισκέπτης Καθηγητής Γραφείο: Δ215 - Τηλέφωνο: – Ώρες γραφείου:Τετάρτη 5:00μμ-7:00μμ Web site μαθήματος: Βιβλία: – Οδηγός της C, Herbert Schildt, Εκδόσεις Γκιούρδας – Η Γλώσσα Προγραμματισμού C, Kernighan & Ritchie, Εκδόσεις Κλειδάριθμος
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 3 Εισαγωγή: Βαθμολόγηση και Οργάνωση Το μάθημα θα έχει: – 5 σειρές ασκήσεων (Α) – Πρόοδο (υποχρεωτική) (Π) – Εργαστήρια (E) – Τελικό (Τ) Τύπος υπολογισμού τελικού βαθμού – Τελικός Βαθμός = 0.3 ∙ A ∙ Π ∙ Τ – Πρέπει να πάρετε τουλάχιστον πάνω από 3 στην πρόοδο, 5 στις ασκήσεις και 4.5 στο τελικό για να περάσετε
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 4 Εισαγωγή: Πρόγραμμα Πρόγραμμα Μαθήματος – Δευτέρα 5-7 (Λ202) και Τετάρτη 7-9 (ΑΜΦ. Β) – Πέμπτη 7-9 (ΑΜΦ. Β) για αναπληρώσεις Πρόγραμμα Εργαστηρίων (6 τμήματα) – Δευτέρα: 1-3 – Τρίτη: 5-7 & 7-9* – Πέμπτη: 1-3 & 3-5* – Παρασκευή:3-5 *: Στα 2 τμήματα αυτά λύνονται κυρίως απορίες και μπορούν να παραμένουν όσοι δεν προλαβαν να λύσουν την άσκηση στις 2 πρώτες ώρες.
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 5 Εισαγωγή: Ασκήσεις Διαβάθμιση ως προς την δυσκολία - Απλά και πιο σύνθετα (δύσκολα) ερωτήματα Παραδίδονται μέσω της submit - εμπρόθεσμα Λάθος/Καθυστέρηση κατά την κατάθεση παίρνει το 50% του βαθμού Πρέπει να τρέχουν στην πλατφόρμα του τμήματος (Linux μηχανήματα) Εξετάζονται από τους βοηθούς μετά από ραντεβού κλεισμένο ηλεκτρονικά στην ιστοσελίδα Εξέταση: Ερωτήσεις κώδικα – τρέξιμο άσκησης
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 6 Εισαγωγή: Εργαστήρια Για να βοηθήσουν όσους έχουν δυσκολίες Για να βοηθήσουν σε εξάσκηση Σε κάθε εργαστήριο θα λύνονται ασκήσεις από εσάς που θα τοποθετούνται στη σελίδα του μαθήματος μαζί με τη λύση Θα επιλύονται απορίες σχετικά με την C Οι βοηθοί θα σας βοηθήσουν – Επίλυση της άσκησης – Λύση κάθε απορίας για την C Είναι Προαιρετικά και δεν θα υπολογίζονται στον τελικό βαθμό ;
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 7 Εισαγωγή: Περί Αντιγραφής Τι είναι: – Αντιγραφή κώδικα ή μέρους αυτού από άλλη πηγή (συμφοιτητή, διαδίκτυο, κάποιον τρίτο, κτλ) – Αντιγραφή της ιδέας ενός αλγορίθμου – Αντιγραφή κειμένου ή μέρους αυτού κατά την διάρκεια εξέτασης – Αυτόματη ανίχνευση Τιμωρία: – Μηδενισμός της άσκησης, διαγωνίσματος κτλ. σε όλα τα μέρη που εμπλέκονται στην αντιγραφή – Μηδενισμός στο μάθημα – Ενημέρωση του τμήματος σχετικά Όποιος αντιγράφει στον προγραμματισμό θα αντιγράφει συνέχεια – Το μάθημα είναι η βάση για τα περισσότερα μαθήματα του τμήματος Μην αφήνετε τους άλλους να αντιγράψουν από εσάς – Κλειδώστε τις περιοχές σας
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 8 Εισαγωγή: Σκοπός Εκμάθηση της γλώσσας C – Μια από τις πιο σημαντικές γλώσσες : Έχει στοιχεία υψηλού επιπέδου Μπορεί να «αγγίξει» τον υπολογιστή (χαμηλού επιπέδου χαρακτηριστικά) Παράγει «αποτελεσματικά – αποδοτικά προγράμματα» Μπορεί να τρέξει σε διαφορετικούς υπολογιστές – Σημαντικό βήμα για την εκμάθηση άλλων γλωσσών (λ.χ. C++, Java) – Χειρισμός βρόχων, συναρτήσεων, πινάκων, δεικτών, δομών δεδομένων, αρχείων
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 9 Εισαγωγή: Σκοπός Εκμάθηση της γλώσσας C Προγραμματισμός – Αλγοριθμική σκέψη – Βάση για έναν Επιστήμονα Υπολογιστών – Εκμάθηση/Κατανόηση σημαντικών εννοιών – Επίλυση προβλημάτων (αλγόριθμος) – Προγραμματισμός αλγορίθμων Από τον αλγόριθμο στο πρόγραμμα – Διόρθωση/Κατανόηση/Αλλαγή προγράμματος Εκμάθηση τρόπου γραψίματος για να είναι εύκολη η ανανέωση και η επαναχρησιμοποίηση των προγραμμάτων μας Βάσεις για επαγγελματικές δεξιότητες
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 10 Εισαγωγή: Περιεχόμενο – 1 η Διάλεξη: Εισαγωγή – 2 η Διάλεξη: Αλγόριθμοι και Προγράμματα – 3 η Διάλεξη: Τύποι Μεταβλητών – 4 η Διάλεξη: Έλεγχος Ροής – 5 η -6 η Διάλεξη: Επανάληψη – 7 η Διάλεξη: Συναρτήσεις – 1 η Σειρά Ασκήσεων – 8 η Διάλεξη: Συναρτήσεις και μεταβλητές – 9 η Διάλεξη: Αλφαριθμητικά – 10 η -11 η Διάλεξη: Πίνακες – 2 η Σειρά Ασκήσεων – ΠΡΟΟΔΟΣ (Αρχές Απρίλη) – 12 η -13 η Διάλεξη: Δείκτες – 14 η -15 η Διάλεξη: Δυναμική Διαχείριση Μνήμης – 3 ης Σειρά Ασκήσεων – 16 η -17 η Διάλεξη: Αναδρομή – 18 η Διάλεξη: Αναζήτηση - Ταξινόμηση – 4 η Σειρά Ασκήσεων – 19 η -20 η Διάλεξη: Αρχεία – 21 η -22 η Διάλεξη: Δομές Δεδομένων – 5 η Σειρά Ασκήσεων
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 11 Εισαγωγή: Εργαλεία Σε LINUX – gcc, γλωσσομεταφραστής της C – ddd, xxgdb, debugger της C (εύρεση λαθών) – Editors : Emacs, vi, vim, gvim, pico, xcoral για την συγγραφή προγραμμάτων Σε Windows – Περιβάλλοντα προγραμματισμού της C, όπως Microsoft Visual Studio και Dev-C++ ( – cygwin ή MinGW ( για προγραμματισμό και μεταγλώττιση Συμβουλή: – Στήστε ένα καλό περιβάλλον προγραμματισμού στο σπίτι σας
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 12 Εισαγωγή: Βοήθεια! Άμεση Βοήθεια - Κατά τις ώρες των εργαστηρίων Ηλεκτρονική Λίστα: – Μήνυμα: χωρίς subject με κείμενο «subscribe Στην ηλεκτρονική λίστα του μαθήματος – Απάντηση σε μία εργάσιμη ημέρα Στις ώρες γραφείου
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 13 Εισαγωγή: Συμβουλές Ρωτήστε, ενημερωθείτε, διαβάστε, ζητήστε βοήθεια Βοήθεια δεν προσπαθώ Εκμεταλλευτείτε τα εργαστήρια Ο προγραμματισμός μαθαίνετε μόνο με προγραμματισμό ~ οδήγηση - κολύμβηση -μπάσκετ – Υπομονή, επιμονή, προσπάθεια – Η εξάσκηση (διάβασμα και προγραμματισμός) θα σας κάνει δυνατούς – Καλός προγραμματιστής ~ γραμμές κώδικα που έχει γράψει
ΗΥ150 – Προγραμματισμός Κώστας Παναγιωτάκης 14 Εισαγωγή: Για την επόμενη φορά Θυμηθείτε το περιβάλλον στο Unix Δοκιμάστε να τρέξετε και διαβάστε τα εγχειρίδια για τα gcc Κλειδώστε τις περιοχές σας Μάθετε έναν editor της προτίμησής σας Εγκαταστήστε κάποιο περιβάλλον προγραμματισμού στον υπολογιστή σας