edu.klimaka.gr

Πληροφορικής Γ' Λυκείου (Οδηγίες Διδασκαλίας)

ΟΔΗΓΙΕΣ ΔΙΔΑΣΚΑΛΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Γ΄ ΛΥΚΕΙΟΥ

Αρ.Πρωτ.131198/Δ2/30-09-2020/ΥΠΑΙΘ

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ Π/ΘΜΙΑΣ, Δ/ΘΜΙΑΣ
ΕΚΠ/ΣΗΣ ΚΑΙ ΕΙΔΙΚΗΣ ΑΓΩΓΗΣ
ΓΕΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ
Π/ΘΜΙΑΣ ΚΑΙ Δ/ΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ
ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ, ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙ
ΟΡΓΑΝΩΣΗΣ Δ/ΘΜΙΑΣ ΕΚΠ/ΣΗΣ
ΤΜΗΜΑ Α΄
Πληροφορίες: Αν. Πασχαλίδου
Θ. Κανελλοπούλου
Τηλέφωνο: 210-3443422
210-3443010

ΘΕΜΑ: Οδηγίες διδασκαλίας για το μάθημα «Πληροφορική» της Γ’ τάξης Ημερησίου και Εσπερινού Γενικού Λυκείου για το σχολικό έτος 2020-2021
Σχετ.: Τα με αρ. πρωτ. εισ. Υ.ΠΑΙ.Θ. 121406/Δ2/15-09-2020 και 121509/Δ2/15-09-2020 έγγραφα

Μετά από σχετική εισήγηση του Ινστιτούτου Εκπαιδευτικής Πολιτικής (πράξη 44/10-09-2020 του Δ.Σ) σας διαβιβάζουμε αρχείο με τις οδηγίες για τη διδασκαλία του μαθήματος της Πληροφορικής της Γ’ τάξης Ημερησίου και Εσπερινού Γενικού Λυκείου για το σχολικό έτος 2020-2021 και τη σειρά διδασκαλίας των κεφαλαίων/ενοτήτων κατά παρέκκλιση του με αρ. πρωτ. 112948/Δ2/01-09-2020 εγγράφου του Υ.ΠΑΙ.Θ..

Οι διδάσκοντες/ουσες να ενημερωθούν ενυπόγραφα.

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


 ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ

Οδηγίες διδασκαλίας για το πανελλαδικά εξεταζόμενο μάθημα ΠΛΗΡΟΦΟΡΙΚΗ της Γ΄ τάξης ΗΜΕΡΗΣΙΟΥ και ΕΣΠΕΡΙΝΟΥ Γενικού Λυκείου κατά το Σχολικό Έτος 2020-2021


ΠΛΗΡΟΦΟΡΙΚΗ
Γ΄ τάξης ΗΜΕΡΗΣΙΟΥ και ΕΣΠΕΡΙΝΟΥ Γενικού Λυκείου
ΓΕΝΙΚΈΣ ΟΔΗΓΊΕΣ ΔΙΔΑΣΚΑΛΊΑΣ

I. Διδακτικά Εγχειρίδια

Η διδασκαλία του μαθήματος «Πληροφορική» της Γ’ τάξης ημερήσιου και εσπερινού Γενικού Λυκείου θα πραγματοποιηθεί από τα ακόλουθα εγχειρίδια:

[ΒΙΒΛΙΟ 1]: «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον», Βιβλίο Μαθητή, Γ΄ Γενικού Λυκείου.
[ΒΙΒΛΙΟ 2]: «Πληροφορική», Γ’ Τάξη Γενικού Λυκείου, Βιβλίο Μαθητή, Συμπληρωματικό Εκπαιδευτικό Υλικό, έκδοση (Ι.Τ.Υ.Ε.) «Διόφαντος».
[ΒΙΒΛΙΟ 3]: «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον», Γ΄ Τάξη ΓΕ.Λ., Παράρτημα Α, Οδηγίες Μελέτης Μαθητή, 2η Έκδοση.
[ΒΙΒΛΙΟ 4]: «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον», Τετράδιο Μαθητή, Γ΄ Γενικού Λυκείου.
[ΒΙΒΛΙΟ 5]: «Πληροφορική», Γ’ Τάξη Γενικού Λυκείου, Βιβλίο Μαθητή, Συμπληρωματικό Εκπαιδευτικό Υλικό, Ενδεικτικές Λύσεις Ασκήσεων, έκδοση (Ι.Τ.Υ.Ε.) «Διόφαντος».

II. Ενδεικτικός Χρονοπρογραμματισμός και Ροή της Διδασκαλίας

Ο ενδεικτικός χρονοπρογραμματισμός, η διδασκαλία των ενοτήτων, καθώς και η ροή αυτών να πραγματοποιηθούν βάσει των εγχειριδίων του μαθήματος, [ΒΙΒΛΙΟ 1] και [ΒΙΒΛΙΟ 2], όπως αποτυπώνονται στον κατωτέρω πίνακα:

Πίνακας 1:
Προτεινόμενη Διδασκαλία του Μαθήματος Πληροφορική Γ’ τάξης ΗΜΕΡΗΣΙΟΥ και ΕΣΠΕΡΙΝΟΥ Γενικού Λυκείου
Α/Α Διδακτικά Εγχειρίδια [Ενότητες] Περιγραφή Προτειν
όμενες
Ώρες
[ΒΙΒΛΙΟ 1] [ΒΙΒΛΙΟ 2]
1 Εισαγωγή ---- Σύνδεση με πρότερες γνώσεις 1
2 1.1, 1.2, 1.3, 1.4 ---- Η έννοια πρόβλημα, Κατανόηση προβλήματος, Δομή προβλήματος, Καθορισμός απαιτήσεων 2
3 2.1, 2.2, 2.3 ---- Τι είναι αλγόριθμος, Σπουδαιότητα αλγορίθμων, Περιγραφή και αναπαράσταση αλγορίθμων 3
4 41 ---- Ανάλυση προβλημάτων 1
5 6.1, 6.4, 6.4.1,
6.4.2, 6.4.3
---- Η έννοια του προγράμματος, Τεχνικές σχεδίασης προγραμμάτων, Ιεραρχική σχεδίαση προγράμματος, Τμηματικός προγραμματισμός, Δομημένος προγραμματισμός 3
6 63 ---- Φυσικές και τεχνητές γλώσσες 1
7 67 ---- Προγραμματιστικά περιβάλλοντα 2
8 7.1, 7.2, 7.3, 7.4 ---- Το   αλφάβητο   της   ΓΛΩΣΣΑΣ,   Τύποι   Δεδομένων, Σταθερές, Μεταβλητές 3
9 7.5, 7.6, 7.7 ---- Αριθμητικοί   τελεστές,   Συναρτήσεις,   Αριθμητικές Εκφράσεις 2
10 2.4.1, 7.8, 7.9,
7.10
---- Δομή   ακολουθίας,   Εντολή   εκχώρησης,   Εντολές εισόδου – εξόδου, Δομή προγράμματος 3
11 2.4.2, 2.4.3,
2.4.4,
8.1, 8.1.1,
8.1.2
3.1, 3.1.1, 3.1.2 Δομή επιλογής, Διαδικασίες πολλαπλών επιλογών, Εμφωλευμένες διαδικασίες, Εντολές επιλογής, Εντολή ΑΝ, Εντολή ΕΠΙΛΕΞΕ 7
12 2.4.5, 8.2, 8.2.1 ---- Δομή  επανάληψης,  Εντολές  επανάληψης,  Εντολή ΟΣΟ…ΕΠΑΝΑΛΑΒΕ 2
13 2.4.5, 8.2.2 ---- Εντολή ΜΕΧΡΙΣ_ΟΤΟΥ 2
14 2.4.5, 8.2.3 ---- Εντολή ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ 2
15 131 51 Κατηγορίες λαθών 1
16 ---- 5.2.1, 5.2.2 Εκσφαλμάτωση λογικών λαθών στις δομές επιλογής, Εκσφαλμάτωση λογικών λαθών στις δομές επανάληψης 2
17     Μετατροπές από μία δομή επανάληψης σε άλλη 3
18     Γενικές  ασκήσεις  εμπέδωσης  μέχρι  και  τη  δομή επανάληψης 4
19 ---- 21 Μέθοδος διαίρει και βασίλευε (μόνο επαναληπτική και όχι αναδρομική προσέγγιση) 4
20 3.1, 3.2 ---- Δεδομένα, Αλγόριθμοι + Δομές Δεδομένων =
Προγράμματα
2
21 33 ---- Πίνακες 2
22 91 ---- Μονοδιάστατοι πίνακες 2
23 ---- 523 Εκσφαλμάτωση λογικών λαθών στους πίνακες (α) 1
24 36 ---- Αναζήτηση 6
25 37 ---- Ταξινόμηση 4
26 92 ---- Πότε πρέπει να χρησιμοποιούνται πίνακες 1
27 ---- 523 Εκσφαλμάτωση λογικών λαθών στους πίνακες (β) 1
28 93 ---- Πολυδιάστατοι πίνακες 6
29 94 ---- Τυπικές επεξεργασίες πινάκων 3
30 34 1.1, 1.1.1, 1.1.2 Στοίβα 6
31 35 1.2, 1.2.1, 1.2.2 Ουρά 8
32     Γενικές Ασκήσεις εμπέδωσης με πίνακες 8
33 10.1, 10.2, 10.3,
10.4
---- Τμηματικός προγραμματισμός, Χαρακτηριστικά των υποπρογραμμάτων, Πλεονεκτήματα του τμηματικού προγραμματισμού, Παράμετροι 2
34 10.5, 10.5.1,
10.5.2, 10.5.3
---- Διαδικασίες και συναρτήσεις, Ορισμός και κλήση συναρτήσεων, Ορισμός και κλήση διαδικασιών, Πραγματικές και τυπικές παράμετροι 8
35 106 ---- Εμβέλεια μεταβλητών - σταθερών 2
36 ---- 524 Εκσφαλμάτωση           λογικών           λαθών           στα υποπρογράμματα 2
37     Γενικές  Ασκήσεις  εμπέδωσης  με  διαδικασίες  και συναρτήσεις 10
38 132 5.2.5, 5.3 Εκσφαλμάτωση – Μέθοδος «Μαύρο Κουτί» 3
39 ---- 1.3, 1.3.1 Άλλες δομές δεδομένων, Λίστες 3
40 ---- 132 Δένδρα 3
41 ---- 133 Γράφοι 2
42 ---- 134 Ερωτήσεις εμπέδωσης δυναμικών δομών δεδομένων 2
43 65 41 Αντικειμενοστραφής Προγραμματισμός: ένας φυσικός τρόπος επίλυσης προβλημάτων 2
44 ---- 42 Χτίζοντας Αντικειμενοστραφή Προγράμματα 4
45 ---- 43 Ομαδοποίηση Αντικειμένων σε Κλάσεις: Αφαιρετικότητα και Ενθυλάκωση 2
46 ---- 44 Η Αντικειμενοστραφής «Οικογένεια»: Κλάσεις -
Πρόγονοι, Κλάσεις - Απόγονοι
3
47 ---- 45 Ορίζοντας την Κατάλληλη Συμπεριφορά: Πολυμορφισμός 2
48 ---- 46 Ερωτήσεις εμπέδωσης στην αντικειμενοστραφή προσέγγιση 2
      ΣΥΝΟΛΟ ΩΡΩΝ 150

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

III. Γενικές Παρατηρήσεις


Η διδακτέα/εξεταστέα ύλη του μαθήματος «Πληροφορική» της Γ’ τάξης ημερήσιου και εσπερινού Γενικού Λυκείου καθορίζεται βάσει των δύο βασικών διδακτικών εγχειριδίων [ΒΙΒΛΙΟ 1] και [ΒΙΒΛΙΟ 2].

Η διδασκαλία των ορισμών του μαθήματος πρέπει να γίνεται αποκλειστικά από τα εγχειρίδια [ΒΙΒΛΙΟ 1] και [ΒΙΒΛΙΟ 2] .

Το [ΒΙΒΛΙΟ 3] να χρησιμοποιηθεί βοηθητικά με σκοπό οι μαθητές και οι μαθήτριες να εμπεδώσουν μερικές από τις βασικές έννοιες του μαθήματος, όπως: Πρόγραμμα, Δομή Επιλογής, Δομή Επανάληψης, Πίνακες, Τμηματικός Προγραμματισμός και να εμβαθύνουν σε αυτές. Η ανάπτυξη των εννοιών και οι λύσεις των ασκήσεων στο συγκεκριμένο εγχειρίδιο γίνεται με παραστατικό τρόπο, ώστε οι μαθητές και οι μαθήτριες να αναπτύσσουν δεξιότητες διαφορετικών προσεγγίσεων επίλυσης προβλημάτων. Προτείνεται να επιλυθούν οι μη λυμένες ασκήσεις και να δοθεί έμφαση στην παρουσίαση της ανάλυσης της λύσης τους από τους μαθητές και τις μαθήτριες.

Το [ΒΙΒΛΙΟ 5] να χρησιμοποιηθεί βοηθητικά με σκοπό οι μαθητές και οι μαθήτριες να αναπτύσσουν δεξιότητες ποικίλων προσεγγίσεων επίλυσης προβλημάτων.

Η διδασκαλία του μαθήματος προτείνεται να γίνει σύμφωνα με την κατανομή σε ενότητες και σε ενδεικτικές ώρες που καταγράφονται στον Πίνακα 1: Προτεινόμενη Διδασκαλία του Μαθήματος Πληροφορική Γ’ τάξης ΗΜΕΡΗΣΙΟΥ και ΕΣΠΕΡΙΝΟΥ Γενικού Λυκείου.

Οι ώρες διδασκαλίας του μαθήματος, προτείνεται να κατανέμονται κατά τα 2/3 για την κάλυψη της διδακτέας/εξεταστέας ύλης και κατά το 1/3 για την εμπέδωσή της.

Οι αλγόριθμοι να διδάσκονται παράλληλα με την υλοποίησή τους στο προγραμματιστικό περιβάλλον της ΓΛΩΣΣΑΣ.

Κατά τη διδασκαλία του μαθήματος, οι μαθητές/-ήτριες εξοικειώνονται με την υλοποίηση αλγορίθμων σε αμιγώς προγραμματιστικό περιβάλλον και συγκεκριμένα αυτό της ΓΛΩΣΣΑΣ.

Οι μαθητές και οι μαθήτριες να διατυπώνουν τις λύσεις των ασκήσεων σε ΓΛΩΣΣΑ, εκτός και αν αναφέρεται στην εκφώνηση διαφορετική μορφή αναπαράστασης του αλγόριθμου.

IV. Οδηγίες Διδασκαλίας σύμφωνα με την προτεινόμενη ροή του μαθήματος

1. Σύνδεση με πρότερες γνώσεις [1 ώρα]

Ο/η διδάσκων/ουσα αναφέρεται σε έννοιες που έχουν διδαχθεί σε προηγούμενες τάξεις με σκοπό οι μαθητές και οι μαθήτριες να συνδέσουν πρότερες γνώσεις με τους σκοπούς και τους στόχους του μαθήματος.

2. Η έννοια πρόβλημα, Κατανόηση προβλήματος, Δομή προβλήματος, Καθορισμός απαιτήσεων [2 ώρες]

Ενότητες
[ΒΙΒΛΙΟ 1]: [1.1, 1.2, 1.3, 1.4]

Να διδαχθεί η έννοια του προβλήματος, ώστε οι μαθητές και οι μαθήτριες να:

  • Περιγράφουν την έννοια «πρόβλημα».
  • Κατανοούν πλήρως τα προβλήματα που τους τίθενται.
  • Προσδιορίζουν τα συστατικά μέρη ενός προβλήματος (σωστή διατύπωση και σωστή ερμηνεία).
  • Αναλύουν ένα πρόβλημα σε απλούστερα προβλήματα (δομή ή ανάλυση προβλήματος).
  • Προσδιορίζουν τα δεδομένα και ζητούμενα ενός προβλήματος.
  • Αναφέρουν τα στάδια αντιμετώπισης ενός προβλήματος.

3. Τι είναι αλγόριθμος, Σπουδαιότητα αλγορίθμων, Περιγραφή και αναπαράσταση αλγορίθμων [3 ώρες]

Ενότητες
[ΒΙΒΛΙΟ 1]: [2.1, 2.2, 2.3]

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

  • Διατυπώνουν τον ορισμό του αλγόριθμου.
  • Περιγράφουν τα κριτήρια που πρέπει να ικανοποιεί ένας αλγόριθμος.
  • ιτιολογούν τη σπουδαιότητα των αλγορίθμων κατά τη διαδικασία επίλυσης προβλημάτων.
  • Αναφέρουν θεματικές περιοχές με τις οποίες συνδέονται οι αλγόριθμοι.
  • Περιγράφουν τους βασικούς τρόπους αναπαράστασης ενός αλγορίθμου.
  • Χρησιμοποιούν τα βασικά σχήματα διαγράμματος ροής.

4. Ανάλυση προβλημάτων [1 ώρα]

Ενότητες
[ΒΙΒΛΙΟ 1]: [4.1]

Να διδαχθεί η αναγκαιότητα ανάλυσης των προβλημάτων με αντίστοιχη τεκμηρίωση και η ακολουθία βημάτων για την ανάλυση των αλγορίθμων με αντίστοιχη περιγραφή αξιοποιώντας αυθεντικά παραδείγματα.

5. Η έννοια του προγράμματος, Τεχνικές σχεδίασης προγραμμάτων, Ιεραρχική σχεδίαση προγράμματος, Τμηματικός προγραμματισμός, Δομημένος προγραμματισμός [3 ώρες]

Ενότητες
[ΒΙΒΛΙΟ 1]: [6.1, 6.4, 6.4.1, 6.4.2, 6.4.3]

Να διδαχθούν οι τεχνικές της ιεραρχικής σχεδίασης και του τμηματικού προγραμματισμού. Ιδιαίτερο βάρος να δοθεί στα χαρακτηριστικά και κυρίως στα πλεονεκτήματα του δομημένου προγραμματισμού αναδεικνύοντας και τα μειονεκτήματα της χρήσης εντολής άλματος ‘’Goto’’ με κατάλληλα παραδείγματα. Για την εμπέδωση των εννοιών, να δοθούν θεωρητικές ασκήσεις, απαντώντας σε ερωτήματα Σωστού-Λάθους ή ερωτήσεις ανάπτυξης.

6. Φυσικές και τεχνητές γλώσσες [1 ώρα]

Ενότητες
[ΒΙΒΛΙΟ 1]: [6.3]

Να διδαχθούν οι ομοιότητες και οι διαφορές μεταξύ των φυσικών γλωσσών και των γλωσσών προγραμματισμού (τεχνητές γλώσσες).

7. Προγραμματιστικά περιβάλλοντα [2 ώρες]

Ενότητες
[ΒΙΒΛΙΟ 1]: [6.7]

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

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

8. Το αλφάβητο της ΓΛΩΣΣΑΣ, Τύποι Δεδομένων, Σταθερές, Μεταβλητές [3 ώρες]

Ενότητες
[ΒΙΒΛΙΟ 1]: [7.1, 7.2, 7.3, 7.4]

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

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 1.1, 1.2, 1.3, 1.4.

9. Αριθμητικοί τελεστές, Συναρτήσεις, Αριθμητικές Εκφράσεις [2 ώρες]

Ενότητες
[ΒΙΒΛΙΟ 1]: [7.5, 7.6, 7.7]

Να παρουσιασθούν οι αριθμητικοί τελεστές, οι συναρτήσεις και οι μαθηματικές εκφράσεις, όπως χρησιμοποιούνται στη ΓΛΩΣΣΑ. Ιδιαίτερη έμφαση να δοθεί στη διαφορά των τελεστών «div» και «/». Να παρουσιασθεί ο τρόπος αποτύπωσης μιας αριθμητικής παράστασης στον υπολογιστή, με ιδιαίτερη έμφαση στην προτεραιότητα των πράξεων και στη χρήση των παρενθέσεων. Να παρουσιασθούν μαθηματικές και λοιπές βασικές συναρτήσεις σε ΓΛΩΣΣΑ. Να δοθούν παραδείγματα και ασκήσεις.

Να διευκρινιστεί ότι:

  • οι συναρτήσεις ΗΜ(), ΣΥΝ() και ΕΦ() δέχονται παράμετρο σε μοίρες,
  • το ακέραιο μέρος Α_Μ() ενός αριθμού χ ορίζεται, όπως στα μαθηματικά ο ακέραιος, με την ιδιότητα Α_Μ(χ) <= χ < Α_Μ(χ) + 1,
  • η απόλυτη τιμή Α_Τ() δέχεται αριθμητική παράμετρο, είτε ακέραιο αριθμό και επιστρέφει ακέραιο, είτε πραγματικό αριθμό και επιστρέφει πραγματικό.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθεί η παράγραφος 1.5.

10. Δομή ακολουθίας, Εντολή εκχώρησης, Εντολές εισόδου – εξόδου, Δομή προγράμματος [3 ώρες]

Ενότητες
[ΒΙΒΛΙΟ 1]: [2.4.1, 7.8, 7.9, 7.10]

Να παρουσιασθεί η δομή ακολουθίας. Να παρουσιασθούν οι εντολές εκχώρησης, εισόδου και εξόδου και οι μαθητές να δημιουργήσουν τα πρώτα προγράμματα τους με στόχο να κατανοήσουν τις εντολές. Το μάθημα να διδαχθεί στο εργαστήριο και ο εκπαιδευτικός δύναται να παρουσιάσει έτοιμες ασκήσεις, τις οποίες οι μαθητές μπορούν στη συνέχεια να υλοποιήσουν στο προγραμματιστικό περιβάλλον. Να γίνει παρουσίαση του παραδείγματος της ενότητας 7.10 από το [ΒΙΒΛΙΟ 1]. Είναι αποδεκτή η χρήση είτε μονών είτε διπλών εισαγωγικών.

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

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθεί η παράγραφος 1.6.

11. Δομή επιλογής, Διαδικασίες πολλαπλών επιλογών, Εμφωλευμένες διαδικασίες, Εντολές επιλογής, Εντολή ΑΝ, Εντολή ΕΠΙΛΕΞΕ [7 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [2.4.2, 2.4.3, 2.4.4, 8.1, 8.1.1, 8.1.2]
• [ΒΙΒΛΙΟ 2]: [3.1, 3.1.1, 3.1.2]

Να διδαχθούν οι λογικές πράξεις και η δομή επιλογής (απλή, πολλαπλή και εμφωλευμένη). Η εμπέδωση στις δομές αυτές προτείνεται να γίνει μέσω ημιτελών παραδειγμάτων-ασκήσεων, τα οποία θα συμπληρώσουν οι μαθητές χωρισμένοι σε ομάδες.

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

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 1.5, 2.1, 2.2, 2.3, 2.4.

Από το [ΒΙΒΛΙΟ 2], να γίνει παρουσίαση της δομής πολλαπλών επιλογών με τη χρήση της εντολής ΕΠΙΛΕΞΕ. Η εμπέδωση προτείνεται να γίνει μέσω παραδειγμάτων–ασκήσεων με πολλαπλή επιλογή δίνοντας στους μαθητές κατάλληλες ασκήσεις με ΑΝ…ΑΛΛΙΩΣ_ΑΝ…ΤΕΛΟΣ_ΑΝ προς μετατροπή σε ΕΠΙΛΕΞΕ και αντίστροφα.

Διευκρινίζεται ότι μια έγκυρη σύνταξη της εντολής ΕΠΙΛΕΞΕ στη ΓΛΩΣΣΑ είναι και η ακόλουθη:

Επίλεξε τιμή
Περίπτωση 0..100 ! 0 <= τιμή <= 100
<εντολές1>
Περίπτωση 101..1000 ! 101 <= τιμή <= 1000
<εντολές2>
Περίπτωση Αλλιώς ! 1000 < τιμή
<εντολές3>
Τέλος__επιλογών

όπου <τιμή>: ακέραια μεταβλητή

12. Δομή επανάληψης, Εντολές επανάληψης, Εντολή ΟΣΟ…ΕΠΑΝΑΛΑΒΕ [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [2.4.5, 8.2, 8.2.1]

Να διδαχθεί το τμήμα της ενότητας 2.4.5 μέχρι και το Παράδειγμα 8, εισάγοντας γενικά την έννοια της δομής επανάληψης. Να παρουσιασθεί η δομή επανάληψης ΟΣΟ… ΕΠΑΝΑΛΑΒΕ από την ενότητα 8.2.1, επισημαίνοντας τις περιπτώσεις που εξυπηρετεί η χρήση της, καθώς και τους βασικούς κανόνες σύνταξής της, δίνοντας σχετικά παραδείγματα. Να γίνει βηματική εκτέλεση έτοιμων προγραμμάτων και ο εκπαιδευτικός στο εργαστήριο να παρουσιάσει έτοιμες ασκήσεις, τις οποίες οι μαθητές μπορούν στη συνέχεια να υλοποιήσουν στο προγραμματιστικό περιβάλλον. Να παρουσιαστούν απλά διαγράμματα ροής.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 3, 3.1.

13. Εντολή ΜΕΧΡΙΣ_ΟΤΟΥ [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [2.4.5, 8.2.2]

Να παρουσιασθεί η δομή επανάληψης ΜΕΧΡΙΣ…ΟΤΟΥ από την ενότητα 8.2.2, επισημαίνοντας τις περιπτώσεις που εξυπηρετεί η χρήση της καθώς και τους βασικούς κανόνες σύνταξής της, δίνοντας σχετικά παραδείγματα. Να διδαχθεί το Παράδειγμα 9 από την ενότητα 2.4.5. Να παρουσιασθούν οι ομοιότητες και οι διαφορές ανάμεσα στις δύο δομές επανάληψης ΟΣΟ…ΕΠΑΝΑΛΑΒΕ και ΜΕΧΡΙΣ_ΟΤΟΥ. Να γίνει βηματική εκτέλεση έτοιμων προγραμμάτων και ο εκπαιδευτικός στο εργαστήριο να παρουσιάσει έτοιμες ασκήσεις, τις οποίες οι μαθητές μπορούν στη συνέχεια να υλοποιήσουν στο προγραμματιστικό περιβάλλον. Να παρουσιαστούν απλά διαγράμματα ροής.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθεί η παράγραφος 3.2.

Σημειώνεται ότι:
Στο βιβλίο της Β' ΓΕΛ («Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ», Παράδειγμα 2.17) δίνεται η γενική μορφή της εντολής επανάληψης, ως εξής:

Επανάλαβε
<εντολές>
Μέχρις_ότου <συνθήκη>

Στο [ΒΙΒΛΙΟ 1], η εντολή δίνεται με την ακόλουθη σύνταξη:

Αρχή_επανάληψης
<εντολές>
Μέχρις_ότου <συνθήκη>

Να διδαχθεί η σύνταξη της εντολής με τη μορφή που έχει στο [ΒΙΒΛΙΟ 1] της Γ' ΓΕΛ, ωστόσο, σε λύσεις ασκήσεων να γίνεται δεκτή και η σύνταξη της εντολής που αναφέρεται στο βιβλίο της Β' ΓΕΛ.

14. Εντολή ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [2.4.5, 8.2.3]

Να παρουσιασθεί η δομή επανάληψης ΓΙΑ…ΑΠΟ… ΜΕΧΡΙ από την ενότητα 8.2.3, επισημαίνοντας τις περιπτώσεις που εξυπηρετεί η χρήση της, καθώς και τους βασικούς κανόνες σύνταξης της, δίνοντας ταυτόχρονα και σχετικά παραδείγματα. Ιδιαίτερη έμφαση να δοθεί, στο ΒΗΜΑ μεταβολής της μεταβλητής ελέγχου του βρόχου, δίνοντας παραδείγματα με ΒΗΜΑ αρνητικό, θετικό ή μηδέν, καθώς και στην περίπτωση κατά την οποία το ΒΗΜΑ δεν είναι υποχρεωτικό. Να σημειωθεί ότι στην εντολή επανάληψης ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ όταν το βήμα είναι μηδέν, σε κάθε περίπτωση, ο βρόχος εκτελείται άπειρες φορές.

Να διδαχθούν τα Παραδείγματα 10 και 11 από την ενότητα 2.4.5. Να παρουσιασθούν οι κανόνες των εμφωλευμένων βρόχων. Να γίνει βηματική εκτέλεση έτοιμων προγραμμάτων και ο εκπαιδευτικός στο εργαστήριο να παρουσιάσει έτοιμες ασκήσεις, τις οποίες οι μαθητές μπορούν στη συνέχεια να υλοποιήσουν στο προγραμματιστικό περιβάλλον. Να παρουσιαστούν απλά διαγράμματα ροής.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 3.3, 3.4, 3.5.

15. Κατηγορίες λαθών [1 ώρα]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [13.1]
• [ΒΙΒΛΙΟ 2]: [5.1]

Να παρουσιασθούν οι κατηγορίες λαθών μέσω δραστηριοτήτων. Να δοθεί έμφαση στην αναγκαιότητα εκσφαλμάτωσης των προγραμμάτων και στην υιοθέτηση από τους μαθητές θετικής στάσης στην εκσφαλμάτωση των λαθών των προγραμμάτων που αναπτύσσουν οι ίδιοι. Να αξιοποιηθούν τα παραδείγματα και οι δραστηριότητες της ενότητας 5.1 του βιβλίου [ΒΙΒΛΙΟ 2].

16. Εκσφαλμάτωση λογικών λαθών στις δομές επιλογής, Εκσφαλμάτωση λογικών λαθών στις δομές επανάληψης [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [5.2.1, 5.2.2]

Μέσω δραστηριοτήτων να αναδειχθούν καλές πρακτικές εκσφαλμάτωσης λογικών λαθών στις δομές επιλογής και στις δομές επανάληψης. Να αξιοποιηθούν τα παραδείγματα και οι δραστηριότητες των ενοτήτων 5.2.1 και 5.2.2 του βιβλίου [ΒΙΒΛΙΟ 2].

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

17. Μετατροπές από μία δομή επανάληψης σε άλλη [3 ώρες]

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

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθεί η παράγραφος 3.6.

19. Μέθοδος διαίρει και βασίλευε [4 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [2.1]

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

Να παρουσιασθεί η έννοια της μεθόδου «Διαίρει και βασίλευε» και να διδαχθεί η ανάλυση και η επίλυση του σχετικού παραδείγματος από την ενότητα 2.1 του βιβλίου [ΒΙΒΛΙΟ 2]. Να τονισθεί ότι η μέθοδος «Διαίρει και βασίλευε» είναι μία γενική μέθοδος που χρησιμοποιείται κυρίως για την αναζήτηση ενός στοιχείου σε διατεταγμένο σύνολο στοιχείων. Στο πλαίσιο του μαθήματος παρουσιάζεται μέσα από την υλοποίηση του αλγόριθμου της «Δυαδικής αναζήτησης», η οποία εφαρμόζεται σε ταξινομημένα στοιχεία.

Πρέπει να τονισθεί ότι η απόδειξη της μαθηματικής έκφρασης [log2(n)+1] για τον υπολογισμό του μέγιστου αριθμού επαναλήψεων στον αλγόριθμο της δυαδικής αναζήτησης υπερβαίνει τα όρια της διδακτέας ύλης του μαθήματος. Για να εφαρμοστεί θα πρέπει πάντοτε να δίνεται το log2(n), όπου «n» το πλήθος των στοιχείων.

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

20. Δεδομένα, Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [3.1, 3.2]

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

21. Πίνακες [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [3.3]

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

Να ληφθούν μεταξύ άλλων υπόψη και τα κατωτέρω:

ΣΤΑΤΙΚΈΣ ΚΑΙ ΔΥΝΑΜΙΚΈΣ ΔΟΜΈΣ ΔΕΔΟΜΈΝΩΝ
Δομές Δεδομένων
-Στατικές
-Δυναμικές

Χαρακτηριστικά των Στατικών και Δυναμικών δομών δεδομένων

Στατικές δομές: Αποθηκεύονται σε συνεχόμενες θέσεις μνήμης και έχουν σταθερό μέγεθος, το οποίο καθορίζεται στην αρχή του προγράμματος. Οι στατικές δομές υλοποιούνται με πίνακες.

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

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

Πρέπει να τονιστεί, ότι μια δομή δεδομένων δεν είναι εγγενώς στατική ή δυναμική, αλλά εξαρτάται από τις δυνατότητες της γλώσσας προγραμματισμού που χρησιμοποιούμε και από τον τρόπο υλοποίησης της δομής στη γλώσσα αυτή. Δεν υποστηρίζουν όλες οι γλώσσες προγραμματισμού όλες τις δομές δεδομένων. Οι σύγχρονες γλώσσες προγραμματισμού συνήθως υποστηρίζουν και τις δυναμικές δομές δεδομένων. Ωστόσο, το προγραμματιστικό περιβάλλον ΓΛΩΣΣΑ, υποστηρίζει μόνο στατικές δομές. Ως εκ τούτου, η δομή του πίνακα αντιμετωπίζεται ως στατική και για να χρησιμοποιηθεί ένας πίνακας θα πρέπει να έχει πρώτα δηλωθεί, τόσο ο πίνακας, όσο και το μέγεθός του. Επιπλέον, οι δομές ουρά και στοίβα θεωρούνται επίσης στατικές δομές για τη ΓΛΩΣΣΑ, και στο πλαίσιο του μαθήματος υλοποιούνται με τη χρήση μονοδιάστατων πινάκων.

Να σημειωθεί ότι οι λειτουργίες (ή πράξεις) των δομών της παραγράφου 3.2 του βιβλίου [ΒΙΒΛΙΟ 1] είναι γενικές και αποκτούν συγκεκριμένη σημασία, ανάλογα με τη δομή στην οποία εφαρμόζονται. Για παράδειγμα σε μια δομή πίνακα, κατά την πράξη της ταξινόμησης, δεν αναδιατάσσονται οι κόμβοι του πίνακα αλλά το περιεχόμενο των κόμβων.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθεί η παράγραφος 4.

22. Μονοδιάστατοι Πίνακες [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [9.1]

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

Να διδαχθούν, η ενότητα 9.1 ως έχει, χωρίς το Παράδειγμα 2, και από την ενότητα 3.3 να διδαχθεί το Παράδειγμα 1 (Εύρεση του μικρότερου στοιχείου ενός μονοδιάστατου πίνακα). Να παρουσιαστεί αντίστοιχο πρόγραμμα για την εύρεση του μεγίστου στοιχείου.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 4.1 και 4.2 μόνο κατά το μέρος που αφορά τους μονοδιάστατους πίνακες.

23. Εκσφαλμάτωση λογικών λαθών στους πίνακες (α) [1 ώρα]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [5.2.3]

Μέσω δραστηριοτήτων να αναδειχθούν καλές πρακτικές εκσφαλμάτωσης λογικών λαθών σε προγράμματα που χρησιμοποιούν μονοδιάστατους πίνακες. Προτείνεται να αξιοποιηθεί το παράδειγμα 8 ως δραστηριότητα στην τάξη. Οι μαθητές προτείνεται να υιοθετήσουν τις καλές πρακτικές εκσφαλμάτωσης στα προγράμματα που αναπτύσσουν οι ίδιοι. Στις δραστηριότητες εμπέδωσης που θα ακολουθήσουν είναι σημαντικό να δοθεί η απαραίτητη προσοχή στην εκσφαλμάτωση.

24. Αναζήτηση [6 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [3.6]

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

Να διδαχθεί ως άσκηση η δυαδική αναζήτηση και να γίνει σύνδεση με τη μέθοδο «Διαίρει και Βασίλευε» που έχει ήδη διδαχθεί.

Σχετικά με τη δυαδική αναζήτηση να ληφθούν μεταξύ άλλων υπόψη και τα κατωτέρω:

ΔΥΑΔΙΚΉ ΑΝΑΖΉΤΗΣΗ
Ο αλγόριθμος της δυαδικής αναζήτησης (binary search) εφαρμόζεται μόνο σε πίνακες που έχουν ταξινομημένα στοιχεία. Αν τα στοιχεία δεν είναι ταξινομημένα, τότε δεν μπορεί να εφαρμοστεί.

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

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

Αλγόριθμος δυαδικής αναζήτησης
1 Αλγόριθμος Δυαδική_αναζήτηση
2 !Α μονοδιάστατος πίνακας Ν θέσεων, S το αναζητούμενο στοιχείο
3 Δεδομένα // N, A, S //
4 Left ← 1 ! αριστερό όριο
5 Right ← N ! δεξιό όριο
6 K ← 0 ! θέση του στοιχείου
7 F ← FALSE
8 Όσο (Left ≤ Right) και (F = FALSE) επανάλαβε
9 M ← (Left + Right) div 2
10 Αν A[M] = S τότε
11 K ← M
12 F ← TRUE
13 αλλιώς
14 Αν A[M] < S τότε
15 Left ← M + 1
16 αλλιώς
17 Right ← M - 1
18 Τέλος_αν
19 Τέλος_αν
20 Τέλος_επανάληψης
21 Αν F = TRUE τότε
22 Εμφάνισε "Το στοιχείο,", S, "υπάρχει στη θέση:", Μ
23 αλλιώς
24 Εμφάνισε "Το στοιχείο,", S, " δεν υπάρχει στον πίνακα"
25 Τέλος_αν
26 Τέλος Δυαδική_αναζήτηση

Η δυαδική αναζήτηση να διδαχθεί ως άσκηση και να υλοποιηθεί με πρόγραμμα, όπως παρακάτω σε
ταξινομημένο πίνακα 20 θέσεων. Πέρα από το τμήμα δηλώσεων, το πρόγραμμα έχει ένα επιπλέον τμήμα για το
"γέμισμα" του πίνακα με στοιχεία (υποθέτουμε ότι ο πίνακας γεμίζει με στοιχεία σε αύξουσα σειρά).
1 ΠΡΟΓΡΑΜΜΑ δυαδική_αναζήτηση
2 ΜΕΤΑΒΛΗΤΕΣ
3 ΑΚΕΡΑΙΕΣ: A[20], Left, Right, M, k, S, i
4 ΛΟΓΙΚΕΣ: f
5 ΑΡΧΗ
6 ΓΡΑΨΕ 'Εισάγετε αριθμούς σε αύξουσα διατάξη'
7 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
8 ΓΡΑΨΕ 'Δώσε το', i, ' στοιχείο του πίνακα'
9 ΔΙΑΒΑΣΕ A[i]
10 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
11 ΓΡΑΨΕ 'Δωσε τιμή για αναζήτηση: '
12 ΔΙΑΒΑΣΕ S
13 Left <- 1
14 Right <- 20
15 k <- 0
16 f <- ΨΕΥΔΗΣ
17 ΟΣΟ (Left <= Right) ΚΑΙ (f = ΨΕΥΔΗΣ) ΕΠΑΝΑΛΑΒΕ
18 M <- (Left + Right) div 2
19 ΑΝ A[M] = S ΤΟΤΕ
20 k <- M
21 f <- ΑΛΗΘΗΣ
22 ΑΛΛΙΩΣ
23 ΑΝ A[M] < S ΤΟΤΕ
24 Left <- M + 1
25 ΑΛΛΙΩΣ
26 Right <- M - 1
27 ΤΕΛΟΣ_ΑΝ
28 ΤΕΛΟΣ_ΑΝ
29 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
30 ΑΝ f = ΑΛΗΘΗΣ ΤΟΤΕ
31 ΓΡΑΨΕ "Το στοιχείο,", S, "υπάρχει στη θέση:", M
32 ΑΛΛΙΩΣ
33 ΓΡΑΨΕ "Το στοιχείο,", S, " δεν υπάρχει στον πίνακα"
34 ΤΕΛΟΣ_ΑΝ
35 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα
Δίνεται ο πίνακας

1 2 5 8 9 15 22 27 35 37 38 40 43 45 47

Αναζήτηση του στοιχείου 38 (υπάρχει στον πίνακα)

Βήμα 1 1 2 5 8 9 15 22 27 35 37 38 40 43 45 47
Βήμα 2 1 2 5 8 9 15 22 27 35 37 38 40 43 45 47
Βήμα 3 1 2 5 8 9 15 22 27 35 37 38 40 43 45 47
Βήμα 4 1 2 5 8 9 15 22 27 35 37 38 40 43 45 47

Με κίτρινο σημειώνεται το στοιχείο του πίνακα που εξετάζεται (στο μέσον)

Με πράσινο σημειώνεται το τμήμα του πίνακα που απομένει για αναζήτηση

Με κόκκινο σημειώνεται το τμήμα του πίνακα που έχει αποκλειστεί

Αναζήτηση του στοιχείου 39 (δεν υπάρχει στον πίνακα)
(...)

Αριθμός συγκρίσεων στη δυαδική αναζήτηση

Στοιχεία Ν Συγκρίσεις
10 4
100 7
1.000 10
10.000 14
100.000 17
1.000.000 20
10.000.0
0
24
100.000.000 27
1.000.000.000 30

*Ως άσκηση μπορεί να δοθεί η βελτιστοποίηση του αλγόριθμου δυαδικής αναζήτησης έτσι ώστε να επιτρέπει διαδοχικές αναζητήσεις πολλών στοιχείων. Η αναζήτηση να τερματίζεται όταν δοθεί κάποιος συγκεκριμένος αριθμός (τιμή φρουρός) ή με ερώτηση "Θέλετε άλλη αναζήτηση; (Ν/Ο)".

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

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 4.1, 4.2 (μόνο κατά το μέρος που αφορά τους μονοδιάστατους πίνακες) και 4.3.2.

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

25. Ταξινόμηση [4 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [3.7]

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

Σχετικά με την ταξινόμηση με επιλογή να ληφθούν, μεταξύ άλλων, υπόψη και τα κατωτέρω:

ΤΑΞΙΝΌΜΗΣΗ ΜΕ ΕΠΙΛΟΓΉ (SELECTION SORT)
Η ταξινόμηση με επιλογή (selection sort), αποτελεί βασικό τρόπο ταξινόμησης, που υλοποιείται σε έναν
μονοδιάστατο πίνακα σε τρία βήματα:
1. Επιλογή του ελάχιστου στοιχείου
2. Ανταλλαγή του ελάχιστου με το πρώτο στοιχείο
3. Επανάληψη των βημάτων 1 και 2 για τα υπόλοιπα στοιχεία του πίνακα

Ο αλγόριθμος ταξινόμησης με επιλογή είναι ο παρακάτω.
1 Αλγόριθμος Selection_Sort
2 Δεδομένα // table, n //
3 Για i από 1 μέχρι n - 1
4 k ← i
5 x ← table[i]
6 Για j από i + 1 μέχρι n
7 Αν x > table[j] τότε
8 k ← j
9 x ← table[j]
10 Τέλος_αν
11 Τέλος_επανάληψης
12 table[k] ← table[i]
13 table[i] ← x
14 Τέλος_επανάληψης
15 Τέλος Selection_Sort

Ο αλγόριθμος ταξινόμησης με επιλογή, να διδαχθεί ως άσκηση και να υλοποιηθεί με πρόγραμμα, όπως παρακάτω. Πέρα από το τμήμα δηλώσεων, το πρόγραμμα έχει δύο επιπλέον τμήματα, ένα τμήμα για το "γέμισμα" του πίνακα με στοιχεία και ένα τμήμα για την εκτύπωση του ταξινομημένου πίνακα.
1 ΠΡΟΓΡΑΜΜΑ Selection_Sort
2 ΜΕΤΑΒΛΗΤΕΣ
3 ΑΚΕΡΑΙΕΣ: A[20], k, x, i, j
4 ΑΡΧΗ
5 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
6 ΓΡΑΨΕ 'Δώσε το ', i, ' στοιχείο του πίνακα'
7 ΔΙΑΒΑΣΕ A[i]
8 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
9 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 19
10 k <- i
11 x <- A[i]
12 ΓΙΑ j ΑΠΟ i + 1 ΜΕΧΡΙ 20
13 ΑΝ x > A[j] ΤΟΤΕ
14 k <- j
15 x <- A[j]
16 ΤΕΛΟΣ_ΑΝ
17 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
18 A[k] <- A[i]
19 A[i] <- x
20 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
21 ΓΡΑΨΕ 'Εκτύπωση με ταξινομημένα τα στοιχεία'
22 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
23 ΓΡΑΨΕ A[i]
24 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
25 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα
Αν υποθέσουμε ότι έχουμε τον πίνακα Α[8] με στοιχεία τους αριθμούς 46, 55, 12, 42, 94, 18, 06, 67.
Δηλαδή σε μορφή μονοδιάστατου πίνακα:
τότε παρακάτω φαίνεται πως μετακινούνται τα στοιχεία με τον αλγόριθμο SelectionSort
(...)

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν η παράγραφος 4.3.1 και η Άσκηση 1 της παραγράφου 4.5.

Να δοθεί ιδιαίτερη προσοχή στην ταξινόμηση στις περιπτώσεις συνδεδεμένων (παράλληλων) πινάκων (Παράδειγμα: Ονόματα – 

Βαθμολογίες) (έπειτα από τη διδασκαλία τους στη σχετική ενότητα).

26. Πότε πρέπει να χρησιμοποιούνται πίνακες [1 ώρa]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [9.2]

Διδάσκονται τα Πλεονεκτήματα - Μειονεκτήματα των πινάκων.

27. Εκσφαλμάτωση λογικών λαθών στους πίνακες (β) [1 ώρα]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [5.2.3]

Μέσω δραστηριοτήτων να αναδειχθούν καλές πρακτικές εκσφαλμάτωσης λογικών λαθών σε προγράμματα που χρησιμοποιούν δισδιάστατους πίνακες. Να επισημανθεί ότι υπάρχουν λάθη που έχουν αμφίσημη κατηγοριοποίηση αναλόγως του προγραμματιστικού περιβάλλοντος υλοποίησης. Να αξιοποιηθεί η δραστηριότητα 4 της ενότητας 5.2.3.

28. Πολυδιάστατοι πίνακες [6 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [9.3]

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

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

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 4.1 και 4.2 (μόνο για τις περιπτώσεις του δισδιάστατου πίνακα) και η Άσκηση 2 της παραγράφου 4.5.

Να διδαχθεί από την ενότητα 3.3 το ΠΑΡΑΔΕΙΓΜΑ 2 (Εύρεση αθροίσματος στοιχείων δισδιάστατου πίνακα). Να γίνει επίδειξη έτοιμων ασκήσεων από τον εκπαιδευτικό, οι οποίες να περιέχουν τις βασικές διαδικασίες σε δισδιάστατους πίνακες (εύρεση μεγίστου – ελαχίστου, αναζήτηση στοιχείου, αθροίσματα κ.λπ., τόσο ανά στήλη όσο και ανά γραμμή).

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθεί η Άσκηση 3 της παραγράφου 4.5.

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

29. Τυπικές επεξεργασίες πινάκων [3 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [9.4]

Να διδαχθούν οι τυπικές επεξεργασίες στα στοιχεία ενός πίνακα. Για την εμπέδωση των εννοιών δίνονται θεωρητικές ασκήσεις, απαντώντας σε ερωτήματα Σωστού-Λάθους ή ερωτήσεις ανάπτυξης. Να διδαχθεί το Παράδειγμα 9.2 από το [4] Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον, Τετράδιο Μαθητή, ώστε να εξοικειωθούν οι μαθητές με την έννοια των παράλληλων πινάκων.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 4.3, 4.3.3, 4.4.

30. Στοίβα [6 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [3.4]
• [ΒΙΒΛΙΟ 2]: [1.1, 1.1.1, 1.1.2]

Να παρουσιαστεί η δομή της Στοίβας και οι βασικές λειτουργίες της από τα βιβλία: [ΒΙΒΛΙΟ 1] και [ΒΙΒΛΙΟ 2].

Αρχικά να επιλυθούν από τους μαθητές θεωρητικές ασκήσεις. Στη συνέχεια, να παρουσιαστεί η υλοποίηση της στοίβας με χρήση μονοδιάστατου πίνακα και να υλοποιηθούν τα παραδείγματα 1, 2 και 3 της ενότητας 1.1 από το [ΒΙΒΛΙΟ 2]. Να παρουσιαστεί αναλυτικά το Παράδειγμα 4 της ενότητας 1.1 από το [ΒΙΒΛΙΟ 2], στο οποίο θα πρέπει οι μαθητές να διακρίνουν γιατί χρησιμοποιείται η δομή της στοίβας και πως γίνεται η ώθηση και η απώθηση στοιχείων από αυτή. Για εμπέδωση της διδασκόμενης έννοιας είναι απαραίτητη η επίλυση επιπλέον ασκήσεων (και των άλυτων ασκήσεων της ενότητας 1.1.2 του βιβλίου [ΒΙΒΛΙΟ 2]). Το μάθημα γίνεται στο εργαστήριο της πληροφορικής.

Διευκρινίζεται ότι η υλοποίηση της στοίβας στο διδακτικό υλικό είναι ενδεικτική. Εναλλακτικά η ώθηση και η απώθηση δύναται να πραγματοποιούνται στο τέλος του πίνακα και όχι στην αρχή. Το στοιχείο που χρειάζεται να επισημανθεί στους μαθητές είναι ότι η στοίβα υλοποιείται με πίνακα στη ΓΛΩΣΣΑ και η επεξεργασία της πραγματοποιείται από το ένα μόνο άκρο.

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

31. Ουρά [8 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [3.5]
• [ΒΙΒΛΙΟ 2]: [1.2, 1.2.1, 1.2.2]

Να παρουσιαστεί η δομή της Ουράς και οι βασικές λειτουργίες της από τα βιβλία: [ΒΙΒΛΙΟ 1] και [ΒΙΒΛΙΟ 2]. Αρχικά να επιλυθούν από τους μαθητές θεωρητικές ασκήσεις. Στη συνέχεια, να παρουσιαστεί η υλοποίηση της ουράς με χρήση μονοδιάστατου πίνακα και να υλοποιηθούν τα παραδείγματα 1, 2 και 3 της ενότητας 1.2 από το [ΒΙΒΛΙΟ 2].

Να παρουσιαστεί αναλυτικά το Παράδειγμα 4 της ενότητας 1.2 από το [ΒΙΒΛΙΟ 2], στο οποίο θα πρέπει οι μαθητές να διακρίνουν γιατί χρησιμοποιείται η δομή της ουράς και πως πραγματοποιείται η εισαγωγή και η εξαγωγή στοιχείων από αυτή. Για την υλοποίηση της ουράς αρκεί να παρουσιαστεί η υλοποίηση της γραμμικής μορφής.

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

Στη συνέχεια, μεταξύ άλλων, να επιλυθεί από τους μαθητές η μη λυμένη άσκηση Ε.4 της Ενότητας 1.2.2 του βιβλίου

[ΒΙΒΛΙΟ 2]. Μια ενδεικτική λύση της Ε.4 είναι η ακόλουθη:

ΟΥΡΑ- Ε.4. Πρόγραμμα Τράπεζα

Ανάλυση
Το πρόγραμμα λειτουργεί από ένα Μενού Επιλογής, ως εξής:
- Επιλέγοντας «Π» ή «π», δίνεται ένα νούμερο στον πελάτη. Το νούμερο αυτό καταχωρείται στον πίνακα πελατες[..] ο οποίος λειτουργεί σαν ουρά . Δηλαδή, κάθε φορά που εισέρχεται ένας πελάτης (επιλογή «Π» ή «π») γίνεται εισαγωγή στην ουρά (Εντολές 22 έως 33).
- Επιλέγοντας «Τ» ή «τ», επιλέγουμε και το ταμείο που εξυπηρετεί 1 ή 2 ή 3 ή 4 ( Εντολές από 35 έως 41). Από το ταμείο που έχει επιλεχθεί «διαγράφουμε» τον πελάτη από την ουρά, καταχωρώντας στην αντίστοιχη θέση του πελάτη που εξυπηρετήθηκε το 0 (Εντολές από 42 έως 107).
- Κάθε πελάτης που εξυπηρετείται από ένα ταμείο προσμετράται με την εντολή ταμεια[χ]← ταμεια[χ]+1, όπου χ=1 ή 2 ή 3 ή 4 ανάλογα με το ταμείο εξυπηρέτησης. Ο πίνακας ταμεια[..] μηδενίζεται (αρχικοποιείται) στην αρχή του προγράμματος.
- Κάθε πελάτης που εξυπηρετείται από την τράπεζα προσμετράται από τη μεταβλητή αθρ.
- Επιλέγοντας «Δ» ή «δ», βγαίνουμε από το Μενού Επιλογής και τυπώνεται το πλήθος των πελατών που εξυπηρετήθηκαν (μεταβλητή αθρ) όπως επίσης και το ταμείο με τους περισσότερους πελάτες, δηλαδή από τον πίνακα ταμεια[..] το πρόγραμμα βρίσκει τον μεγαλύτερο αριθμό και κρατά τη θέση του πίνακα (μεγΤ), θέση που αντιστοιχεί και στο νούμερο του ταμείου (Εντολές από 113 έως 123).

1 ΠΡΟΓΡΑΜΜΑ ΤΡΑΠΕΖΑ
2 ΜΕΤΑΒΛΗΤΕΣ
3 ΑΚΕΡΑΙΕΣ: αρχ, τελος, ταμεια[4], αθρ, μεγ, μεγΤ, ι, τ, πελατες[1000]
4 ΧΑΡΑΚΤΗΡΕΣ: επ
5 ΑΡΧΗ
6 αρχ <- 0
7 τελος <- 0
8 ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 4
9 ταμεια[ι] <- 0
10 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
11 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
12 ΓΡΑΨΕ '(Π) ΠΕΛΑΤΗΣ'
13 ΓΡΑΨΕ '(Τ) ΤΑΜΙΑΣ'
14 ΓΡΑΨΕ '(Δ) ΔΙΕΥΘΥΝΤΗΣ'
15 ΓΡΑΨΕ 'Δώσε επιλογή: '
16 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
17 ΔΙΑΒΑΣΕ επ
18 ΑΝ επ<>'Π' ΚΑΙ επ<>'π' ΚΑΙ επ<>'Τ' ΚΑΙ επ<>'τ' ΚΑΙ επ<>'Δ' ΚΑΙ επ <>'δ'ΤΟΤΕ
19 ΓΡΑΨΕ 'Λάθος επιλογή. Ξαναπροσπάθησε...'
20 ΤΕΛΟΣ_ΑΝ
21 ΜΕΧΡΙΣ_ΟΤΟΥ επ='Π' Η επ='π' Η επ='Τ' Η επ='τ' Η επ='Δ' Η επ='δ'
22 !ΕΙΣΑΓΩΓΗ ΠΕΛΑΤΗ (ΣΤΗΝ ΟΥΡΑ)
23 ΑΝ επ = 'Π' Η επ = 'π' ΤΟΤΕ
24 ΑΝ αρχ = 0 ΚΑΙ τελος = 0 ΤΟΤΕ
25 αρχ <- 1
26 τελος <- 1
27 πελατες[τελος] <- τελος
28 ΑΛΛΙΩΣ_ΑΝ τελος = 1000 ΤΟΤΕ
29 ΓΡΑΨΕ 'Δεν μπορείτε να εξυπηρετηθείτε'
30 ΑΛΛΙΩΣ
31 τελος <- τελος + 1
32 πελατες[τελος] <- τελος
33 ΤΕΛΟΣ_ΑΝ
34 ΓΡΑΨΕ 'ΝΟΥΜΕΡΟ: ', πελατες[τελος]
35 ΑΛΛΙΩΣ_ΑΝ επ = 'Τ' Η επ = 'τ' ΤΟΤΕ
36 ΓΡΑΨΕ 'Δώσε το νούμερο του ταμείου σου (1 ή 2 ή 3 ή 4):'
37 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
38 ΔΙΑΒΑΣΕ τ
39 ΑΝ τ < 1 Η τ > 4 ΤΟΤΕ
40 ΓΡΑΨΕ 'Λάθος επιλογή. Ξαναπροσπάθησε...'
41 ΤΕΛΟΣ_ΑΝ
42 ΜΕΧΡΙΣ_ΟΤΟΥ τ >= 1 ΚΑΙ τ <= 4
43 !ΕΞΥΠΗΡΕΤΗΣΗ ΠΕΛΑΤΗ ΑΠΟ ΤΑΜΕΙΟ–ΔΙΑΓΡΑΦΗ ΠΕΛΑΤΗ ΑΠΟ ΤΗΝ ΟΥΡΑ
44 ΕΠΙΛΕΞΕ τ
45 ΠΕΡΙΠΤΩΣΗ 1
46 ΑΝ αρχ <> 0 ΚΑΙ τελος <> 0 ΤΟΤΕ
47 ΑΝ αρχ = τελος ΤΟΤΕ
48 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:',πελατες[αρχ]
49 πελατες[αρχ] <- 0
50 αρχ <- 0
51 τελος <- 0
52 ΑΛΛΙΩΣ
53 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:',πελατες[αρχ]
54 πελατες[αρχ] <- 0
55 αρχ <- αρχ + 1
56 ΤΕΛΟΣ_ΑΝ
57 ταμεια[1] <- ταμεια[1] + 1
58 ΑΛΛΙΩΣ
59 ΓΡΑΨΕ ' Δεν υπάρχει πελάτης να εξυπηρετηθεί...'
60 ΤΕΛΟΣ_ΑΝ
61 ΠΕΡΙΠΤΩΣΗ 2
62 ΑΝ αρχ <> 0 ΚΑΙ τελος <> 0 ΤΟΤΕ
63 ΑΝ αρχ = τελος ΤΟΤΕ
64 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:',πελατες[αρχ]
65 πελατες[αρχ] <- 0
66 αρχ <- 0
67 τελος <- 0
68 ΑΛΛΙΩΣ
69 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:',πελατες[αρχ]
70 πελατες[αρχ] <- 0
71 αρχ <- αρχ + 1
72 ΤΕΛΟΣ_ΑΝ
73 ταμεια[2] <- ταμεια[2] + 1
74 ΑΛΛΙΩΣ
75 ΓΡΑΨΕ ' Δεν υπάρχει πελάτης να εξυπηρετηθεί...'
76 ΤΕΛΟΣ_ΑΝ
77 ΠΕΡΙΠΤΩΣΗ 3
78 ΑΝ αρχ <> 0 ΚΑΙ τελος <> 0 ΤΟΤΕ
79 ΑΝ αρχ = τελος ΤΟΤΕ
80 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:',πελατες[αρχ]
81 πελατες[αρχ] <- 0
82 αρχ <- 0
83 τελος <- 0
84 ΑΛΛΙΩΣ
85 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:',πελατες[αρχ]
86 πελατες[αρχ] <- 0
87 αρχ <- αρχ + 1
88 ΤΕΛΟΣ_ΑΝ
89 ταμεια[3] <- ταμεια[3] + 1
90 ΑΛΛΙΩΣ
91 ΓΡΑΨΕ ' Δεν υπάρχει πελάτης να εξυπηρετηθεί...'
92 ΤΕΛΟΣ_ΑΝ
93 ΠΕΡΙΠΤΩΣΗ 4
94 ΑΝ αρχ <> 0 ΚΑΙ τελος <> 0 ΤΟΤΕ
95 ΑΝ αρχ = τελος ΤΟΤΕ
96 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:', πελατες[αρχ]
97 πελατες[αρχ] <- 0
98 αρχ <- 0
99 τελος <- 0
100 ΑΛΛΙΩΣ
101 ΓΡΑΨΕ 'Καλείται ο πελάτης με το νούμερο:', πελατες[αρχ]
102 πελατες[αρχ] <- 0
103 αρχ <- αρχ + 1
104 ΤΕΛΟΣ_ΑΝ
105 ταμεια[4] <- ταμεια[4] + 1
106 ΑΛΛΙΩΣ
107 ΓΡΑΨΕ ' Δεν υπάρχει πελάτης να εξυπηρετηθεί...'
108 ΤΕΛΟΣ_ΑΝ
109 ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
110 ΑΛΛΙΩΣ
111 ΓΡΑΨΕ 'Η Τράπεζα έκλεισε για τους πελάτες...'
112 ΤΕΛΟΣ_ΑΝ
113 ΜΕΧΡΙΣ_ΟΤΟΥ επ = 'Δ' Η επ = 'δ'
114 αθρ <- 0
115 !ΕΥΡΕΣΗ ΤΑΜΕΙΟΥ ΜΕ ΤΟΥΣ ΠΕΡΙΣΣΟΤΕΡΟΥΣ ΠΕΛΑΤΕΣ
116 μεγ <- 0
117 ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 4
118 ΑΝ μεγ < ταμεια[ι] ΤΟΤΕ
119 μεγ <- ταμεια[ι]
120 μεγΤ <- ι
121 ΤΕΛΟΣ_ΑΝ
122 αθρ <- αθρ + ταμεια[ι]
123 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
124 ΓΡΑΨΕ
125 ΓΡΑΨΕ 'Το σύνολο των πελατών που εξυπηρετήθηκαν,είναι:', αθρ
126 ΓΡΑΨΕ 'Το ταμείο που εξυπηρέτησε τους περισσότερους πελάτες είναι το ',μεγΤ
127 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΤΡΑΠΕΖΑ

Θα πρέπει επισημανθεί στους μαθητές είναι ότι η ουρά υλοποιείται με πίνακα στη ΓΛΩΣΣΑ και η επεξεργασία της πραγματοποιείται και από τα δύο άκρα. Στο ένα άκρο πραγματοποιείται πάντοτε η εισαγωγή στοιχείου και στο άλλο η εξαγωγή στοιχείου.

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

Για την εμπέδωση της διδασκόμενης έννοιας είναι απαραίτητη η επίλυση επιπλέον ασκήσεων (π.χ. οι άλυτες ασκήσεις της ενότητας 1.2 του βιβλίου [ΒΙΒΛΙΟ 2]). Το μάθημα γίνεται στο εργαστήριο της πληροφορικής.

Διευκρινίζεται ότι στο πλαίσιο του μαθήματος η δομή της ουράς θεωρείται στατική δομή και ως εκ τούτου υλοποιείται με στατικούς πίνακες, παρ’ ότι στη βιβλιογραφία εμφανίζονται και άλλες προσεγγίσεις.

32. Γενικές Ασκήσεις εμπέδωσης με πίνακες [8 ώρες]

Να επιλυθούν αντιπροσωπευτικές ασκήσεις στους πίνακες και μη λυμένες ασκήσεις από την παράγραφο 4.6 του βιβλίου [ΒΙΒΛΙΟ 3].

33. Τμηματικός προγραμματισμός, Χαρακτηριστικά των υποπρογραμμάτων, Πλεονεκτήματα του τμηματικού προγραμματισμού, Παράμετροι [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [10.1, 10.2, 10.3, 10.4]

Να παρουσιασθεί ο τμηματικός προγραμματισμός και τα πλεονεκτήματά του. Εισάγεται η έννοια του Υποπρογράμματος, ο τρόπος επικοινωνίας του με το υπόλοιπο πρόγραμμα, η λειτουργία των παραμέτρων και παρουσιάζονται οι ιδιότητες των υποπρογραμμάτων.

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθεί η παράγραφος 5.

34. Διαδικασίες και συναρτήσεις, Ορισμός και κλήση συναρτήσεων, Ορισμός και κλήση διαδικασιών, Πραγματικές και τυπικές παράμετροι [8 ώρες], 35. Εμβέλεια μεταβλητών - σταθερών [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [10.5, 10.5.1, 10.5.2, 10.5.3, 10.6]

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

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

Να χρησιμοποιηθεί βοηθητικά το [ΒΙΒΛΙΟ 3] από το οποίο να διδαχθούν οι παράγραφοι 5.1, 5.2, 5.3.

36. Εκσφαλμάτωση λογικών λαθών στα υποπρογράμματα [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [5.2.4]

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

Να αξιοποιηθούν το παράδειγμα και η δραστηριότητα της ενότητας 5.2.4 του βιβλίου [ΒΙΒΛΙΟ 2]. Το παράδειγμα προτείνεται να αξιοποιηθεί ως δραστηριότητα στην τάξη.

37. Γενικές Ασκήσεις εμπέδωσης με διαδικασίες και συναρτήσεις [10 ώρες]

Να επιλυθούν αντιπροσωπευτικές ασκήσεις στα υποπρογράμματα (διαδικασίες, συναρτήσεις) και μη λυμένες ασκήσεις από την παράγραφο 5.4 του βιβλίου [ΒΙΒΛΙΟ 3].

38. Εκσφαλμάτωση-Μέθοδος «Μαύρο Κουτί» [3 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [13.2]
• [ΒΙΒΛΙΟ 2]: [5.2.5, 5.3]

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

Η διδασκαλία της μεθόδου «Μαύρο Κουτί» να γίνει μέσα από πρακτική εφαρμογή, αξιοποιώντας τα παραδείγματα, τις δραστηριότητες και τις ασκήσεις του βιβλίου [ΒΙΒΛΙΟ 2]. Να δοθεί ιδιαίτερη προσοχή όταν οι τιμές εισόδου του προγράμματος είναι πραγματικοί αριθμοί (βλ. Δραστηριότητα 7 της ενότητας 5.2.5 του βιβλίου [ΒΙΒΛΙΟ 2]), καθώς σε αυτή την περίπτωση τα άκρα των διαστημάτων καθορίζονται με βάση την ακρίβεια με την οποία επιθυμούμε να λειτουργεί το πρόγραμμα.

Να τονιστεί ότι η μέθοδος «Μαύρο Κουτί» παρουσιάζεται στο [ΒΙΒΛΙΟ 2] με απλοποιημένο τρόπο, κατάλληλο για τις ανάγκες του μαθήματος. Για τον λόγο αυτό, τα παραδείγματα αφορούν μόνο σε προγράμματα με μία είσοδο και μία έξοδο και οι μη έγκυρες τιμές είναι μόνο όσες καθορίζει η εκφώνηση του προγράμματος. Δεν περιλαμβάνονται περιπτώσεις μη έγκυρων τιμών που θα προκαλούσαν μη κανονικό τερματισμό του προγράμματος, π.χ. εισαγωγή κενής τιμής (όταν ζητηθεί μια τιμή ο χρήστης να πιέσει κατευθείαν το πλήκτρο Enter), εισαγωγή ασύμβατης τιμής (εισαγωγή αλφαριθμητικού ενώ αναμένεται αριθμητική τιμή και αντίστροφα). Οι περιπτώσεις αυτές δεν μπορούν να αντιμετωπιστούν στη ΓΛΩΣΣΑ, σε αντίθεση με τις πραγματικές γλώσσες προγραμματισμού.

39. Άλλες δομές δεδομένων, Λίστες [3 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [1.3, 1.3.1]

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

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

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

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

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

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

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

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

40. Δένδρα [3 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [1.3.2]

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

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

41. Γράφοι [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [1.3.3]

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

Για την παρουσίαση του κατευθυνόμενου γράφου μπορεί να χρησιμοποιηθεί το ίδιο παράδειγμα ατόμων που συμμετέχουν σε μια εκδήλωση αλλά στην περίπτωση αυτή οι ακμές ανάμεσα στους κόμβους να αντιπροσωπεύουν την γνωριμία τους. Μπορεί να υπάρχει μια ακμή από τον κόμβο (άτομο) Α προς τον Β όταν το άτομο Α γνωρίζει το άτομο Β, αλλά δεν είναι απαραίτητο ότι και το άτομο Β γνωρίζει το άτομο Α. Για παράδειγμα, πολλοί άνθρωποι μπορεί να γνωρίζουν μια καλλιτεχνική και όχι μόνο προσωπικότητα, αλλά η προσωπικότητα είναι απίθανο να γνωρίζει όλους όσους τη γνωρίζουν. Το τελευταίο αυτό είδος γράφου ονομάζεται κατευθυνόμενος γράφος και οι ακμές του ονομάζονται κατευθυνόμενες ακμές. Το πρόβλημα με τις επτά γέφυρες του Königsberg αποτελεί μία καλή περίπτωση μοντελοποίησης και μελέτης της αναγκαιότητας χρήσης αυτής της δομής στη διαδικασία επίλυσης «δύσκολων» προβλημάτων.

42. Ερωτήσεις εμπέδωσης δυναμικών δομών δεδομένων [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [1.3.4]

Η ενότητα ολοκληρώνεται με ερωτήσεις εμπέδωσης των εννοιών που διδάχθηκαν, από τις Ασκήσεις- Ερωτήσεις που δίδονται στο [ΒΙΒΛΙΟ 2].

43. Αντικειμενοστραφής Προγραμματισμός: ένας φυσικός τρόπος επίλυσης προβλημάτων [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 1]: [6.5]
• [ΒΙΒΛΙΟ 2]: [4.1]

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

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

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

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

44. Χτίζοντας Αντικειμενοστραφή Προγράμματα [4 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [4.2]

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

45. Ομαδοποίηση Αντικειμένων σε Κλάσεις: Αφαιρετικότητα και Ενθυλάκωση [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [4.3]

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

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

46. Η Αντικειμενοστραφής «Οικογένεια»: Κλάσεις - Πρόγονοι, Κλάσεις - Απόγονοι [3 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [4.4]

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

47. Ορίζοντας την Κατάλληλη Συμπεριφορά: Πολυμορφισμός [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [4.5]

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

48. Ερωτήσεις εμπέδωσης στην αντικειμενοστραφή προσέγγιση [2 ώρες]

Ενότητες
• [ΒΙΒΛΙΟ 2]: [4.6]

Η ενότητα ολοκληρώνεται με ερωτήσεις εμπέδωσης των εννοιών που διδάχθηκαν από τις Ασκήσεις- Ερωτήσεις που δίδονται στην ενότητα 4.6 του βιβλίου [ΒΙΒΛΙΟ 2].

 

Σχετικά Άρθρα