1. Μετατροπές δομών επανάληψης
(Αλγοριθμική – Προγραμματισμός Υπολογιστικών Συστημάτων)
Κατά τη μετατροπή των εντολών της δομής επανάληψης οι μαθητές συναντούν αρκετές
δυσκολίες. Οι περισσότερες ανάγονται στη συνθήκη τερματισμού των εντολών. Οι μαθητές
δυσκολεύονται να αντιληφθούν πότε τερματίζει ένας βρόγχος. Ειδικότερα, τα συνηθέστερα
λάθη εντοπίζονται στον αρχικό έλεγχο της συνθήκης ΟΣΟ και στον έλεγχο που γίνεται στο τέλος
στην εντολή ΜΕΧΡΙΣ_ΟΤΟΥ, διασφαλίζοντας τουλάχιστον μία εκτέλεση του μπλοκ εντολών στη
δεύτερη περίπτωση. Ιδιαίτερες δυσκολίες αντιμετωπίζονται στη μετατροπή της ΟΣΟ και της
ΜΕΧΡΙΣ_ΟΤΟΥ στην εντολή ΓΙΑ ορίζοντας λανθασμένη συνθήκη τερματισμού. Οι δυσκολίες
γίνονται πολύ πιο έντονες όταν γίνεται εμφωλευμένη χρήση εντολών της δομής επανάληψης
και ζητείται η μετατροπή τους.
Οι συνηθέστερες δυσκολίες που συναντούν οι μαθητές στην κατανόηση των δομών
επανάληψης είναι οι εξής:
Ανεπαρκή νοητά μοντέλα: Οι μαθητές διαθέτουν ανεπαρκή μοντέλα για τις επαναληπτικές
δομές. Επιπλέον, μερικές φορές τα λάθη στα νοητά μοντέλα των αρχάριων προγραμματιστών
είναι ανεπαίσθητα και δύσκολο να εντοπιστούν.
Οι αναλλοίωτες σχέσεις που διέπουν μια επαναληπτική δομή (Loop invariant): Οι
αρχάριοι προγραμματιστές δυσκολεύονται στον καθορισμό του τμήματος ενημέρωσης ενός
βρόγχου (loop invariant) που αποτελεί σημαντικό συστατικό του. Οι μαθητές βασίζουν τα
μοντέλα των βρόγχων στην αναπαράσταση μιας αλληλουχίας ενεργειών (δυναμικό μοντέλο)
και όχι στην αναπαράσταση μιας αλληλουχίας σχέσεων μεταξύ των μεταβλητών (στατικό
μοντέλο). Επίσης, χρησιμοποιούν διαφορετικά ονόματα σε κάθε βήμα της επανάληψης για τη
σηματοδότησης μιας μεταβλητής με συγκεκριμένη λειτουργία (functional variable) και δεν
έχουν την ικανότητα να προσδιορίσουν αυθόρμητα μια συνθήκη εξόδου.