Τί θα προτείνατε εσείς;

Ξεκίνησε από Ιωάννης Γκίνης, 22 Ιαν 2011, 08:41:52 ΜΜ

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

Ιωάννης Γκίνης

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





ΤεμάχιαΤιμή Τεμαχίου (€)
1 - 38
4 - 77
8 και άνω5,5
Να γραφεί πρόγραμμα σε γλώσσα Pascal το οποίο:
α) Να διαβάζει το πλήθος των τεμαχίων της παραγγελίας και
β) Να υπολογίζει και να εμφανίζει το πληρωτέο ποσό για τον πελάτη.

Παρατήρηση: Δε ζητείται έλεγχος τιμών εισόδου.

Στη συνέχεια παραθέτω τρεις διαφορετικές υλοποιήσεις της λύσης του προβλήματος:

Υλοποίηση (1)
program pizza;
var x:integer;
pp:real;
begin
readln(x);
if ((x>=1) and (x<=3)) then
pp:=x*8;
if ((x>=4) and (x<=7)) then
pp:=x*7;
if (x>=8) then
pp:=x*5.5;
writeln('Πληρωτέο ποσό: ', pp:6:2);
end.


Υλοποίηση (2)
program pizza;
var x:integer;
pp:real;
begin
readln(x);
if ((x>=1) and (x<=3)) then
pp:=x*8
else if ((x>=4) and (x<=7)) then
pp:=x*7
else if (x>=8) then
pp:=x*5.5;
writeln('Πληρωτέο ποσό: ', pp:6:2);
end.


Υλοποίηση (3)
program Pizza;
var 
  X: Integer;
  PP: Real;
begin
  Readln(X);
  if x <= 3 then
    PP := X * 8
  else if x <= 7 then
    PP := X * 7
  else 
    PP := X * 5.5;
  Writeln('Πληρωτέο ποσό: ', PP:6:2);
end.

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

Η ερώτησή μου είναι η εξής: Εσείς τί θα επιλέγατε να διδάξετε σε ένα μαθητή της Γ' ΕΠΑΛ; Ποιά από τις τρεις υλοποιήσεις; Αν θέλετε αναφέρετε και το για ποιό λόγο.

Ευχαριστώ :)

petrosp13

Την τρίτη χωρίς δεύτερη σκέψη...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Ιωάννης Γκίνης


Νίκος Αδαμόπουλος

Για να πας στην 3η, δεν θα έπρεπε να περάσεις από τις άλλες πρώτα;

Ιωάννης Γκίνης

#4
Σωστά ρωτάτε κ. Αδαμόπουλε αλλά δε μας λέτε τι ακριβώς υπονοείτε.

Σούλας Βασίλης

Την 1η θα δίδασκα γιατί είναι πολύ πιο εύκολο να το κατανοήσουν. Με ανεξάρτητα if το καταλαβαίνουν καλύτερα.
Σούλας Βασίλης
Ηλεκτρολόγος Μηχανικός & Μηχανικός Η/Υ Δ.Π.Θ.
Καθηγητής Πληροφορικής ΠΕ19
http://users.sch.gr/vasisoulas
http://eclass.sch.gr/modules/auth/opencourses.php?fc=%D4-52

stratosg

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

Ιωάννης Γκίνης

#7
Είναι αυτό ακριβώς που με ανησυχεί.

  • Πού θα βρω το χρόνο να τα δείξω όλα αυτά κάθε φορά που έχω να κάνω με κάποιο αντίστοιχο θέμα;
  • Ποιό σχολικό βιβλίο να χρησιμοποιήσουμε για να τα εμπεδώσουμε;
  • Και τέλος, έρχεται ΤΟ Υπουργείο και μας λύνει όλες τις απορίες. Θυμηθείτε το 4ο θέμα των πανελλαδικών του 2010: http://users.sch.gr/jginis/?pg=sp#pascal28

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

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

stratosg

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

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

petrosp13

Δεν καταλαβαίνω γιατί σε μια τόσο απλή άσκηση θα χρειαστούν πάνω από 3 λεπτά για να εξηγηθεί η ανωτερότητα του τρίτου τρόπου σαν τελική λύση
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

stratosg

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

Ιωάννης Γκίνης

Παράθεση από: petrosp13 στις 23 Ιαν 2011, 03:09:45 ΜΜ
Δεν καταλαβαίνω γιατί σε μια τόσο απλή άσκηση θα χρειαστούν πάνω από 3 λεπτά για να εξηγηθεί η ανωτερότητα του τρίτου τρόπου σαν τελική λύση
Φίλε Πέτρο (αν μου επιτρέπεις), η κουβέντα δε γίνεται για την συγκεκριμένη άσκηση και μόνο. Έχει να κάνει με το ποιός είναι  ο σωστότερος και αποδοτικότερος τρόπος που πρέπει να διδάσκεται το συγκεκριμένο μάθημα στους μαθητές του ΕΠΑ.Λ., τουλάχιστον.

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

Νίκος Αδαμόπουλος

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

_sleeper

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

Η δεύτερη είναι η πιο παιδαγωγικά ορθή, αλλά η τρίτη είναι η πληρέστερη.

Εγώ ξεκινάω με τη δεύτερη (τους αφήνω να το λύσουν μόνοι τους με την πρώτη, ώστε να τους διορθώσω, για το εσφαλμένο της σκέψης τους) και καταλήγω στην τρίτη με την συμπλήρωση του X>=1 στην πρώτη συνθήκη, ώστε να πληροί ταυτόχρονα και το "πεδίο ορισμού" >=1. Άλλωστε πρέπει να μάθουν να κάνουν fool proof προγράμματα..  :P
what better place than here, what better time than now!

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

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

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