Professional Documents
Culture Documents
ΠΑΚΕΤΟ 11 Γλώσσα Και Αλγοριθμική - Αναδρομή - Υλικό Αναφοράς-1
ΠΑΚΕΤΟ 11 Γλώσσα Και Αλγοριθμική - Αναδρομή - Υλικό Αναφοράς-1
ΥΛΙΚΟ ΑΝΑΦΟΡΑΣ
Έκδοση 2η
Ιούλιος 2022
Πράξη: ΕΠΙΜΟΡΦΩΣΗ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΓΙΑ ΤΗΝ ΑΞΙΟΠΟΙΗΣΗ ΚΑΙ ΕΦΑΡΜΟΓΗ
ΤΩΝ ΨΗΦΙΑΚΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΣΤΗ ΔΙΔΑΚΤΙΚΗ ΠΡΑΞΗ
(ΕΠΙΜΟΡΦΩΣΗ Β’ ΕΠΙΠΕΔΟΥ ΤΠΕ) Β’ Κύκλος
Φορείς Υλοποίησης: Δικαιούχος φορέας:
Συμπράττων φορέας:
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό
ΠΕΡΙΕΧΟΜΕΝΑ
Προοίμιο …………………………………………………………………………………………………………………………………………….4
1. Εισαγωγή στην Αναδρομή ............................................................................................... 7
1.1 Τίτλος διδακτικού σεναρίου ..................................................................................... 7
1.2 Εκτιμώμενη διάρκεια διδακτικού σεναρίου ................................................................. 7
1.3 Ένταξη του διδακτικού σεναρίου στο πρόγραμμα σπουδών και προαπαιτούμενες γνώσεις 7
1.4 Σκοποί και στόχοι του διδακτικού σεναρίου ............................................................... 7
1.5 Περιγραφή του διδακτικού σεναρίου......................................................................... 8
1.5.1 Υπολογισμός του Ν! ......................................................................................... 8
1.5.2 Η ακολουθία Fibonnaci ....................................................................................10
1.5.3 Ο πύργος του Ανόι..........................................................................................10
1.6 Επιστημολογική προσέγγιση και εννοιολογική ανάλυση – θέματα θεωρίας του διδακτικού
σεναρίου ......................................................................................................................12
1.7 Επεκτάσεις και διασυνδέσεις των εννοιών ................................................................13
1.7.1 Εφαρμογές της αναδρομής σε προβλήματα που επιλύονται και με επαναληπτικές
διαδικασίες ................................................................................................................13
1.7.2 Πόσες κινήσεις χρειάζονται για να επιλυθεί ο πύργος του Ανόι με Ν δίσκους; ..........15
1.8 Πολλαπλές αναπαραστάσεις και πολλαπλές προσεγγίσεις ............................................17
1.9 Πρόβλεψη δυσκολιών στο διδακτικό σενάριο ............................................................17
1.10 Γιατί χρησιμοποιείται ο Η.Υ. (και γενικότερα τα ψηφιακά μέσα) ...................................17
1.11 Διδακτικός θόρυβος ..............................................................................................17
1.12 Χρήση εξωτερικών πηγών ......................................................................................17
1.13 Υποκείμενη θεωρία μάθησης ..................................................................................18
1.14 Επισήμανση μικρομεταβολών στην οργάνωση του μαθήματος και στο νόημα των εννοιών18
1.15 Διδακτικό συμβόλαιο .............................................................................................18
1.16 Οργάνωση της τάξης – Εφικτότητα της σχεδίασης .....................................................18
1.17 Περιγραφή και ανάλυση των φύλλων εργασίας .........................................................19
1.17.1 Φύλλο εργασίας 1...........................................................................................19
1.17.2 Φύλλο εργασίας 2...........................................................................................22
2. Αλγοριθμική – Διαγράμματα Ροής και Διερμηνευτής της Γλώσσας ........................................25
2.1 Χώρος Δραστηριοτήτων .........................................................................................26
2.2 Δημιουργός Διαγραμμάτων Ροής .............................................................................26
2.3 Διερμηνευτής της Γλώσσας ....................................................................................28
3. Βιβλιογραφία – Δικτυογραφία ........................................................................................30
Προοίμιο
Το παρόν επιμορφωτικό υλικό δημιουργήθηκε για να καλύψει τις ανάγκες της «Προχωρημένης
Επιμόρφωσης για την Αξιοποίηση και Εφαρμογή των Τ.Π.Ε. στη διδακτική πράξη» (Επιμόρφωση Β2
επιπέδου ΤΠΕ) που υλοποιείται σε Κέντρα Στήριξης Επιμόρφωσης (Κ.Σ.Ε.) σε όλη την Ελλάδα, για
εκπαιδευτικούς όλων των κλάδων και ειδικοτήτων. Η αρχική ανάπτυξη και στη συνέχεια, η
επικαιροποίηση και ο εμπλουτισμός του επιμορφωτικού υλικού έγινε αντίστοιχα στο πλαίσιο των
πράξεων «Επιμόρφωση Εκπαιδευτικών για την Αξιοποίηση και Εφαρμογή των Ψηφιακών
Τεχνολογιών στην Διδακτική Πράξη (Επιμόρφωση Β’ επιπέδου Τ.Π.Ε.)» και «Επιμόρφωση
Εκπαιδευτικών για την Αξιοποίηση και Εφαρμογή των Ψηφιακών Τεχνολογιών στην Διδακτική
Πράξη (Επιμόρφωση Β’ επιπέδου Τ.Π.Ε.)/ Β’ κύκλος», http://e-pimorfosi.cti.gr, του Επιχειρησιακού
Προγράμματος «Ανάπτυξη Ανθρώπινου Δυναμικού – Εκπαίδευση και Δια Βίου Μάθηση», με τη
συγχρηματοδότηση της Ευρωπαϊκής Ένωσης (Ευρωπαϊκό Κοινωνικό Ταμείο, ΕΣΠΑ 2014-2020) και
του Ελληνικού Δημοσίου.
Η επιμόρφωση Β2 επιπέδου Τ.Π.Ε. υλοποιείται σε ομάδες ενός κλάδου ή συναφών κλάδων
εκπαιδευτικών, δηλαδή σε 13 «συστάδες» ως εξής: Β2.1 «Φιλολογικά», Β2.2 «Φυσικές
Επιστήμες», Β2.3 «Μαθηματικά», Β2.4 «Πληροφορική», Β2.5 «Πρωτοβάθμια Εκπαίδευση -
Δάσκαλοι», Β2.6 Πρωτοβάθμια Εκπαίδευση - Νηπιαγωγοί», Β2.7 «Ξένες Γλώσσες», Β2.8 «Καλές
Τέχνες», Β2.9 «Φυσική Αγωγή και Υγεία», Β2.10 «Εκπαιδευτικοί Μηχανικοί», Β2.11 «Οικονομία,
Διοίκηση και Κοινωνικές Επιστήμες», Β2.12 «Επαγγέλματα Γης» και Β2.13 «Ειδική Αγωγή».
Το επιμορφωτικό υλικό Β2 επιπέδου Τ.Π.Ε. είναι διαφορετικό για κάθε συστάδα και περιλαμβάνει
υλικό μελέτης-αναφοράς και εκπαιδευτικές δραστηριότητες, ενώ εν γένει συνοδεύεται από
υποστηρικτικό και άλλο πρόσθετο υλικό (οδηγίες προς τους επιμορφωτές και προς τους
επιμορφούμενους, αρχεία παρουσιάσεων κ.ά.). Διατίθεται και αξιοποιείται στο πλαίσιο της
επιμόρφωσης με τη μορφή «μαθήματος»/ e-course (ένα ανά συστάδα), μέσω της πλατφόρμας
ηλεκτρονικής μάθησης του έργου, η οποία βασίζεται στο ελεύθερο λογισμικό ανοικτού κώδικα
moodle.
Συντάχθηκε υπό την επίβλεψη και στο πλαίσιο των αρμοδιοτήτων του ειδικού Επιστημονικού
Συμβουλίου1 του Ι.Τ.Υ.Ε. – «Διόφαντος», το οποίο έχει συσταθεί με την υπ’ αριθ.
Π568/28.07.2011 Απόφαση, και στην παρούσα Πράξη λειτουργεί ως εξειδικευμένο επιστημονικό
συμβουλευτικό όργανο του Ι.Τ.Υ.Ε. - «Διόφαντος», δικαιούχου φορέα υλοποίησης της Πράξης.
Συμπληρωματικά και για την κάλυψη των απαιτήσεων των «νέο»-εισερχόμενων στην επιμόρφωση
κλάδων / ειδικοτήτων εκπαιδευτικών (βλ. παραπάνω, συστάδες Β2.7 έως Β2.13), στο πλαίσιο της
παρούσας Πράξης λειτουργεί ευρύτερη Επιστημονική Επιτροπή, η οποία αποτελείται από τους
παρακάτω Καθηγητές, επιστημονικούς συνεργάτες του δικαιούχου (Ι.Τ.Υ.Ε. – «Διόφαντος»),
1
Το Επιστημονικό Συμβούλιο του Ι.Τ.Υ.Ε.-«Διόφαντος» για την επιμόρφωση, αποτελείται από τους Καθηγητές: i)
Χαράλαμπο Ζαγούρα, Πανεπιστήμιο Πατρών, ο οποίος έχει την ευθύνη συντονισμού των εργασιών του Συμβουλίου, ii)
Βασίλειο Δαγδιλέλη, Πανεπιστήμιο Μακεδονίας, iii) Βασίλειο Κόμη, Πανεπιστήμιο Πατρών, iv) Δημήτριο Κουτσογιάννη,
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, v) Πολυχρόνη Κυνηγό, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών και vi)
Δημήτριο Ψύλλο, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Στο παρόν υλικό έχει κατάλληλα ενσωματωθεί ένα μικρό μέρος κοινού υλικού για όλες τις
συστάδες (Γενικό Μέρος2), που αναπτύχθηκε για την Εκπαίδευση Επιμορφωτών Β’ επιπέδου Τ.Π.Ε.
στο πλαίσιο της παραπάνω αναφερόμενης πράξης «Επιμόρφωση Εκπαιδευτικών για την Αξιοποίηση
και Εφαρμογή των Ψηφιακών Τεχνολογιών στην Διδακτική Πράξη (Επιμόρφωση Β’ επιπέδου
Τ.Π.Ε.)».
Το επιμορφωτικό υλικό Β2 επιπέδου Τ.Π.Ε., αποτελεί ιδιοκτησία του ΥΠΑΙΘ και καλύπτεται από
την ισχύουσα νομοθεσία για την προστασία των πνευματικών δικαιωμάτων των δημιουργών.
2
Στην αρχική του μορφή το Γενικό Μέρος του Επιμορφωτικού υλικού δημιουργήθηκε από
συγγραφική ομάδα, με επικεφαλής τον Βασίλη Δαγδιλέλη, Καθηγητή του Πανεπιστημίου
Μακεδονίας και συμμετέχοντες τους:
Καψάλη Αχιλλέα, πρώην Καθηγητή στο Πανεπιστήμιο Μακεδονίας.
Παπαδόπουλο Ιωάννη, Επίκουρο Καθηγητή στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης.
Φαχαντίδη Νικόλαο, Αναπληρωτή Καθηγητή στο Πανεπιστήμιο Μακεδονίας.
Tαμπούρη Ευθύμιο, Καθηγητή στο Πανεπιστήμιο Μακεδονίας
Στην παρούσα έκδοση του Επιμορφωτικού Υλικού Γενικού Μέρους έχουν συμβάλει τα μέλη του
Επιστημονικού Συμβουλίου Βασίλειος Δαγδιλέλης, Βασίλειος Κόμης, Δημήτριος Κουτσογιάννης,
Πολυχρόνης Κυνηγός, Δημήτριος Ψύλλος, καθώς και οι εξής:
Σταυρούλα Αντωνοπούλου, υποψήφια διδάκτωρ Εφαρμοσμένης Γλωσσολογίας, ΑΠΘ
Μαριάνθη Γριζιώτη, εκπαιδευτικός ΠΕ86 (ΠΕ19/20),
Ελισάβετ Καλογερία, εκπαιδευτικός ΠΕ03,
Ελένη Κουστριάβα, Καθηγήτρια στο Πανεπιστήμιο Μακεδονίας,
Χρήστος Μάλλιαρης, εκπαιδευτικός ΠΕ03,
Μάριος Ξένος, εκπαιδευτικός ΠΕ86 (ΠΕ19/20),
Γεώργιος Πανσεληνάς, εκπαιδευτικός ΠΕ86 (ΠΕ19/20),
Γεώργιος Σκουντζής, εκπαιδευτικός ΠΕ70,
Μάριος Σπάθης, εκπαιδευτικός ΠΕ03,
Αθανάσιος Ταραμόπουλος, εκπαιδευτικός ΠΕ04
Κατά τη δημιουργία του υλικού αυτού, χρησιμοποιήθηκαν πόροι από το αντίστοιχο εκπαιδευτικό
και επιμορφωτικό υλικό της εκπαίδευσης των επιμορφωτών Β’ επιπέδου Τ.Π.Ε. στα ΠΑ.Κ.Ε. και
εκπαιδευτικών στα Κέντρα Στήριξης της Επιμόρφωσης (Κ.Σ.Ε.) που αναπτύχθηκε στο πλαίσιο
προηγούμενων σχετικών έργων επιμόρφωσης Β’ επιπέδου ΤΠΕ*. Επομένως, στη δημιουργία του
υλικού αυτού συνέβαλαν έμμεσα και όσοι είχαν συνεργαστεί στη δημιουργία του υλικού για την
εκπαίδευση των επιμορφωτών στα ΠΑ.Κ.Ε. και την επιμόρφωση των εκπαιδευτικών στα Κ.Σ.Ε. στο
πλαίσιο των έργων αυτών και οι οποίοι αναφέρονται αναλυτικά στα αντίστοιχα κείμενα
επιμορφωτικού υλικού που δημοσιεύονται στους αντίστοιχους κόμβους ενημέρωσης*.
* Πράξη: «Επιμόρφωση Εκπαιδευτικών στη χρήση και αξιοποίηση των Τεχνολογιών Πληροφορίας και Επικοινωνιών (ΤΠΕ)
στην εκπαιδευτική διδακτική διαδικασία", ΕΠΕΑΕΚ ΙΙ, Γ' ΚΠΣ, http://b-epipedo.cti.gr
Πράξεις: «Επιμόρφωση Εκπαιδευτικών για την αξιοποίηση και εφαρμογή των Τ.Π.Ε. στη Διδακτική πράξη», Επιχειρησιακό
Πρόγραμμα «Εκπαίδευση και Δια Βίου Μάθηση», ΕΣΠΑ 2007-2013, http://b-epipedo2.cti.gr
τρόπους υπολογισμού του απαιτούμενου χρόνου είτε με αλγεβρικό τρόπο, είτε μέσω
συγκεκριμένων παρσδειγμάτων.
Η αναδρομή είναι, όπως αναφέρθηκε, μια πολύ ισχυρή τεχνική με τη βοήθεια της οποίας μπορούμε
να μειώσουμε το μέγεθος του κώδικά μας και να διευκολύνουμε την ανάγνωση και τη γραφή του.
Έχει ορισμένα πλεονεκτήματα σε σχέση με την τεχνική της επανάληψης, με κυριότερο την
απλότητα των αναδρομικών λύσεων σε σχέση με τις αντίστοιχες επαναληπτικές. Μια εργασία που
μπορεί να οριστεί με παρόμοια δευτερεύουσα εργασία, η αναδρομή είναι μια από τις καλύτερες
λύσεις για αυτήν.
Ν! =1 αν το Ν είναι μηδέν
Ν!=Ν * (Ν-1)! αν το Ν (που είναι φυσικός αριθμός) δεν είναι μηδέν
Αυτός ο ορισμός του Ν! μα δίνει τη δυνατότητα της δημιουργίας ενός αντίστοιχου αναδρομικού
αλγορίθμου (και του προγράμματος σε Python):
1. def factorial(N):
2. if N == 1:
a. return N
3. else:
a. return (N * factorial(N-1))
Ωστόσο, η αναδρομική διαδικασία για τον υπολογισμό των όρων της ακολουθίας, είναι διαισθητικά
πιο απλή:
def fibo(n):
if n <= 1:
return n
else:
return(fibo(n-1) + fibo(n-2))
μια ενιαία στοίβα σε μια αύξουσα σειρά μεγέθους (από τη βάση προς την κορυφή) σε μία ράβδο. Η
μικρότερη βρίσκεται στην κορυφή, δημιουργώντας έτσι ένα κωνικό σχήμα.
Ο στόχος του παιννιδιού είναι να μετακινηθεί ολόκληρη η στοίβα σε μια άλλη ράβδο,
ακολουθώντας τους ακόλουθους απλούς κανόνες:
1. Μόνο ένας δίσκος μπορεί να μετακινηθεί κάθε φορά.
2. Κάθε κίνηση βασίζεται στη λήψη του ανώτερου δίσκου σε μία από τις στοίβες και στην
τοποθέτηση του πάνω στην άλλη στοίβα ή σε μια άδεια ράβδο.
3. Δεν μπορεί να τοποθετηθεί μεγαλύτερος δίσκος πάνω από μικρότερο δίσκο.
Ένα μοντέλο του πύργου του Ανόι, στην αρχική κατάσταση (με 8 δίσκους)
Ο πύργος του Ανόι μπορεί να επιλυθεί (δηλαδή να περιγραφούν οι διαδοχικές κινήσεις που
απαιτούνται για τη μεταφορά των δίσκων σύμφωνα με τους παραπάνω τρεις κανόνες) με
επαναληπτικές διαδικασίες, αλλά η αναδρομική λύση είναι ασύγκριτα πιο απλή. Αποτελεί έτσι ένα
τυπικό παράδειγμα προβλήματος για μια εισαγωγή στην αναδρομή.
Η διαδικασία φαίνεται πολύπλοκή και κάπως αφηρημένη. Για παράδειγμα αν το n είναι 5, το βήμα
(a) παραπάνω ζητάει να μετακινήσω n-1 δίσκους, δηλαδή 4 δίσκους από το Α στο Β και αυτό δεν
ξέρω να το κάνω. Ωστόσο, αν εφαρμόσω τον αλγόριθμο για 4 δίσκους, το βήμα (a) μου ζητάει να
μετακινήσω αρχικά 3 δίσκους από το Α στο Β. Αυτό όμως μπορώ να το κάνω κ.ο.κ.
Θα πρέπει λοιπόν κατά κάποιο τρόπο ο «εκτελεστής» του αλγορίθμου (άνθρωπος, Η.Υ.;) να
κρατάει «λογαριασμό» για τα ενδιάμεσα στάδια. Οι γλώσσες που επιτρέπουν την αναδρομή,
«κρατάνε λογαριασμό» και διευκολύνουν πολύ την επίλυση του προβλήματος.
Η παραπάνω στρατηγική γίνεται πολύ φανερή όταν ο αριθμός των δίσκων είναι μικρός: 2,3,4
δίσκοι.
Η εξαιρετική συντομία και απλότητα του αλγορίθμου μπορεί να αποτελέσει ακόμη και ένα είδος
«εμποδίου», δεδομένου ότι ένα τόσο σύντομο πρόγραμμα μπορεί να «επιλύσει» τον Πύργο για
απροσδιόριστο αριθμό δίσκων.
Αντίθετα, οι λύσεις με επαναληπτικές διαδικασίες είναι πολύ πιο πολύπλοκες και δυσνόητες (στις
προτεινόμενες δραστηριότητες υπάρχει ένα πρόγραμμα αυτού του είδους, από το site:
https://www.kode.skytreader.net/kodes/python/iterative-towers-of-hanoi.html).
Στα σχετικά φύλλα εργασίας περιγράφονται σταδιακά τα βήματα για μια αναδρομική λύση. Στο site
http://dsphinx.mysch.gr/games.php?id=hanoi.html δίνεται η δυνατότητα δοκιμών για
επίλυση του πύργου του Ανόι.
ενδεχομένως και λιγότερο αποτελεσματική, αλλά ο καθορισμός μιας πρώτης λύσης βασισμένης
στην αναδρομή βοηθάει στην ανεύρεση μιας μη-αναδρομικής λύσης και γενικότερα προσφέρει
στον προγραμματιστή τη δυνατότητα μιας διαφορετικής προσέγγισης του προβλήματος, αλλά και
της αναζητούμενης λύσης.
Με ένα γενικό τρόπο, η αναδρομή, για την υλοποίηση της απαιτεί δυο στοιχεία;
Μια «τετριμμένη» περίπτωση στην οποία το αποτέλεσμα είναι γνωστό εκ των προτέρων
Ένας τρόπος υπολογισμού της «λύσης» για Ν, υπό την προϋπόθεση ότι γνωρίζουμε τις λύσεις για
Ν-1, Ν-2, ...., έως την τετριμμένη λύση.
def sum(list):
if len(list)==1:
return(list[0])
else:
temp=list[0]
list.pop(0)
return (temp+sum(list))
lista=[2,1,3]
print(sum(lista))
def minimum(listx):
if len(listx)==1:
return listx[0]
else:
return min(listx[0], minimum(listx[1:]))
lista=[-12, 21,1,0,-9, 56, 3 ,4, -20,45,6,-80]
print(minimum(lista))
Σημειώνεται ότι min είναι μια προκαθορισμένη συνάρτηση στην Python που δέχεται ως όρισμα 2
αριθμούς και επιστρέφει τον μικρότερο από τους δυο.
Τα σκαλοπάτια
Μια σκάλα έχει Ν σκαλοπάτια. Η Αννούλα την ανεβαίνει και μπορεί σε κάθε βήμα να ανέβει 1
σκαλοπάτι, 2 σκαλοπάτια μαζί ή και 3 σκαλοπάτια μαζί. Με πόσους τρόπους μπορεί να ανέβει ως
την κορυφή της σκάλας;
Προφανώς το τελευταίο βήμα θα είναι ή ένα σκαλοπάτι, ή δυο σκαλοπάτια ή τρία σκαλοπάτια.
Άρα ο συνολικός αριθμός όλων των τρόπων πρόσβασης στην κορυφή μπορεί να υπολογιστεί ως
άθροισμα των τρόπων με τους οποίους φθάνει κανείς στην κορυφή μείον ένα σκαλοπάτι ή στην
κορυφή μείον δυο σκαλοπάτια ή στην κορυφή μείον τρία σκαλοπάτια.
Θα ήταν χρήσιμο με τη βοήθεια ενός λογιστικού φύλου να υπολογιστούν μερικές τιμές της f(n) για
να φανεί η «ταχύτητα» με την οποία αυξάνουν οι τιμές της συνάρτησης (στο σημείο αυτό ο
εκπαιδευτικός μπορεί να κάνει τη διασύνδεση με συναρτήσεις των οποίων οι τιμές «αυξάνουν
γρήγορα» όπως είχε αναφερθεί στην πολυπλοκότητα αλγορίθμων – εφόσον βέβαια έχει ή
διδαχθεί):
1 1
2 3
3 7
4 15
5 31
6 63
7 127
8 255
9 511
10 1.023
11 2.047
12 4.095
13 8.191
14 16.383
15 32.767
16 65.535
17 131.071
18 262.143
19 524.287
20 1.048.575
21 2.097.151
22 4.194.303
23 8.388.607
24 16.777.215
25 33.554.431
Μπορούμε άραγε να βρούμε έναν «κλειστό», αναλυτικό (μη-αναδρομικό) τύπο για τον υπολογισμό
του Τ(Ν); Παρατηρούμε ότι ισχύει γενικά για το πλήθος των κινήσεων:
f(1) = 1
f(2)=3
f(3)=7
Ο γενικός τύπος φαίνεται να είναι:
f(n)=2n-1
Εξάλλου ισχύει:
F(n) = 2*F(n-1)+1
F(n-1) = 2*F(n-2)+1
….
F(2) = 2*F(1)+1
F(1) =1
F(0)=0
Aν στις παραπάνω ισότητες προσθέσουμε μια μονάδα και στα δυο μέλη, έχουμε:
F(0)+1 = 1
F(n) + 1 = 2F(n-1) + 2 = 2(F(n-1) + 1)
Aντακαθισιώντας το F(n)+1 με Z(n) έχουμε:
Ζ(0) = 1
Ζ(n) = 2*Z(n-1)
Άρα Ζ(n) = 2Z(n-1) = 2.2.Z(n-2)….. = 2n
Άρα, F(n)=2n-1
Ο πύργος του Ανόι, με σχετικές αναλύσεις και οδηγίες υπάρχει και στο Φωτόδενδρο.
http://photodentro.edu.gr/aggregator/lo/photodentro-lor-8521-10691
Εκεί επιλύονται αναδρομικά και με animation δυο προβλήματα:
Ο υπολογισμός του Ν! (Ν παραγοντικό)
Η εύρεση ενός στοιχείου σε ταξινομημένο πίανκα με δυαδική αναζήτηση,
ενώ η αναδρομική λύση του πύργου του Ανόι υπάρχει στα διαθέσιμα προγράμματα που
συνοδεύουν το Διερμηνευτή της Γλώσσας.
Ένα παιχνίδι που ονομάζεται «πύργος του Ανόι» (το Ανόι, είναι η παλιά πρωτεύουσα του Βιετνάμ)
Προκαταρκτικά
Το παιχνίδι, ονομάζεται ακόμη και Πύργοs του Βράχμα. Αποτελείται από τρεις ράβδους και
δίσκους διαφορετικών μεγεθών, οι οποίοι μπορούν να μετακινηθούν από μια ράβδο σε
οποιαδήποτε άλλη. To παιχνίδι ξεκινάει με τους δίσκους σε μια ενιαία στοίβα σε μια αύξουσα σειρά
μεγέθους (από τη βάση προς την κορυφή) σε μία ράβδο. Η μικρότερη βρίσκεται στην κορυφή,
δημιουργώντας έτσι ένα κωνικό σχήμα.
Ο στόχος του παιννιδιού είναι να μετακινηθεί ολόκληρη η στοίβα σε μια άλλη ράβδο,
ακολουθώντας τους ακόλουθους απλούς κανόνες:
1. Μόνο ένας δίσκος μπορεί να μετακινηθεί κάθε φορά.
2. Κάθε κίνηση βασίζεται στη λήψη του ανώτερου δίσκου σε μία από τις στοίβες και στην
τοποθέτηση του πάνω στην άλλη στοίβα ή σε μια άδεια ράβδο.
3. Δεν μπορεί να τοποθετηθεί μεγαλύτερος δίσκος πάνω από μικρότερο δίσκο.
Η παρακάτω εικόνα δείχνει έναν πύργο με 5 δίσκους, στην αρχική κατάσταση. Το παιχνίδι
τελειώνει όταν όλοι οι δίσκοι μεταφερθούν στον τελευταίο στύλο, ενδεχομένως χρησιμοποιώντας
βοηθητικά και τον μεσαίο.
Για να παίξετε το παιχνίδι μπορείτε να χρησιμοποιήσετε κέρματα πάνω σε ένα χαρτί, όπου τρία
σημεία υποτίθεται ότι θα είναι οι στύλοι. Αντί για κέρματα, αν έχετε πρόσβαση στο Διαδίκτυο,
μπορείτε να μεταβείτε στο site: http://dsphinx.mysch.gr/games.php?id=hanoi.html
Ο μύθος λέει ότι επρόκειτο για ένα παιχνίδι που παίζαν οι Βουδιστές καλόγεροι με διαμαντένιους
στύλους και χρυσούς δίσκους.
Ο Βράχμα, στην αρχή του χρόνου (δηλαδή στη δημιουργία του Σύμπαντος,) είπε στους
καλόγερους να παίξουν το παιχνίδι και να το τερματίσουν με 64 δίσκους. Προφήτευσε μάλιστα ότι
με τον τερματισμό του παιχνιδιού ο κόσμος (το Σϋμπαν) θα καταρρεύσει..
Σωστό; Λάθος; Ποιος ξέρει...
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1
Ας ξεκινήσουμε από τα εύκολα.
Παίξτε το παιχνίδι με έναν και μόνο δίσκο.
Παίξτε το παιχνίδι με δυο δίσκους.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 2
Από τους τρεις-τέσσερις δίσκους και πάνω, το παιχνίδι φαίνεται αρκετά πολύπλοκο.
Μήπως βλέπετε κάποια στρατηγική;
Για ευκολία ας ονομάσουμε τους στύλους Α,Β,C
Mπορείτε να «λύσετε» τον πύργο με 2 δίσκους;
Δοκιμάστε να τον λύστε με όλους τους δυνατούς τρόπους:
Α,Β,C (δηλαδή ξεκινώντας έχοντας 2 δίσκους στο στύλο Α, να τους μεταφέρετε στο C με τη
βοήθεια του Β)
A,C,B (δηλαδή ξεκινώντας έχοντας 2 δίσκους στο στύλο Α, να τους μεταφέρετε στο Β με τη
βοήθεια του Β)
B,C,A,… κ.ο.κ.
Πόσοι τέτοιοι τρόποι υπάρχουν; Δηλαδή με πόσους τρόπους μπορούμε να διατάξουμε τα Α,Β,C έτσι
ώστε να δημιουργήσουμε λεναν διαφορετικό πύργο του Ανόι;
Μπορείτε να διατυπώσετε (με λόγια) έναν αλγόριθμο για τη λύση του πύργου με δυο δίσκους
(ανεξάρτητα από τη σειρά των Α,Β,C); Γράψτε τον
Αλγόριθμος για 2 δίσκους.....
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
Τώρα θα γενικεύσουμε για τρείς δίσκους:
Κατ’ αρχάς μπορούμε να μετακινήσουμε 2 δίσκους:
Α,C,B – δηλαδή να μεταφέρουμε 2 δίσκους από το Α στο Β με τη βοήθεια του C.
Εφαρμόζουμε απλώς τον Αλγόριθμο για 2 δίσκους της ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 2
Μεταφέρουμε έναν δίσκο (τον τελευταίο) από το Α στο C
Μετακινούμε 2 δίσκους B,C,A. Εφαρμόζουμε απλώς τον Αλγόριθμο για 2 δίσκους της
ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 2
Μπορείτε να διατυπώσετε (με λόγια) έναν αλγόριθμο για τη λύση του πύργου με τρεις δίσκους
(ανεξάρτητα από τη σειρά των Α,Β,C); Γράψτε τον
Αλγόριθμος για 3 δίσκους.....
Μπορείτε να δείτε μια εικονική περιγραφή της λύσης του Ανόι για τρεις δίσκους:
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4
Mε την ίδια τεχνική, μπορούμε να γενικεύσουμε για τέσσερις δίσκους:
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 5
Μπορούμε ίσως να επιχειρήσουμε να γενικεύσουμε για Ν δίσκους. Χρειάζεται να:
να μετακινήσω Ν δίσκους από τον Α στο Β στην τριάδα (Α,C,Β)
να μετακινήσω έναν δίσκο από το Α στο C στην τριάδα (Α,Β,C)
να μετακινήσω n δίσκους από το Β στο C στην τριάδα (Β,C,Α)
Φαίνεται ίσως κάπως πολύπλοκο, αλλά με λίγη εξάσκηση (και ίσως κρατώντας σημειώσεις) να το
«επιλύσετε» με 3,4,5, δίσκους – από εκεί και πέρα όλα είναι πιο εύκολα.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 6
Η τεχνική αυτή κατά την οποία:
για να επιλύσω ένα πρόβλημα με Ν στοιχεία (ή για τον αριθμό Ν), πρέπει να το επιλύσω για Ν-1
στοιχεία,
για να επιλύσω ένα πρόβλημα με Ν-1 στοιχεία (ή για τον αριθμό Ν-1), πρέπει να το επιλύσω για Ν-
2 στοιχεία,
για να επιλύσω ένα πρόβλημα με Ν-2 στοιχεία (ή για τον αριθμό Ν-2), πρέπει να το επιλύσω για Ν-
3 στοιχεία,
.... κ.ο.κ.
μέχρις ότου χρειάζομαι να το επιλύσω για 1 στχείο (ή για τον αριθμό 1) – που είναι τετριμμένο
ονομάζεται αναδρομή.
Ακολουθεί ένα πρόγραμμα, γραμμένο σε Python, για τον πύργο του Ανόι, που χρησιμοποιεί
αναδρομή:
return
TowerOfHanoi(n-1, begin, auxilliary, destination)
print("Metakinise ena disko apo to stylo",begin,"sto stylo ",destination)
TowerOfHanoi(n-1, auxilliary, destination, begin)
Στο περιβάλον ΓΛΩΣΣΑ μπορείτε επίσης να δείτε το πρόγραμμα για τον πύργο του Ανόι σε
ΓΛΩΣΣΑ:
ΠΡΟΓΡΑΜΜΑ ΠύργοιΤουΑνόι
ΣΤΑΘΕΡΕΣ
Στύλος1 = 'Α'
Στύλος2 = 'Β'
Στύλος3 = 'Δ'
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε τον αριθμό των
δίσκων: '
ΔΙΑΒΑΣΕ Ν
ΚΑΛΕΣΕ Μετακίνησε(Ν, Στύλος1, Στύλος2, Στύλος3)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Η αναδρομή μπορεί να εφαρμοστεί σε ένα πλήθος προβλημάτων, καθώς είναι εξαιρετικά απλή.
Στα παρακάτω προτείνονται μερικά προβλήματα που επιλύονται με αναδρομή, αν και ήδη είναι
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1
Υπολογισμός του Ν! (παραγοντικό)
Ο ορισμός του Ν! (όπου Ν ακέραιος) είναι ο εξής:
Ν! = 1 για Ν=0
Ν! = Ν*(Ν-1) για Ν>0
Για παράδειγμα:
3! = 1*2*3 =6
1! = 1
0! = 1
7! = 1*2*3*4*5*6*7 =5020
κ.ο.κ
http://photodentro.edu.gr/aggregator/lo/photodentro-lor-8521-10691
μπορείτε να δείτε τον αλγόριθμο και μια animation με την εκτέλεσή του.
Έστω ότι μια συνάρτηση nikroteros (A,B) δέχεται ως ορίσματα δυο αριθμούς A,B και επιστρέφει
τον μικρότερο από αυτούς. Αυτή η συνάρτηση υπάρχει ή μπορεί εύκολα να δημιουργηθεί σε όλες
τις γλώσσες προγραμματισμού.
Έστω ότι μια συνάρτηση megalyteros (A,B) δέχεται ως ορίσματα δυο αριθμούς A,B και επιστρέφει
τον μεγαλύτερο από αυτούς. Αυτή η συνάρτηση υπάρχει ή μπορεί εύκολα να δημιουργηθεί σε όλες
τις γλώσσες προγραμματισμού.
Έστω ότι έχουμε μια συνάρτηση athroisma (A,B) η οποία επιστρέφει ως αποτέλεσμα το άθροισμα
Α+Β.
GenikoAthroisma (Ν αριθμών)
αν το σύνολο έχει μόνο ένα στοιχείο τότε αυτό είναι το άθροισμα
αλλιώς το άθροισμα είναι το athroisma (πρώτου στοιχείου του συνόλου,
GenikoAthroisma(των υπόλοιπων στοιχείων του συνόλου εκτός του πρώτου))
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 2
Πόσες μετακινήσεις δίσκων χρειάζεται ο πύργος τυ Ανόι;
Προσπαθήστε να υπολογίσετε το πλήθος των κινήσεων που απαιτούνται για 0,1,2,3,4,5,...
δίσκους.
Σκεφθείτε ότι η «επίλυση» του πύργου για Ν δίσκους, χρειάζεται 1 + 2*(Ν-1) κινήσεις.
Επαληθεύστε ότι αυτό ισχύει για μικρές τιμές του Ν.
Μήπως θα μποορύσατε νς βρείτε κάποιο αναλυτικό τύπο για τον απευθείας υπολογισμό του
αριθμού των κινήσεων;
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
Η προφητεία για την κατάρρευση του κόσμου
Υπάρχει περίπτωση η «προφητεία» της κατάρρευσης του κόσμου, αν κάποιος μοναχός καταφέρει
να «λύσει» τον πύργο του Hanoi με 64 δίσκους, να είναι αληθινή;
Κατά κάποιο τρόπο μπορεί η προφητεία να βγει αληθινή, αλλά αυτό δεν έχει καμιά μεταφυσική
εξήγηση.
Για να «επιλυθεί» ο πύργος του Hanoi χρειάζονται 264-1 κινήσεις των δίσκων.
Θα μπορούσατε να υπολογίσετε (με τη βοήθεια ενός λογιστικού φύλλου ίσως) τον αριθμό αυτό και
τον απαιτούμενο χρόνο για την εκτέλεση τόσων κινήσεων;
Αν κάθε μετακίνηση δίσκου χρειάζεται 1 sec, τότε πόσος είναι ο συνολικός χρόνος για τη
μετακίνηση 64 δίσκων;
(γραμμή μενού, εργαλείων, κουμπιά εκτέλεσης κτλ.). Τα αντικείμενα που βρίσκονται στην
αριστερή εργαλειοθήκη επιτρέπουν την εισαγωγή των δομικών στοιχείων που περιγράφουν οπτικά
τον αλγόριθμο. Ο σχεδιασμός των διαγραμμάτων γίνεται με γραφικό τρόπο (στυλ απευθείας
χειρισμού), δηλαδή με την τοποθέτηση αντικειμένων εντολών ή αποφάσεων και τη σύνδεσή τους
με γραμμές ροής εκτέλεσης. Οι βασικές συμβάσεις σχεδιασμού παραθυρικών περιβαλλόντων έχουν
διατηρηθεί προκειμένου να ελαχιστοποιηθεί ο γνωστικός φόρτος εκμάθησης της διεπιφάνειας
χρήσης από πλευράς του μαθητή.
Η προσέγγιση της διαδικασίας εκτέλεσης της εργασίας συνάδει απόλυτα με τη γραφική φύση των
διαγραμμάτων ροής. H ανάπτυξη αλγορίθμων γίνεται με την τεχνική drag & drop: οι διαθέσιμες
«εντολές» που είναι τα δομικά συστατικά ενός διαγράμματος ροής (κουτιά εισόδου, εξόδου,
επιλογής και ενέργειας) εμφανίζονται στο αριστερό πλαίσιο του προγράμματος και ο μαθητής τα
«σέρνει» στον κυρίως χώρο του προγράμματος για να κατασκευάσει τον αλγόριθμο με οπτικό
τρόπο. Τα αντικείμενα αυτά μπορεί να τα τροποποιήσει, να τα τοποθετήσει σε κατάλληλη θέση στο
χώρο εργασίας και να τα συνδέσει μεταξύ τους για να εκφράσει τον αλγόριθμο που επιθυμεί. Τα
δομικά αυτά συστατικά συνδέονται με κατευθυνόμενες γραμμές, ενώ παρέχεται η δυνατότητα της
προσομοίωσης της εκτέλεσης του αλγορίθμου. Η επισκόπηση του αποτελέσματος του αλγόριθμου
γίνεται μέσα από το σχετικό παράθυρο εκτέλεσης (Εικόνα 2), ενώ είναι δυνατή η βήμα προς βήμα
αλλά και η αργή εκτέλεση και η παρακολούθηση των τιμών των μεταβλητών. Παράλληλα,
διάφοροι χαρακτηριστικοί αλγόριθμοι είναι προαποθηκευμένοι με τη μορφή παραδειγμάτων,
δίνοντας την ευκαιρία στον μαθητή να πειραματιστεί με αυτούς. Σχετικές έρευνες έχουν δείξει την
αποτελεσματικότητα των οπτικών αναπαραστάσεων ενός αλγορίθμου (Vessey and Weber 1986,
Cunniff and Τaylor 1987, Scanlan 1989), ειδικά εάν οι μαθητές βρίσκονται στα πρώτα στάδια της
διαδικασίας εκμάθησης του προγραμματισμού.
Τα διαθέσιμα δομικά αντικείμενα που παρέχει ο «Δημιουργός Διαγραμμάτων Ροής» για την
οικοδόμηση των διαγραμμάτων ροής είναι αρχή και τέλος προγράμματος, είσοδος και έξοδος,
εκχώρηση τιμής σε μεταβλητή, στοιχειώδεις αριθμητικές και αλφαριθμητικές πράξεις και λογικός
βρόχος Εάν ... Τότε. Παράλληλα, δίνεται η δυνατότητα αποθήκευσης ενός αλγορίθμου ως
συνάρτηση που μπορεί να κληθεί από άλλο αλγόριθμο καθώς και από τον εαυτό του
(αναδρομικότητα). Παρέχεται η δυνατότητα κατασκευής ψευδοεκτελέσιμου αρχείου, που επιτρέπει
την αυτόνομη εκτέλεση ενός αλγορίθμου χωρίς να απαιτείται το περιβάλλον εργασίας του
‘Δημιουργού Διαγραμμάτων Ροής’. Τέλος, ο χρήστης μπορεί να επισκοπήσει ανά πάσα στιγμή, κατά
τη διάρκεια εκτέλεσης του αλγορίθμου, τις τιμές των χρησιμοποιούμενων μεταβλητών καθώς και
μιας προσομοιούμενης στοίβας μνήμης.
Η φάση εκτέλεσης και παρατήρησης της συμπεριφοράς του αλγορίθμου, υποστηρίζεται με μια
πληθώρα σχετικών εργαλείων. Ο μαθητής μπορεί να εκκινήσει ή να παύσει την εκτέλεση του
αλγορίθμου να δώσει είσοδο ή να παρακολουθεί την έξοδο του προγράμματος από την καρτέλα
‘Οθόνη χρήστη’. Παράλληλα, μέσω των εργαλείων βήμα προς βήμα εκτέλεσης, των σημείων
διακοπής, της καρτέλα ‘Μεταβλητές’ και της καρτέλα ‘Εκφράσεις’ είναι δυνατή η αναλυτική μελέτη
της εκτέλεσης του αλγορίθμου. Παρακολουθώντας και πιθανώς μεταβάλλοντας τις τιμές των
μεταβλητών για οποιοδήποτε υποπρόγραμμα, ο μαθητής μπορεί να επέμβει στη ροή εκτέλεσης του
προγράμματος, ανακαλύπτοντας και διορθώνοντας έτσι τυχόν λογικά λάθη, ή και
βελτιστοποιώντας περαιτέρω τον αλγόριθμο.
Εντούτοις, για να εξασφαλίσουμε πλήρη ένταξη του εκπαιδευτικού λογισμικού στη διαδικασία
εκμάθησης, πρέπει να λάβουμε υπόψη διάφορες παραμέτρους που απορρέουν από το πλαίσιο στο
οποίο λαμβάνει χώρα η διδακτική παρέμβαση. Για παράδειγμα, ένα χαρακτηριστικό σενάριο στην
τάξη είναι αυτό στο οποίο ο δάσκαλος θέλει να χρησιμοποιήσει το «Διερμηνευτή της Γλώσσας» για
να παρουσιάσει στους μαθητές ένα αλγόριθμο ταξινόμησης. Το σενάριο αυτό, απαιτεί μια φάση
προετοιμασίας και εισόδου εφαρμογής μιας μεγάλης μήτρας που εμπεριέχει μια ποσότητα
αριθμητικών στοιχείων προς ταξινόμηση. Ο «Διερμηνευτής της Γλώσσας» υποστηρίζει την a priori
εισαγωγή δεδομένων με τη χρήση της σχετικής καρτέλας εισαγωγής στοιχείων. Τα στοιχεία αυτά
συσχετίζονται και αποθηκεύονται μαζί με τον αλγόριθμο. Έτσι, τα στάδια της τυποποιημένης
εισαγωγής στοιχείων μπορούν να παραλειφθούν και η διδακτική παρέμβαση να εστιάζει στα
ουσιαστικά ζητήματα της διαδικασίας.
Καθώς ο «Διερμηνευτής της Γλώσσας» σχεδιάστηκε με στόχο να αποτελέσει ένα εκπαιδευτικό
περιβάλλον και όχι ένα περιβάλλον προγραμματισμού, εμπεριέχει και αρκετές ακόμα δυνατότητες
για την απόκρυψη προγραμματιστικών λεπτομερειών από τους μαθητές. Για παράδειγμα, ένας
κλασσικός περιορισμός των υπολογιστικών συστημάτων που προκαλεί σύγχυση στους μαθητές
είναι η πεπερασμένη ακρίβεια των αριθμών. Συνήθως, ένας βρόχος «ΓΙΑ π ΑΠΟ 0.01 ΜΕΧΡΙ 1
ΜΕ_ΒΗΜΑ 0.01» δεν εκτελείται 100 φορές όπως αναμένουν οι μαθητές, αλλά μόνο 99, αφού για
την τελική τιμή 1.000000001 δεν γίνεται επανάληψη. Ο «Διερμηνευτής της Γλώσσας»
παρακάμπτει αυτό το πρόβλημα χρησιμοποιώντας πεπερασμένη ακρίβεια κατά τις συγκρίσεις
πραγματικών αριθμών, προσαρμόσιμη από σχετικό διάλογο επιλογών. Στον ίδιο διάλογο υπάρχουν
αρκετές ακόμα επιλογές οι οποίες αποσκοπούν στη διατήρηση της απλότητας της ΓΛΩΣΣΑΣ που
χρησιμοποιείται για την κωδικοποίηση των αλγορίθμων.
Η έκδοση 1.5.1 του Διερμηνευτή της Γλώσσας υποστηρίζει ανάπτυξη αλγορίθμων και σε μορφή
Ψευδογλώσσας. Συνοδεύεται ακόμη και από ένα εγχειρίδιο με οδηγίες.
3 Βιβλιογραφία – Δικτυογραφία
Graham R.L., Knuth D.E., Patashnik Or. (1988) Concrete Mathematics, Addison-Wesley Publishing
Company
Moscovich, Ivan (2001). 1000 playthinks: puzzles, paradoxes, illusions & games.
Workman. ISBN 0-7611-1826-8.
Cormen T., Leiserson C., Rivest R. (1994) Introduction to algorithms, MIT Press
Hoftsdtader Δ. (1979) Gödel, Escher, Bach: An Eternal Golden Braid, BASIC BOOKS
Avouris, N. M., Tselios, N. K. and Tatakis, E. C. (2001), Development and evaluation of a
computer-based laboratory teaching tool, Journal Computer Applications in Engineering
Education, 9(1), 8-19.
Blackwell, A., Whitley, K. N., Good, J. and Petre M. (2001), Cognitive factors in programming with
diagrams, Artificial Intelligence Review, 15, 95–114.
Bohl, M. (1971), Flowcharting techniques, Science Research Associates, Chicago, 53.
Calloni, B.A. and Bagert, D. (1997), Iconic programming proves effective for teaching the first
year programming sequence, Proceedings of SIGCSE'97 Technical Symposium on Computer
Science Education, SIGCSE Bulletin, 29(1), 262-266.
Cunniff, N. and Taylor, R. P. (1987), Graphical vs. textual representation: An empirical study of
novices’ program comprehension, in Olson, G. M., Sheppard, S. B., Soloway, E. (eds.), Empirical
Studies of Programmers: Second Workshop, 114–131, Washington, DC, USA.
Curtis, B., Sheppard, S. B., Kruesi-Bailey, E., Bailey, J. and Boehm-Davis, D. A. (1989),
Experimental evaluation of software documentation formats, Journal of Systems and Software,
9(2), 167–207.
Dimitracopoulou, A. and Komis, V. (2005), Design principles for the support of modelling and
collaboration in a technology-based learning environment, International Journal of Continuing
Engineering Education and Lifelong Learning, 15(1/2), 30-55.
Eskola, J. and Tarhio, J. (2000), Flowchart programming with Excel, Report C-2000-52,
Department of Computer Science, University of Helsinki.
Goldstein, H.H., and von Neumann, J. (1947), Planning and coding problems for an electronic
computing instrument, part II, Vol. I, Report prepared for the U.S. Army Ordinance Dept.,
Reprinted in A.H. Taub (ed.), J. von Neumann, Collected Works, Vol. V, 80-151, New York: Mc-
Millan.
Komis, V., Dimitracopoulou, A., Politis, P. and Avouris, N. (2001), Expérimentations exploratoires
sur l’utilisation d’un environnement informatique de modélisation par petits groupes d’élèves,
Sciences et Techniques Educatives, 8(1-2), 75-86.
Luger, G. F., and Stubblefield, W. A. (1998), Artificial Intelligence: Structures and strategies for