Αποστολέας Θέμα: Εκπαιδευτική Γλώσσα Προγραμματισμού  (Αναγνώστηκε 13136 φορές)

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3148
  • to Iterate is human to Recurse divine
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #15 στις: 14 Νοέ 2014, 08:29:55 μμ »
μπορείς να μου το εξηγήσεις λίγο αυτό?
Σε πέντε λεπτἀ, αλλά δεν είναι εκεί το πρόβλημα.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

spin

  • Βετεράνος
  • ****
  • Μηνύματα: 76
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #16 στις: 14 Νοέ 2014, 09:27:00 μμ »
Συνάδελφοι γεια χαρά.
Παραθέτω μερικές σκέψεις σχετικά με αυτά που γράψατε παραπάνω, ύστερα από 15 χρόνια ενασχόλησής μου με το μάθημα:

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

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

3.
Γλώσσα που ακολουθεί τις εξελίξεις;
Χμμμ… με φειδώ.
Όταν μιλάμε για μία γλώσσα που απευθύνεται σε μαθητές, οι περισσότεροι των οποίων δεν σκοπεύουν να γίνουν Πληροφορικοί και μάλλον δεν θα ξαναγράψουν ΟΥΤΕ ΜΙΑ γραμμή κώδικα στη ζωή τους, τότε οι "παραδοσιακές αλήθειες" της αλγοριθμικής (δηλ. οι δομές που διδάσκονται και στην ΑΕΠΠ) είναι -ίσως- αρκετές.
Κάποιες διορθώσεις μπορούν να γίνουν.
Τώρα που θα αυξηθούν οι ώρες πιστεύω ότι ο αντικειμενοστραφής πρέπει να είναι η πρώτη προσθήκη, αφού συμβάλει στην ενδυνάμωση της οργανωτικής σκέψης.
Οι εμπειρίες μου από την αναδρομή, τα πρώτα χρόνια που ήταν εντός, δεν ήταν ιδιαίτερα ευχάριστες, αφού λόγω αυξημένης δυσκολίας απευθυνόμουν μόνο σε ένα ποσοστό 15%-20% των μαθητών μου.
Οι υπόλοιποι τη θεωρούσαν "χαμένο θέμα".
Η σημασία όμως αυτής της έννοιας είναι τόσο μεγάλη που θα έπρεπε να υπάρχει, σε ελεγχόμενη όμως έκταση.

4.
Η Pascal ξεπερασμένη;
Αν κάποιος έχει στο μυαλό του την παλιά κλασική Pascal από τη μία, και server side scripting και web authoring με peer to peer επικοινωνία μεταξύ των browsers από την άλλη, ναι είναι ξεπερασμένη!
Αλλά όταν μιλάμε για μάθημα που απευθύνεται σε μαθητές σχολείων, πρέπει να θυμόμαστε ότι η Pascal είναι από τις γλώσσες που δημιουργήθηκαν ΚΑΙ για την εκπαίδευση, με ότι αυτό συνεπάγεται.
Από την άλλη, υπάρχουν πλέον μοντέρνες εκδόσεις της Pascal και σύγχρονα περιβάλλοντα με τα οποία μπορείς να κάνεις ακόμα και cross platform mobile development!

5.
Όσον αφορά την ανάπτυξη ενός σύγχρονου ελληνικού περιβάλλοντος με στοιχεία visual programming κλπ, η αφοσίωση, οι απαιτούμενες εργατοώρες και η συνεργασία πρέπει να χτυπήσουν κόκκινο σε τέτοιο βαθμό, που -μακάρι να βγω ψεύτης και να το καταφέρουμε- δεν το βλέπω πιθανό να γίνεται.
Και τι δεν θα έδινα να είχαμε ένα τέτοιο πολυμορφικό εργαλείο για χρήση από το δημοτικό μέχρι το πανεπιστήμιο!

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


fof

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 291
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #17 στις: 14 Νοέ 2014, 11:18:42 μμ »
Πριν προτείνουμε οποιαδήποτε αλλαγή, καλό είναι να βάλουμε ως κριτήριο πρώτα απ΄ όλα τα παιδιά!.. και ρωτάω;

1.   Το τωρινό δίωρο μας φτάνει για να καλύψουμε πλήρως και με επάρκεια την ύλη της ΑΕΠΠ ; πόσες ώρες θα χρειαζόμασταν;
2.   Πρέπει να έχει συνέχεια το μάθημα της Γ με αυτό της Β;;
3.   Πως θα αντιμετωπίσουν τα παιδιά μια ξαφνική αλλαγή ύλης, ενώ τους είναι οικεία και δοκιμασμένη,  εδώ και 15 χρόνια, η τωρινή ύλη;
4.   Οι αλλαγές που σκεφτόμαστε είναι θα είναι εύκολο να εξεταστούν γραπτά;
5.   Τι θέλουμε και τι πρέπει να γνωρίζουν σήμερα οι απόφοιτοι της Γ Λυκείου;;
6.   Κατά πόσο η καινούρια ύλη θα είναι ελκυστική για τους μαθητές; Θα προσεγγίσουν με αγάπη την Πληροφορική; Ή θα φύγουν τρομαγμένοι;
7.   Οι στόχοι που θέτουμε και επιθυμούμε να καλύψουν οι μαθητές μας , μπορούν να καλυφθούν στην πραγματικότητα;
 
Δεν ξέρω… πάντως σε πολλά δεν έχω απαντήσει ακόμα!..... ελπίζω μόνο να μη βιαστούμε και μη παρασυρθούμε από δικούς μας προσωπικούς στόχους και απωθημένα!   

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3148
  • to Iterate is human to Recurse divine
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #18 στις: 15 Νοέ 2014, 12:14:56 πμ »
Όταν μιλάμε για μία γλώσσα που απευθύνεται σε μαθητές, οι περισσότεροι των οποίων δεν σκοπεύουν να γίνουν Πληροφορικοί και μάλλον δεν θα ξαναγράψουν ΟΥΤΕ ΜΙΑ γραμμή κώδικα στη ζωή τους, τότε οι "παραδοσιακές αλήθειες" της αλγοριθμικής (δηλ. οι δομές που διδάσκονται και στην ΑΕΠΠ) είναι -ίσως- αρκετές.
αν δεν κάνω λάθος το μάθημα (για το νέο 6ωρο μάθημα κατεύθυνσης μιλάμε ) απευθύνεται σε μαθητές που θα δώσουν για τμήματα πληροφορικής ή τμήματα σχετικά με την πληροφορική, οπότε μάλλον θα γράψουν ΠΟΛΛΕΣ γραμμές κώδικα ακόμα στη ζωή τους.
και μάλλον δεν θα είναι σε Pascal
τι εννοώ
Πόσα πανεπιστημιακά τμήματα ξεκινάνε με Pascal πια? (και ελληνικά και διεθνή)
πόσες γραμμές κώδικα αυτή τη στιγμή γράφονται σε pascal σε όλον τον κόσμο σε σχέση με τις άλλες γλώσσες?

http://spectrum.ieee.org/computing/software/top-10-programming-languages
http://www.sitepoint.com/best-programming-language-learn-2014-mid-year-update/
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
δεν βλέπω την pascal πουθενά, εκτός αν οι αναφορές μου δεν είναι έγκυρες

Κανείς δεν αμφιβάλλει ότι η Pascal είναι πολύ καλή γλώσσα για να ξεκινήσεις. Οι περισσότεροι εδώ με Pascal ξεκινήσαμε.
Απλά υπάρχουν πλέον γλώσσες που δεν είναι μόνο πιο πρακτικές, αλλά είναι και εκφραστικά πιο δυνατές (π.χ. έχουν closures) γιατί συνδυάζουν συναρτησιακά και αντικειμενοστρεφή χαρακτηριστικά.
Δεν λέω ότι θα κάνεις αυτά σε ένα εισαγωγικό μάθημα προγραμματισμού/αλγορίθμων απαραίτητα, αλλά γιατί να μην έχεις αυτή τη δυνατότητα?
Επίσης κάτι πολύ σημαντικό είναι ότι η Python είναι πολύ κοντά στην ψευδογλώσσα, π.χ. μπορείς να ορίσεις την αντιμετάθεσε (swap) μόνο μια φορά και δουλεύει για όλους τους τύπους. Ουσιαστικά ορίζεις τον αλγόριθμο πέρα από τύπους. Στην pascal πόσες φορές πρέπει να ορίσεις την swap ώστε να δουλεύει για κάθε τύπο? Δεν ξέρω αν πλέον η pascal έχει κάποια δομή όπως τα templates της C++ αλλά σίγουρα δεν έχει αυτή την ευελιξία της Python/Javascript σε καμία περίπτωση.

Παράθεση
Άλλοι είναι οι διδακτικοί μας στόχοι.
ποιοι είναι? και τι παραπάνω προσφέρει η pascal σε σχέση με πιο σύγχρονες γλώσσες για να τους πετύχουμε;
« Τελευταία τροποποίηση: 15 Νοέ 2014, 12:41:57 πμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #19 στις: 15 Νοέ 2014, 12:49:44 πμ »
μπορείς να μου το εξηγήσεις λίγο αυτό?

Δεν ξέρω πώς ακριβώς είχες στο μυαλο σου το σχεδιάζω μια γραφική διεπαφή, αλλά κανένας ποτέ και για κανέναν λόγο δεν θα κάτσει να γράφει με το χέρι το GUI σε C++. Υπάρχουν designer που σου κάνουν auto-generate τον κώδικα και έτσι δουλεύεις, είτε είναι C++, C# ή Delphi πχ. Αυτό που εννοούσα είναι ότι η C++ per se δεν δημιουργεί κάποια ιδιαίτερη δυσκολία στο όλο θέμα και ότι γενικά έχει άλλα προβληματα (πιο σοβαρά) που την κάνουν εντελώς ακατάλληλη για διδασκαλία (στα πλαίσια που συζητάμε).
« Τελευταία τροποποίηση: 15 Νοέ 2014, 01:23:05 πμ από itt »

spin

  • Βετεράνος
  • ****
  • Μηνύματα: 76
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #20 στις: 15 Νοέ 2014, 01:29:59 πμ »
Ευριπίδη αν από όλο το post μου κατάλαβες ότι προτείνω να διδάσκουμε στα παιδιά Pascal, τότε έχω σοβαρό πρόβλημα στον γραπτό μου λόγο!

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

Όσον αφορά τα διαγράμματα που παραθέτεις:
Το πρώτο αναφέρεται σε “computer science departments”, οπότε είναι μάλλον εκτός θέματος.
Το δεύτερο αναφέρεται σε “popularity”, δείκτης που διαμορφώνεται από έναν μεγάλο αριθμό κριτηρίων (υπάρχουν στα links). Όποια γλώσσα κι αν διδάσκουν τα δευτεροβάθμια σχολεία, δεν είναι δυνατό αυτή να ανταγωνιστεί σε δημοφιλία τις γλώσσες-γίγαντες της παγκόσμιας βιομηχανίας πληροφορικής που φτιάχτηκαν για να ικανοποιούν τις ανάγκες αυτής της τεράστιας αγοράς.

Για να μην επαναλαμβάνομαι, η άποψή μου για το μέλλον της ΑΕΠΠ είναι αυτή που παραθέτω ρητά στην τελευταία παράγραφο του post μου.

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

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #21 στις: 15 Νοέ 2014, 01:34:30 πμ »
Η Pascal ξεπερασμένη;
Αν κάποιος έχει στο μυαλό του την παλιά κλασική Pascal από τη μία, και server side scripting και web authoring με peer to peer επικοινωνία μεταξύ των browsers από την άλλη, ναι είναι ξεπερασμένη!
Αλλά όταν μιλάμε για μάθημα που απευθύνεται σε μαθητές σχολείων, πρέπει να θυμόμαστε ότι η Pascal είναι από τις γλώσσες που δημιουργήθηκαν ΚΑΙ για την εκπαίδευση, με ότι αυτό συνεπάγεται.
Από την άλλη, υπάρχουν πλέον μοντέρνες εκδόσεις της Pascal και σύγχρονα περιβάλλοντα με τα οποία μπορείς να κάνεις ακόμα και cross platform mobile development!

Δημιουργήθηκε για την εκπαίδευση πριν από 40 χρόνια, πλέον έχουμε πολύ καλύτερες επιλογές από αυτήν. Επίσης το ότι μπορείς να κάνεις cross platform mobile development με Pascal δεν σημαίνει ότι είναι και ιδιαίτερα καλή ιδέα να το κάνεις.

spin

  • Βετεράνος
  • ****
  • Μηνύματα: 76
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #22 στις: 15 Νοέ 2014, 02:09:05 πμ »
Δημιουργήθηκε για την εκπαίδευση πριν από 40 χρόνια
Κοίτα να δεις που στα καλά καθούμενα έγινα δικηγόρος της Pascal!  ;D
Η Pascal, ναι, δημιουργήθηκε πριν 40 χρόνια, αλλά δεν έπαψε ποτέ να εξελίσσεται, κάτι που αγνοούν αυτοί που απαξιούν να την παρακολουθήσουν.

το ότι μπορείς να κάνεις cross platform mobile development με Pascal δεν σημαίνει ότι είναι και ιδιαίτερα καλή ιδέα να το κάνεις.
Συνάδελφε αν έχεις προσωπική αρνητική εμπειρία από κάτι τέτοιο, θα με ενδιέφερε πραγματικά να την ακούσω.
Γιατί ασχολούμαι τα 2 τελευταία χρόνια με το θέμα, έχω δοκιμάσει 3-4 διαφορετικές προσεγγίσεις και δεν μπορώ να πω ότι συμμερίζομαι την άποψή σου.

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #23 στις: 15 Νοέ 2014, 02:18:23 πμ »
Κοίτα να δεις που στα καλά καθούμενα έγινα δικηγόρος της Pascal!  ;D
Η Pascal, ναι, δημιουργήθηκε πριν 40 χρόνια, αλλά δεν έπαψε ποτέ να εξελίσσεται, κάτι που αγνοούν αυτοί που απαξιούν να την παρακολουθήσουν.
Nαι, δεν πρόλαβα το προηγόύμενο post σου. Δεν απαξιώ να παρακολουθήσω την Pascal, έχω συντηρήσει και κώδικα γραμμένο σε Delphi. Το θεμα είναι ότι πλέον είναι παρωχημένη για διάφορους λόγους που δεν αξίζει να τους αναλύσουμε.

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

Η καλύτερη επιλογή για cross platform σε mobile είναι το Xamarin. Kυρίως λόγο του Miguel.

spin

  • Βετεράνος
  • ****
  • Μηνύματα: 76
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #24 στις: 15 Νοέ 2014, 02:29:23 πμ »
Το θεμα είναι ότι πλέον είναι παρωχημένη για διάφορους λόγους που δεν αξίζει να τους αναλύσουμε.
Σεβαστό.
Απλώς πιστεύω πως θα ήταν καλύτερα όταν λέμε κάτι να το τεκμηριώνουμε κιόλας -έστω συνοπτικά- για να μη δημιουργούνται εσφαλμένες εντυπώσεις.

Η καλύτερη επιλογή για cross platform σε mobile είναι χωρίς αμφιβολία το Xamarin.
Δεν ξέρω αν είναι η καλύτερη, πάντως είναι σίγουρα το πρώτο αποτέλεσμα που βγαίνει αν γκουγκλάρεις "cross platform mobile development"...
Tο δοκίμασα πριν καιρό, αλλά σε λιγότερο από 1 εβδομάδα το παράτησα.
Αλλά πάλι μου πετάς τη μπάλα στην εξέδρα. Έχεις προσωπική αρνητική εμπειρία από αυτό που κατέκρινες στο προηγούμενο post μου;

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #25 στις: 15 Νοέ 2014, 03:08:22 πμ »
Σεβαστό.
Απλώς πιστεύω πως θα ήταν καλύτερα όταν λέμε κάτι να το τεκμηριώνουμε κιόλας -έστω συνοπτικά- για να μη δημιουργούνται εσφαλμένες εντυπώσεις.

Θα το αναλύσω αύριο.

Δεν ξέρω αν είναι η καλύτερη, πάντως είναι σίγουρα το πρώτο αποτέλεσμα που βγαίνει αν γκουγκλάρεις "cross platform mobile development"...
Tο δοκίμασα πριν καιρό, αλλά σε λιγότερο από 1 εβδομάδα το παράτησα.
Αλλά πάλι μου πετάς τη μπάλα στην εξέδρα. Έχεις προσωπική αρνητική εμπειρία από αυτό που κατέκρινες στο προηγούμενο post μου;

Δεν αντιλαμβάνομαι τον τόνο σου. Προφανώς και είναι το πρώτο αποτέλεσμα στην αναζήτηση, υποστηρίζεται επίσημα από τη Microsoft και ο Miguel είναι από τους κορυφαίους προγραμματιστές στον πλανήτη. Δεν είπα ότι έχω αρνητική εμπειρία από την Delphi, είπα ότι δεν υπάρχει κανένας απολύτως λόγος να γράψεις Delphi για να έχεις cross platform builds. Υπάρχουν καλύτερες επιλογές, με καλύτερο tooling και καλύτερο support από καλύτερες εταιρείες.

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1319
  • There are always possibilities...
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #26 στις: 15 Νοέ 2014, 09:32:45 πμ »
Δεν νομίζω ότι πρέπει να μπλέξουμε σε flame war μεταξύ συγκεκριμένων γλωσσών προγραμματισμού.

Ευριπίδη, τα διαγράμμα που έβαλες είναι πολύ κατατοπιστικά και νομίζω ότι από μόνα τους αποκλείουν γλώσσες όπως Javascript και Ruby παρά το βατό learning curve που λές. Αν χρησιμοποιηθεί μια έτοιμη γλώσσα πρέπει να είναι εύκολη και να έχει σεβασμό τόσο στον ακαδημαϊκό όσο και στον επαγγελματικό χώρο

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

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

Έτσι νομίζω ότι το δίλημμα θα πρέπει να είναι: ψευδογλώσσα/γλώσσα με κάποιες επεκτάσεις ή Python.

A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #27 στις: 15 Νοέ 2014, 10:53:25 πμ »
Συμφωνώ και 'γω με τον pgrontas.
Αν για τους λόγους που αναφέρθηκαν επιλεγεί μία έτοιμη γλώσσα, υπάρχει σχετική ομοφωνία υπέρ της python, οι διεθνείς τάσεις επίσης συμφωνούν.

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

Η εμπειρία η δικιά μου λέει τα εξής:

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

    --Να αλλάξει η σύνταξη για την προσπέλαση των πολυδιάστατων πινάκων. Από Α[1, 3] πλέον να λέμε Α[1][3]. Το σκεπτικό είναι ότι θα μπορούμε εύκολα να απομονώνουμε ολόκληρες γραμμές, να υλοποιούμε ευκολότερα τα υποπρογράμματα και να εισάγουμε γενικές συναρτήσεις που να χειρίζονται πίνακες. Υπάρχουν γενικά πολλά πλεονεκτήματα σε αυτή την προσέγγιση.
    -- Προσθήκη array literal π.χ. Α <- [1, 2, 4, 6]
    -- Προσθήκη συνάρτησης μήκος π.χ. μήκος(Α) που θα δίνει το μήκος της πρώτης διάστασης του πίνακα, μήκος(Α[1]) της δεύτερης κοκ. Με αυτό λύνεται και το πρόβλημα των υποπρογραμμάτων που μέχρι στιγμής λύνεται με την εντολή Δεδομένα //Α, Ν// . Το Ν δεν θα χρειάζεται.
    -- Ο πίνακας να ενταχθεί ως τύπος δεδομένων και οι συναρτήσεις να μπορούν να επιστρέφουν πίνακα ως μία τιμή όπως γίνεται και τώρα.

-- Προσθήκη τύπου δεδομένων εγγραφής. Κάτι πολύ ελαφρύ όπως τα tuples της python. Η διαφορά με τον πίνακα είναι ότι θα μπορούμε να έχουμε στοιχεία διαφορετικών τύπων σε μία εγγραφή ενώ στους πίνακες θα παραμείνει ο περιορισμός ότι όλα τα στοιχεία θα πρέπει να έχουν τον ίδιο τύπο

-- Προσθήκη έτοιμων συναρτήσεων όπως η ΤΥΧΑΙΟΣ(α, β)

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

-- Όλοι οι τύποι δεδομένων πρέπει να είναι first class (τα πάντα να μπορούν να περνάνε ως παράμετροι σε συναρτήσεις, να επιστρέφονται από συναρτήσεις, να είναι μέλη των δομών δεδομένων κτλ)

-- Απλοποίηση του συντακτικού για τις συναρτήσεις π.χ.
Κώδικας: [Επιλογή]
Αλγόριθμος max(x,y)
    Αν x > y τότε
        max <- x
    αλλιώς
        max <- y
    Τέλος
Τέλος
Και πάλι μιλάω για αφαίρεση συντακτικού

-- Όλες οι εντολές να τελειώνουν με "Τέλος"

edit:
Ξέχασα τα αλφαριθμητικά. Να συμπεριφέρονται ως πίνακες χαρακτήρων και ο τελεστής + να τα ενώνει.

Αυτά που προτείνω είναι ως επί το πλείστον αφαίρεση συντακτικού, θα μπορούσα να το επεκτείνω και στις δομές. π.χ. Το επανάλαβε - Μέχρις_ότου δεν είναι απολύτως απαραίτητο. Θα μπορούσε να αφαιρεθεί και αυτό. Να μείνουμε μόνο με την Όσο και την Για. Κερδίζουμε χρόνο και δεν χάνουμε και πολλά πράγματα.

Θα ήθελα επίσης να είναι και οι συναρτήσεις first class objects και να είναι δυνατή η δημιουργία ανώνυμων συναρτήσεων με full lexical closure. Αυτό απαιτεί μικρές συντακτικές αλλαγές και ξεκλειδώνει ένα νέο κόσμο για αυτά που μπορούμε να διδάξουμε. Μπορεί σε κάποιους να ακούγεται μακρινό αλλά νομίζω είναι κάτι που θεωρώ ότι πρέπει να υποστηρίζεται από οποιαδήποτε γλώσσα και αν διαλέξουμε. Δεν το συνδέω άμεσα με την ΑΕΠΠ αν και προσωπικά πιστεύω ότι αξίζει να μπει. Σαν δυνατότητα όμως ούτως ή άλλως πρέπει να υπάρχει άσχετα με το αν θα χρησιμοποιηθεί ή όχι.

Σαν γενικό σχόλιο τώρα είμαι υπέρ της διδασκαλίας ΜΙΑΣ μόνο γλώσσας που τείνει πιο πολύ προς το συντακτικό της ψευδογλώσσας που έχει λιγότερο θόρυβο και μπορείς πιο εύκολα να διδάξεις τις μεγάλες ιδέες που υπάρχουν στο αντικείμενό μας χωρίς να μπλέξεις πολύ με συντακτικό και προγραμματιστικές λεπτομέρειες.
« Τελευταία τροποποίηση: 15 Νοέ 2014, 11:21:06 πμ από sstergou »
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3148
  • to Iterate is human to Recurse divine
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #28 στις: 15 Νοέ 2014, 12:17:56 μμ »
@spin
Το διάγραμμα που έδωσα για τα ΑΕΙ των ΗΠΑ δεν νομίζω ότι είναι εκτός θέματος. Δεν έχει σημασία αν είναι τμήματα  ΑΕΙ. Σημασία έχει ποια προσέγγιση επιλέγουν οι καλύτεροι για την εισαγωγή στον προγραμματισμό. Όχι ότι πρέπει να τους αντιγράψουμε, αλλά για να ακολουθούν όλοι αυτή την προσέγγιση κάποιος λόγος θα υπάρχει. Ας το αναλύσουμε να δούμε αν ταιριάζει σε μας.
Παρόμοια γραμμή ακολουθείται και με τα νέα προγράμματα σπουδών σε ΗΠΑ και Αγγλία όσον αφορά τη δευτεροβάθμια.
Δεν ξέρω πόσο έχεις ασχοληθεί με Python, αλλά είμαι σίγουρος πως αν ασχοληθείς θα αλλάξεις γνώμη.
Το θέμα είναι ότι από αλγοριθμικής πλευράς δεν κερδίζεις κάτι αν πας σε ελληνική ψευδογλώσσα/ΓΛΩΣΣΑ από το αν πας σε Python. Τα ελληνικά για μένα δεν είναι επιχείρημα, γιατί σχεδόν όλοι ξέρουν κάποια βασικά αγγλικά και τα αγγλικά της Python νομίζω είναι πολύ απλά.

Επίσης δεν μίλησα για cross platform development απαραίτητα.(Πως το βάλαμε αυτό στην κουβέντα? ο itt φταίει  :D)
Αν μπορούμε να κάνουμε μερικές πρακτικές εφαρμογές να δουν τα παιδιά ότι μπορούν να δημιουργήσουν γρήγορα κάτι πρακτικό και σύγχρονο ακόμα καλύτερα, αλλά αυτό είναι μάλλον δευτερεύων σκοπός.
Πιο σημαντική για μένα είναι η εκφραστική δύναμη της Python που πηγάζει από τα συναρτησιακά χαρακτηριστικά της σε πολλές περιπτώσεις και η απλότητα στα πρώτα προγράμματα.
Επειδή δοκιμάζω φέτος σε Γυμνάσιο να κάνω απλά στοιχεία αλγοριθμικής με python μέχρις στιγμής πάει πολύ καλύτερα από ότι περίμενα.

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

H python είναι ότι πιο κοντινό στην ψευδογλώσσα,αφού έχει dynamic typing και όπως είπα και στο προηγούμενο post με ένα παράδειγμα μπορείς να ορίσεις τη swap μια φορά για όλους τους τύπους ενώ σε άλλες γλώσσες δεν μπορείς να κάνεις κάτι τέτοιο τόσο απλά.

Διαφωνώ στο γεγονός ότι πρέπει να έχουμε ΓΛΩΣΣΑ. Για ποιο λόγο να φτιάξεις μια νέα γλώσσα προγραμματισμού ενώ υπάρχουν πολύ καλύτερες για την ίδια δουλεία?
Το καλύτερο για μένα είναι να έχουμε αρχικά ψευδογλώσσα και στη συνέχεια να πηγαίνουμε σε μια πραγματική γλώσσα προγραμματισμού όπως η Python.
Η μετάβαση είναι πραγματικά trivial.

@sstergou
Συμφωνώ απόλυτα, έχουμε την ίδια φιλοσοφία
Επειδή δεν έχω γράψει πολύ κώδικα σε Python, την έχω χρησιμοποιήσει μόνο για την επίλυση προβλημάτων στο project Euler και για διδασκαλία στο σχολείο
ποια θεωρείς ότι είναι καλύτερη για εισαγωγή στον προγραμματισμό η Python 2.xx ή Python 3.xx?
Δεν ξέρω αλλά μου φαίνεται ότι η 3 ... δεν είναι σε καλό δρόμο, μπορεί να κάνω και λάθος.
Από την άλλη η Python 2.xx σταμάτησε να αναπτύσσεται το 2010 αν δεν κάνω λάθος.
Γενικά το ψάχνω (στο σχολείο κάνω python 3 αλλά σε αυτά που τους κάνω δεν έχει μεγάλες διαφορές γιατί είναι απλά)
Αν έχεις ασχοληθεί θα εκτιμούσα την άποψή σου

@itt
σχετικά με τη σχεδίαση GUI, το νόημα δεν είναι να κάνει ο μαθητής 2-3 κλικ, να δει ένα παράθυρο και να ξεγελαστεί ότι έφτιαξε μια διεπαφή προφανώς
αλλά να καταλάβει τι γίνεται, ότι το παράθυρο είναι ένα αντικείμενο κλπ.
Επίσης όσο καλό designer και να έχεις κάποια στιγμή θα χρειαστεί να γράψεις κώδικα για να συνδέσεις το front με το back end
Πάντως στη Java αν χρησιμοποιήσεις την βιβλιοθήκη της ACM μια χαρά μπορεί να βάλεις του μαθητές να σχεδιάσουν interface μόνο με κώδικα στα πρώτα μαθήματα.
απλά η Java έχει γενικότερο θέμα όσον αφορά την εκπαίδευση
« Τελευταία τροποποίηση: 15 Νοέ 2014, 12:43:56 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

spin

  • Βετεράνος
  • ****
  • Μηνύματα: 76
Απ: Εκπαιδευτική Γλώσσα Προγραμματισμού
« Απάντηση #29 στις: 15 Νοέ 2014, 01:20:51 μμ »
είπα ότι δεν υπάρχει κανένας απολύτως λόγος να γράψεις Delphi για να έχεις cross platform builds.
ΟΚ συνάδελφε, δεκτή η διευκρίνηση. Το είχες διατυπώσει τελείως διαφορετικά ("το ότι μπορείς να κάνεις cross platform mobile development με Pascal δεν σημαίνει ότι είναι και ιδιαίτερα καλή ιδέα να το κάνεις").
Anyway, επαναλαμβάνω, παραασχοληθήκαμε με την Pascal, κανείς δεν την πρότεινε για τη δουλειά που συζητάμε.
Έχω κάτι χρονάκια να προγραμματίσω σε Pascal/Delphi και δεν έχω σκοπό να το ξανακάνω, εκτός κι αν είναι απαραίτητο.
Αλλά για διδασκαλία, για εισαγωγή στον προγραμματισμό, με χαρά θα την αξιοποιήσω. Πάμε παρακάτω.

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

@Στάθης
Ναι σε όλα!
Καμιά δεκαετία πριν, όταν στην πράξη είχε φανεί ότι θα ήταν θετική μια επέκταση των εντολών της ΓΛΩΣΣΑΣ, είχα εμμέσως προτείνει (μέσω της έκδοσης μεταγλωττιστή της ΓλωσσοΜάθειας) ένα σετ πρόσθετων δυνατοτήτων: http://spinet.gr/glossomatheia/compiler/syntax/enhanced
Αρκετές από αυτές πιστεύω ότι θα είχαν θέση στη νέα γλώσσα.

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

Το καλύτερο για μένα είναι να έχουμε αρχικά ψευδογλώσσα και στη συνέχεια να πηγαίνουμε σε μια πραγματική γλώσσα προγραμματισμού όπως η Python.
Αυτό evry είναι μια πολύ ενδιαφέρουσα πρόταση.