Διάλεξη 1η: Εισαγωγή



Σχετικά έγγραφα
Προγραμματισμός Χειμερινό Εξάμηνο 2014

Προγραμματισμός. Εαρινό Εξάμηνο 2011

Προγραμματισμός Χειμερινό Εξάμηνο 2017

Χειµερινό Εξάµηνο 2013

Θέματα Προγραμματισμού Η/Υ

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Ι (ΗΥ120)

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Εισαγωγή Χειμερινό Εξάμηνο Παναγιώτης Τσαπάρας

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Διαδικαστικά

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Εισαγωγή Χειμερινό Εξάμηνο Νίκος Μαμουλής

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Περιγραφή Μαθήματος. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Προγραµµατισµός Ι (ΗΥ120)

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Άξονας ανάπτυξης του µαθήµατος 3. Γενικός σκοπός του µαθήµατος. Το µάθηµα της Πληροφορικής στο Γυµνάσιο

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Διδακτική της Πληροφορικής ΙΙ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Εισαγωγή Χειµερινό Εξάµηνο 2014

Δομές Δεδομένων & Αλγόριθμοι

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Προγραμματισμός Ι (ΗΥ120)

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Πληροφορική ΙΙ Ενότητα 1

ΟΜΑΔΑ Λ. Αναστασίου Κωνσταντίνος Δεληγιάννη Ισαβέλλα Ζωγοπούλου Άννα Κουκάκης Γιώργος Σταθάκη Αρετιάννα

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ

Προγραμματισμός Ι (ΗΥ120)

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( )

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

ΘΕΜΑ 1ο Α. 1. Να αναφέρετε τα κριτήρια που πρέπει να ικανοποιεί κάθε αλγόριθµος.

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΕΠΠ Ερωτήσεις θεωρίας

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Πρόβλημα 37 / σελίδα 207

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2520

Προγραμματισμός Ι (ΗΥ120)

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Εισαγωγή στον Προγ/μό Υπολογιστών. Διάλεξη 0

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Α. Ερωτήσεις Ανάπτυξης

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

Προγραµµατισµός Η/Υ. Δρ. Δ.Ν. Παγώνης. Καθηγητής Εφαρµογών. Τηλ: Τµήµα Ναυπηγών Μηχανικών ΤΕ, ΤΕΙ Αθήνας

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ edu.klimaka.gr ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

Δομές Δεδομένων (Data Structures)

2. Προγραμματισμός (Βασικές Αρχές Προγραμματισμού, Προηγμένες Τεχνικές Προγραμματισμού :

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Σχεδίαση Εκπαιδευτικού Λογισμικού. Εργασία 2 - Α' φάση. Σενάριο/Σχέδιο μαθήματος. Σταματία Κορρέ Μ1430

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

ΠΡΟΓΡΑΜΜΑ Κύριο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ ΙΑΒΑΣΕ Α, Β, Γ ΚΑΛΕΣΕ ιαδ1(α, Β, Γ) ΓΡΑΨΕ Α, Β, Γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΠΡΟΓΡΑΜΜΑ Κύριο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ ΙΑΒΑΣΕ Α, Β, Γ ΚΑΛΕΣΕ ιαδ1(α, Β, Γ) ΓΡΑΨΕ Α, Β, Γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Περιγραφή Μαθήματος. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΑΘΗΜΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Β ΛΥΚΕΙΟΥ

1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ

Γενικά περί υπολογιστών

Transcript:

Διάλεξη 1η: Εισαγωγή Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 1 / 18

Εισαγωγή Διδάσκων: Πολύβιος Πρατικάκης: polyvios@csduocgr Ώρες γραφείου: Δευτέρα, 12:15 14:00, K-327 Σελίδα μαθήματος: http://wwwcsduocgr/~hy100 Βιβλία: Brian W Kernighan and Dennis M Ritchie Η γλώσσα προγραμματισμού C Εκδόσεις Κλειδάριθμος, 1990 Herbert Schildt Οδηγός της C Εκδόσεις Γκιούρδας, 2000 Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 2 / 18

Καλώς ήλθατε στο CSD! Επιστήμη Υπολογιστών: Γεφυρώνει τα Μαθηματικά, την Επιστήμη, και την Τεχνολογία Η μελέτη των θεωρητικών θεμελίων της πληροφορίας και των υπολογισμών, η τεχνολογία, σχεδίαση και οργάνωση των μηχανών και συστημάτων που εκτελούν υπολογισμούς, και οι πρακτικές εφαρμογές που προκύπτουν από την υλοποίηση και εφαρμογή των αρχών αυτών σε υπολογιστικά συστήματα Σε αυτό το μάθημα, θα μάθετε να γράφετε κώδικα: καλές πρακτικές, αποφυγή λαθών, αποδοτικό πρόγραμμα διαβάζετε κώδικα: κατανόηση του υπολογισμού, εύρεση λαθών σκέπτεστε υπολογιστικά: ποιά είναι η διαδικασία που λύνει ένα πρόβλημα λύνετε προβλήματα: κατανομή σε υποπροβλήματα, οργάνωση της λύσης Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 3 / 18

Οργάνωση του μαθήματος Παρακολούθηση και φόρτος μελέτης Δύο διαλέξεις Επιπλέον μελέτη τουλάχιστον 4 6 ώρες Ασκήσεις για το σπίτι (40%) Θεωρητικό μέρος: κείμενο σε PDF ή απλό text Προγραμματιστικό μέρος: κώδικας Παράδοση μόνο με το submit Οδηγίες χρήσης στη σελίδα του τμήματος Διαγώνισματα Πρόοδος (20%): στη μέση του εξαμήνου Η ημερομηνία θα ανακοινωθεί αρκετά νωρίτερα ρυθμίστε το ημερολόγιό σας Τελικό Διαγώνισμα (40%): στο τέλος του εξαμήνου, όλη η ύλη Επαναληπτικό Διαγώνισμα (40%): το Σεπτέμβρη, όλη η ύλη Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 4 / 18

Φροντιστήριο/Εργαστήριο Εισαγωγή στο εργαστήριο, 1 2 διαλέξεις Μεταπτυχιακοί βοηθοί Βοηθούν στις ασκήσεις Λύνουν απορίες για τη C Προγραμματιστικές ασκήσεις Oι προθεσμίες είναι στη σελίδα του μαθήματος Πρέπει να τρέχουν στα μηχανήματα του εργαστηρίου Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 5 / 18

Αντιγραφή Αντιγραφή είναι η χρήση κώδικα άλλου (συμφοιτητή, τρίτου, internet, κλπ) η συνεργασία για την επίλυση άσκησης η χρήση κειμένου άλλου η επικοινωνία με οποιονδήποτε πλην των διδασκόντων κατά τη διάρκεια εξέτασης Η αντιγραφή ανιχνεύεται εύκολα Αυτόματη ανάλυση και σύγκριση με κώδικα συμφοιτητών, παρόμοιο κώδικα στο internet, παλαιότερες λύσεις Αδυναμία εξήγησης του κώδικα στο εργαστήριο Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 6 / 18

Αντιγραφή (2) Short-term gain, Long-term pain Γνώσεις προγραμματισμού χρειάζονται σε ολόκληρη τη φοίτηση Η Εισαγωγή στην Επιστήμη Υπολογιστών είναι βάση για τα περισσότερα μαθήματα του τμήματος Η αντιγραφή θέλει δύο Μην αφήνετε τους άλλους να αντιγράψουν από εσάς Κλειδώστε την περιοχή σας στο εργαστήριο Μη δίνετε τις λύσεις σας σε επόμενες χρονιές Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 7 / 18

Σκοπός μαθήματος Ο τρόπος σκέψης της Επιστήμης Υπολογιστών Υπολογιστικά προβλήματα Αλγοριθμική σκέψη, λύση προβλημάτων Εισαγωγή στον Προγραμματισμό Εκμάθηση της γλώσσας C (γραφή, ανάγνωση) Υλοποίηση αλγορίθμων Καλές προγραμματιστικές συνήθειες Βασικές υπολογιστικές έννοιες Δεδομένα και οργάνωση της μνήμης Υπολογιστικές μηχανές και περιγραφή υπολογισμών Βάση για επαγγελματικές δεξιότητες Σχεδιασμός και οργάνωση του προγράμματος Ανάγνωση και κατανόηση του προγράμματος Πώς μαθαίνεται μια γλώσσα προγραμματισμού Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 8 / 18

Περιεχόμενα Μαθήματος 1 Εισαγωγή 2 Αλγόριθμοι και Προγράμματα 3 Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος 4 Εντολές Ελέγχου Ροής 5 Εντολές Επανάληψης 6 Συναρτήσεις 7 Συναρτήσεις και Μεταβλητές 8 Αλφαριθμητικά 9 Πίνακες 10 Αλγόριθμοι Πινάκων 11 Δείκτες, part I 12 Δείκτες, part II 13 Διαγώνισμα Προόδου 14 Δυναμική Διαχείρηση Μνήμης, part I 15 Δυναμική Διαχείρηση Μνήμης, part II 16 Αναδρομή 17 Αναδρομικοί Αλγόριθμοι 18 Ταξινόμηση και Αναζήτηση 19 Διαχείρηση Αρχείων 20 Δομές (structs) 21 Αναδρομικές Δομές 22 Δομές Δεδομένων 23 Αλγόριθμοι σε Αναδρομικές Δομές 24 Άλλα Χαρακτηριστικά της C 25 Άλλες προγραμματιστικές τεχνικές 26 Τελικό Διαγώνισμα Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 9 / 18

Εργαλεία Εγκαταστήστε ένα καλό περιβάλλον προγραμματισμού στο σπίτι Διάφορες διανομές του Linux Ubuntu, Debian, Fedora, Compiler, IDE (Integrated Development Environment) Eclipse, ολοκληρωμένο περιβάλλον ανάπτυξης Άλλοι editors: emacs, vim, pico, GCC (GNU Compiler Collection): μεταγλωττιστής της C ddd, xxgdb: Debugger Σε MS Windows Eclipse, Dev-C++ Visual Studio (MS C Compiler) Cygwin: περιβάλλον UNIX στα Windows Wubi: Linux μέσα στα Windows Για τα περισσότερα προγράμματα, ασκήσεις, παραδείγματα κλπ του μαθήματος αρκεί οποιοδήποτε από τα παραπάνω Στο εργαστήριο/φροντιστήριο υποστηρίζεται ο GCC Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 10 / 18

Βοήθεια Στις ώρες των εργαστηρίων, άμεσες ερωτήσεις στους βοηθούς Mailing list: hy100-list@csduocgr Κίνηση σχετική με το μάθημα, όχι forum γενικού ενδιαφέροντος Netiquette Εγγραφή με email στο majordomo@csduocgr, χωρίς Subject, με κείμενο subscribe hy100-list Στα φροντιστήρια, στις ώρες γραφείου των βοηθών και του διδάσκοντος Στο Google Μάθετε να χρησιμοποιείτε τις μηχανές αναζήτησης σωστά Ψάξτε online πριν στείλετε ερωτήσεις σε όλους στη λίστα Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 11 / 18

Συμβουλές Ρωτήστε, ενημερωθείτε, διαβάστε, ζητήστε βοήθεια Active learning Εκμεταλλευτείτε τα εργαστήρια, τους βοηθούς, τις ώρες γραφείου Ασχοληθείτε με τον προγραμματισμό ενεργά Όχι μόνο τις ασκήσεις Όχι μόνο την τελευταία στιγμή 6 ώρες μελέτη την εβδομάδα 24 ώρες την τελευταία μέρα του μήνα Ο προγραμματισμός είναι σαν το ποδήλατο Όσα βιβλία και να διαβάσει κανείς, δεν ξέρει Μαθαίνεται μόνο κάνοντας, στην πράξη Στην αρχή όλοι πέφτουν Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 12 / 18

Υπολογιστική σκέψη Στόχος: να μάθετε να σκέπτεστε σαν επιστήμονες υπολογιστών Βάλτε τον υπολογιστή να κάνει αυτό που θέλετε Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 13 / 18

Υπολογιστική σκέψη Στόχος: να μάθετε να σκέπτεστε σαν επιστήμονες υπολογιστών Βάλτε τον υπολογιστή να κάνει αυτό που θέλετε Παράδειγμα 1 Ο αριθμός x είναι ο y, τέτοιος ώστε y 2 = x Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 13 / 18

Υπολογιστική σκέψη Στόχος: να μάθετε να σκέπτεστε σαν επιστήμονες υπολογιστών Βάλτε τον υπολογιστή να κάνει αυτό που θέλετε Παράδειγμα 1 Ο αριθμός x είναι ο y, τέτοιος ώστε y 2 = x Παράδειγμα 2 1 Μάντεψε κάποιο y 2 Αν y 2 x τότε ρίζα είναι το y 3 Αν όχι, επανέλαβε από το παραπάνω βήμα με y = x+y/x 2 Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 13 / 18

Υπολογιστική σκέψη Στόχος: να μάθετε να σκέπτεστε σαν επιστήμονες υπολογιστών Βάλτε τον υπολογιστή να κάνει αυτό που θέλετε Τί είναι υπολογισμός; Διατύπωση: περιγραφή μιας ακολουθίας βημάτων Συγκεκριμένη σειρά: αποφασίζω ποιό είναι το επόμενο βήμα και το εκτελώ Συνθήκη τερματισμού: πότε σταματώ και ποιά είναι η απάντηση Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 13 / 18

Υπολογιστική σκέψη Στόχος: να μάθετε να σκέπτεστε σαν επιστήμονες υπολογιστών Βάλτε τον υπολογιστή να κάνει αυτό που θέλετε Τί είναι υπολογισμός; Διατύπωση: περιγραφή μιας ακολουθίας βημάτων Συγκεκριμένη σειρά: αποφασίζω ποιό είναι το επόμενο βήμα και το εκτελώ Συνθήκη τερματισμού: πότε σταματώ και ποιά είναι η απάντηση Πώς αυτοματοποιούμε τους υπολογισμούς της τετραγωνικής ρίζας; Κατασκευάζουμε μια μηχανή που τους εκτελεί Ένα κύκλωμα για να ελέγχει τη συνθήκη Ένα κύκλωμα για να υπολογίζει το κλάσμα κλπ Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 13 / 18

Οι πρώτοι υπολογιστές Αρχικοί υπολογιστές: ένα κύκλωμα που εκτελεί μια συγκεκριμένη σειρά από υπολογισμούς Bombe, ENIAC, αριθμομηχανές Λέγονται Fixed-program computers Κατασκευασμένοι για μια μόνο λειτουργία (πρόσθεση, αφαίρεση, τετραγωνική ρίζα, κλπ) Για κάθε πρόβλημα, χρειάζεται η κατασκευή νέου κυκλώματος Ιδανικό κύκλωμα: Παίρνει την περιγραφή ενός άλλου κυκλώματος, και υπολογίζει το αποτέλεσμα που θα έδινε αυτό Ακόμη καλύτερα: Παίρνει την περιγραφή μιας σειράς βημάτων, και υπολογίζει το αποτέλεσμά τους Οι σημερινοί υπολογιστές: stored-program computers Μπορούμε να δώσουμε στον υπολογιστή μια σειρά από εντολές που περιγράφουν τη διαδικασία που θέλουμε να εκτελέσει Λέγονται και μηχανές von Neumann Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 14 / 18

Περιγραφή ενός stored-program computer Memory Control ALU PC Εντολή 1 Εντολή 2 Εντολή n Πρόγραμμα: μια σειρά από εντολές (σαν συνταγή) Πεπερασμένος αριθμός εντολών Περιγράφουν όλους τους δυνατούς υπολογισμούς Ποιές είναι οι κατάλληλες εντολές; 1936, Alan Turing: Όλοι οι υπολογισμοί μπορούν να περιγραφούν με 6 απλές εντολές Ότι υπολογισμός μπορεί να περιγραφεί με μια γλώσσα προγραμματισμού, μπορεί με όλες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 15 / 18

Περιγραφή ενός stored-program computer Memory Control ALU PC Εντολή 1 Εντολή 2 Εντολή n Πρόγραμμα: μια σειρά από εντολές (σαν συνταγή) Πεπερασμένος αριθμός εντολών Περιγράφουν όλους τους δυνατούς υπολογισμούς Ποιές είναι οι κατάλληλες εντολές; 1936, Alan Turing: Όλοι οι υπολογισμοί μπορούν να περιγραφούν με 6 απλές εντολές Ότι υπολογισμός μπορεί να περιγραφεί με μια γλώσσα προγραμματισμού, μπορεί με όλες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 15 / 18

Περιγραφή ενός stored-program computer Memory Control ALU PC Εντολή 1 Εντολή 2 Εντολή n Πρόγραμμα: μια σειρά από εντολές (σαν συνταγή) Πεπερασμένος αριθμός εντολών Περιγράφουν όλους τους δυνατούς υπολογισμούς Ποιές είναι οι κατάλληλες εντολές; 1936, Alan Turing: Όλοι οι υπολογισμοί μπορούν να περιγραφούν με 6 απλές εντολές Ότι υπολογισμός μπορεί να περιγραφεί με μια γλώσσα προγραμματισμού, μπορεί με όλες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 15 / 18

Περιγραφή ενός stored-program computer Memory Control ALU PC Εντολή 1 Εντολή 2 Εντολή n Πρόγραμμα: μια σειρά από εντολές (σαν συνταγή) Πεπερασμένος αριθμός εντολών Περιγράφουν όλους τους δυνατούς υπολογισμούς Ποιές είναι οι κατάλληλες εντολές; 1936, Alan Turing: Όλοι οι υπολογισμοί μπορούν να περιγραφούν με 6 απλές εντολές Ότι υπολογισμός μπορεί να περιγραφεί με μια γλώσσα προγραμματισμού, μπορεί με όλες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 15 / 18

Περιγραφή ενός stored-program computer Memory Control ALU PC Εντολή 1 Εντολή 2 Εντολή n Πρόγραμμα: μια σειρά από εντολές (σαν συνταγή) Πεπερασμένος αριθμός εντολών Περιγράφουν όλους τους δυνατούς υπολογισμούς Ποιές είναι οι κατάλληλες εντολές; 1936, Alan Turing: Όλοι οι υπολογισμοί μπορούν να περιγραφούν με 6 απλές εντολές Ότι υπολογισμός μπορεί να περιγραφεί με μια γλώσσα προγραμματισμού, μπορεί με όλες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 15 / 18

Περιγραφή ενός stored-program computer Memory Control ALU PC Εντολή 1 Εντολή 2 Εντολή n Πρόγραμμα: μια σειρά από εντολές (σαν συνταγή) Πεπερασμένος αριθμός εντολών Περιγράφουν όλους τους δυνατούς υπολογισμούς Ποιές είναι οι κατάλληλες εντολές; 1936, Alan Turing: Όλοι οι υπολογισμοί μπορούν να περιγραφούν με 6 απλές εντολές Ότι υπολογισμός μπορεί να περιγραφεί με μια γλώσσα προγραμματισμού, μπορεί με όλες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 15 / 18

Περιγραφή ενός stored-program computer Memory Control ALU PC Εντολή 1 Εντολή 2 Εντολή n Πρόγραμμα: μια σειρά από εντολές (σαν συνταγή) Πεπερασμένος αριθμός εντολών Περιγράφουν όλους τους δυνατούς υπολογισμούς Ποιές είναι οι κατάλληλες εντολές; 1936, Alan Turing: Όλοι οι υπολογισμοί μπορούν να περιγραφούν με 6 απλές εντολές Ότι υπολογισμός μπορεί να περιγραφεί με μια γλώσσα προγραμματισμού, μπορεί με όλες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 15 / 18

Γλώσσες προγραμματισμού Το πρόγραμμα είναι μια συνταγή Για να περιγράψουμε μια συνταγή χρειάζεται μια γλώσσα: Ένα σύνολο από μικρά, βασικά βήματα Πχ: γλώσσα μαγειρικών συνταγών: καθαρίζω, ξεφλουδίζω, κόβω, ανακατεύω, βάζω στο φούρνο, βράζω, κλπ Ένα τρόπο να περιγράψουμε δεδομένα Πχ: μια κούπα ζάχαρη, 100 γραμμάρια βούτυρο, 2 αυγά, 1 πλάκα σοκολάτα Για να περιγράψουμε έναν υπολογισμό, το ίδιο Μια γλώσσα έχει συντακτικό και γραμματική Κανόνες για το ποιά πρόταση είναι μέρος της γλώσσας Πχ: Πρόσθεσε δύο συν δύο είναι πρόταση της ελληνικής γλώσσας αλλά Add two plus two δεν είναι Μια γλώσσα έχει σημασιολογία Τι σημαίνει κούπα, ζάχαρη, βράζω, κλπ; Τι σημαίνει πρόσθεσε, δυο, κλπ; Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 16 / 18

Το μάθημα του προγραμματισμού Πώς φτιάχνουμε καλές συνταγές; Θα χρησιμοποιήσουμε τη γλώσσα C για να περιγράψουμε υπολογισμούς Σκοπός όμως είναι ο τρόπος σκέψης Αν μάθετε να σκέφτεστε σωστά, και ξέρετε να εκφράζετε τη σκέψη σας σε C, θα μπορείτε να μάθετε μια άλλη γλώσσα σε 1-2 εβδομάδες μόνοι σας Δεν υπάρχει η καλύτερη γλώσσα Για κάθε είδος προβλήματος μπορεί να βολεύει άλλη γλώσσα Υπάρχουν όμως χειρότερες γλώσσες Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 17 / 18

Για την επόμενη φορά Εξοικειωθήτε με το Linux Εγγραφείτε στη λίστα του μαθήματος Κλειδώστε την περιοχή σας Μάθετε έναν text editor Εγκαταστήστε κάποιο περιβάλλον προγραμματισμού στον υπολογιστή σας Επανάληψη το βιβλίο της Πληροφορικής του Λυκείου Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Αν δεν πήρατε Πληροφορική στο Λύκειο, μπορείτε να βρείτε το βιβλίο εδώ Πρατικάκης (CSD) Εισαγωγή CS100, 2015-2016 18 / 18