ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
Α. Πίνακες
Α.1) Εισαγωγή στους Πίνακες
Α.1.1) Μονοδιάστατοι Πίνακες
Α.1.2) Παράδειγμα
B. Δομές Επανάληψης
Β.1) Γενικά
Β.2) Η δομή for
Β.2.1) Συντακτικό της for
Β.2.2) Διάγραμμα Ροής Προγράμματος
Β.2.3) Παραδείγματα Εκτέλεσης
Β.3) Η δομή do…while
Β.3.1) Συντακτικό της do…while
Β.3.2) Διάγραμμα Ροής Προγράμματος
Β.3.3) Παραδείγματα Εκτέλεσης
Β.3.4) Αμυντικός Προγραμματισμός
Β.4) Η δομή while
Β.4.1) Συντακτικό της while
Β.4.2) Διάγραμμα Ροής Προγράμματος
Β.4.3) Παραδείγματα Εκτέλεσης
Β.4.4) Αμυντικός Προγραμματισμός
Β.5) Συμπεράσματα
Β.5.1) Προτεινόμενη χρήση των δομών επανάληψης
Β.5.2) Προσομοίωση της for από την while και τη do..while
Γ) Ασκήσεις
Γ.1) Άθροισμα και Γινόμενο Αριθμών
Γ.2) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Αθροισμάτων
Γ.3) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Παραλληλογράμμου
Γ.4) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Τριγώνου
Γ.5) Άθροισμα Αριθμών με Χρήση Πίνακα
Γ.6) Γινόμενο Αριθμών με Χρήση Πίνακα
Γ.7) Ελάχιστος από N αριθμούς
Γ.8) Μέσος Όρος Ν αριθμών
A. Πρόσθετα Στοιχεία της Ψευδογλώσσας
1) Μαθηματικές Συναρτήσεις
2) Επιλογή με Πολλά Ενδεχόμενα
3) Τύποι Δεδομένων
4) Δείκτες και Δομές Δεδομένων
5) Η εντολή GOTO
6) Χειρισμός Εξαιρέσεων
A. Θεωρία
1. Αλγόριθμοι και Ψευδογλώσσα
1.1) Ορισμός Αλγορίθμου
1.2) Ψευδογλώσσα
1.3) Γενική Συνθήκη για τη συνέχεια των μαθημάτων
2) Εγκατάσταση του Μεταγλωττιστή
2.1) Εγκατάσταση του DevC++
2.2) Εγκατάσταση του Μεταγλωττιστή Ψευδογλώσσας
3) Το πρώτο μας πρόγραμμα σε ψευδογλώσσα
3.1) Δημιουργία Αρχείου Ψευδογλώσσας
3.2) Πληκτρολόγηση του Κώδικα του Προγράμματος
3.3) Μεταγλώττιση του προγράμματος
3.4) Εκτέλεση του προγράμματος
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupIoannis Konstantinou
Μια σύντομη εισαγωγή στο προγραμματιστικό μοντέλο mapreduce, με παραδείγματα, στην αρχιτεκτονική του hadoop, της υποδομής πάνω από την οποία εκτελείται το hadoop και του προγράμματος Mahout, μιας βιβλιοθήκης από machine learning αλγορίθμους (clustering, classification, collaborative filtering, κλπ) υλοποιημένης πάνω από hadoop
Α. Πίνακες
Α.1) Εισαγωγή στους Πίνακες
Α.1.1) Μονοδιάστατοι Πίνακες
Α.1.2) Παράδειγμα
B. Δομές Επανάληψης
Β.1) Γενικά
Β.2) Η δομή for
Β.2.1) Συντακτικό της for
Β.2.2) Διάγραμμα Ροής Προγράμματος
Β.2.3) Παραδείγματα Εκτέλεσης
Β.3) Η δομή do…while
Β.3.1) Συντακτικό της do…while
Β.3.2) Διάγραμμα Ροής Προγράμματος
Β.3.3) Παραδείγματα Εκτέλεσης
Β.3.4) Αμυντικός Προγραμματισμός
Β.4) Η δομή while
Β.4.1) Συντακτικό της while
Β.4.2) Διάγραμμα Ροής Προγράμματος
Β.4.3) Παραδείγματα Εκτέλεσης
Β.4.4) Αμυντικός Προγραμματισμός
Β.5) Συμπεράσματα
Β.5.1) Προτεινόμενη χρήση των δομών επανάληψης
Β.5.2) Προσομοίωση της for από την while και τη do..while
Γ) Ασκήσεις
Γ.1) Άθροισμα και Γινόμενο Αριθμών
Γ.2) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Αθροισμάτων
Γ.3) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Παραλληλογράμμου
Γ.4) Εμφωλιασμένοι Βρόχοι: Εκτύπωση Τριγώνου
Γ.5) Άθροισμα Αριθμών με Χρήση Πίνακα
Γ.6) Γινόμενο Αριθμών με Χρήση Πίνακα
Γ.7) Ελάχιστος από N αριθμούς
Γ.8) Μέσος Όρος Ν αριθμών
A. Πρόσθετα Στοιχεία της Ψευδογλώσσας
1) Μαθηματικές Συναρτήσεις
2) Επιλογή με Πολλά Ενδεχόμενα
3) Τύποι Δεδομένων
4) Δείκτες και Δομές Δεδομένων
5) Η εντολή GOTO
6) Χειρισμός Εξαιρέσεων
A. Θεωρία
1. Αλγόριθμοι και Ψευδογλώσσα
1.1) Ορισμός Αλγορίθμου
1.2) Ψευδογλώσσα
1.3) Γενική Συνθήκη για τη συνέχεια των μαθημάτων
2) Εγκατάσταση του Μεταγλωττιστή
2.1) Εγκατάσταση του DevC++
2.2) Εγκατάσταση του Μεταγλωττιστή Ψευδογλώσσας
3) Το πρώτο μας πρόγραμμα σε ψευδογλώσσα
3.1) Δημιουργία Αρχείου Ψευδογλώσσας
3.2) Πληκτρολόγηση του Κώδικα του Προγράμματος
3.3) Μεταγλώττιση του προγράμματος
3.4) Εκτέλεση του προγράμματος
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupIoannis Konstantinou
Μια σύντομη εισαγωγή στο προγραμματιστικό μοντέλο mapreduce, με παραδείγματα, στην αρχιτεκτονική του hadoop, της υποδομής πάνω από την οποία εκτελείται το hadoop και του προγράμματος Mahout, μιας βιβλιοθήκης από machine learning αλγορίθμους (clustering, classification, collaborative filtering, κλπ) υλοποιημένης πάνω από hadoop
A rule-based approach for the real-time semantic annotation in context-aware ...Nikolaos Konstantinou
Typically, a context-aware system is able to collect vast amounts of information coming from data collected by sensors. The problem that occurs lies mainly in how this information can be integrated and used at a semantic level, without a significant reduction in system performance. In the scope of this talk, we analyse a middleware-based pilot system, in order to study problems that concern context-aware systems that incorporate and exploit semantic information in real time. We analyze the data flow in the system and, more specifically, we present how with the use of a middleware, rules, and web services, (experimental) data can flow into the system and form a semantic Knowledge Base, able to answer semantic queries. Particular reference is made to the real-time processing of the results but also to the synchronous and asynchronous procedures that can take place in order to assure system operation and scalability.
Αρχές Οικονομικής Θεωρίας - Το γραπτό των πανελλαδικών εξετάσεωνPanagiotis Prentzas
Αρχές Οικονομικής Θεωρίας (ΑΟΘ): Τι πρέπει να προσέξουν οι υποψήφιοι κατά τη διάρκεια των πανελλαδικών εξετάσεων στη δομή των απαντήσεών τους, αλλά και στην εμφάνιση του γραπτού τους.
Μπορείτε να δείτε και τη διαδραστική παρουσίαση στο www.study4economy.edu.gr.
1. ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2:
ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
2.2 ΑΛΓΟΡΙΘΜΟΙ (10 ώρες)
Στόχοι:
1. να περιγράφετε την έννοια του αλγορίθμου και να διακρίνετε την
ύπαρξη συγκεκριμένων χαρακτηριστικών που χρειάζεται να έχει ένας
αλγόριθμος
2. να αναγνωρίζετε βασικές έννοιες στην Ανάλυση Αλγορίθμων
3. να αναγνωρίζετε τις διάφορες μορφές αναπαράστασης αλγορίθμου
4. να αναφέρετε τους βασικούς τύπους και δομές δεδομένων
5. να διακρίνετε τις βασικές εντολές και δομές που χρησιμοποιούνται σε
έναν αλγόριθμο
6. να προσδιορίζετε τον τρόπο λειτουργίας των δομών δεδομένων
7. να εκπονείτε απλούς αλγορίθμους
8. να εντοπίζετε και να διορθώνετε τα λογικά λάθη ενός αλγορίθμου
9. να εξηγείτε την ανάγκη δημιουργίας της κατάλληλης τεκμηρίωσης.
2. κεφ 2.2 - Αλγόριθμοι
2.2.1 Ορισμός αλγορίθμου
Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών,
αυστηρά καθορισμένων και εκτελέσιμων σε
πεπερασμένο χρόνο, που στοχεύουν στην επίλυση
ενός προβλήματος.
2
Παραδείγματα:
3. Παράδειγμα
κεφ 2.2 - Αλγόριθμοι
3
Να γραφεί αλγόριθμος που να υπολογίζει την περίμετρο ενός
κύκλο, δεδομένης της ακτίνας του.
Ο παραπάνω αλγόριθμος δίνει σωστό αποτέλεσμα για οποιαδήποτε τιμή
της ακτίνας;
Φ.Ε. Ασκ 9
5. κεφ 2.2 - Αλγόριθμοι
2.2.3 Ανάλυση αλγορίθμων
5
Θεωρία υπολογισμού
Υπάρχει λύση στο πρόβλημα; Η λύση είναι αποδοτική;
Η θεωρία Υπολογισμού διαιρείται σε 2 κλάδους:
1. Θεωρία Υπολογισιμότητας (Πόσο αποδοτική είναι η λύση;)
2. Θεωρία Πολυπλοκότητας (Τι πόροι-χρόνος και χώρος
μνήμης- απαιτούνται;)
6. κεφ 2.2 - Αλγόριθμοι
2.2.4 Βασικοί τύποι αλγορίθμων
6
Σειριακοί
Τα βήματα του αλγορίθμου εκτελούνται το ένα μετά το άλλο
(αναγκαστικά όταν υπάρχει ένας μόνο επεξεργαστής)
Παράλληλοι
Όπου είναι εφικτό εκτελούνται ταυτόχρονα κάποια βήματα του αλγορίθμου
(προϋποθέτει ύπαρξη περισσοτέρων του ενός επεξεργαστή ή πυρήνων σε έναν
επεξεργαστή)
Παράδειγμα σειριακού Παράδειγμα παράλληλου
αλγορίθμου
1ος επεξεργαστής 2ος επεξεργαστής
7. κεφ 2.2 - Αλγόριθμοι
7
Επαναληπτικοί
Τα περισσότερα προβλήματα απαιτούν την επανάληψη κάποιων
βημάτων προκειμένου να επιλυθούν.
20 φορές επανάλαβε:
άπλωσε φύλλο
άλειψε φύλλο
στρώσε μίγμα καρυδιών
Εμφάνισε στην οθόνη 1000
φορές το μήνυμα
Hello world!
1000 φορές επανάλαβε:
Εμφάνισε “Hello world!”
Αναδρομικοί
8. κεφ 2.2 - Αλγόριθμοι
2.2.5 Αναπαράσταση αλγορίθμου
8
Φυσική γλώσσα
Ομιλούμενη γλώσσα.
Ψευδογλώσσα (ψευδοκώδικα)
Υποθετική γλώσσα που παραλείπει λεπτομέρειες.
Γλώσσα προγραμματισμού
Τεχνητή γλώσσα για χρήση από ΗΥ.
οπτικές γλώσσες π.χ. scratch
κειμενικές γλώσσες π.χ. Διερμηνευτής ΓΛΩΣΣΣΑΣ
Διαγραμματική αναπαράσταση
Γραφικός τρόπος με σύμβολα και βέλη ροής.
10. κεφ 2.2 - Αλγόριθμοι
2.2.6 Δεδομένα και αναπαράστασή τους
10
Τα δεδομένα δεν
έχουν νόημα αν δεν
συσχετιστούν μεταξύ
τους.
Κάθε γλώσσα προγραμματισμού υποστηρίζει
διαφορετικούς τύπους δεδομένων.
Οι πιο συνηθισμένοι είναι:
αριθμητικός
ακέραιος 34 16000
πραγματικός 23.12 34.0 89.99009
λογικός ΑΛΗΘΕΣ ΨΕΥΔΕΣ
αλφαριθμητικός «Λύκειο» «10ο Γενικό Λύκειο Ηρακλείου»
11. κεφ 2.2 - Αλγόριθμοι
Δεδομένα και αναπαράστασή τους
11
Πού αποθηκεύονται τα δεδομένα;
Σε μία μεταβλητή αποθηκεύουμε κάθε στιγμή μία τιμή.
Δομή δεδομένων (data structure) είναι ένα σύνολο αποθηκευμένων
δεδομένων, τα οποία είναι έτσι οργανωμένα, ώστε να υπόκεινται σε
συγκεκριμένες απαιτούμενες επεξεργασίες.
Πίνακας
Στοίβα
Ουρά
Λίστα
Δένδρο
Γράφος
12. κεφ 2.2 - Αλγόριθμοι
Δεδομένα και αναπαράστασή τους
12
Οι δομές δεδομένων διακρίνονται σε
Στατικές
Έχουν σταθερό μέγεθος, δηλαδή μπορούν να αποθηκεύσουν
συγκεκριμένο πλήθος τιμών.
Δυναμικές
Το μέγεθός τους μπορεί να μεταβάλλεται ανάλογα με τις ανάγκες του
αλγορίθμου τη στιγμή που εκτελείται.
Επίσης, οι δομές δεδομένων διακρίνονται σε
Γραμμικές
Υπάρχει η έννοια του πρώτου και του τελευταίου στοιχείου, του
προηγούμενου και του επόμενου (π.χ. ουρά, στοίβα)
Μη γραμμικές
Δεν υφίστανται οι παραπάνω έννοιες. (π.χ. δένδρο, γράφος)
Αρχεία δεδομένων ονομάζονται οι δομές που αποθηκεύονται στη
βοηθητική μνήμη.
Φ.Ε. Ασκ 12 έως
20
13. κεφ 2.2 - Αλγόριθμοι
2.2.7 Εντολές και Δομές αλγορίθμου
13
Ψευδογλώσσα
Αρχίζουμε με …
Τελειώνουμε με …
Κάθε εντολή γράφεται σε μία γραμμή
Τα επεξηγηματικά σχόλια ξεκινάνε με το !
Οι λέξεις που έχουν αυστηρά καθορισμένο νόημα στην ψευδογλώσσα
καλούνται δεσμευμένες λέξεις.
Όπως και οι φυσικές γλώσσες περιλαμβάνει αλφάβητο, δηλαδή
επιτρεπτά σύμβολα.
14. κεφ 2.2 - Αλγόριθμοι
Εντολές και Δομές αλγορίθμου (Ψευδογλώσσα)
Οι σταθερές μπορεί να είναι αριθμητικές (ακέραιες ή πραγματικές),
αλφαριθμητικές και λογικές
Για την ονομασία αλγορίθμων, μεταβλητών σταθερών πρέπει να
ακολουθούμε τους παρακάτω κανόνες:
14
• μόνο γράμματα (ελληνικά ή αγγλικά), ψηφία (0…9) και κάτω παύλα(_)
• πρέπει να αρχίζει με γράμμα
Φ.Ε. Ασκ 21 και
22