Προγραμματισμός Ι (HY120) #0 λίγα λόγια για το μάθημα 1
Ποιοί είμαστε; 2
(διδάσκων) Αθήνα (1965-1984) Ζυρίχη / ΕΤΗΖ (1984-1989-1994) Ηράκλειο / UoC (1997-2000) Βόλος / UTH (2000-σήμερα) 3
https://csl.e-ce.uth.gr/ Christos Antonopoulos (Associate Professor) Application- and system-software for HPC, approximate computing, runtime monitoring & adaptivity, performance/quality/power optimization. Nikolaos Bellas (Associate Professor) Approximate computing, low power design, CAD tools for arch. synthesis, multimedia and image processing, parallel architectures, embedded systems. Spyros Lalis (Associate Professor) Run-time systems, OS, distributed systems, pervasive & ubiquitous computing, dynamically reconfigurable systems, WSNs, robotic teams. 4
Γιώργος Θάνος (υπεύθυνος εργαστηρίων) Αθήνα (1976-1994) Θεσσαλονίκη / ΑΠΘ (1994-2000) Αθήνα / ΕΜΠ (2000-2009) Βόλος / UTH (2009-σήμερα) 5
Βάνα Ντουφεξή (υπεύθυνη εργαστηρίων) Πάτρα / ΠΠ (1972-1995) Urbana-Champaign / UIUC (1995-2000) Chicago / Northwestern (2000-2007) Βόλος / UTH 2007-6
Βοηθοί εργαστηρίων Θα καθοριστούν μέσα στις επόμενες μέρες... Μεταπτυχιακοί και προπτυχιακοί φοιτητές Βοηθούν εθελοντικά Μιλήστε μαζί τους! Μάθετε από αυτούς! 7
Ποιοί είστε εσείς; Υπόβαθρο έχετε δει υπολογιστή; έχετε ανοίξει υπολογιστή; έχετε προγραμματίσει υπολογιστή; Τι φαντάζεστε για το μάθημα; Τι περιμένετε να μάθετε; Τι απαιτήσεις πιστεύετε ότι υπάρχουν; 8
Υπολογιστές 9
υπολογιστές υπολογιστές υπολογιστές 10
Χτίζοντας έναν υπολογιστή Transistor Λογικές Πύλες 11
Χτίζοντας έναν υπολογιστή Ολοκληρωμένα Κυκλώματα (π.χ. επεξεργαστές) Λογικά Κυκλώματα 12
Χτίζοντας έναν υπολογιστή Δομικές Μονάδες Σύστημα Video Card 13
Μερικά μυστικά των υπολογιστών Οι υπολογιστές είναι ισχυρά εργαλεία μπορούν να κάνουν απίστευτα πράγματα που πριν λίγα χρόνια δεν μπορούσαμε καν να φανταστούμε Μας κάνουν τη ζωή εύκολη Αλλά και δύσκολη! Οι υπολογιστές είναι χαζοί πολύ χαζοί δεν μπορούν να κάνουν τίποτα από μόνοι τους Χρειάζονται οδηγίες για το παραμικρό! μιλάνε μόνο μια περίεργη γλώσσα: 0.. 1.. 0.. 0.. 1.. 14
Οδηγίες προς Η/Υ 00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000.ELF... 00000010: 0300 3e00 0100 0000 d005 0000 0000 0000..>... 00000020: 4000 0000 0000 0000 6022 0000 0000 0000 @...`"... 00000030: 0000 0000 4000 3800 0900 4000 2200 2100...@.8...@.".!. 00000040: 0600 0000 0400 0000 4000 0000 0000 0000...@... 00000050: 4000 0000 0000 0000 4000 0000 0000 0000 @...@... 00000060: f801 0000 0000 0000 f801 0000 0000 0000... 00000070: 0800 0000 0000 0000 0300 0000 0400 0000... 00000080: 3802 0000 0000 0000 3802 0000 0000 0000 8...8... 00000090: 3802 0000 0000 0000 1c00 0000 0000 0000 8... 000000a0: 1c00 0000 0000 0000 0100 0000 0000 0000... 000000b0: 0100 0000 0500 0000 0000 0000 0000 0000... 000000c0: 0000 0000 0000 0000 0000 0000 0000 0000... 000000d0: 6809 0000 0000 0000 6809 0000 0000 0000 h...h... 000000e0: 0000 2000 0000 0000 0100 0000 0600 0000..... 000000f0: a80d 0000 0000 0000 a80d 2000 0000 0000...... 00000100: a80d 2000 0000 0000 6802 0000 0000 0000.....h... 00000110: 7002 0000 0000 0000 0000 2000 0000 0000 p...... 00000120: 0200 0000 0600 0000 b80d 0000 0000 0000... 00000130: b80d 2000 0000 0000 b80d 2000 0000 0000........ 00000140: f001 0000 0000 0000 f001 0000 0000 0000... 00000150: 0800 0000 0000 0000 0400 0000 0400 0000... 00000160: 5402 0000 0000 0000 5402 0000 0000 0000 T...T... 00000170: 5402 0000 0000 0000 4400 0000 0000 0000 T...D... 219: 21c: 223: 224: 227: 22a: 22b: 230: 232: 234: 235: 237: 239: 23b: 23e: 240: 241: 242: 244: 245: 249: 24b: 00 73 74 add %dh,0x74(%rbx) 64 69 6e 00 5f 66 6c imul $0x616c665f,%fs:0x0(%rsi),%ebp 61 67 73 32 addr32 jae 259 <_init-0x307> 00 5f 6d add %bl,0x6d(%rdi) 6f outsl %ds:(%rsi),(%dx) 64 65 00 5f 49 fs add %bl,%gs:0x49(%rdi) 4f 5f rex.wrxb pop %r15 72 65 jb 299 <_init-0x2c7> 61 (bad) 64 5f fs pop %rdi 62 61 (bad) 73 65 jae 2a0 <_init-0x2c0> 00 5f 76 add %bl,0x76(%rdi) 74 61 je 2a1 <_init-0x2bf> 62 (bad) 6c insb (%dx),%es:(%rdi) 65 5f gs pop %rdi 6f outsl %ds:(%rsi),(%dx) 66 66 73 65 data16 data16 jae 2ae <_init-0x2b2> 74 00 je 24b <_init-0x315> 5f pop %rdi Γλώσσα Μηχανής Συμβολική γλώσσα Η μητρική γλώσσα του επεξεργαστή του Η/Υ Κοντά στη γλώσσα μηχανής Ακατανόητη(;) Και πάλι ού μπλέξεις... Ού μπλέξεις Λίγο πιο κατανοητή... εκτός αν χρειαστεί ;-) 15
Οδηγίες προς Η/Υ #include <stdio.h> int main (int argc, char *argv[]) { char input; int i; printf("hello world"); printf("enter character:"); input = getchar(); for (i = 0; i < 10; i++) { putchar(input); } printf("\n"); return(0); } Γλώσσες υψηλού επιπέδου Τώρα μάλιστα! Κάτι καταλαβαίνουμε... Πιο κοντά στον άνθρωπο 16
Σκοπός Κατανόηση των βασικών εννοιών προγραμματισμού Εκμάθηση των βασικών στοιχείων μιας συμβατικής γλώσσας προγραμματισμού (συγκεκριμένα της C) Ακόμα και για όσους δεν έχουν προγραμματίσει ποτέ μέχρι σήμερα στην ζωή τους Δεν θα γίνετε ειδήμονες Θα μάθετε όμως τα βασικά! 17
Βασικά συγγράμματα «C Από τη Θεωρία στην Εφαρμογή», 3η έκδοση Γ.Σ. Τσελίκης & Ν.Δ. Τσελίκας «C Προγραμματισμός», 7η έκδοση Deitel & Deitel Εκδόσεις M. Γκιούρδας «Η γλώσσα C σε βάθος», 5η έκδοση, Νίκος Μ. Χατζηγιαννάκης Εκδόσεις Κλειδάριθμος 18
Περιεχόμενα Εκτέλεση κώδικα, μνήμη μεταβλητές Βασικοί τύποι δεδομένων και τελεστές Συναρτήσεις Δομές ελέγχου Αποσφαλμάτωση και εργαλεία Πίνακες και συμβολοσειρές Δείκτες Σύνθετοι τύποι δεδομένων Αναδρομή Εργαστήριο! 19
όμως Τελικά, ποιος έμαθε ποδήλατο, κοιτώντας πολλά ωραία slides ή διαβάζοντας καλές οδηγίες; Ο προγραμματισμός δε μαθαίνεται με διάβασμα! Θέλει (πολλή) δουλειά στον υπολογιστή! Πειραματισμός, λάθη, εύρεση λαθών κ.ο.κ. 20
Κανόνες μαθήματος 21
Εξετάσεις Προγραμματιστική εξέταση στο εργαστήριο πρέπει να αποκτηθεί σχετικό δικαίωμα διαφορετικοί κανόνες για πρωτοετείς και παλιούς βλέπε συνέχεια κανονική και επαναληπτική εξέταση (Ιανουάριος/Σεπτέμβριος) αν είναι επιτυχής, ο τελικός βαθμός θα είναι [6..10] Γραπτή εξέταση δικαίωμα έχουν όλοι μόνο στην επαναληπτική εξέταση (Σεπτέμβριος) αν είναι επιτυχής, ο τελικός βαθμός θα είναι [5..6] 22
Δικαίωμα εξέτασης στο εργαστήριο Πρωτοετείς φοιτητές εργαστήριο και quizzes και homeworks Παλιοί φοιτητές εργασία κατά την διάρκεια του εξαμήνου Έχει ισχύ για 2 ακαδημαϊκά έτη π.χ., αν το δικαίωμα αποκτηθεί το ακαδημαϊκό έτος 19-20 τότε ισχύει για το 19-20 (εξεταστική Ιαν + Σεπ 20) και το 20-21 (εξεταστική Ιαν + Σεπ 21) 23
Δικαίωμα εργαστηριακής εξέτασης: 1ετείς 10 υποχρεωτικά εργαστήρια ομάδες 2 ατόμων 0 pts για no-show/fail, 1 για οριακό pass, 3 για ικανοποιητικό απαίτηση: lab1 έως lab5 >= 8 και lab6 έως lab10 >= 8 αν lab1 έως lab5 < 8, δεν συνεχίζεται το εργαστήριο 4 quizzes ατομικά απαίτηση: μέσος όρος >= 5 3 homeworks ομάδες 2 ατόμων χρόνος υλοποίησης 2 εβδομάδες επιπλέον περιθώριο: συνολικά 3 μέρες εκπρόθεσμης υποβολής απαίτηση: μέσος όρος εργασιών >= 5 24
Δικαίωμα εργαστηριακής εξέτασης: παλιοί Υλοποίηση μεγάλης προγραμματιστικής εργασίας κατά την διάρκεια του εξαμήνου Το θέμα της εργασίας και η καταληκτική ημερομηνία παράδοσης ανακοινώνεται στην αρχή του εξαμήνου Ομάδες των 2 Απαίτηση έγκαιρη παράδοση της εργασίας η εργασία ικανοποιεί τις απαιτήσεις/λειτουργικότητα κάθε μέλος της ομάδας μπορεί να εξηγήσει τον κώδικα που έγραψε 25
Βαθμός Εξέταση στο εργαστήριο, πρωτοετείς βαθμός εξέτασης Ε >= 5 max (Ε, Ε*0.5 + Q*0.25 + H*0.25) σταθμισμένο στο [6..10] Q = μ.ο. quizzes, H = μ.ο. homeworks Εξέταση στο εργαστήριο, παλιοί βαθμός εξέτασης Ε >= 5 Ε σταθμισμένο στο [6..10] Γραπτή εξέταση βαθμός εξέτασης Γ >= 5, σταθμισμένο στο [5..6] 26
Ώρες εργαστηρίου Θα διαλέξετε κάποιο από τα τμήματα που θα ανακοινωθούν σειρά προτεραιότητας Παρακολουθείτε τη σελίδα του μαθήματος και τον πίνακα ανακοινώσεων Αρχίζουμε από την επόμενη εβδομάδα! 27
Οι καλοί λογαριασμοί Δεν επιτρέπεται να μοιράζεστε κώδικα εκτός ομάδας Όποιος παίρνει ή/και δίνει κώδικα την πρώτη φορά: 0 στην εργασία/lab αν επαναληφθεί: 0 στο μάθημα για φέτος, αναφορά στο Τμήμα Δικαιολογίες δεν ήξερα, δεν κατάλαβα δεν πιάνουν... υπάρχει τρόπος να εντοπιστούν διάφορες «εξυπνάδες» 28
29
Η συνταγή της επιτυχίας Συστηματική παρακολούθηση/δουλειά παρουσία (σώματος & πνεύματος) στις διαλέξεις εστιασμένη δουλειά στο εργαστήριο συστηματική δουλειά στο σπίτι διάβασμα: διαφάνειες, βιβλία, διαδίκτυο Όρεξη πρέπει να κοπιάσετε και να «λερώσετε» τα χέρια σας Επενδύστε στον εαυτό σας την γνώση πρέπει να την αποκτήσετε εσείς (όχι ο γείτονας) Κρατάτε σημειώσεις! οι διαφάνειες είναι βοηθητικό υλικό δεν καταγράφουν όλα όσα λέγονται προφορικά 30
31
Επικοινωνία ιστοσελίδα + forum https://eclass.uth.gr/courses/e-ce_u_168/ 32
Επικοινωνία Για το μάθημα: ce120lab@gmail.com Ώρες γραφείου: στη σελίδα του μαθήματος. Γκλαβάνη 37, Γραφείο E3/9 E-mail: Γιώργος Θάνος Γκλαβάνη 37, Γραφείο Γ5/8 E-mail: gthanos@uth.gr Βάνα Ντουφεξή Γκλαβάνη 37, Γραφείο Γ5/10 E-mail: doufexi@gmail.com 33
Μην φοβάστε να μιλάτε/ρωτάτε! Δεν δαγκώνουμε όχι πολύ ;-) Οι καθηγητές και οι βοηθοί έχουν ανοιχτές πόρτες περισσότερο από όσο ίσως νομίζετε Υπάρχει κάθε καλή διάθεση να βοηθήσουμε εφόσον βλέπουμε σοβαρή προσπάθεια από εσάς Μπορείτε να έρθετε να μιλήσουμε ακόμα και για θέματα που δεν άπτονται άμεσα του μαθήματος π.χ., για τις σπουδές σας, τι ακολουθεί μετά, 34
Μάθημα και πρόγραμμα σπουδών 35
Πρόγραμμα σπουδών Παρέχει βασικές γνώσεις στον ευρύτερο τομέα των ηλεκτρολόγων μηχανικών & μηχανικών υπολογιστών Βασικοί τομείς θεμελιώσεις, υλικό, λογισμικό και πληροφοριακά συστήματα, τηλεπικοινωνίες και δίκτυα, ενέργεια Κάποια μαθήματα έχουν προαπαιτούμενα για να υπάρχουν οι βάσεις ώστε να μην σπαταλάτε τον χρόνο σας άδικα με ελάχιστες πιθανότητες επιτυχίας Το μάθημα του Προγραμματισμού Ι είναι από τα πιο βασικά μαθήματα είναι προαπαιτούμενο για πολλά άλλα μαθήματα του τομέα υλικού και του τομέα λογισμικού 36
Προγραμματισμός Ι και πρόγραμμα σπουδών ΗΥ121 ΗΥ120 >=3 ΗΥ232 >=9 ΗΥ320 ΗΥ323 ΗΥ325 ΗΥ326 >=17 ΗΥ410 ΗΥ416 ΗΥ420 ΗΥ422 ΗΥ424 ΗΥ441 ΗΥ530 37
«Αξίζει» (αντικειμενικά) η προσπάθεια; NY University: Εδώ στο Πανεπιστήμιο πάντως τα πράγματα πολύ καλά. Δε θέλω να πω μεγάλες κουβέντες, αλλά νομίζω ότι άμα έχεις τελειώσει το Τμήμα το επίπεδό σου είναι πολύ καλό. Το ίδιο και η ικανότητά σου να αντιμετωπίζεις τις δυσκολίες. King's College, London: Όταν ήρθα εδώ εκτίμησα την ποιότητα των σπουδών μας. Delft: Εδώ είναι τέλεια. Σας ευχαριστώ που με βοηθήσατε να συνεχίσω τις σπουδές μου εκεί. 38