Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Διάλεξη 3 Αλγόριθμοι & Προγραμματισμός Εισαγωγή στις Εφαρμογές ΤΠΕ

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Διάλεξη 3 Αλγόριθμοι & Προγραμματισμός Εισαγωγή στις Εφαρμογές ΤΠΕ"— Μεταγράφημα παρουσίασης:

1 Διάλεξη 3 Αλγόριθμοι & Προγραμματισμός Εισαγωγή στις Εφαρμογές ΤΠΕ
Διάλεξη 3 Αλγόριθμοι & Προγραμματισμός Εισαγωγή στις Εφαρμογές ΤΠΕ Χαράλαμπος Καραγιαννίδης

2 Σύνοψη Μαθήματος Εισαγωγή στις ΤΠΕ, εισαγωγή στο μάθημα
Εσωτερική οργάνωση & λειτουργία Η/Υ Αλγόριθμοι & προγραμματισμός Η/Υ

3 Θυμηθείτε… Υπολογιστής –> πολυεργαλείο
το χαρακτηριστικό που καθιστά τους υπολογιστές τόσο σημαντικούς είναι η δυνατότητα να κάνουν τόσο διαφορετικές δουλειές διαφορετικά προγράμματα μπορούν να μετατρέψουν τον ίδιο υπολογιστή σε προσωπικό βοηθό, βάση δεδομένων, παιχνίδι, κλπ, κλπ, κλπ Θα πρέπει όμως να εξηγήσουμε στον υπολογιστή ποιο πρόβλημα θέλουμε να λύσει ποια βήματα πρέπει να ακολουθήσει ακριβώς

4 Γιατί πρέπει να μας ενδιαφέρει???
Αλγόριθμοι η αλγοριθμική/υπολογιστική σκέψη είναι απαραίτητη σε όλους μας και αποτελεί ένα σημαντικό αντικείμενο διδασκαλίας Προγραμματισμός υπάρχουν σήμερα πολλά ισχυρά εργαλεία που δεν απαιτούν ειδικές γνώσεις προγραμματισμού και δίνουν τη δυνατότητα για την παραγωγή ψηφιακού εκπαιδευτικού υλικού και την ανάπτυξη υπηρεσιών εκπαίδευσης και κατάρτισης

5 Σύνοψη Διάλεξης Αλγόριθμοι Προγραμματισμός Συζήτηση

6 Ορισμός Αλγόριθμος Παράδειγμα μια ακολουθία εντολών
μέσω της οποίας είναι δυνατή η ακριβής έκφραση μιας βήμα-προς-βήμα διαδικασίας που τερματίζει την εκτέλεσή της μετά την ολοκλήρωση ενός πεπερασμένου αριθμού βημάτων και η οποία επιτρέπει την επίλυση ενός δεδομένου προβλήματος Παράδειγμα οδηγίες για να έρθει κάποιος στο σπίτι σας ...

7 Απλό παράδειγμα

8 Σύνθετο παράδειγμα Το κόσκινο του Ερατοσθένη
Να βρεθούν όλοι οι πρώτοι αριθμοί μεταξύ του 1 και του Ν Καταγράφουμε όλους τους αριθμούς από το 2 μέχρι το Ν σε μια λίστα Για κάθε πρώτο που συναντάμε στη λίστα, διαγράφουμε από τη λίστα όλα τα πολλαπλάσιά του Αν ο πρώτος αριθμός που συναντάμε στη λίστα είναι μικρότερος της τετραγωνικής ρίζας του Ν, τότε επαναλαμβάνουμε το βήμα 2, διαφορετικά η λίστα περιλαμβάνει μόνο πρώτους αριθμούς

9 Άλλα παραδείγματα Κατασκευή καφέ Προετοιμασία ενός φαγητού
Μεταφορά καφέ από το κυλικείο Διέλευση αυτοκινήτων από διασταύρωση με φανάρια Διέλευση αυτοκινήτων από διασταύρωση χωρίς φανάρια Εύρεση μεγαλύτερου/μικρότερου αριθμού και μέσου όρου από μια λίστα αριθμών ???

10 Τι ΔΕΝ είναι αλγόριθμος – ευρετική μέθοδος
Τι ΔΕΝ είναι αλγόριθμος – ευρετική μέθοδος Hill-climbing heuristic ανεβαίνουμε ένα βουνό και βρισκόμαστε μπροστά σε ένα σταυροδρόμι με δύο μονοπάτια δε φαίνεται που οδηγεί κάθε μονοπάτι επιλέγουμε το μονοπάτι που είναι ανηφορικό είμαστε σίγουροι ότι θα μας οδηγήσει στην κορυφή? τις περισσότερες φορές ναι, αλλά όχι πάντα...

11 Απαιτήσεις αλγορίθμων
Θα πρέπει να περιγράφει με ακρίβεια τα δεδομένα που θα χρησιμοποιήσει κάθε βήμα του πρέπει να είναι τελείως καθορισμένο και να φανερώνει τι ακριβώς κάνει να δίνει με ακρίβεια τα αποτελέσματα που παράγονται από κάθε βήμα του να ολοκληρώνει πάντοτε σωστά τη σκέψη επίλυσης του προβλήματος, μετά από ένα πεπερασμένο αριθμό βημάτων, που το καθένα εκτελείται σε πεπερασμένο χρόνο

12 Κατηγορίες αλγορίθμων
By implementation recursion or iteration (επαναληπτικοί) logical (λογικοί) serial, parallel or distributed (σειριακοί, παράλληλοι ή κατανεμημένοι) deterministic or non-deterministic (ντετερμινιστικοί ή μη-ντετερμινιστικοί) exact or approximate (ακριβείς ή προσεγγιστικοί) By design brute-force or exhaustive search divide and conquer dynamic programming greedy algorithms linear programming reduction enumeration

13 Αναπαράσταση αλγορίθμων – λογικό διάγραμμα
ΑΡΧΗ ΤΕΛΟΣ υπολογισμός ή επεξεργασία υποπρόγραμμα είσοδος / έξοδος εκτύπωση συνθήκη αληθής ναι όχι

14 Παράδειγμα ΑΡΧΗ όνομα επώνυμο ΔΜ διάβασε ναι όχι ΔΜ>200
τύπωσε "πτυχιούχος" τύπωσε "φοιτητής" τύπωσε επώνυμο, όνομα ΤΕΛΟΣ

15 Παράδειγμα (2/2) αρχή κάρτα κωδικός όχι όχι ανάληψη? κατάθεση? ναι ναι
ποσό χρήματα ποσό επεξεργασία στοιχείων επεξεργασία στοιχείων χρήματα απόδειξη απόδειξη κάρτα τέλος

16 Αναπαράσταση αλγορίθμων - ψευδοκώδικας
αρχή διάβασε όνομα, επώνυμο, αριθμός ΔΜ τύπωσε όνομα, επώνυμο αν (αριθμός ΔΜ) >= 100 τότε τύπωσε πτυχιούχος αλλιώς τύπωσε φοιτητές τέλος

17 Βασικές αλγοριθμικές δομές - επιλογή
αν συνθήκη αληθής τότε εντολή 1 αλλιώς εντολή 2 if condition true then εντολή 1 else εντολή 2 συνθήκη αληθής ΝΑΙ ΟΧΙ εντολή 1 εντολή 2

18 Βασικές αλγοριθμικές δομές - επανάληψη
επανέλαβε (αν συνθήκη αληθής) εντολή εντολή ν repeat (if condition true) εντολή εντολή 2 εντολή 1 ... εντολή 2 συνθήκη αληθής ΝΑΙ ΟΧΙ

19 Συνδυασμοί – παράδειγμα
συνθήκη 1 αληθής ΝΑΙ ΟΧΙ εντολή 3 συνθήκη 2 αληθής ΟΧΙ ΝΑΙ εντολή 4 συνθήκη 3 αληθής εντολή 1 εντολή 2 ΝΑΙ ΟΧΙ

20 Σύνοψη διάλεξης Αλγόριθμοι Προγραμματισμός Συζήτηση

21 Εισαγωγή Πρέπει να εισάγουμε στον υπολογιστή έναν αλγόριθμο για να να λύσει ένα πρόβλημα ο υπολογιστής καταλαβαίνει μόνο 0/1 η γλώσσα που μπορούμε να χτίσουμε πάνω στα bits ονομάζεται γλώσσα μηχανής δεν είναι καθόλου εύκολο να εκφράσουμε τον αλγόριθμο σε γλώσσα μηχανής γι’ αυτό, τον εκφράζουμε σε μια άλλη, πιο κατανοητή γλώσσα προγραμματισμού, και χρησιμοποιούμε ένα μεταφραστή για να κάνει τη μετάφραση σε γλώσσας μηχανής

22 επεξεργαστής κειμένου, προγραμματιστικό περιβάλλον
Δηλαδή ... αλγόριθμος πρόγραμμα μεταφραστής εκτελέσιμο πρόγραμμα εκτέλεση προγράμματος επεξεργαστής κειμένου, προγραμματιστικό περιβάλλον υπολογιστής

23 Χαρακτηριστικά γλωσσών
Αλφάβητο οι χαρακτήρες που μπορούν να χρησιμοποιηθούν για τη σύνθεση λέξεων (εντολών) Συντακτικό οι κανόνες σχηματισμού προτάσεων από λέξεις Λεξιλόγιο δεσμευμένες λέξεις Ιδιότητες εκφραστικότητα και αποτελεσματικότητα (expressiveness, efficiency)

24 Κατηγορίες γλωσσών Διαδικαστικός προγραμματισμός (procedural)
ο κόσμος αποτελείται από δεδομένα που αλλάζουν μέσω κάποιων συναρτήσεων (διαδικασιών) Αντικειμενοστραφής προγραμματισμός (object-oriented) ο κόσμος αποτελείται από αντικείμενα που έχουν συγκεκριμένες ιδιότητες και τρόπους για να αλληλεπιδρούν Λογικός προγραμματισμός (logic) ο κόσμος αποτελείται από προτάσεις που είναι σωστές ή λάθος

25 Παραδείγματα γλωσσών C, C++ Java Prolog Pascal Fortran Basic

26 Παράδειγμα – πρόγραμμα C
main( ) { int a, b, c, sum; a = 1; b = 2; c = 3; sum = a + b + c; printf("sum is %d", sum); }

27 Παράδειγμα – πρόγραμμα C (2/3)
#include <stdio.h> #define KILOS_PER_POUND main() { int pounds; printf(" US lbs UK st. lbs INT Kg\n"); for(pounds=10; pounds < 250; pounds+=10) { int stones = pounds / 14; int uklbs = pounds % 14; float kilos = pounds * KILOS_PER_POUND; printf(" %d %d %d %f\n", pounds, stones, uklbs, kilos); }

28 Παράδειγμα – πρόγραμμα C (3/3)
#include <stdio.h> void print_converted(int pounds) { int stones = pounds / 14; int uklbs = pounds % 14; float kilos_per_pound = ; float kilos = pounds * kilos_per_pound; printf(" %3d %2d %2d %6.2f\n", pounds, stones, uklbs, kilos); } main() { int us_pounds; printf("Give an integer weight in Pounds : "); scanf("%d", &us_pounds); printf(" US lbs UK st. lbs INT Kg\n"); print_converted(us_pounds);

29 Περιβάλλοντα ανάπτυξης

30 Σύνοψη διάλεξης Αλγόριθμοι Προγραμματισμός Συζήτηση

31 Είναι σοβαρό…

32 Λύση…

33 Ψευδοκώδικας…

34 Δυσκολότερο πρόβλημα…

35 Παράδειγμα ταξινόμησης – bubble sort algorithm
Ο παλαιότερος και πιο αργός αλγόριθμος συγκρίνει κάθε στοιχείο της λίστας με το επόμενό του, και αν δεν είναι στη σωστή σειρά τα μεταθέτει τα στοιχεία με μεγάλες τιμές "σπρώχνονται" στο τέλος, και αυτά με μικρές τιμές προς την αρχή συνεχίζεται μέχρι να περάσει από όλα τα στοιχεία και να μην κάνει καμία αλλαγή (δηλαδή όλα τα στοιχεία είναι ταξινομημένα)

36 Κώδικας void bubbleSort(int numbers[], int array_size) {
int i, j, temp; for (i = (array_size - 1); i >= 0; i--) for (j = 1; j <= i; j++) if (numbers[j-1] > numbers[j]) temp = numbers[j-1]; numbers[j-1] = numbers[j]; numbers[j] = temp; }

37 Παράδειγμα ταξινόμησης – quick sort algorithm
Ένας πιο γρήγορος αλγόριθμος για το ίδιο πρόβλημα μέχρι η λίστα να ταξινομηθεί επιλέγει ένα στοιχείο της λίστας κόβει τη λίστα σε δύο μέρη – το ένα με τα στοιχεία που είναι μεγαλύτερα από το παραπάνω, και το άλλο με τα στοιχεία που είναι μικρότερα συνεχίζει την ίδια διαδικασία και στις δύο υπο-λίστες που προκύπτουν

38 Δείτε τη διαφορά

39 Συνεπώς…

40 Παράδειγμα

41 Έξυπνο παράδειγμα…

42 Κώδικας…

43 Και λίγη φιλοσοφία…

44 Τα όρια των αλγορίθμων…

45 Ερωτήματα Μπορεί ένας αλγόριθμος να λύνει περισσότερα από ένα προβλήματα? φυσικά Αθήνα-Θεσσαλονίκη, και Θεσσαλονίκη-Αθήνα  Υπάρχουν περισσότεροι από έναν αλγόριθμο για την επίλυση του ίδιου προβλήματος? Αθήνα-Θεσσαλονίκη μέσω Λαμίας, Αθήνα-Θεσσαλονίκη μέσω Πάτρας  μάλιστα κάποιοι είναι “καλύτεροι” από κάποιους άλλους

46 Μεγάλο ερώτημα… Για κάθε πρόβλημα υπάρχει ένας αλγόριθμος που μπορεί να το λύσει? είναι μεγάλο ερώτημα???

47 Απαντήσεις... David Hilbert, 1900 Kurt Goedel, 1931 Alan Turing, 1936
wir muessen wissen, wir werden wissen Kurt Goedel, 1931 θεώρημα μη-πληρότητας υπάρχουν (μαθηματικές) προτάσεις που δεν αποδεικνύονται ... Alan Turing, 1936 δε μπορούμε να γνωρίζουμε ποιες προτάσεις ανήκουν στην "κακή" κατηγορία ...

48 Τελικά πώς προγραμματίζουμε???
Donald Knuth ο προγραμματισμός των υπολογιστών είναι μια έκφανση τέχνης, όπως η δημιουργία ενός ποιήματος ή μουσικής Κι εμείς οι παιδαγωγοί κύριε???

49 Visual Programming Οπτικές γλώσσες προγραμματισμού
any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually γλώσσες προγραμματισμού όπου χρήστες δημιουργούν προγράμματα καθώς χειρίζονται αντικείμενα σε γραφική μορφή και όχι σε μορφή κειμένου

50 Παράδειγμα

51 Authoring Tools Εργαλεία συγγραφής (πολυμεσικού) περιεχομένου
programs that have pre-programmed elements for the development of interactive multimedia software titles by non-programmers προγράμματα με έτοιμα στοιχεία για τη δημιουργία διαδραστικού πολυμεσικού λογισμικού από μη-προγραμματιστές they allow users/authors to create multimedia applications for manipulating multimedia objects they usually include an authoring language, a programming language built (or extended) with functionality for representing the tutoring system

52 Παραδείγματα

53 Digital Storytelling Ψηφιακή αφήγηση
a short form of digital media production that allows everyday people to share aspects of their story μια μορφή παραγωγής ψηφιακών μέσων που επιτρέπει σε κάθε άνθρωπο να μοιραστεί πλευρές της ιστορίας του the media used may include the digital equivalent of film techniques (full-motion video with sound), stills, audio only, or any of the other forms of non-physical media (material that exists only as electronic files as opposed to actual paintings or photographs on paper, sounds stored on tape or disc, movies stored on film) which individuals can use to tell a story or present an idea με πολύ διαφορετικά μέσα...

54 Παραδείγματα

55 Συμπέρασμα Αλγόριθμοι Προγραμματισμός
η αλγοριθμική/υπολογιστική σκέψη είναι απαραίτητη σε όλους μας και αποτελεί ένα σημαντικό αντικείμενο διδασκαλίας Προγραμματισμός υπάρχουν σήμερα πολλά ισχυρά εργαλεία που δεν απαιτούν ειδικές γνώσεις προγραμματισμού και δίνουν τη δυνατότητα για την παραγωγή ψηφιακού εκπαιδευτικού υλικού και την ανάπτυξη υπηρεσιών εκπαίδευσης και κατάρτισης

56 Ειδική βιβλιογραφία Sanjeev Arora Απόστολος Δοξιάδης
The Computational Universe, Princeton University, Course COS 116. Απόστολος Δοξιάδης Ο Θείος Πέτρος και η Εικασία του Γκόλντμπαχ, Εκδόσεις Καστανιώτη, 2000. Askatechteacher.com 9 Best-in-Class Digital Storytelling Tools MIT Scratch

57 Καλό βράδυ


Κατέβασμα ppt "Διάλεξη 3 Αλγόριθμοι & Προγραμματισμός Εισαγωγή στις Εφαρμογές ΤΠΕ"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google