Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

Προχωρημένη επιμόρφωση για την αξιοποίηση και εφαρμογή των Τ.Π.Ε.

στη διδακτική πράξη

Επιμόρφωση Β2 επιπέδου ΤΠΕ


Συστάδα: Β2.4 ΠΛΗΡΟΦΟΡΙΚΗ

ΥΛΙΚΟ ΑΝΑΦΟΡΑΣ

Γλώσσα και αλγοριθμική -


Αναδρομή
ΥΛΙΚΟ ΑΝΑΦΟΡΑΣ

Έκδοση 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 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 2 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

Προοίμιο
Το παρόν επιμορφωτικό υλικό δημιουργήθηκε για να καλύψει τις ανάγκες της «Προχωρημένης
Επιμόρφωσης για την Αξιοποίηση και Εφαρμογή των Τ.Π.Ε. στη διδακτική πράξη» (Επιμόρφωση Β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 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 3 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

καθώς και του συμπράττοντα φορέα υλοποίησης της Πράξης (Ι.Ε.Π.):


 Χαράλαμπο Ζαγούρα, Πανεπιστήμιο Πατρών, ο οποίος έχει την ευθύνη συντονισμού των
εργασιών της Επιτροπής
 Παναγιώτη Αντωνίου, Δημοκρίτειο Πανεπιστήμιο Θράκης, ως Επιστημονικά Υπεύθυνο για τη
Συστάδα «Φυσική Αγωγή και Υγεία»
 Βασίλειο Δαγδιλέλη, Πανεπιστήμιο Μακεδονίας, ως Επιστημονικά Υπεύθυνο για τη συστάδα
«Πληροφορική»
 Χαράλαμπο Καραγιαννίδη, Πανεπιστήμιο Θεσσαλίας, ως Επιστημονικά Υπεύθυνο για τη
συστάδα «Ειδική Αγωγή»
 Βασίλειο Κόμη, Πανεπιστήμιο Πατρών, ως Επιστημονικά Υπεύθυνο για τις συστάδες
«Πρωτοβάθμια Εκπαίδευση – Δάσκαλοι» και «Πρωτοβάθμια Εκπαίδευση – Νηπιαγωγοί»
 Δημήτριο Κουτσογιάννη, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, ως Επιστημονικά
Υπεύθυνο για τη συστάδα «Φιλολογικά»
 Πολυχρόνη Κυνηγό, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών, ως Επιστημονικά
Υπεύθυνο για τη συστάδα «Μαθηματικά»
 Βασιλική Μητσικοπούλου, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών, ως Επιστημονικά
Υπεύθυνη για τη συστάδα «Ξένες Γλώσσες»
 Σπύρο Παπαδόπουλο, Πανεπιστήμιο Θεσσαλίας, ως Επιστημονικά Υπεύθυνο για τη συστάδα
«Καλές Τέχνες»
 Κυπαρισσία Παπανικολάου, Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης
ως Επιστημονικά Υπεύθυνη για τη συστάδα «Εκπαιδευτικοί Μηχανικοί»
 Παναγιώτη Σιμιτζή, Γεωπονικό Πανεπιστήμιο Αθηνών ως Επιστημονικά Υπεύθυνο για τη
συστάδα «Επαγγέλματα Γης»
 Ιωάννη Τσίρμπα, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών, ως Επιστημονικά Υπεύθυνο
για τη συστάδα «Οικονομία, Διοίκηση και Κοινωνικές Επιστήμες»
 Δημήτριο Ψύλλο, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Επιστημονικά Υπεύθυνο για τη
συστάδα «Φυσικές Επιστήμες»
Ειδικότερα, το Επιμορφωτικό Υλικό Β2 επιπέδου ΤΠΕ της Συστάδας Β2.4: Πληροφορικής.
δημιουργήθηκε από συγγραφική ομάδα με επιστημονικώς υπεύθυνο τον κ. Βασίλειο Δαγδιλέλη αφ.
Καθηγητή του Πανεπιστημίου Μακεδονίας και συμμετέχοντες τους:
 Αλεξούδα Γεωργία, Πληροφορικό
 Λεύκο Ιωάννη, μέλος Ε.ΔΙ.Π. Πανεπιστημίου Μακεδονίας
 Μαλλιαράκης Χρήστο, Πληροφορικό
 Μαυροχαλυβίδη Γεώργιο
 Ξινόγαλος Στυλιανός, μέλος ΔΕΠ Πανεπιστημίου Μακεδονίας
 Παπαδάκη Σταμάτη, Πληροφορικό

Στο παρόν υλικό έχει κατάλληλα ενσωματωθεί ένα μικρό μέρος κοινού υλικού για όλες τις

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 4 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

συστάδες (Γενικό Μέρος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

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 5 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 6 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

1 1. Εισαγωγή στην Αναδρομή

1.1 Τίτλος διδακτικού σεναρίου


Εισαγωγή στην αναδρομή με τους «πύργους του Ανόϊ»

1.2 Εκτιμώμενη διάρκεια διδακτικού σεναρίου


Εκτιμάται ότι σε πλήρη ανάπτυξη απαιτούνται 3-4 διδακτικές ώρες. Το σενάριο μπορεί να επεκταθεί
ή να συντμηθεί, ανάλογα με τις διδακτικές περιστάσεις.

1.3 Ένταξη του διδακτικού σεναρίου στο πρόγραμμα σπουδών


και προαπαιτούμενες γνώσεις
Το νέο ΑΠΣ για την Πληροφορική του Λυκείου αναφέρεται ότι οι μαθητές πρέπει να διερευνούν
ευρετικούς και κλασικούς αλγορίθμους και να τους αξιολογούν. Κάνει επίσης ρητή αναφορά στους
πύργους του Ανόι, όπως και στο πρόβλημα των 8 βασιλισσών κ.α.
Δεν υπάρχουν προαπαιτούμενες γνώσεις (εκτός της Python). Μια βασική γνώση της Μαθηματικής
επαγωγής θα ήταν χρήσιμη, αλλά όχι απαραίτητη.

1.4 Σκοποί και στόχοι του διδακτικού σεναρίου


Ο γενικότερος σκοπός του παρόντος σεναρίου είναι η κατανόηση των μηχανισμών, αλλά και οι
τρόποι υλοποίησης αναδρομικών διαδικασιών στον προγραμματισμό.
Πιο συγκεκριμένα, αναμένεται ότι μέσα από την ανάλυση του διδακτικού σεναρίου, οι
επιμορφούμενοι θα γνωρίσουν τα βασικά διδακτικά χαρακτηριστικά της αναδρομής και των
αναδρομικών διαδικασιών και συναρτήσεων και θα είναι σε θέση να δημιουργήσουν δικά τους
σενάρια ή δραστηριότητες για τη διδασκαλία θεμάτων της αναδρομής.
Το ίδιο το διδακτικό σενάριο αναμένεται να συμβάλει στην καλλιέργεια των εξής οριζοντίων
ικανοτήτων:
Καλλιέργεια και ενδυνάμωση της Υπολογιστικής σκέψης, Βελτίωση των ικανότητας επικοινωνίας σε
θέματα σχετικά με την Πληροφορική (ακρίβεια στη χρήση του λόγου και ορολογία), την κατασκευή
Υπολογιστικών Τεχνουργημάτων, την ανάπτυξη και χρήση υπολογιστικών αφαιρέσεων και την
ενίσχυση της δημιουργικότητας των μαθητών.
Οι μαθητές, αναμένεται να γνωρίσουν:
 τους μηχανισμούς, αλλά και την έκφραση και τον προγραμματισμό αναδρομικών
διαδικασιών και συναρτήσεων
 βασικά πλεονεκτήματα της χρήσης της αναδρομής στον προγραμματισμό (απλότητα στην
επίλυση προβλημάτων, ευκολία έκφρασης της λύσης σε μαι γλώσσα προγραμματισμού),
αλλά και βασικά μειονεκτήματα (απαιτήσεις σε χρόνο εκτέλεσης και χώρο, δυσκολία
ελέγχου ενδιάμεσων σταδίων, δυσκολία στην προσομοίωση εκτέλεσης ενός προγράμματος)
 τη σύνδεση ανάμεσα στις αναδρομικές συναρτήσεις και τη μαθηματική τους έκφραση
(διατύπωση)

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 7 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

 τρόπους υπολογισμού του απαιτούμενου χρόνου είτε με αλγεβρικό τρόπο, είτε μέσω
συγκεκριμένων παρσδειγμάτων.

1.5 Περιγραφή του διδακτικού σεναρίου


Η αναδρομή, γενικά μιλώντας, είναι μια πολύ ισχυρή μέθοδος για την επίλυση προβλημάτων και
χρησιμοποιείται ευρέως στον προγραμματισμό. Η αναδρομή υλοποιείται μέσω αναδρομικών
συναρτήσεων.
Μια συνάρτηση F λέγεται αναδρομική, αν ο ορισμός της περιλαμβάνει την ίδια την F.
Το διδακτικό σενάριο συγκροτείται από 3 υποθέματα: μια γενική προσέγγιση της αναδρομής και
συγκεκριμένα παραδείγματα, ανάλυση των απαιτουμένων πράξεων (σε ορισμένες περιπτώσεις)
δραστηριότητες γύρω από την αναδρομή.
Η βασική δραστηριότητα του σεναρίου είναι η εύρεση της γενικής λύσης του πύργου του Ανόι (ή
των πύργων του Ανόι), ένα πρόβλημα που επιλύεται εύκολα με αναδρομή, αλλά πιο δύσκολα
χωρίς αυτήν.

Η αναδρομή είναι, όπως αναφέρθηκε, μια πολύ ισχυρή τεχνική με τη βοήθεια της οποίας μπορούμε
να μειώσουμε το μέγεθος του κώδικά μας και να διευκολύνουμε την ανάγνωση και τη γραφή του.
Έχει ορισμένα πλεονεκτήματα σε σχέση με την τεχνική της επανάληψης, με κυριότερο την
απλότητα των αναδρομικών λύσεων σε σχέση με τις αντίστοιχες επαναληπτικές. Μια εργασία που
μπορεί να οριστεί με παρόμοια δευτερεύουσα εργασία, η αναδρομή είναι μια από τις καλύτερες
λύσεις για αυτήν.

1.5.1 Υπολογισμός του Ν!


Ας πάρουμε το παράδειγμα για τον υπολογισμό του παραγοντικού ενός αριθμού, Ν!.
Ένα πρώτο, απλό, παράδειγμα συνάρτησης που μπορεί να οριστεί αναδρομικά, είναι η συνάρτηση
«παραγοντικό» που συμβολίζεται με «!».
Ν! = 1x2x3x…N (Ν φυσικός)
Για παράδειγμα: 5! = 1x2x3x4x5=120
Προφανώς 1! = 1 και δεχόμαστε επίσης ότι 0!=1
Για λόγους απλότητας στην παρούσα ενότητα θεωρούμε ότι το Ν είναι ένας φυσικός αριθμός.
Ο ορισμός του Ν! μας δίνει άμεσα τον αλγόριθμο του υπολογισμού του:

N=int(input("ΔΩΣΕ ΕΝΑΝ ΦΥΣΙΚΟ ΑΡΙΘΜΟ "))


Fact = 1
if N==0:
print("Το ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ 1 ")
else:
for i in range(1,N+1):
Fact = Fact * i
print ("Το ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ ", Fact)

Ωστόσο, μπορούμε να διαπιστώσουμε πολύ εύκολα ότι το Ν! μπορεί να οριστεί ως εξής:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 8 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

Ν! =1 αν το Ν είναι μηδέν
Ν!=Ν * (Ν-1)! αν το Ν (που είναι φυσικός αριθμός) δεν είναι μηδέν
Αυτός ο ορισμός του Ν! μα δίνει τη δυνατότητα της δημιουργίας ενός αντίστοιχου αναδρομικού
αλγορίθμου (και του προγράμματος σε Python):

1. def factorial(N):
2. if N == 1:
a. return N
3. else:
a. return (N * factorial(N-1))

4. num=int(input("ΔΩΣΕ ΕΝΑΝ ΦΥΣΙΚΟ ΑΡΙΘΜΟ "))


5. print("The factorial of", num, "is", factorial(num))

Το ερώτημα είναι βέβαια πώς ακριβώς λειτουργεί ο αλγόριθμος αυτός.


Στο Φωτόδενδρο, ο αλγόριθμος αυτός υπάρχει με animation προγραμματισμένος σε ΓΛΩΣΣΑ.
Πώς «λειτουργεί» ο αλγόριθμος
Παρακάτω περιγράφεται, κάπως αναλυτικά, η εκτέλεση του αλγορίθμου.
Αν υποθέσουμε ότι θέλουμε να υπολογίσουμε το 5!, τότε η πρώτη κλήση της συνάρτησης γίνεται
με Ν=5, στη γραμμή 1.
Στη γραμμή 2 διαπιστώνεται ότι ο Ν δεν είναι ίσος με 1 και άρα εκτελούνται οι γραμμές 3 και 3.a
Στη γραμμή 3.a ο αλγόριθμος χρειάζεται την τιμή του 4!. Καθώς δεν είναι γνωστή, από το σημεία
αυτό (έστω Α), αλγόριθμος καλεί εκ νέου την συνάρτηση factorial στη γραμμή 1, αλλά αυτή τη
φορά με Ν=4.
Στη γραμμή 2 διαπιστώνεται ότι ο Ν δεν είναι ίσος με 1 και άρα εκτελούνται οι γραμμές 3 και 3.a
Στη γραμμή 3.a ο αλγόριθμος χρειάζεται την τιμή του 3!. Καθώς δεν είναι γνωστή, από το σημεία
αυτό (έστω Β), αλγόριθμος καλεί εκ νέου την συνάρτηση factorial στη γραμμή 1, αλλά αυτή τη
φορά με Ν=3.
Στη γραμμή 2 διαπιστώνεται ότι ο Ν δεν είναι ίσος με 1 και άρα εκτελούνται οι γραμμές 3 και 3.a
Στη γραμμή 3.a ο αλγόριθμος χρειάζεται την τιμή του 2!. Καθώς δεν είναι γνωστή, από το σημεία
αυτό (έστω Γ), αλγόριθμος καλεί εκ νέου την συνάρτηση factorial στη γραμμή 1, αλλά αυτή τη
φορά με Ν=2.
Στη γραμμή 2 διαπιστώνεται ότι ο Ν δεν είναι ίσος με 1 και άρα εκτελούνται οι γραμμές 3 και 3.a
Στη γραμμή 3.a ο αλγόριθμος προσπαθεί να υπολογίσει το γινόμενο 2x1! και επομένως χρειάζεται
την τιμή του 1!. Καθώς δεν είναι γνωστή, από το σημεία αυτό (έστω Δ), ο αλγόριθμος καλεί εκ
νέου την συνάρτηση factorial στη γραμμή 1, αλλά αυτή τη φορά με Ν=1.
Στη γραμμή 2 διαπιστώνεται αυτή τη φορά ότι ο Ν είναι ίσος με 1, και άρα, σύμφωνα με την
εντολή στην 2.a το Ν! είναι γνωστό και ισούται με 1. Ο αλγόριθμος συνεχίζει τώρα προς τα «πίσω»
και επιστρέφει στο σημείο Δ και υπολογίζει ότι 2! = 2x1! = 2.
Ο αλγόριθμος συνεχίζει πάλι προς τα «πίσω» και επιστρέφει στο σημείο Γ και υπολογίζει ότι 3! =
3x2! = 6.
Ο αλγόριθμος συνεχίζει πάλι προς τα «πίσω» και επιστρέφει στο σημείο Β και υπολογίζει ότι 4! =
3x2! = 4x6=24.
Ο αλγόριθμος συνεχίζει πάλι προς τα «πίσω» και επιστρέφει στο σημείο A και υπολογίζει ότι 5! =

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 9 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

5x4! = 5x24 = 120.


Με ποιον τρόπο ο αλγόριθμος μπορεί και διαχειρίζετι όλα τα ενδιάεσα αποτελέσματα και
«επιστρέφει» κάθε φορά στο κατάλληλο σημείο; Η βασική δομή στην οποία στηρίζεται η
αναδρομή είναι αρκετά απλή (πιθανόν να την χρησιμοποιήσετε σε κάπιο σημείο) και ονομάζεται
στοίβα (stack). Οι λεπτομέρειες με τις οποίες λειτουργεί μια στοίβα μπορούν εύκολα να βρεθούν
στο Διαδίκτυο.

1.5.2 Η ακολουθία Fibonnaci


Η ακολουθία Fibonacci ορίζται ως εξής:
Α0 = 0
Α1 = 1
ΑΝ = ΑΝ-1 + ΑΝ-2, δηλαδή μετά τον δεύτερο όρο, κάθε όρος προκύπτει ως άθροισμα των δυο
προηγουμένων. Η ακολουθία αυτή παίζει σημαντικό ρόλο στα Μαθηματικά, αλλά και στην
Πληροφορική.
Ο όροι της ακολουθίας μπορούν φυσικά να υπολογιστούν χωρίς να χρειαστί η αναδρομή:

n=int(input("πόσους όρους της ακολουθίας (πάνω από 2); "))


a=0
b=1
print(a)
print(b)
for i in range (n-2):
s=a+b
print (s)
a=b
b=s

Ωστόσο, η αναδρομική διαδικασία για τον υπολογισμό των όρων της ακολουθίας, είναι διαισθητικά
πιο απλή:

def fibo(n):
if n <= 1:
return n
else:
return(fibo(n-1) + fibo(n-2))

n=int(input("πόσους όρους της ακολουθίας; "))


for i in range(n):
print(fibo(i))

1.5.3 Ο πύργος του Ανόι


Ο πύργος του Ανόι (από τη wikipedia), ονομάζεται Πύργοs του Βράχμα ή Lucas' Πύργος είναι
ένα μαθηματικό παιχνίδι. Αποτελείται από τρεις ράβδους και δίσκους διαφορετικών μεγεθών, οι
οποίοι μπορούν να μετακινηθούν σε οποιαδήποτε ράβδο. To παιχνίδι ξεκινάει με τους δίσκους σε

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 10 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

μια ενιαία στοίβα σε μια αύξουσα σειρά μεγέθους (από τη βάση προς την κορυφή) σε μία ράβδο. Η
μικρότερη βρίσκεται στην κορυφή, δημιουργώντας έτσι ένα κωνικό σχήμα.
Ο στόχος του παιννιδιού είναι να μετακινηθεί ολόκληρη η στοίβα σε μια άλλη ράβδο,
ακολουθώντας τους ακόλουθους απλούς κανόνες:
1. Μόνο ένας δίσκος μπορεί να μετακινηθεί κάθε φορά.
2. Κάθε κίνηση βασίζεται στη λήψη του ανώτερου δίσκου σε μία από τις στοίβες και στην
τοποθέτηση του πάνω στην άλλη στοίβα ή σε μια άδεια ράβδο.
3. Δεν μπορεί να τοποθετηθεί μεγαλύτερος δίσκος πάνω από μικρότερο δίσκο.

Ένα μοντέλο του πύργου του Ανόι, στην αρχική κατάσταση (με 8 δίσκους)

Ο πύργος του Ανόι μπορεί να επιλυθεί (δηλαδή να περιγραφούν οι διαδοχικές κινήσεις που
απαιτούνται για τη μεταφορά των δίσκων σύμφωνα με τους παραπάνω τρεις κανόνες) με
επαναληπτικές διαδικασίες, αλλά η αναδρομική λύση είναι ασύγκριτα πιο απλή. Αποτελεί έτσι ένα
τυπικό παράδειγμα προβλήματος για μια εισαγωγή στην αναδρομή.

Μια στρατηγική επίλυσης


Δοκιμάζει κανείς πρώτα με ένα μικρό πλήθος δίσκων: 1 δίσκο, 2 δίσκους ή τρεις δίσκους και μετά
μπορεί να επεκτείνει τη στρατηγική της λύσης για οιοδήποτε φυσικό Ν.
Η γενική συλλογιστική της αναδρομής είναι ως εξής:
Μπορώ (ξέρω) πώς να μετακινήσω 1 δίσκο
Αν γνωρίζω πώς να μετακινήσω οποιοδήποτε πλήθος n από το στύλο Α στο Γ, στην τριάδα (Α, Β,
Γ) τότε μπορώ να μετακινήσω και n+1 από τον Α στο Γ. Αρκεί:
 να μετακινήσω n δίσκους από τον Α στο Β στην τριάδα (Α,Γ,Β)
 να μετακινήσω έναν δίσκο από το Α στο Γ στην τριάδα (Α,Β,Γ)
 να μετακινήσω n δίσκους από το Β στο Γ στην τριάδα (Β,Γ,Α)

Η αναδρομική αυτή λύση μπορεί να περιγραφεί ως εξής (σε Python):

def TowerOfHanoi(n , begin, destination, auxilliary):


if n == 1:
print("Metakinise ton epano disko apo to stylo",begin,"sto sylo ",destination)
return
TowerOfHanoi(n-1, begin, auxilliary, destination)
print("Metakinise ena disko apo to stylo",begin,"sto stylo ",destination)
TowerOfHanoi(n-1, auxilliary, destination, begin)

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 11 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

n = int(input("Δώσε το πλήθος των δίσκων "))


TowerOfHanoi(n, 'A', 'B', 'C')

Η διαδικασία φαίνεται πολύπλοκή και κάπως αφηρημένη. Για παράδειγμα αν το 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.6 Επιστημολογική προσέγγιση και εννοιολογική ανάλυση –


θέματα θεωρίας του διδακτικού σεναρίου
Ο D.E. Knuth (Knuth D. E. 1988) αναφέρει για τους πύργους του Ανόι πως πρόκειται για ένα παζλ
με 8 δίσκους που επινόησε και δημοσιοποίησε το 1883 ο Γάλλος μαθηματικός Edouard Lucas
συνοδεύοντάς το με μια φανταστική ιστορία: υποτίθεται ότι ο αρχικός Πύργος του Βράχμα είχε 64
δίσκους από χρυσό, ενώ ίδιοι οι στύλοι ήταν διαμαντένιοι. Ο Βράχμα, στην αρχή του χρόνου,
έδωσε εντολή σε ένα τάγμα μοναχών να «λύσουν» το παζλ, δηλαδή να μεταφερθούν οι 64 δίσκοι
σύμφωνα με τους κανόνες του παζλ. Το αφήγημα συνεχίζεται με τον ισχυρισμό ότι αν οι μοναχοί
καταφέρουν να λύσουν το πάζλ, αν δηλαδή καταφέρουν να μεταφέρουν
Οι αναδρομικές συναρτήσεις στον προγραμματισμό είναι φυσικά πολύ στενά συνδεδεμένες με τις
αναδρομικές συναρτήσεις των Μαθηματικών, μια κατηγορία συναρτήσεων των φυσικών αριθμών
που μελετήθηκαν στη θεωρία υπολογισιμότητας, έναν κλάδο της σύγχρονης μαθηματικής λογικής
που ήταν αρχικά γνωστός ως αναδρομική θεωρία συναρτήσεων. Τέτοιες συναρτήσεις παίρνουν το
όνομά τους από τη διαδικασία της αναδρομής με την οποία η τιμή μιας συνάρτησης ορίζεται από
την εφαρμογή της ίδιας συνάρτησης σε μικρότερα ορίσματα (από την Εγκυκλοπαίδεια της Λογικής
του Πανεπιστημίου του Στάνφορντ – Stanford, https://plato.stanford.edu/entries/recursive-

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 12 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

functions/#EarlHistRecuDefi, ανάρτηση του 2021).


Η αναδρομή, καθώς ορίζεται με ένα είδος αυτοαναφορικότητας, συνδέεται και με τα περίφημα
θεωρήματα της μη-πληρότητας του Gödel. Τα θεωρήματα αυτά, από τα σημαντικότερα Μαθηματικά
θεωρήματα (έχουν χαρακτηριστεί ως μνημειώδη), ουσιαστικά αναφέρονται στα εσωτερικά όρια των
Μαθηματικών συστημάτων. Η βασική ιδέα στην καρδιά των θεωρημάτων της μη-πληρότητας είναι
μάλλον απλή. Ο Gödel ουσιαστικά κατασκεύασε μια φόρμουλα που είναι μη-αποδείξιμη σε ένα
δεδομένο τυπικό σύστημα σύστημα.
Οι αναδρομικές συναρτήσεις μπορούν να εκφραστούν αναλυτικά;
Το πρόβλημα αυτό, της αναλυτικής έκφρασης μιας αναδρομικής συνάρτησης με έναν τύπο για
απευθείας υπολογισμό των τιμών της συνάρτησης είναι αρκετά πολύπλοκο και η αντιμετώπισή του
ξεπερνάει τα όρια αυτού του υλικού. Μπορεί κανείς να βρεί σχετικά στο Cormen T. et als (1994).
Η έννοια της αναδρομής συνδέεται επίσης με την έννοια και τις τεχνικές της Μαθηματικής
Επαγωγής, την οποία οι μαθητές διδάσκονται στο Λύκειο:
Αν μια πρόταση:
(1) Είναι αληθής για ένα φυσικό αριθμό Κ
(2) Με την προϋπόθεση ότι είναι αληθής για τον φυσικό αριθμό Ν, αν μπορούμε να
αποδείξουμε ότι είναι αληθής και για τον φυσικό Ν+1,
τότε, η πρόταση είναι αληθή για όλους τους φυσικύς, από τον Κ και μετά.
Για παράδειγμα, μπορούμε εύκολα να αποδείξουμε ότι 1+2+...+Ν = (Ν*(Ν+1))/2 (1)
(1) Για Ν=1 η πρόταση είναι αληθής
(2) Έστω ότι πράγματι ισχύει για κάθε Ν φυσικό. Τότε στην παραπάνω ισότητα (1) προσθέτω το
Ν+1 και στα δυο μέλη. Στο δεύτερο μέλος θα έχω Ν+1+(Ν*(Ν+1)/2 =((Ν+1)*(Ν+2)),
δηλαδή η πρόταση είναι αληθής.
Άρα ισχύει για όλους τους φυσικούς.

1.7 Επεκτάσεις και διασυνδέσεις των εννοιών


Η έννοια της αναδρομής συνδέεται πολύ στενά με τις επαναληπτικές διαδικασίες. Όπως δείχνει και
το παράδειγμα του πύργου του Ανόι, σε ορισμένες περιπτώσεις η αναδρομική λύση είναι πολύ πιο
απλή από τη λύση με αναδρομικές διαδικασίες, αλλά φυσικά αυτός δεν είναι ένας γενικός κανόνας.
Η αναδρομή δεν έχει ευρεία χρήση στο σχολικό περιβάλλον. Ωστόσο, η διδασκαλία της, έστω και
περιορισμένα, αναμένεται να έχει πολλά οφέλη στο σχεδιασμό αλγορίθμων και προγραμμάτων.
Σε παραδείγματα που υπάρχουν σε επόμενες παραγράφους (όπως η εύρεση του ελαχίστου, ο
υπολογισμός του αθροίσματος Ν αριθμών κ.λπ.) είναι πολύ φανερές οι σχέσεις ανάμεσα στις
αναδρομικές διαδικασίες και τις επαναληπτικές και ο διδάσκων μπορεί να εκμεταλλευτεί αυτές τις
σχέσεις και να αναδείξει την ευκολία της σύλληψης ενός αναδρομικού αλγορίθμου – και
ταυτόχρονα τη σχετική δυσκολία του ελέγχου του προγράμματος, αν «κάτι δεν πηγαίνει καλά».

1.7.1 Εφαρμογές της αναδρομής σε προβλήματα που επιλύονται και με


επαναληπτικές διαδικασίες
Η αναδρομή αποτελεί ένα πολύ ισχυρό εργαλείο επίλυσης προβλημάτων και σε πολλές περιπτώσεις
μπορεί να αντικαταστήσει τις δομές επανάληψης (αν και κατά κανόνα, ως μέθοδος, είναι λιγότερο
αποτελεσματική από τις αντίστοιχες επαναληπτικές εργασίες). Σε ορισμένες περιπτώσεις, όπως
στον Πύργο του Ανόι, η αναδρομή είναι η προφανής λύση. Σε άλλες, είναι λιγότερο προφανής,

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 13 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

ενδεχομένως και λιγότερο αποτελεσματική, αλλά ο καθορισμός μιας πρώτης λύσης βασισμένης
στην αναδρομή βοηθάει στην ανεύρεση μιας μη-αναδρομικής λύσης και γενικότερα προσφέρει
στον προγραμματιστή τη δυνατότητα μιας διαφορετικής προσέγγισης του προβλήματος, αλλά και
της αναζητούμενης λύσης.
Με ένα γενικό τρόπο, η αναδρομή, για την υλοποίηση της απαιτεί δυο στοιχεία;

Μια «τετριμμένη» περίπτωση στην οποία το αποτέλεσμα είναι γνωστό εκ των προτέρων
Ένας τρόπος υπολογισμού της «λύσης» για Ν, υπό την προϋπόθεση ότι γνωρίζουμε τις λύσεις για
Ν-1, Ν-2, ...., έως την τετριμμένη λύση.

Προτείνονται παρακάτω δυο απλά προβλήματα αυτού του είδους.


ΑΘΡΟΙΣΜΑ Ν αριθμών εκφρασμένο αναδρομικά
Δεχόμαστε ότι είναι «γνωστή» η πρόσθεση δυο αριθμών, δηλαδή ο Η.Υ. μπορεί να προσθέσει 2
αριθμούς. Πώς θα τον καθοδηγήσουμε όμως ώστε να προσθέσει Ν αριθμούς; Και πώς θα τον
καθοδηγήσουμε ώστε να προσθέσει αριθμούς ενός απροσδιόριστου πλήθους (για παράδειγμα, όταν
ο χρήστης εισάγει τους αριθμούς από το πληκτρολόγιο και δεν γνωρίζει το ακριβές πλήθος τους).
Στη λύση με επαναληπτικές διαδικασίες, χρησιμοποιούμε έναν «αθροιστή», μια μεταβλητή δηλαδή
με αρχική τιμή 0, στην οποία προστίθενται διαδοχικά οι επόμενοι αριθμοί, έναν προς έναν.
Μια αναδρομική λύση ωστόσο, μπορεί να έχει την εξής μορφή:
Άθροισμα αριθμών
Αν τα στοιχεία για την πρόσθεση είναι ένας μοναδικός αιρθμός, τότε το άθροισμα είναι αυτός ο
αριθμός.
Αλλιώς το αποτέλεσμα είναι ο πρώτος αριθμός + άθροισμα των υπόλοιπων αριθμών
Το σντίστοιχο πρόγραμμα σε Python (3) μπορεί να γραφεί ως εξής (με χρήση λιστών):

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))

ΕΛΑΧΙΣΤΟΣ από ένα σύνολο Ν αριθμών με αναδρομή


Χρησιμοποιώντας την έννοια του «μικρότερου» από δυο αριθμούς και την αναδρομή, μπορούμε να
ορίσουμε (και να υπολογίσουμε αναδρομικά) τον ελάχιστο από ένα σύνολο αριθμών.

Μια αναδρομική λύση ωστόσο, μπορεί να έχει την εξής μορφή:


Ελάχιστος από ένα σύνολο αριθμών
Αν τα σύνολο αποτελείται από ένα μοναδικό αιρθμό, τότε το ελάχιστο είναι αυτός ο αριθμός.
Αλλιώς το αποτέλεσμα είναι ο μικρότερος ανάμεσα στον πρώτος αριθμό του συνόλου και τον

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 14 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

ελάχιστο των υπόλοιπων αριθμών


Το αντίστοιχο πρόγραμμα σε Python (3) μπορεί να γραφεί ως εξής (με χρήση λιστών):

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 σκαλοπάτια μαζί. Με πόσους τρόπους μπορεί να ανέβει ως
την κορυφή της σκάλας;
Προφανώς το τελευταίο βήμα θα είναι ή ένα σκαλοπάτι, ή δυο σκαλοπάτια ή τρία σκαλοπάτια.
Άρα ο συνολικός αριθμός όλων των τρόπων πρόσβασης στην κορυφή μπορεί να υπολογιστεί ως
άθροισμα των τρόπων με τους οποίους φθάνει κανείς στην κορυφή μείον ένα σκαλοπάτι ή στην
κορυφή μείον δυο σκαλοπάτια ή στην κορυφή μείον τρία σκαλοπάτια.

1.7.2 Πόσες κινήσεις χρειάζονται για να επιλυθεί ο πύργος του Ανόι με Ν


δίσκους;
Από τον τρόπο με τον οποίο επιλύεται ο πύργος του Ανόι, προκύπτει ότι υπάρχει μια μέθοδος για
τον υπολογισμό των κινήσεων για Ν δίσκους. Έστω ότι ο αριθμός των κινήσεων είναι Τ(Ν).
Για 1 δίσκο χρειάζεται μια κίνηση, δηλαδή Τ(1)=1
Για οιοδήποτε Ν, μια λύση για τον πύργο του Ανόι μπορεί να αναλυθεί προφανώς στις εξής,
επιμέρους κινήσεις:
Η μεταφορά Ν-1 δίσκων στο βοηθητικό δίσκο, που απαιτεί Τ(Ν-1) κινήσεις
Μεταφορά του τελευταίου (δηλαδή του μεγαλύτερου) δίσκου στην τελική του θέση, που απαιτεί 1
κίνηση
Η μεταφορά Ν-1 δίσκων από το βοηθητικό δίσκο, στον τελικό στύλο που απαιτεί Τ(Ν-1) κινήσεις
Άρα: Τ(Ν) = 2* T(N-1)+1.
Βέβαια, αυτό το αποτέλεσμα μας λέει ότι οι κινήσεις 2*Τ(Ν-1) -1 είναι αρκετές για την επίλυση του
πύργου. Δεν ξέρουμε όμως αν είναι και η καλύτερη λύση. Για μια πλήρη τυπική απόδειξη δες το
βιβλίο του Graham R. L. et als (1988).

Θα ήταν χρήσιμο με τη βοήθεια ενός λογιστικού φύλου να υπολογιστούν μερικές τιμές της f(n) για
να φανεί η «ταχύτητα» με την οποία αυξάνουν οι τιμές της συνάρτησης (στο σημείο αυτό ο
εκπαιδευτικός μπορεί να κάνει τη διασύνδεση με συναρτήσεις των οποίων οι τιμές «αυξάνουν
γρήγορα» όπως είχε αναφερθεί στην πολυπλοκότητα αλγορίθμων – εφόσον βέβαια έχει ή

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 15 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

διδαχθεί):

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

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 16 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

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

1.8 Πολλαπλές αναπαραστάσεις και πολλαπλές προσεγγίσεις


Οι αναδρομικές συναρτήσεις έχουν τουλάχιστον 2 διαφορετικούς τρόπους αναπαράστασης:
(1) Με βάση τον κώδικα (σε γλώσσα καθαρά αλγοριθμική ή προγραμματισμού)
(2) Με βάση προσομοιώσεις της εκτέλεσης του προγράμματος (αυτοματοποιημένες, ή «με το
χέρι»), ο χρήστης μπορεί να παρακολουθήσει την εξέλιξη της εκτέλεσης αυτής.
Η κάθε μια προσέγγιση προφέρει μαι διαφορετική «οπτική» της αναδρομής
Επιπρόσθετα, δραστηριότητες όπως ο υπολογισμός των απαιτούμενων κινήσεων κ.ά. συμβάλλουν
ουσιαστικά στην κατανόηση της αναδρομής.

1.9 Πρόβλεψη δυσκολιών στο διδακτικό σενάριο


¨Όπως έχει αναφερθεί και παραπάνω, η αναδρομή είναι γενικά μια τεχνική που απαιτεί βαθειά
κατανόηση από την πλευρά του προγραμματιστή – μαθητή.
Αυτό, αναμένεται να λειτουργήσει ως το πιο μεγάλο εμπόδιο για τους μαθητές, οι οποίοι δεν είναι
εύκολο να αντιληφθούν τον τρόπο με τον οποίο ο Η.Υ. με ελάχιστο πλήθος εντολών εκτελεί ένα
μεγάλο πλήθος πολύπλοκων «κινήσεων».

1.10 Γιατί χρησιμοποιείται ο Η.Υ. (και γενικότερα τα ψηφιακά


μέσα)
Στην πραγματικότητα, μπορούμε να ισχυριστούμε ότι στο επίπεδο του σχολείου, η αναδρομή έχει
νόημα μόνο με τη χρήση Η.Υ., καθώς σκοπός δεν είναι η μελέτη γενικά των αναδρομικών
διαδικασιών και συναρτήσεων σε κάποιο θεωρητικό πλαίσιο, αλλά η χρήση τους στον
προγραμματισμό.

1.11 Διδακτικός θόρυβος


Δεν προβλέπεται η ύπαρξη κάποιου ιδιαίτερου διδκτικού θορύβου. Αναμένεται ωστόσο μια
ενδεχόμενη περίοδος «καθοδηγούμενης» ανακάλυψης, έως ότου οι μαθητέ κατανοήσουν τους
μηχανισμούς της αναδρομής ώστς να είναι σε θέση να προγραμματίσουν μόνοι τους.

1.12 Χρήση εξωτερικών πηγών


Χρησιμοποιούνται αρκετές εξωτερικές πηγές που είναι διάσπαρτες μέσα στο κείμενο.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 17 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

Ο πύργος του Ανόι, με σχετικές αναλύσεις και οδηγίες υπάρχει και στο Φωτόδενδρο.
http://photodentro.edu.gr/aggregator/lo/photodentro-lor-8521-10691
Εκεί επιλύονται αναδρομικά και με animation δυο προβλήματα:
 Ο υπολογισμός του Ν! (Ν παραγοντικό)
 Η εύρεση ενός στοιχείου σε ταξινομημένο πίανκα με δυαδική αναζήτηση,

ενώ η αναδρομική λύση του πύργου του Ανόι υπάρχει στα διαθέσιμα προγράμματα που
συνοδεύουν το Διερμηνευτή της Γλώσσας.

1.13 Υποκείμενη θεωρία μάθησης


Το σενάριο βασίζεται στη διερεύνηση εννοιών και προϋποθέτει ότι οι μαθητές θα έχουν τη
δυνατότητα να διερευνήσουν μόνοι τους τα ερωτήματα.
Οι μαθητές θα πρέπει να είναι οργανωμένοι σε μικρές ομάδες (ιδανικά 2-3 ατόμων) ώστε
συνεργαζόμενοι να μπορέσουν να απαντήσουν στα ερωτήματα καόμη και με τη χρήση
βοηθητικ΄’ων προγραμμάτων (για παράδειγμα λογιστικών φύλλων).
Το μάθημα λοιπόν βασίζεται σε κονστρουκτιβιστικές θεωρίες και στη συνεργασία μεταξύ των
μαθητών,

1.14 Επισήμανση μικρομεταβολών στην οργάνωση του


μαθήματος και στο νόημα των εννοιών
Εδώ θα πρέπει να επισημανθεί ότι ενδεχομένως να υπάρξουν κάποια σημεία που χρειάζονται
προσοχή, καθώς η μετάβαση από έναν αλγόριθμο που περιγράφεται με αφηρημένο τρόπο σε μια
συγκεκριμένη υλοποίησή του με μια γλώσσα προγραμματισμού μπορεί να αποδειχθεί πιο περίπλοκη
από όσο θα περίμενε κανείς. Για πράδειγμα, αλγόριθμοι που μπορεί να περιγραφούν κάπως γενικά
με αναφορές σε «σύνολα αριθμών» θα πρέπει να προγραμματιστούν με συγκεκριμένες δομές
δεδομένων κ.λπ.

1.15 Διδακτικό συμβόλαιο


Όπως και σε άλλα σενάρια στην Πληροφορική και ιδιαίτερα στον προγραμματισμό, το
«συνηθισμένο» διδακτικό συμβόλαιο ορίζει ότι η ορθότητα μιας λύσης (ενός προγράμματος)
καθορίζεται από τα αποτελέσματα της εκτέλεσης. Η ορθότητα των αλγορίθμων αντίθετα, είναι υπό
διαπραγμάτευση στην τάξη.
Όπως και σε άλλα σημεία του σεναρίου έχει τονιστεί, αν και οι αλγόριθμοι με αναδρομή είναι
σχετικά απλοί, δεν είναι πάντοτε εμφανής (δηλαδή δε συνάδει με τη διαίσθηση των μαθητών) ο
τρόπος με τον οποίο λειτουργεί το πρόγραμμα και παράγει τα αποτελέσματα – η θεμελιώδης
λειτουργία της στοίβας (stack) παραμένει κρυφή για τους μαθητές.

1.16 Οργάνωση της τάξης – Εφικτότητα της σχεδίασης


Γενικά προτείνεται η οργάνωση της τάξης σε μικρές ομάδες των 2-3 ατόμων και οιλόγοι
αναλύθηκαν στην παράγραφο 1.13 παραπάνω.
Οι χρόνοι φαίνονται ρεασλιστικοί, αλλά έτσι κι αλλιώς ρυθμίζονται από τον εκπαιδευτικό.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 18 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

1.17 Περιγραφή και ανάλυση των φύλλων εργασίας

1.17.1 Φύλλο εργασίας 1

Ένα παιχνίδι που ονομάζεται «πύργος του Ανόι» (το Ανόι, είναι η παλιά πρωτεύουσα του Βιετνάμ)
Προκαταρκτικά
Το παιχνίδι, ονομάζεται ακόμη και Πύργοs του Βράχμα. Αποτελείται από τρεις ράβδους και
δίσκους διαφορετικών μεγεθών, οι οποίοι μπορούν να μετακινηθούν από μια ράβδο σε
οποιαδήποτε άλλη. To παιχνίδι ξεκινάει με τους δίσκους σε μια ενιαία στοίβα σε μια αύξουσα σειρά
μεγέθους (από τη βάση προς την κορυφή) σε μία ράβδο. Η μικρότερη βρίσκεται στην κορυφή,
δημιουργώντας έτσι ένα κωνικό σχήμα.
Ο στόχος του παιννιδιού είναι να μετακινηθεί ολόκληρη η στοίβα σε μια άλλη ράβδο,
ακολουθώντας τους ακόλουθους απλούς κανόνες:
1. Μόνο ένας δίσκος μπορεί να μετακινηθεί κάθε φορά.
2. Κάθε κίνηση βασίζεται στη λήψη του ανώτερου δίσκου σε μία από τις στοίβες και στην
τοποθέτηση του πάνω στην άλλη στοίβα ή σε μια άδεια ράβδο.
3. Δεν μπορεί να τοποθετηθεί μεγαλύτερος δίσκος πάνω από μικρότερο δίσκο.

Η παρακάτω εικόνα δείχνει έναν πύργο με 5 δίσκους, στην αρχική κατάσταση. Το παιχνίδι
τελειώνει όταν όλοι οι δίσκοι μεταφερθούν στον τελευταίο στύλο, ενδεχομένως χρησιμοποιώντας
βοηθητικά και τον μεσαίο.

Για να παίξετε το παιχνίδι μπορείτε να χρησιμοποιήσετε κέρματα πάνω σε ένα χαρτί, όπου τρία
σημεία υποτίθεται ότι θα είναι οι στύλοι. Αντί για κέρματα, αν έχετε πρόσβαση στο Διαδίκτυο,
μπορείτε να μεταβείτε στο site: http://dsphinx.mysch.gr/games.php?id=hanoi.html
Ο μύθος λέει ότι επρόκειτο για ένα παιχνίδι που παίζαν οι Βουδιστές καλόγεροι με διαμαντένιους
στύλους και χρυσούς δίσκους.
Ο Βράχμα, στην αρχή του χρόνου (δηλαδή στη δημιουργία του Σύμπαντος,) είπε στους
καλόγερους να παίξουν το παιχνίδι και να το τερματίσουν με 64 δίσκους. Προφήτευσε μάλιστα ότι
με τον τερματισμό του παιχνιδιού ο κόσμος (το Σϋμπαν) θα καταρρεύσει..
Σωστό; Λάθος; Ποιος ξέρει...

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1
Ας ξεκινήσουμε από τα εύκολα.
Παίξτε το παιχνίδι με έναν και μόνο δίσκο.
Παίξτε το παιχνίδι με δυο δίσκους.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 19 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

Παίξτε το παιχνίδι με τρείς δίσκους.


Παίξτε το παιχνίδι με τέσσερις δίσκους.

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 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

Άρα, στο σημείο αυτό γνωρίζετε πως να μεταφέρετε 3 δίσκους Α,Β,C.

Δοκιμάστε να τον λύστε με όλους τους δυνατούς τρόπους:


Α,Β,C (δηλαδή ξεκινώντας έχοντας 3 δίσκους στο στύλο Α, να τους μεταφέρετε στο C με τη
βοήθεια του Β)
A,C,B (δηλαδή ξεκινώντας έχοντας 3 δίσκους στο στύλο Α, να τους μεταφέρετε στο Β με τη
βοήθεια του Β)
B,C,A,… κ.ο.κ.

Μπορείτε να διατυπώσετε (με λόγια) έναν αλγόριθμο για τη λύση του πύργου με τρεις δίσκους
(ανεξάρτητα από τη σειρά των Α,Β,C); Γράψτε τον
Αλγόριθμος για 3 δίσκους.....
Μπορείτε να δείτε μια εικονική περιγραφή της λύσης του Ανόι για τρεις δίσκους:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 20 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4
Mε την ίδια τεχνική, μπορούμε να γενικεύσουμε για τέσσερις δίσκους:

Α,C,B – χάρη στον αλγόριθμο για 3 δίσκους της ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 3


Α,Β,C για ένα δίσκο (τον τελευταίο)
B,A,C – χάρη στον αλγόριθμο για 3 δίσκους της ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 3

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 5
Μπορούμε ίσως να επιχειρήσουμε να γενικεύσουμε για Ν δίσκους. Χρειάζεται να:
 να μετακινήσω Ν δίσκους από τον Α στο Β στην τριάδα (Α,C,Β)
 να μετακινήσω έναν δίσκο από το Α στο C στην τριάδα (Α,Β,C)
 να μετακινήσω n δίσκους από το Β στο C στην τριάδα (Β,C,Α)

Φαίνεται ίσως κάπως πολύπλοκο, αλλά με λίγη εξάσκηση (και ίσως κρατώντας σημειώσεις) να το
«επιλύσετε» με 3,4,5, δίσκους – από εκεί και πέρα όλα είναι πιο εύκολα.

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 6
Η τεχνική αυτή κατά την οποία:
για να επιλύσω ένα πρόβλημα με Ν στοιχεία (ή για τον αριθμό Ν), πρέπει να το επιλύσω για Ν-1
στοιχεία,
για να επιλύσω ένα πρόβλημα με Ν-1 στοιχεία (ή για τον αριθμό Ν-1), πρέπει να το επιλύσω για Ν-
2 στοιχεία,
για να επιλύσω ένα πρόβλημα με Ν-2 στοιχεία (ή για τον αριθμό Ν-2), πρέπει να το επιλύσω για Ν-
3 στοιχεία,
.... κ.ο.κ.
μέχρις ότου χρειάζομαι να το επιλύσω για 1 στχείο (ή για τον αριθμό 1) – που είναι τετριμμένο
ονομάζεται αναδρομή.

Ακολουθεί ένα πρόγραμμα, γραμμένο σε Python, για τον πύργο του Ανόι, που χρησιμοποιεί
αναδρομή:

def TowerOfHanoi(n , begin, destination, auxilliary):


if n == 1:
print("Metakinise ton epano disko apo to stylo",begin,"sto sylo ",destination)

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 21 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

return
TowerOfHanoi(n-1, begin, auxilliary, destination)
print("Metakinise ena disko apo to stylo",begin,"sto stylo ",destination)
TowerOfHanoi(n-1, auxilliary, destination, begin)

n = int(input("Δώσε το πλήθος των δίσκων "))


TowerOfHanoi(n, 'A', 'B', 'C')

Μπορείτε να το δοκιμάστε και να επαληθεύστε τη λειτουργία του.

Στο περιβάλον ΓΛΩΣΣΑ μπορείτε επίσης να δείτε το πρόγραμμα για τον πύργο του Ανόι σε
ΓΛΩΣΣΑ:

ΠΡΟΓΡΑΜΜΑ ΠύργοιΤουΑνόι
ΣΤΑΘΕΡΕΣ
Στύλος1 = 'Α'
Στύλος2 = 'Β'
Στύλος3 = 'Δ'
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε τον αριθμό των
δίσκων: '
ΔΙΑΒΑΣΕ Ν
ΚΑΛΕΣΕ Μετακίνησε(Ν, Στύλος1, Στύλος2, Στύλος3)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ Μετακίνησε(Ν, ΣτύλοςΑ, ΣτύλοςΒ, ΣτύλοςΓ)


ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν
ΧΑΡΑΚΤΗΡΕΣ: ΣτύλοςΑ, ΣτύλοςΒ, ΣτύλοςΓ
ΑΡΧΗ
ΑΝ Ν = 1 ΤΟΤΕ
ΓΡΑΨΕ 'Μετακίνησε από τον ', ΣτύλοςΑ, ' στον ', ΣτύλοςΓ
ΑΛΛΙΩΣ
ΚΑΛΕΣΕ Μετακίνησε(Ν - 1, ΣτύλοςΑ, ΣτύλοςΓ, ΣτύλοςΒ)
ΓΡΑΨΕ 'Μετακίνησε από τον ', ΣτύλοςΑ, ' στον ', ΣτύλοςΓ
ΚΑΛΕΣΕ Μετακίνησε(Ν - 1, ΣτύλοςΒ, ΣτύλοςΑ, ΣτύλοςΓ)
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

1.17.2 Φύλλο εργασίας 2


Αναδρομικές διαδικασίες

Η αναδρομή μπορεί να εφαρμοστεί σε ένα πλήθος προβλημάτων, καθώς είναι εξαιρετικά απλή.
Στα παρακάτω προτείνονται μερικά προβλήματα που επιλύονται με αναδρομή, αν και ήδη είναι

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 22 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

γνωστή μια τουλάχιστον λύσή τους με επαναληπτικές διαδικασίες.


Για τα παρακάτω, αρκεί μια περιγραφή του αλγορίθμου σε φυσική γλώσσα – χωρίς να είναι
απαραίτητο το αντίστοιχο πρόγραμμα.
Όπως και στον πύργο του Ανόι, για να λειτουργήσει η αναδρομή χρειάζονται:
(α) μια βασική, τερριμμένη περίπτωση του προβλήματος, της οποίας γνωρίζουμε ήδη τη λύση
(β) μια διαδικασία με την οποία το πρόβλημα επιλύεται για Ν, αν είναι γνωστή η λύση του (ή αν
μπορεί να να υπολογιστεί), για Ν-1, Ν-2,...

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 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

(φυσικός πόρος: http://photodentro.edu.gr/v/item/ds/8521/10691)

μπορείτε να δείτε τον αλγόριθμο και μια animation με την εκτέλεσή του.

Υπολογισμός του ελαχίστου από μια σειρά αριθμών


Πρόκειται για τον υπολογισμό του ελαχίστου από ένα σύνολο αρθμών, αν είναι η γνωστή η
διαδικασία με την οποία από 2 αριθμούς μπορούμε να αποφανθούμε ποιος είναι μικρότερος.

Έστω ότι μια συνάρτηση nikroteros (A,B) δέχεται ως ορίσματα δυο αριθμούς A,B και επιστρέφει
τον μικρότερο από αυτούς. Αυτή η συνάρτηση υπάρχει ή μπορεί εύκολα να δημιουργηθεί σε όλες
τις γλώσσες προγραμματισμού.

Τότε, ο υπολογισμός του ελαχίστου μπορεί να γίνει ως εξής:

Minimum (ενός συνόλου αριθμών)


αν το σύνολο έχει μόνο ένα στοιχείο τότε αυτό είναι o ελάχιστος
αλλιώς o ελάχιστος είναι ο mikroteros (πρώτου στοιχείου του συνόλου, Minimum (των
υπόλοιπων στοιχείων του συνόλου εκτός του πρώτου))

Ο προγραμματισμός του αλγορίθμου σε μια γλώσσα προγραμματισμού, εξερτάται απόι τη δομή

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 23 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

δεδομένων που θα χρησιμοποιηθεί.

Υπολογισμός του μεγίστου από μια σειρά αριθμών


Εντελώς συμμετρικά, πρόκειται για τον υπολογισμό του μεγίστου από ένα σύνολο αρθμών, αν είναι
η γνωστή η διαδικασία με την οποία από 2 αριθμούς μπορούμε να αποφανθούμε ποιος είναι
μεγαλύτερος.

Έστω ότι μια συνάρτηση megalyteros (A,B) δέχεται ως ορίσματα δυο αριθμούς A,B και επιστρέφει
τον μεγαλύτερο από αυτούς. Αυτή η συνάρτηση υπάρχει ή μπορεί εύκολα να δημιουργηθεί σε όλες
τις γλώσσες προγραμματισμού.

Τότε, ο υπολογισμός του μεγίστου μπορεί να γίνει ως εξής:

Maximum (ενός συνόλου αριθμών)


αν το σύνολο έχει μόνο ένα στοιχείο τότε αυτό είναι o μέγιστος
αλλιώς o μέγιστος είναι ο megalyteros (πρώτου στοιχείου του συνόλου, Maximum (των
υπόλοιπων στοιχείων του συνόλου εκτός του πρώτου))

Ο προγραμματισμός του αλγορίθμου σε μια γλώσσα προγραμματισμού, εξερτάται απόι τη δομή


δεδομένων που θα χρησιμοποιηθεί.

Άθροισμα Ν ακεραίων αριθμών

Έστω ότι έχουμε μια συνάρτηση athroisma (A,B) η οποία επιστρέφει ως αποτέλεσμα το άθροισμα
Α+Β.

Τότε ο υπολογισμός του αθροίσματος των Ν αριθμών, μπορεί να γίνει ως εξής:

GenikoAthroisma (Ν αριθμών)
αν το σύνολο έχει μόνο ένα στοιχείο τότε αυτό είναι το άθροισμα
αλλιώς το άθροισμα είναι το athroisma (πρώτου στοιχείου του συνόλου,
GenikoAthroisma(των υπόλοιπων στοιχείων του συνόλου εκτός του πρώτου))

Ο προγραμματισμός του αλγορίθμου σε μια γλώσσα προγραμματισμού, εξερτάται απόι τη δομή


δεδομένων που θα χρησιμοποιηθεί.

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 2
Πόσες μετακινήσεις δίσκων χρειάζεται ο πύργος τυ Ανόι;
Προσπαθήστε να υπολογίσετε το πλήθος των κινήσεων που απαιτούνται για 0,1,2,3,4,5,...
δίσκους.
Σκεφθείτε ότι η «επίλυση» του πύργου για Ν δίσκους, χρειάζεται 1 + 2*(Ν-1) κινήσεις.
Επαληθεύστε ότι αυτό ισχύει για μικρές τιμές του Ν.
Μήπως θα μποορύσατε νς βρείτε κάποιο αναλυτικό τύπο για τον απευθείας υπολογισμό του
αριθμού των κινήσεων;

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 24 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
Η προφητεία για την κατάρρευση του κόσμου
Υπάρχει περίπτωση η «προφητεία» της κατάρρευσης του κόσμου, αν κάποιος μοναχός καταφέρει
να «λύσει» τον πύργο του Hanoi με 64 δίσκους, να είναι αληθινή;
Κατά κάποιο τρόπο μπορεί η προφητεία να βγει αληθινή, αλλά αυτό δεν έχει καμιά μεταφυσική
εξήγηση.
Για να «επιλυθεί» ο πύργος του Hanoi χρειάζονται 264-1 κινήσεις των δίσκων.
Θα μπορούσατε να υπολογίσετε (με τη βοήθεια ενός λογιστικού φύλλου ίσως) τον αριθμό αυτό και
τον απαιτούμενο χρόνο για την εκτέλεση τόσων κινήσεων;
Αν κάθε μετακίνηση δίσκου χρειάζεται 1 sec, τότε πόσος είναι ο συνολικός χρόνος για τη
μετακίνηση 64 δίσκων;

2 Αλγοριθμική – Διαγράμματα Ροής και Διερμηνευτής της


Γλώσσας
Στην ενότητα αυτή, παρουσιάζονται δυο περιβάλλοντα προγραμματισμού ο «Δημιουργός
Διαγραμμάτων Ροής» και ο «Διερμηνευτής της Γλώσσας», γνωστά ήδη εδώ και αρκετά χρόνια και
χρησιμοποιούμενα στην εκπαίδευση και δραστηριότητες για τη χρήση τους στην τάξη.
Το εκπαιδευτικό περιβάλλον της «Αλγοριθμικής & Προγραμματισμού», το οποίο τα ενσωματώνει
είναι διαθέσιμο στο Φωτόδενδρο στην εξής ηλεκτρονική διεύθυνση:
http://photodentro.edu.gr/edusoft/r/8531/236.
Είναι ενδεχόμενο ορισμένα από τα ενσωματωμένα λογισμικά να μην είναι συμβατά με τα σύγχρονα
περιβάλλοντα. Μπορείτε να εντοπίσετε νεότερες εκδόσεις του λογισμικού «Διερμηνευτής της
Γλώσσας» απευθείας στη διεύθυνση http://alkisg.mysch.gr/downloads/.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 25 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

2.1 Χώρος Δραστηριοτήτων

Οι δραστηριότητες που σχεδιάζονται για τη διδασκαλία του προγραμματισμού, παρουσιάζονται


μέσω ενός ολοκληρωμένου περιβάλλοντος που ονομάζεται ‘Χώρος Δραστηριοτήτων’. Η προσέγγιση
αυτή, μειώνει πολύ τον χρόνο και τις μηχανιστικές ενέργειες που απαιτούνται από τον μαθητή
ώστε να εκτελέσει στερεότυπους στόχους (όπως η εξέταση του φύλλου δραστηριότητας, η
ανάκτηση αρχείων σχετικών με τη δραστηριότητα, η μετάβαση στο ζητούμενο εκπαιδευτικό
περιβάλλον κλπ.). Προκειμένου να παρουσιαστούν αποτελεσματικά οι δραστηριότητες στους
μαθητές, πρέπει να υποστηρίζεται όχι μόνο κείμενο αλλά και ένα σύνολο άλλων μέσων όπως
εικόνες, βίντεο και ήχος.
Η εισαγωγική οθόνη του ‘Χώρου Δραστηριοτήτων’ επιτρέπει στον μαθητή να επιλέξει μια
συγκεκριμένη δραστηριότητα. Στη συνέχεια, οι σχετικές με τη δραστηριότητα οδηγίες
παρουσιάζονται στο αριστερό μέρος της οθόνης χρήστη. Τα συνοδευτικά αρχεία (φύλλο
δραστηριότητας, αρχεία προγράμματος που αντιπροσωπεύουν ενδιάμεσες καταστάσεις της
δραστηριότητας, αρχεία παρουσίασης) παρουσιάζονται στο δεξιό μέρος. Κάθε ένα από τα αρχεία
συνδέεται με την αντίστοιχη εφαρμογή, επιτρέποντας τη στιγμιαία μετάβαση σε αυτή χωρίς την
ανάγκη μετάβασης με χειρωνακτικό τρόπο στα ανοιχτά παράθυρα, κ.λπ. Ο ‘Χώρος
Δραστηριοτήτων’ έχει σχεδιαστεί με τρόπο που να μπορεί να υποστηρίξει οποιαδήποτε μορφή
δραστηριότητας, με σκοπό να υποστηρίξει τη διδασκαλία και άλλων γνωστικών αντικειμένων με
ελάχιστες τροποποιήσεις.

2.2 Δημιουργός Διαγραμμάτων Ροής


Ο «Δημιουργός Διαγραμμάτων Ροής» είναι ένα ανοιχτό περιβάλλον ανάπτυξης και εκτέλεσης
αλγορίθμων απευθείας από μορφή διαγραμμάτων ροής. Η επιφάνεια εργασίας ακολουθεί τις
κλασσικές συμβάσεις χρηστοκεντρικού σχεδιασμού με τις οποίες είναι εξοικειωμένη η πλειοψηφία
των προσδοκώμενων χρηστών. Ακολουθεί την κλασσική φιλοσοφία μιας παραθυρικής εφαρμογής

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 26 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

(γραμμή μενού, εργαλείων, κουμπιά εκτέλεσης κτλ.). Τα αντικείμενα που βρίσκονται στην
αριστερή εργαλειοθήκη επιτρέπουν την εισαγωγή των δομικών στοιχείων που περιγράφουν οπτικά
τον αλγόριθμο. Ο σχεδιασμός των διαγραμμάτων γίνεται με γραφικό τρόπο (στυλ απευθείας
χειρισμού), δηλαδή με την τοποθέτηση αντικειμένων εντολών ή αποφάσεων και τη σύνδεσή τους
με γραμμές ροής εκτέλεσης. Οι βασικές συμβάσεις σχεδιασμού παραθυρικών περιβαλλόντων έχουν
διατηρηθεί προκειμένου να ελαχιστοποιηθεί ο γνωστικός φόρτος εκμάθησης της διεπιφάνειας
χρήσης από πλευράς του μαθητή.

Η προσέγγιση της διαδικασίας εκτέλεσης της εργασίας συνάδει απόλυτα με τη γραφική φύση των
διαγραμμάτων ροής. H ανάπτυξη αλγορίθμων γίνεται με την τεχνική drag & drop: οι διαθέσιμες
«εντολές» που είναι τα δομικά συστατικά ενός διαγράμματος ροής (κουτιά εισόδου, εξόδου,
επιλογής και ενέργειας) εμφανίζονται στο αριστερό πλαίσιο του προγράμματος και ο μαθητής τα
«σέρνει» στον κυρίως χώρο του προγράμματος για να κατασκευάσει τον αλγόριθμο με οπτικό
τρόπο. Τα αντικείμενα αυτά μπορεί να τα τροποποιήσει, να τα τοποθετήσει σε κατάλληλη θέση στο
χώρο εργασίας και να τα συνδέσει μεταξύ τους για να εκφράσει τον αλγόριθμο που επιθυμεί. Τα
δομικά αυτά συστατικά συνδέονται με κατευθυνόμενες γραμμές, ενώ παρέχεται η δυνατότητα της
προσομοίωσης της εκτέλεσης του αλγορίθμου. Η επισκόπηση του αποτελέσματος του αλγόριθμου
γίνεται μέσα από το σχετικό παράθυρο εκτέλεσης (Εικόνα 2), ενώ είναι δυνατή η βήμα προς βήμα
αλλά και η αργή εκτέλεση και η παρακολούθηση των τιμών των μεταβλητών. Παράλληλα,
διάφοροι χαρακτηριστικοί αλγόριθμοι είναι προαποθηκευμένοι με τη μορφή παραδειγμάτων,
δίνοντας την ευκαιρία στον μαθητή να πειραματιστεί με αυτούς. Σχετικές έρευνες έχουν δείξει την
αποτελεσματικότητα των οπτικών αναπαραστάσεων ενός αλγορίθμου (Vessey and Weber 1986,
Cunniff and Τaylor 1987, Scanlan 1989), ειδικά εάν οι μαθητές βρίσκονται στα πρώτα στάδια της
διαδικασίας εκμάθησης του προγραμματισμού.
Τα διαθέσιμα δομικά αντικείμενα που παρέχει ο «Δημιουργός Διαγραμμάτων Ροής» για την
οικοδόμηση των διαγραμμάτων ροής είναι αρχή και τέλος προγράμματος, είσοδος και έξοδος,
εκχώρηση τιμής σε μεταβλητή, στοιχειώδεις αριθμητικές και αλφαριθμητικές πράξεις και λογικός

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 27 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

βρόχος Εάν ... Τότε. Παράλληλα, δίνεται η δυνατότητα αποθήκευσης ενός αλγορίθμου ως
συνάρτηση που μπορεί να κληθεί από άλλο αλγόριθμο καθώς και από τον εαυτό του
(αναδρομικότητα). Παρέχεται η δυνατότητα κατασκευής ψευδοεκτελέσιμου αρχείου, που επιτρέπει
την αυτόνομη εκτέλεση ενός αλγορίθμου χωρίς να απαιτείται το περιβάλλον εργασίας του
‘Δημιουργού Διαγραμμάτων Ροής’. Τέλος, ο χρήστης μπορεί να επισκοπήσει ανά πάσα στιγμή, κατά
τη διάρκεια εκτέλεσης του αλγορίθμου, τις τιμές των χρησιμοποιούμενων μεταβλητών καθώς και
μιας προσομοιούμενης στοίβας μνήμης.

2.3 Διερμηνευτής της Γλώσσας


Προκειμένου να παρουσιαστεί μια ολοκληρωμένη εκπαιδευτική πλατφόρμα στον μαθητή,
σχεδιάστηκε και ένα περιβάλλον έκφρασης του αλγορίθμου με χρήση ψευδοκώδικα (το οποίο
αποκαλείται «Διερμηνευτής της Γλώσσας») το οποίο μπορεί να χρησιμοποιηθεί συμπληρωματικά με
το ‘Δημιουργό Διαγραμμάτων Ροής’. Η γλώσσα που χρησιμοποιείται έχει παρόμοια δομικά και
συντακτικά χαρακτηριστικά με κλασσικές, διαδεδομένες γλώσσες προγραμματισμού όπως η
PASCAL και η C, χωρίς όμως να εμπεριέχει και τις ιδιαιτερότητες αυτών, οι οποίες είναι ελάσσονος
μαθησιακής αξίας για τη διδασκαλία προγραμματισμού σε εισαγωγικό επίπεδο. Επιπλέον, η
χρησιμοποιούμενη μορφή ψευδοκώδικα είναι στην ελληνική γλώσσα, μειώνοντας κατά συνέπεια
τον απαιτούμενο γνωστικό φόρτο για τη διαχείριση και κατανόησή της από την πλευρά των
μαθητών. Η αλγοριθμική γλώσσα που χρησιμοποιείται είναι αυτή που περιγράφεται στο Πρόγραμμα
Σπουδών της Πληροφορικής και αφορά στο μάθημα «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό
Περιβάλλον» της Γ’ τάξης του Ενιαίου Λυκείου, σύμφωνα με τις προδιαγραφές του Παιδαγωγικού
Ινστιτούτου.
Ο σχεδιασμός της διεπιφάνειας χρήσης του περιβάλλοντος, ακολουθεί τις τυπικές συμβάσεις
σχεδιασμού παραθυρικών εφαρμογών, με τη χρήση μενού εργαλείων και μπάρας κατάστασης, ενώ
παράλληλα η διαμόρφωση του χώρου εργασίας μοιάζει σημαντικά με τα περιβάλλοντα συγγραφής
κώδικα των κλασσικών γλωσσών προγραμματισμού. Ο χώρος εργασίας οργανώνεται λογικά σε τρεις
διακριτές περιοχές: την περιοχή συγγραφής κώδικα, την περιοχή οθόνης χρήστη και την περιοχή
μεταβλητών και συναρτήσεων. Ο χρήστης μπορεί να μεταβεί στις αντίστοιχες όψεις με την επιλογή
μιας συγκεκριμένης ετικέτας.
Για τη γρήγορη συγγραφή του ψευδοκώδικα στον «Διερμηνευτή της Γλώσσας», υπάρχει πρόνοια
και υποστήριξη με έναν αριθμό συντομεύσεων ενσωματωμένων στη διεπιφάνεια χρήσης. Για
παράδειγμα, ο μαθητής μπορεί να επιλέξει με το ποντίκι τις σχετικές δεσμευμένες λέξεις από την
ομώνυμη καρτέλα ή να χρησιμοποιήσει τις αντίστοιχες συντομεύσεις πληκτρολογίου ή τις
δυνατότητες αυτόματης συμπλήρωσης. Η χρήση ενός υπολογιστικού εργαλείου κατά τη διάρκεια
ανάπτυξης ενός αλγορίθμου είναι εξαιρετικά ωφέλιμη για την απαλοιφή των συντακτικών λαθών και
την εξασφάλιση της καθοριστικότητας και αποτελεσματικότητας του αλγορίθμου. Ο «Διερμηνευτής
της Γλώσσας» εμπεριέχει πάνω από τετρακόσια επεξηγηματικά μηνύματα, σε περίπτωση συντακτικών
ή και λογικών λαθών. Τα μηνύματα αυτά δεν αναφέρουν μόνο τη πιθανή αιτία σφάλματος αλλά
παρέχουν εποικοδομητικές συμβουλές σε υψηλό επίπεδο για να καθοδηγήσουν τους μαθητές στη
σωστή διατύπωση της λύσης του προβλήματος.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 28 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

Η φάση εκτέλεσης και παρατήρησης της συμπεριφοράς του αλγορίθμου, υποστηρίζεται με μια
πληθώρα σχετικών εργαλείων. Ο μαθητής μπορεί να εκκινήσει ή να παύσει την εκτέλεση του
αλγορίθμου να δώσει είσοδο ή να παρακολουθεί την έξοδο του προγράμματος από την καρτέλα
‘Οθόνη χρήστη’. Παράλληλα, μέσω των εργαλείων βήμα προς βήμα εκτέλεσης, των σημείων
διακοπής, της καρτέλα ‘Μεταβλητές’ και της καρτέλα ‘Εκφράσεις’ είναι δυνατή η αναλυτική μελέτη
της εκτέλεσης του αλγορίθμου. Παρακολουθώντας και πιθανώς μεταβάλλοντας τις τιμές των
μεταβλητών για οποιοδήποτε υποπρόγραμμα, ο μαθητής μπορεί να επέμβει στη ροή εκτέλεσης του
προγράμματος, ανακαλύπτοντας και διορθώνοντας έτσι τυχόν λογικά λάθη, ή και
βελτιστοποιώντας περαιτέρω τον αλγόριθμο.

Εντούτοις, για να εξασφαλίσουμε πλήρη ένταξη του εκπαιδευτικού λογισμικού στη διαδικασία
εκμάθησης, πρέπει να λάβουμε υπόψη διάφορες παραμέτρους που απορρέουν από το πλαίσιο στο
οποίο λαμβάνει χώρα η διδακτική παρέμβαση. Για παράδειγμα, ένα χαρακτηριστικό σενάριο στην
τάξη είναι αυτό στο οποίο ο δάσκαλος θέλει να χρησιμοποιήσει το «Διερμηνευτή της Γλώσσας» για
να παρουσιάσει στους μαθητές ένα αλγόριθμο ταξινόμησης. Το σενάριο αυτό, απαιτεί μια φάση
προετοιμασίας και εισόδου εφαρμογής μιας μεγάλης μήτρας που εμπεριέχει μια ποσότητα
αριθμητικών στοιχείων προς ταξινόμηση. Ο «Διερμηνευτής της Γλώσσας» υποστηρίζει την a priori
εισαγωγή δεδομένων με τη χρήση της σχετικής καρτέλας εισαγωγής στοιχείων. Τα στοιχεία αυτά
συσχετίζονται και αποθηκεύονται μαζί με τον αλγόριθμο. Έτσι, τα στάδια της τυποποιημένης
εισαγωγής στοιχείων μπορούν να παραλειφθούν και η διδακτική παρέμβαση να εστιάζει στα
ουσιαστικά ζητήματα της διαδικασίας.
Καθώς ο «Διερμηνευτής της Γλώσσας» σχεδιάστηκε με στόχο να αποτελέσει ένα εκπαιδευτικό
περιβάλλον και όχι ένα περιβάλλον προγραμματισμού, εμπεριέχει και αρκετές ακόμα δυνατότητες
για την απόκρυψη προγραμματιστικών λεπτομερειών από τους μαθητές. Για παράδειγμα, ένας

κλασσικός περιορισμός των υπολογιστικών συστημάτων που προκαλεί σύγχυση στους μαθητές
είναι η πεπερασμένη ακρίβεια των αριθμών. Συνήθως, ένας βρόχος «ΓΙΑ π ΑΠΟ 0.01 ΜΕΧΡΙ 1
ΜΕ_ΒΗΜΑ 0.01» δεν εκτελείται 100 φορές όπως αναμένουν οι μαθητές, αλλά μόνο 99, αφού για

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 29 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

την τελική τιμή 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

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 30 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 11: Γλώσσα και αλγοριθμική - Αναδρομή Επιμορφωτικό Υλικό

complex problem solving, London: Addison Wesley (Third Edition).


Newell, A. and Simon, H. A. (1972), Human Problem Solving, NJ: Prentice Hall, Englewood Cliffs
Reitman, W. R. (1964), Heuristic design procedures, open constraints and the structure of ill-
defined problems, in Shelly, M. W. and Bryan, G. L. (eds.), Human Judgements and Optimality,
New York: Wiley and Sons.
Scanlan, D. A. (1989), Structured flowcharts outperform pseudocode: An experimental
comparison, IEEE Software, 6(5), 28–36.
Shneiderman, B. (1980), Software psychology: Human factors in computer and information
systems, MA, Cambridge: Winthrop.
Tselios, N., Avouris, N. and Kordaki, M. (2002), Student task modeling in design and evaluation
of open problem-solving environments, Journal of Education and Information Technologies, 7(1),
19-42.
Tselios, N., Avouris, N., Dimitracopoulou, A. and Daskalaki, S. (2001), Evaluation of distance-
learning environments: Impact of usability on student performance, International Journal of
Educational Telecommunications, 7(4), 355-378.
Weinberg, G. M. (1971), The psychology of computer programming, NJ, Princeton:Van Nostrand
Ziegler, U. and Crews, T. (1999), An integrated program development tool for teaching and
learning how to program, Proceedings of the 30th SIGCSE Symposium, 276-280, New Orleans,
Louisiana, USA
Κόμης, Β. (2005), Εισαγωγή στη Διδακτική της Πληροφορικής, Αθήνα: Εκδόσεις Κλειδάριθμος.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 31 από 31 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ

You might also like