Πως μαθαίνουμε προγραμματισμό;

Ξεκίνησε από lp, 04 Μαρ 2009, 10:31:52 ΜΜ

« προηγούμενο - επόμενο »

lp

Συχνά βλέπω μαθητές που διαβάζουν πολύ...

Ξέρουν να πουν από έξω όλη την θεωρία του βιβλίου και τον τρόπο σύνταξης της κάθε εντολής μαζί με τους βασικούς αλγόριθμους (π.χ. αναζήτηση, max, min κλπ)

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

Τι μπορούμε να κάνουμε για αυτούς τους μαθητές ώστε να τους βοηθήσουμε; Παρακαλώ για τις ιδέες - προτάσεις σας.

Ευχαριστώ πολύ
Λέων Προκόπης
2ο ΓΕΛ Ναυπλίου

lykos

Αυτά που κάνω εγώ είναι τα εξής:
Α) Προσπαθώ στην αρχή της χρονιάς να μην χρησιμοποιώ τις λέξεις υπολογιστής & προγραμματισμός. Αναφέρομαι σε απλά - μαθηματικά κυρίως - προβλήματα, τα οποία προσπαθούμε να λύνουμε χρησιμοποιώντας αριθμητική. Γιατί;

  • Θεωρώ ότι υπάρχει μια προκατάληψη ως προς τη δυσκολία/ευκολία του προγραμματισμού Η/Υ με συνέπεια, η πλειοψηφία των μαθητών να θεωρούν εαυτούς, μη ικανούς να μάθουν προγραμματισμό.
  • Εχω διαπιστώσει πως, ενώ κάποιοι μαθητές είναι καλοί στο μάθημα των μαθηματικών, δυσκολεύονται να λύσουν προβλήματα αριθμητικής. (π.χ.: Πως θα μοιραστούν τα 2.000 Ευρώ στις τάξεις του Σχολείου, ανάλογα με τον αριθμό των μαθητών κάθε τάξης? ή: Πόσο έκανε το ποδήλατο των 300 Ευρώ, πρίν προστεθεί 19% ΦΠΑ? ή: Πόσο κάνει 16+18/2 ?)
Β) Ξεκινώντας τους Αλγορίθμους, βάζω έναν μαθητή να γράψει τις οδηγίες επίλυσης ενός προβλήματος και έναν άλλον να τις εκτελέσει, προσπαθώντας να τους εξηγήσω, πως σκοπός μας είναι να μάθουμε στον οποιονδήποτε - που ξέρει να κάνει πράξεις και να εκτελεί σωστά οδηγίες - να λύνει ένα πρόβλημα (που εμείς ξέρουμε να λύνουμε). Σημαντικό είναι, να τους δείξω πως, ο "οποιοσδήποτε" θα καταφέρει να λύσει το πρόβλημα, χωρίς καν να ξέρει τι πρόβλημα έλυσε...
Γ) Δεν ξεχνώ να αναφέρομαι συχνά-πυκνά στο "Πρόβλημα->Κατανόηση->Επίλυση".
Δ) Προσπαθώ, πριν εκφραστώ για την ορθότητα ή μή του Αλγορίθμου που έκανε ο μαθητής, να τον αφήσω να διαπιστώσει ο ίδιος τυχόν λάθη, εκτελώντας τον (όχι τον μαθητή! Ο μαθητής τον Αλγόρθμο), χρησιμοποιώντας τυχαίες τιμές δεδομένων.
Δ) Επιμένω - όταν έχουμε φτάσει στους πίνακες - να σχεδιάζουν τους πίνακες και να κατανοούν "που βρίσκεται τι",  πριν ξεκινήσουν να λύνουν.

Αυτά προς το παρόν!
Ας ακούσουμε (εννοώ: διαβάσουμε) κι' απόψεις άλλων συναδέλφων...

Βασίλης Λυκοστράτης

gpapargi

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

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

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

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

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

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

Φυσικά καταλήγουμε σε μη τυποποιημένες/κονσερβοποιημένες ασκήσεις πράγμα που είναι ο φόβος και ο τρόμος του παπαγάλου  >:D   

pgrontas

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

Κατά τα άλλα και εγώ ακολουθώ την προσέγγιση του να μιλήσουν με τον εαυτό τους. Τους λέω μάλιστα να προσπαθήσουν να λύσουν ένα πρόβλημα σε slow motion (τους κάνω και ένα ψιλο θεατρικό), ώστε να καταλάβουν ποιες είναι οι διακριτές ενέργειες που οδηγούν στην επίλυση του. Στην συνέχεια πρέπει να βρουν πώς αυτές αντιστοιχίζονται στις αλγοριθμικές δομές. Και το κερασάκι στην τούρτα (που βέβαια δεν αφορά το μαθημα μας): υπάρχει κάτι που μπορεί να βελτιώθεί;

Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gpapargi

Παράθεση από: pgrontas στις 05 Μαρ 2009, 09:40:02 ΠΜ
Γιώργο έχεις απόλυτο δίκιο στις παρατηρήσεις σου, εκτός από το θέμα της ανακάλυψης των νέων αλγορίθμων. Είμαι σίγουρος ότι ο Ερατοσθένης παρατήρησε και αυτός τον εαυτό του σχετικά με το τι έκανε για να βρει τους πρώτους αριθμούς και μετά το κατέγραψε σε αλγόριθμο. Άλλωστε, νέος αλγόριθμος υπάρχει σε κάθε πρόβλημα που καλούμαστε να επιλύσουμε.

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

Καρκαμάνης Γεώργιος

Να εκφράσω και την δική μου άποψη:

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

1η κατηγορία:Οι μαθητές που δεν μπορούν να πραγματοποιήσουν το πρώτο στάδιο εννοείται ότι δεν φτάνουν ποτέ στο δευτερο σταδιο και είναι αυτοί που γράφουν χαμηλά <10

2η: μαθητές που καταλαβαίνουν το 1ο στάδιο και δυσκολεύονται στο 2ο στάδιο απλώς χρειάζονται εξάσκηση σε λύση ασκήσεων η οποία όμως πρέπει να ξεκινήση από την αρχή: δομή ακολουθίας- επιλογης κτλ

3η:μαθητές που κάνουν εξίσου κάλά και τα δυο, είναι αυτοι που θα αγγίξουν το άριστα.

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

lp

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