Εκπαιδευτική Γλώσσα Προγραμματισμού

Ξεκίνησε από sstergou, 12 Νοε 2014, 03:41:41 ΜΜ

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

sstergou

Παράθεση από: pgrontas στις 12 Νοε 2014, 01:11:12 ΜΜ
Πρέπει οπωσδήποτε να ανοίξει γρήγορα η κουβέντα για την ύλη του 6ώρου μαθήματος, ώστε να υπάρχει συναίνεση της κοινότητας και να ασκηθεί πίεση στους συντάκτες του προγράμματος σπουδών (σε όσους δεν καταλαβαίνουν τέλος πάντων) για να πάρει το μάθημα σωστή κατεύθυνση.

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

1. Αναδρομή
2. Μία μορφή εγγραφών (όχι τόσο βαριά όσο στην Pascal και την C) αλλά μια απλή όπως οι tuples της Python και των συναρτησιακών γλωσσών.
3. Διαισθητική Εισαγωγή στην Πολυπλοκότητα με στόχο να καταλαβαίνει ο μαθητής γιατί δεν πρέπει να κάνει ταξινόμηση για μέγιστο (χωρίς όμως έντονη μαθηματικοποίηση γιατι το πράγμα θα μπλέξει αρκετά ειδικά αν εισαχθεί και το 1).

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

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

Έχει πολύ μεγάλο παιδαγωγικό ενδιαφέρον το αναδρομή vs επανάληψης. Σε μερικά "πειράματα" που έχω κάνει σε μαθητές δεν έχω πειστεί πως η επανάληψη είναι πιο εύκολη και η αναδρομή είναι πιο δύσκολη. Ίσως για αρκετούς από εμάς που τα διδαχθήκαμε με αυτή τη σειρά να ισχύει, ισχύει όμως για τα παιδιά;

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

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



Gnirut

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

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

[Mode: I have a dream]
Ο προγραμματισμός μπορεί να μπει από την β'γυμνασίου μέχρι και την α'λυκείου, β'λυκείου η επιστήμη υπολογιστών και μια τετράωρη προχωρημένη επιστήμη υπολογιστών σαν εξεταζόμενο πανελλαδικώς στην Γ' λυκείου.
[/Mode: I have a dream]

Μετά ξυπνήσαμε και είδαμε ότι κάνουμε data entry στον δήμο κάτω αγουλινίτσας (στην ...καλύτερη).

sstergou

Φίλε Gnirut, τους αλγορίθμους πρέπει να τους εκφράσεις με κάποιο τρόπο. Το μέσο έκφρασης παίζει πάρα πολύ σημαντικό ρόλο, επηρεάζει τη σκέψη, σε διευκολύνει ή σε δυσκολεύει.

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

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

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

Δεν θα ήταν επίσης καλό η γλώσσα να ήταν η ίδια από το γυμνάσιο μέχρι και το λύκειο και όχι κάθε συγγραφική ομάδα να επινοεί την δικιά της;

Τέλος πάντων κλείνω εδώ γιατί είμαστε εκτός θέματος.

pgrontas

Παράθεση από: sstergou στις 12 Νοε 2014, 03:41:41 ΜΜ
Παναγιώτη συμφωνώ με όλα όσα είπες. Μπορώ να σκεφτώ και σημεία τα οποία θέλουν αφαίρεση ή που στα οποία έχουμε πάρει λάθος στροφή.

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

Έχει πολύ μεγάλο παιδαγωγικό ενδιαφέρον το αναδρομή vs επανάληψης. Σε μερικά "πειράματα" που έχω κάνει σε μαθητές δεν έχω πειστεί πως η επανάληψη είναι πιο εύκολη και η αναδρομή είναι πιο δύσκολη. Ίσως για αρκετούς από εμάς που τα διδαχθήκαμε με αυτή τη σειρά να ισχύει, ισχύει όμως για τα παιδιά;

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

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


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

Είναι ενδιαφέρον πάντως ότι η Python, έχει όλα τα χαρακτηριστικά που θα θέλαμε. Όπως έχω ξαναγράψει προ αμνημονευτων χρόνων είναι multiparadigm (procedural, functional, object oriented).

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

ΥΓ: Ίσως θα έπρεπε να ανοίξουμε ένα καινούριο thread για την συζήτηση αυτή.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

sstergou

Ωραία, νομίζω ότι οι δυο μας αρκούμε προς το παρόν!

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

Τι μου αρέσει:

  • Strong dynamic typing
  • Multiparadigm
  • Λακωνική και εκφραστική ταυτόχρονα
  • Πολύ χρήσιμες βασικές δομές όπως dict, tuple, list, set κτλ που μπορείς να πας πολύ μακρυά χωρίς να γράψεις έστω και μία κλάση.

Τι δεν μου αρέσει:

  • Είναι στα αγγλικά. Δεν αναφέρομαι μόνο στις εντολές αλλά στο όλο περιβάλλον, τον διερμηνευτή και τα μηνύματα λάθους, τα εργαλεία και γενικότερα όλο το οικοσύστημα είναι βασισμένο στα αγγλικά.Αν στοχεύεις σε όλες τις βαθμίδες : δημοτικό, γυμνάσιο, ΓΕΛ, ΕΠΑΛ, και όλα τα υπόλοιπα αυτό είναι μεγάλο μείον για τους μαθητές που θα πιάσεις.
  • Έχει πολύ "μαγεία", άσπρη (__call__ __getatrr__ decorators ) και μαύρη (from __future__ import division) .
  • Η έκδοση 3 έχει lazy συμπεριφορά απο προεπιλογή σε πολλά σημεία όπως η for
  • Θα πρέπει αναγκαστικά να μιλήσεις για αντικείμενα
  • Έχει ένα γενικότερο θέμα με τα unicode αλφαριθμητικά
  • Θα προτιμούσα να είναι expression και όχι statement based. Γενικότερα το συναρτησιακό στυλ είναι κάτι που δεν τους αρέσει και πολύ. Πρόσφατα μετακίνησαν την reduce μέσα σε ένα module επειδή δεν άρεσε στον van rossum

P.Tsiotakis

Κατά τη δική μου άποψη, αν έχει κάποια αξία, το περιβάλλον που θα μπορούσε να υποστηρίξει το μάθημά μας φυσικά με ένα νέο βιβλίο, το οποίο σε συνέχεια από τη Β λυκείου:

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

να μην ξεχνάμε ότι οι 6 ώρες είχαν τη λογική: 4 ώρες μάθημα+2 εμπέδωση, εμβάθυνση. Η ΑΕΠΠ είχε σχεδιαστεί για 4 ώρες μάθημα το 1999

Οι λόγοι που δεν επιλέχτηκε πραγματική γλώσσα το 1999 έχουν παρέλθει;;

alkisg

http://xkcd.com/927/
http://en.wikipedia.org/wiki/List_of_educational_programming_languages

:angel:  :D

Εννοώ ότι, πριν ακόμα οι συγγραφείς της ΑΕΠΠ αποφασίσουν να φτιάξουν μια νέα εκπαιδευτική γλώσσα, θα έπρεπε να είχαν τεκμηριώσει γιατί δεν τους κάνουν οι υπάρχουσες... Από θέμα γλώσσας, αρκετά από αυτά τα περιβάλλοντα είναι μεταφράσιμα.
Από θέμα απαιτήσεων, νομίζω ότι οποιοδήποτε νέο περιβάλλον θα πρέπει να υποστηρίζει τουλάχιστον visual και event driven προγραμματισμό (δημιουργία εφαρμογών με GUI) και πιθανώς μάλιστα σε αρκετές πλατφόρμες (desktop, mobile, internet...), το οποίο είναι τεράστιος φόρτος και δεν δικαιολογεί την ανάπτυξη νέας γλώσσας / περιβάλλοντος / βιβλιοθηκών πριν τεκμηριωθεί το γιατί τα ήδη υπάρχοντα δεν είναι κατάλληλα, ή εάν με κάποιες τροποποιήσεις σε αυτά μπορούν να επιτευχθούν οι όποιοι στόχοι τίθενται.

sstergou

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

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

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

Παράθεσηνα επιτρέπει την δημιουργία/επεξεργασία αρχείων εγγραφών (χρήση δευτερεύουσας μνήμης)
Και πάλι ποια είναι τα γνωστικά οφέλη; Ποια είναι τα νέα προβλήματα που θα λύσουμε εισάγοντας κάτι τέτοιο. Η επεξεργασία αρχείων είναι απλά συντακτικό δεν μαθαίνεις νέα πράγματα ούτε επιλύεις νέα προβλήματα. Η εντολές Δεδομένα και Αποτελέσματα είναι μια χαρά. Αντ' αυτού η εισαγωγή της δυνατότητας αφαίρεσης στα δεδομένα (όπως υπάρχει στις εντολές με τα υποπρογράμματα) είναι κάτι το οποίο θα έχει με το μικρότερο δυνατό κόπο μεγάλο αντίκτυπο στο εύρος αυτών που μπορεί να διδαχθούν και είναι διδακτικός στόχος από μόνο του.

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

Νομίζω η εισαγωγή της αντικειμενοστρέφειας θα είναι ένα τεράστιο παιδαγωγικό λάθος με βάση το υφιστάμενο καθεστώς στο λύκειο. Ο αντικειμενοστρεφής προγραμματισμός βοηθάει στην επίλυση προβλημάτων με έναν τελείως διαφορετικό τρόπο χρησιμοποιώντας τεχνικές όπως το dynamic dispatch, η κληρονομικότητα, ο πολυμορφισμός, η ενθυλάκωση και τα λοιπά. Πραγματικά ποιος πιστεύει ότι αυτά μπορεί να διδαχθούν σωστά με τις υπάρχουσες ώρες. Επίσης αν θέλουμε να διδάξουμε αντικειμενοστρεφή προγραμματισμό θα πρέπει να έχουμε και τα αντίστοιχα case studies όπου η χρήση του διευκολύνει και δεν δυσκολεύει την επίλυση του προβλήματος. Μιλάμε λοιπόν για μεγάλα προβλήματα με μεγάλες εκφωνήσεις, πολλαπλούς ορισμούς και τα λοιπά. Κατά την γνώμη μου ο αντικειμενοστραφής προγραμματισμός πρέπει να είναι ξεχωριστό μάθημα. Δεν γίνεται να μπει σφήνα πουθενά.

Τα παραδείγματα που έχει το βιβλίο είναι πολύ επιφανειακά και γραμμένα προφανώς χωρίς καμία παιδαγωγική χρησιμότητα. Ο αντικειμενοστραφής προγραμματισμός παρουσιάζεται σαν θεωρία τύπου κεφαλαίου 6 σαν τρόπος να φτιάχνεις μενού και να χειρίζεται το κλικ σε κουμπάκια. Επίσης αν είναι να μάθουμε στα παιδιά όλο αυτό το συντακτικό (κλάσεις, μέλη, μέθοδοι, στατικά μέλη κτλ) μόνο και μόνο για να μπορούν να γράψουν ετικέτα1.ορατό <- Αληθής τότε την ίδια δουλειά μπορούμε να την κάνουμε απλά με την αφαίρεση δεδομένων στην οποία εγώ και ο Παναγιώτης (Γροντάς) αναφερόμαστε.


sstergou

#8
Άλκη από την λίστα που παραθέτεις ποιες είναι οι αμιγώς εκπαιδευτικές γλώσσες και όχι περιβάλλοντα που υπάρχουν και ποια θεωρείς κατάλληλα για τα ελληνικά σχολεία; Απ' όσο ξέρω πάντως οι scheme, basic, logo, scratch είναι οι μόνες που σχεδιάστηκαν από δασκάλους με κύριο μέλημα την παιδαγωγική τους αξιοποίηση.

pgrontas

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

Αρχικά θα ήθελα να ρωτήσω τον ptsiotakis ποιοι είναι οι λόγοι που δεν επιλέχθηκε πραγματική γλώσσα το 1999. Προσωπικά δεν έχω υπόψιν μου κάποια ολοκληρωμένη αιτιολόγηση. Τα επιχειρήματα που έχω ακούσει είναι 2:

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

-Το θέμα των ελληνικών: Όσοι υποστηρίζουν κάτι τέτοιο, έχουν δίκιο, όχι τόσο γιατί είναι δύσκολο να μάθουν οι μαθητές ξένες εντολές, αλλά γιατί συνεπάγεται έναν αλγόριθμο με μεικτές greeklish/english μεταβλητές/εντολές  που δεν είναι εύκολος προς ανάγνωση και κατανόηση. Συμφωνώ με αυτό. Όμως από την άλλη χάνουμε την πρόσβαση σε βιβλιοθήκες και την δυνατότητα να αποκτήσουν οι μαθητές ΚΑΙ ένα επαγγελματικό εφόδιο που θα κάνει αυταπόδεικτη τη χρησιμότητα του μαθήματος.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

itt

Παράθεση από: pgrontas στις 14 Νοε 2014, 01:49:32 ΜΜ
-Το θέμα των ελληνικών: Όσοι υποστηρίζουν κάτι τέτοιο, έχουν δίκιο, όχι τόσο γιατί είναι δύσκολο να μάθουν οι μαθητές ξένες εντολές, αλλά γιατί συνεπάγεται έναν αλγόριθμο με μεικτές greeklish/english μεταβλητές/εντολές  που δεν είναι εύκολος προς ανάγνωση και κατανόηση. Συμφωνώ με αυτό. Όμως από την άλλη χάνουμε την πρόσβαση σε βιβλιοθήκες και την δυνατότητα να αποκτήσουν οι μαθητές ΚΑΙ ένα επαγγελματικό εφόδιο που θα κάνει αυταπόδεικτη τη χρησιμότητα του μαθήματος.

To οποίο θέμα βέβαια είναι εντελώς παράλογο δεδομένου ότι υπάρχει υποχρεωτικό μάθημα αγγλικών.

ολγα

Αν θα έπρεπε να επιλεγεί κάποια πραγματική γλώσσα (μεταφρασμένη ή όχι) μήπως κατάλληλες είναι η Pascal ή C/C++ που χρησιμοποιούνται και στους διαγωνισμούς πληροφορικής; Κάθε χρόνο υπάρχουν κάποιοι που θα 'θελαν να συμμετάσχουν και είναι και πολύ δυνατοί στη σκέψη αλλά δεν μπορούν λόγω άγνοιας της γλώσσας.

evry

Ο σκοπός ενός μαθήματος κατεύθυνσης δεν είναι να συμμετέχουν οι μαθητές σε διαγωνισμούς πληροφορικής.
Η Pascal είναι ξεπερασμένη, η C++ δεν είναι κακή αλλά σήμερα θέλουμε και μια γλώσσα να μπορεί ο μαθητής εύκολα και γρήγορα να υλοποιήσει μια εφαρμογή στον ιστό.
Να μπορεί γρήγορα να φτιάξει και κάτι χρήσιμο,κάτι κοντά στις σημερινές εξελίξεις, δηλαδή να έχει σύντομο learning curve.
π.χ. Σε πόσες ώρες μπορεί ένας μαθητής να σχεδιάσει μια γραφική διεπαφή στην C++, ξεκινώντας από το 0?
Μην ξεχνάμε ότι καλό θα ήταν το μάθημα να έχει και έναν εργαστηριακό χαρακτήρα, όχι ασκήσεις επί χάρτου πάλι.
Οι γλώσσες με πολύ σύντομο learning curve οι οποίες έχουν ταυτόχρονα και αντικειμενοστρεφή αλλά και συναρτησιακά χαρακτηριστικά και χρησιμοποιούνται εύρεως σήμερα, είναι η Python , η Javascript και η Ruby. Κάθε μια έχει τα δικά της πλεονεκτήματα
Δεν μπορώ να σκεφτώ κάτι άλλο.
Από αυτές νομίζω ότι η Python είναι αυτή τη στιγμή η καλύτερη επιλογή, δεν ξέρω τι λέτε οι υπόλοιποι.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

Αν είναι να επέλεγα ανάμεσα στις υπάρχουσες γλώσσες και γω την python θα διάλεγα. Εκτός από αυτά που λέει ο Ευριπίδης Pascal και C++ έχουν πολύ συντακτικό θόρυβο. Είναι και οι δύο πολύ γρήγορες αλλά δεν νομίζω να είναι αυτό το ζητούμενο.

itt

Παράθεση από: evry στις 14 Νοε 2014, 07:05:36 ΜΜ
π.χ. Σε πόσες ώρες μπορεί ένας μαθητής να σχεδιάσει μια γραφική διεπαφή στην C++, ξεκινώντας από το 0?

Σε πέντε λεπτἀ, αλλά δεν είναι εκεί το πρόβλημα.

evry

μπορείς να μου το εξηγήσεις λίγο αυτό?
Παράθεση από: itt στις 14 Νοε 2014, 08:13:31 ΜΜ
Σε πέντε λεπτἀ, αλλά δεν είναι εκεί το πρόβλημα.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

spin

Συνάδελφοι γεια χαρά.
Παραθέτω μερικές σκέψεις σχετικά με αυτά που γράψατε παραπάνω, ύστερα από 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

Πριν προτείνουμε οποιαδήποτε αλλαγή, καλό είναι να βάλουμε ως κριτήριο πρώτα απ΄ όλα τα παιδιά!.. και ρωτάω;

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

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

evry

#18
Παράθεση από: spin στις 14 Νοε 2014, 09:27:00 ΜΜ
Όταν μιλάμε για μία γλώσσα που απευθύνεται σε μαθητές, οι περισσότεροι των οποίων δεν σκοπεύουν να γίνουν Πληροφορικοί και μάλλον δεν θα ξαναγράψουν ΟΥΤΕ ΜΙΑ γραμμή κώδικα στη ζωή τους, τότε οι "παραδοσιακές αλήθειες" της αλγοριθμικής (δηλ. οι δομές που διδάσκονται και στην ΑΕΠΠ) είναι -ίσως- αρκετές.
αν δεν κάνω λάθος το μάθημα (για το νέο 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 σε σχέση με πιο σύγχρονες γλώσσες για να τους πετύχουμε;
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

itt

#19
Παράθεση από: evry στις 14 Νοε 2014, 08:29:55 ΜΜ
μπορείς να μου το εξηγήσεις λίγο αυτό?

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

spin

Ευριπίδη αν από όλο το post μου κατάλαβες ότι προτείνω να διδάσκουμε στα παιδιά Pascal, τότε έχω σοβαρό πρόβλημα στον γραπτό μου λόγο!

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

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

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

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

itt

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

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

spin

Παράθεση από: itt στις 15 Νοε 2014, 01:34:30 ΠΜ
Δημιουργήθηκε για την εκπαίδευση πριν από 40 χρόνια
Κοίτα να δεις που στα καλά καθούμενα έγινα δικηγόρος της Pascal!  ;D
Η Pascal, ναι, δημιουργήθηκε πριν 40 χρόνια, αλλά δεν έπαψε ποτέ να εξελίσσεται, κάτι που αγνοούν αυτοί που απαξιούν να την παρακολουθήσουν.

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

itt

Παράθεση από: spin στις 15 Νοε 2014, 02:09:05 ΠΜ
Κοίτα να δεις που στα καλά καθούμενα έγινα δικηγόρος της Pascal!  ;D
Η Pascal, ναι, δημιουργήθηκε πριν 40 χρόνια, αλλά δεν έπαψε ποτέ να εξελίσσεται, κάτι που αγνοούν αυτοί που απαξιούν να την παρακολουθήσουν.
Nαι, δεν πρόλαβα το προηγόύμενο post σου. Δεν απαξιώ να παρακολουθήσω την Pascal, έχω συντηρήσει και κώδικα γραμμένο σε Delphi. Το θεμα είναι ότι πλέον είναι παρωχημένη για διάφορους λόγους που δεν αξίζει να τους αναλύσουμε.

Παράθεση από: spin στις 15 Νοε 2014, 02:09:05 ΠΜ
Συνάδελφε αν έχεις προσωπική αρνητική εμπειρία από κάτι τέτοιο, θα με ενδιέφερε πραγματικά να την ακούσω.
Γιατί ασχολούμαι τα 2 τελευταία χρόνια με το θέμα, έχω δοκιμάσει 3-4 διαφορετικές προσεγγίσεις και δεν μπορώ να πω ότι συμμερίζομαι την άποψή σου.

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

spin

Παράθεση από: itt στις 15 Νοε 2014, 02:18:23 ΠΜ
Το θεμα είναι ότι πλέον είναι παρωχημένη για διάφορους λόγους που δεν αξίζει να τους αναλύσουμε.
Σεβαστό.
Απλώς πιστεύω πως θα ήταν καλύτερα όταν λέμε κάτι να το τεκμηριώνουμε κιόλας -έστω συνοπτικά- για να μη δημιουργούνται εσφαλμένες εντυπώσεις.

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

itt

Παράθεση από: spin στις 15 Νοε 2014, 02:29:23 ΠΜ
Σεβαστό.
Απλώς πιστεύω πως θα ήταν καλύτερα όταν λέμε κάτι να το τεκμηριώνουμε κιόλας -έστω συνοπτικά- για να μη δημιουργούνται εσφαλμένες εντυπώσεις.

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

Παράθεση από: spin στις 15 Νοε 2014, 02:29:23 ΠΜ
Δεν ξέρω αν είναι η καλύτερη, πάντως είναι σίγουρα το πρώτο αποτέλεσμα που βγαίνει αν γκουγκλάρεις "cross platform mobile development"...
Tο δοκίμασα πριν καιρό, αλλά σε λιγότερο από 1 εβδομάδα το παράτησα.
Αλλά πάλι μου πετάς τη μπάλα στην εξέδρα. Έχεις προσωπική αρνητική εμπειρία από αυτό που κατέκρινες στο προηγούμενο post μου;

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

pgrontas

Δεν νομίζω ότι πρέπει να μπλέξουμε σε flame war μεταξύ συγκεκριμένων γλωσσών προγραμματισμού.

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

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

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

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

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

sstergou

#27
Συμφωνώ και 'γω με τον 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. Αυτό απαιτεί μικρές συντακτικές αλλαγές και ξεκλειδώνει ένα νέο κόσμο για αυτά που μπορούμε να διδάξουμε. Μπορεί σε κάποιους να ακούγεται μακρινό αλλά νομίζω είναι κάτι που θεωρώ ότι πρέπει να υποστηρίζεται από οποιαδήποτε γλώσσα και αν διαλέξουμε. Δεν το συνδέω άμεσα με την ΑΕΠΠ αν και προσωπικά πιστεύω ότι αξίζει να μπει. Σαν δυνατότητα όμως ούτως ή άλλως πρέπει να υπάρχει άσχετα με το αν θα χρησιμοποιηθεί ή όχι.

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

evry

#28
@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 έχει γενικότερο θέμα όσον αφορά την εκπαίδευση
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

spin

Παράθεση από: itt στις 15 Νοε 2014, 03:08:22 ΠΜ
είπα ότι δεν υπάρχει κανένας απολύτως λόγος να γράψεις Delphi για να έχεις cross platform builds.
ΟΚ συνάδελφε, δεκτή η διευκρίνηση. Το είχες διατυπώσει τελείως διαφορετικά ("το ότι μπορείς να κάνεις cross platform mobile development με Pascal δεν σημαίνει ότι είναι και ιδιαίτερα καλή ιδέα να το κάνεις").
Anyway, επαναλαμβάνω, παραασχοληθήκαμε με την Pascal, κανείς δεν την πρότεινε για τη δουλειά που συζητάμε.
Έχω κάτι χρονάκια να προγραμματίσω σε Pascal/Delphi και δεν έχω σκοπό να το ξανακάνω, εκτός κι αν είναι απαραίτητο.
Αλλά για διδασκαλία, για εισαγωγή στον προγραμματισμό, με χαρά θα την αξιοποιήσω. Πάμε παρακάτω.

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

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

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

Παράθεση από: evry στις 15 Νοε 2014, 12:17:56 ΜΜ
Το καλύτερο για μένα είναι να έχουμε αρχικά ψευδογλώσσα και στη συνέχεια να πηγαίνουμε σε μια πραγματική γλώσσα προγραμματισμού όπως η Python.
Αυτό evry είναι μια πολύ ενδιαφέρουσα πρόταση.

itt

Παράθεση από: evry στις 15 Νοε 2014, 12:17:56 ΜΜ
Επίσης δεν μίλησα για cross platform development απαραίτητα.(Πως το βάλαμε αυτό στην κουβέντα? ο itt φταίει  :D)

Bασικά δεν φταίω εγώ, για την Pascal έλεγα, απλά για κάποιο λόγο επικεντρωθήκαμε σε αυτό.

Παράθεση από: evry στις 15 Νοε 2014, 12:17:56 ΜΜ
@itt
σχετικά με τη σχεδίαση GUI, το νόημα δεν είναι να κάνει ο μαθητής 2-3 κλικ, να δει ένα παράθυρο και να ξεγελαστεί ότι έφτιαξε μια διεπαφή προφανώς
αλλά να καταλάβει τι γίνεται, ότι το παράθυρο είναι ένα αντικείμενο κλπ.
Επίσης όσο καλό designer και να έχεις κάποια στιγμή θα χρειαστεί να γράψεις κώδικα για να συνδέσεις το front με το back end
Πάντως στη Java αν χρησιμοποιήσεις την βιβλιοθήκη της ACM μια χαρά μπορεί να βάλεις του μαθητές να σχεδιάσουν interface μόνο με κώδικα στα πρώτα μαθήματα.
απλά η Java έχει γενικότερο θέμα όσον αφορά την εκπαίδευση

Δεν θα ξεγελαστεί, έτσι φτιάχνεις την διεπαφή. Το να καταλάβει ότι το παράθυρο είναι αντικείμενο (που δεν χρειάζεται αναγκαστικά να είναι) είναι άλλο θέμα και σχετικά μικρότερης σημασίας. Περισσότερο πρέπει να καταλάβει ότι αυτό που γράφει είναι event driven, να του εξηγήσεις πώς δουλεύει κανείς με data bindings, πώς μπορείς να κάνεις decouple το view από το model. Απλά αυτό που λέω είναι ότι η C++ δεν δημιουργεί inherent κάποιο πρόβλημα σε αυτό. Ακόμα και MFC να γράψεις που λέει ο λόγος, αν παραβλέψεις λίγο το περιφεριακό boilerpate, μπορείς να γράψεις μόνο κώδικα.

Αυτό που καταλαβαίνω ότι θες να πεις είναι ότι το να δίδαξεις με C++ σε κάποιον OOP είναι προβληματικό. Αν όντως αυτό εννοείς δεν διαφωνώ σε κάτι. Γενικά είμαι και εγώ υπερ της άποψης ότι η Python είναι η καλύτερη επιλογή για αυτό που συζητάμε.

pgrontas

Παράθεση από: spin στις 15 Νοε 2014, 01:20:51 ΜΜ
Συμφωνώ απολύτως με αυτό που λες, αλλά έχω επιφυλάξεις για τα αγγλικά...

Και εγώ έχω επιφυλάξεις. Απλά πρέπει να δούμε και τα επιπλέον θετικά.

Στάθη, οι επεκτάσεις σου είναι άψογες!
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

sstergou

Παιδιά βλέπω σε γενικές γραμμές συμφωνούμε (έστω και οι λίγοι που συμμετέχουμε) ελπίζω οι συγγραφείς να διαβάσουν αυτό το θέμα!

@evry
Έχω ασχοληθεί αρκετά με python 2 και 3 και τα σχόλια που έχω να κάνω είναι ότι:
    -- Η python 3 ήταν λάθος. Εισήγαγε ασυμβατότητα ανάμεσα στις διαδοχικές εκδόσεις χωρίς να προσφέρει κάτι που να δικαιολογεί αυτή την απόφαση ( π.χ. η αφαίρεση του GIL. ακόμη και σήμερα 2 threads δεν μπορούν να τρέχουν ταυτόχρονα...).
    -- Οι περισσότερες καλές δυνατότητές της έχουν γίνει backport στην 2.7 η οποία αναπτύσσεται μέχρι σήμερα. Λίγες είναι πλέον οι διαφορές.
    -- Πάρα πολύς κόσμος μετακομίζει από python 2 σε go, node.js, clojure, scala. Όχι ο αναμενόμενος από 2 σε 3.

Παρ' όλα αυτά
    -- Δεν υπάρχουν πλέον τόσες πολλές βιβλιοθήκες που να μην υποστηρίζουν python 3. Πράγμα που παλιότερα ήταν ο κανόνας.
    -- Δεν θα υπάρξει έκδοση 2.8 όλοι θα πρέπει να πάνε στην 3 τα επόμενα χρόνια.

Για την δουλειά μας τώρα εκτός και αν θες να χρησιμοποιήσεις καμιά βιβλιοθήκη που να υποστηρίζει μόνο python 2 (που δεν το νομίζω) καλύτερα να πας σε 3. Δεν θα χρειάζεται να εξηγήσεις και γιατί 5 / 2 κάνει 2  ;)

@spin
Αυτό με τα αρχεία το είπα εγώ, αλλά αναφερόμουνα στην ύλη της αεππ και όχι γενικά στη γλώσσα. Αν είναι να μπει πάντως καλό είναι να μην έχει πάνω από 2-3 σχετικές εντολές. π.χ. Διάβασε_αρχείο(όνομα) που να επιστρέφει πίνακα με μία γραμμή ανά γραμμή αρχείου και Γράψε_αρχείο με παρόμοια λειτουργία. Βέβαια εδώ μπαίνουν και οι τύποι στη μέση. Τέλος πάντων αυτά εν τέλη αφορούν τις βιβλιοθήκες (που θα πρέπει ο οποιοσδήποτε να μπορεί να φτιάξει και να προσθέσει) και όχι την ίδια τη γλώσσα.
υ.γ. δεν ήξερα για τις επεκτάσεις της γλωσσομάθειας!


evry

Ευχαριστώ πολύ Στάθη
ποιο IDE κατά τη γνώμη σου θα ήταν καλό για την τάξη
Εγώ σκέφτομαι το IDLE αλλά μέχρι στιγμής τα παιδιά δουλεύουν μόνο με online interpreters
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

To emacs βέβαια :D

Αστειεύομαι παλιά είχα χρησιμοποιήσει το komodo free και μου φάνηκε καλό. Το pycharm πρέπει να είναι το πιο πλήρες αλλά πρέπει να είναι πολύπλοκο.
Αν και δεν το έχω χρησιμοποιήσει για python θα σου πρότεινα να κοιτάξεις το lighttable, ενώ αν σε ενδιαφέρει κυρίως ένας καλός editor με επεκτάσεις δες το sublime

Για interactive development έχω χρησιμοποιήσει το ipython με την κονσόλα qt. Τσέκαρέ το, αξίζει http://ipython.org/ipython-doc/2/interactive/qtconsole.html

P.Tsiotakis

#35
Το γενικό Λύκειο το 1999 προσέφερε γενική παιδεία και αλγοριθμική σκέψη όχι επαγγελματικές δεξιότητες (που προσέφερε και προσφέρει το ΕΠΑΛ). Αυτό είχα ακούσει με τα αυτιά μου από τους σχεδιαστές του, σε σχετικά συνέδρια. και συμφωνούσα 100%.
Σε σχέση με τα Αγγλικά, όσοι έχουν διδάξει ή διδάσκουν σε επαρχιακά σχολεία δεν ξέρω αν το θεωρούν λυμμένο πρόβλημα. Πάντως δεν υπάρχει πέρα απο τα ειδικά μαθήματα άλλο μάθημα που να εξετάζεται σε ξένη γλώσσα. Εμείς δεν είμαστε ειδικό μάθημα, έγινε μεγάλος αγώνας για να μην είμαστε. Κάθε πείραμα που θα γίνει μπορεί να μας κοστίσει, οι φίλοι μας είναι εδώ γύρω πάντα. Και είναι πολλά σε αυτό το σημείο που δεν αναλύονται δημόσια. Αλλιώς, καταλήγουμε σε συνωστισμό...

Το πρόβλημα με το να εξηγούμε στην Pyhton πόσο κάνει 5/2 και πόσο 5/2.0 κλπ κλπ και γιατί στην επανάληψη απαιτείται :
δηλαδη να αναδεικνύονται πάντα οι συντακτικές ιδιαιτερότητες μιας γλώσσας δεν ξέρω αν θα βοηθήσει στη διδασκαλία της προγραμματιστικής-αλγοριθμικής σκέψης. Κάποιοι θα πουν ότι αυτά αφορούν μόνο στην αρχή της διδασκαλίας.
Κατά τη γνώμη μου το ζητούμενο από ένα ενδεχόμενο μάθημα προσανατολισμού θα πρέπει να είναι: η μύηση στον προγραμματισμό light ώστε στο Α έτος να μάθουν απλά το συντακτικό της γλώσσας στο τμήμα που θα σπουδάσουν.
Επίσης, να έχουν δεχθεί διαχρονικές έννοιες objects, databases, τμηματικός προγραμματισμός, Υπολογιστική Σκέψη. Να νιώσουν οι μαθητές την αξία τους στον πραγματικό κόσμο και τις εφαρμογές τους στον τρόπο που σκεφτόμαστε και λειτουργούμε. Και βέβαια όχι με την έννοια που εννοούν οι "άλλοι" (φούρνοι μικροκυμάτων).
Αν καταλήξουμε το μάθημα ένα απέραντο φρενοκομείο ασκήσεων θα καταντήσουμε όπως άλλα μαθήματα που τα παιδιά μαθαίνουν απέξω τύπους και ασκήσεις ολόκληρες.
Καθήκον μας θα είναι να τροφοδοτήσουμε την Τριτοβάθμια με τους μαθητές με ταλέντο και κλίση στο αντικείμενο αλλά και και ένα στέρεο υπόβαθρο.

Και οι 6 ώρες που στην ουσία πρέπει να είναι 4και κάτι και να εντάσσουν οπωσδήποτε εργαστηριακό μέρος και έννοιες πέρα απο τον προγραμματισμό (CS), πρέπει να αξιοποιηθούν βέλτιστα.

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

Άρα το πιο σημαντικό κατ εμέ είναι: ΤΙ θέλουμε να δώσουμε στα παιδιά στο χρόνο που διατίθεται στη Γ λυκείου. Μετά θα επιλεγεί το πώς. Και πρέπει να μειώσουμε όσο γίνεται περισσότερο το διδακτικό θόρυβο.  :D


Μην ξεχνάμε ότι το μάθημα στην ουσία του διδάσκεται 1 ώρα (με τον τρόπο που θα διδαχθεί) στη Β λυκείου
Στην Α λυκείου και στο Γυμνάσιο έχει άλλο προσανατολισμό.

-----------------------
ΠΡΟΣΘΗΚΗ:

Από την άλλη: το τοπίο σε 5 χρόνια θα είναι: μαθητές στη Γ λυκείου που έχουν προγραμματίσει σε διαφορετικά περιβάλλοντα σε διαφορετικά επίπεδα και τάξεις. Και που κατέχουν βασικά στοιχεία ψευδογλώσσας από τη Β λυκείου. Δεν μπορεί να παραβλεφθεί αυτό.

P.Tsiotakis

Και βέβαια να μην ξεχνάμε και την βασική αιτία που οι φίλοι έχασαν τη γη κάτω από τα πόδια τους:

http://www.ibo.org/diploma/curriculum/group5/ComputerScience.cfm








......
Algorithmic thinking will only be externally assessed at the level of pseudo-code. This means the external assessment will focus on the student's algorithmic thinking, not on their mastery of the syntax of a particular programming language.
......
The internal assessment has changed from a being based on a Java-related task to a more open problem-solving exercise.This will expand the choice of programming languages and better support the development of learners who match the IB learner profile
......


sstergou

Παναγιώτη και πάλι εστιάζοντας στο ΑΕΠΠ να υποθέσω ότι είσαι υπέρ της διατήρησης του υπάρχοντος καθεστώτος;

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

Τώρα όσον αφορά το ΤΙ, με 4 + 2 ώρες για το ΑΕΠΠ όσον αφορά το εργαστηριακό εγώ προτείνω να αφαιρέσουμε το μισό συντακτικό και να προσθέσουμε 2,5 πράγματα. Εγγραφές, αναδρομή, διόρθωση πινάκων.

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

Γνώμη μου είναι ότι αντικειμενοστρεφή προγραμματισμό και βάσεις δεδομένων μόνο εκφυλισμένα μπορούμε να διδάξουμε. Αυτό είναι η εγγραφή, αυτό είναι το αντικείμενο. Ποιος θα καταλάβει τί και πώς στις 4 + 2 ώρες; Αυτά χρειάζονται ξεχωριστά μαθήματα ή πρώτο έτος στο πανεπιστήμιο. Τι είναι προτιμότερο; Να απλώσουμε την ύλη μειώνοντας το βάθος με κίνδυνο τα παιδιά απλά να μαθαίνουν ότι τους λέμε χωρίς να καταλαβαίνουν γιατί; Ή να διδάξουμε επιλεγμένα τα best of των αλγορίθμων και της υπολογιστικής σκέψης;

edit:
Αυτό που παράθεσες νομίζω στηρίζει αυτά που λέω. Η ΓΛΩΣΣΑ της ΑΕΠΠ έχει μόνο συντακτικό και σχεδόν καθόλου δυνατότητες σε σχέση με την ψευδογλώσσα.

spin

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

Στάθη, ξέχασα να το γράψω πριν, όχι, δεν συμφωνώ ότι η ΜΕΧΡΙΣ_ΟΤΟΥ πρέπει να παραληφθεί.

Παράθεση από: evry στις 15 Νοε 2014, 06:28:02 ΜΜ
ποιο IDE κατά τη γνώμη σου θα ήταν καλό για την τάξη
Δεν έχω δουλέψει το PyCharm, αλλά αν κρίνω από την κατασκευάστρια (JetBrains) τότε θα είναι άριστο.
Χρησιμοποιώ καιρό άλλα IDE τους, για PHP, JavaScript και HTML και το μόνο που έχω να πω είναι ότι υποκλίνομαι!
Κάνουν παπάδες, μου έχουν γλιτώσει άπειρο χρόνο στο coding.
Τώρα βέβαια το ερώτημα είναι κατά πόσο είναι κατάλληλο και για μαθητές.
Δεν το έχω δοκιμάσει ποτέ στην τάξη, αλλά τέτοια IDE έχουν σχεδόν πάντα τη δυνατότητα να κρύβεις panels που δεν χρειάζεσαι και να τα κάνεις έτσι πιο φιλικά στο μάτι.

(EDIT: Επίσης να προσθέσω ότι θεωρώ το dark theme της JetBrains το πιο ξεκούραστο και καλαίσθητο που υπάρχει)

P.Tsiotakis

#39
Παράθεση
Παναγιώτη, αυτή ακριβώς είναι και η θέση η δική μου.
Αναγνωρίσω ότι όσοι υποστηρίζουν το αντίθετο το κάνουν με στόχο τη βελτίωση του μαθήματος, αλλά όπως λέει και το γνωστό ρητό, ο δρόμος προς την κόλαση είναι στρωμένος με καλές προθέσεις ;)


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

παρεμπιπτόντως παντα μισουσα τη ΓΛΩΣΣΑ και ήθελα ψευτογλώσσα (sic) . Αυτό πιστεύω και τώρα. Ανέφερα ΓΛΩΣΣΑ πιο πριν για να μη φαω ξυλο  :P

sstergou

Παράθεση από: spin στις 15 Νοε 2014, 07:21:21 ΜΜ
Στάθη, ξέχασα να το γράψω πριν, όχι, δεν συμφωνώ ότι η ΜΕΧΡΙΣ_ΟΤΟΥ πρέπει να παραληφθεί.
Μικρό το κακό! Το συγκεκριμένο απλά έτσι το ανέφερα ως παράδειγμα, δεν το θεωρώ σημαντικό.

sstergou

Παράθεση από: Παναγιώτης Τσιωτάκης στις 15 Νοε 2014, 07:26:37 ΜΜ
παρεμπιπτόντως παντα μισουσα τη ΓΛΩΣΣΑ και ήθελα ψευτογλώσσα (sic) . Αυτό πιστεύω και τώρα. Ανέφερα ΓΛΩΣΣΑ πιο πριν για να μη φαω ξυλο  :P
:angel: :angel:

petrosp13

Παράθεση από: Παναγιώτης Τσιωτάκης στις 15 Νοε 2014, 06:54:55 ΜΜ
Το γενικό Λύκειο το 1999 προσέφερε γενική παιδεία και αλγοριθμική σκέψη όχι επαγγελματικές δεξιότητες (που προσέφερε και προσφέρει το ΕΠΑΛ). Αυτό είχα ακούσει με τα αυτιά μου από τους σχεδιαστές του, σε σχετικά συνέδρια. και συμφωνούσα 100%.
Σε σχέση με τα Αγγλικά, όσοι έχουν διδάξει ή διδάσκουν σε επαρχιακά σχολεία δεν ξέρω αν το θεωρούν λυμμένο πρόβλημα. Πάντως δεν υπάρχει πέρα απο τα ειδικά μαθήματα άλλο μάθημα που να εξετάζεται σε ξένη γλώσσα. Εμείς δεν είμαστε ειδικό μάθημα, έγινε μεγάλος αγώνας για να μην είμαστε. Κάθε πείραμα που θα γίνει μπορεί να μας κοστίσει, οι φίλοι μας είναι εδώ γύρω πάντα. Και είναι πολλά σε αυτό το σημείο που δεν αναλύονται δημόσια. Αλλιώς, καταλήγουμε σε συνωστισμό...

Το πρόβλημα με το να εξηγούμε στην Pyhton πόσο κάνει 5/2 και πόσο 5/2.0 κλπ κλπ και γιατί στην επανάληψη απαιτείται :
δηλαδη να αναδεικνύονται πάντα οι συντακτικές ιδιαιτερότητες μιας γλώσσας δεν ξέρω αν θα βοηθήσει στη διδασκαλία της προγραμματιστικής-αλγοριθμικής σκέψης. Κάποιοι θα πουν ότι αυτά αφορούν μόνο στην αρχή της διδασκαλίας.
Κατά τη γνώμη μου το ζητούμενο από ένα ενδεχόμενο μάθημα προσανατολισμού θα πρέπει να είναι: η μύηση στον προγραμματισμό light ώστε στο Α έτος να μάθουν απλά το συντακτικό της γλώσσας στο τμήμα που θα σπουδάσουν.

I couldn't agree more
Κατά την άποψη μου, δεν θα είναι συνετό να αγγίξουμε αντικειμενοστραφή, είναι κάτι που μπορεί να διδαχτεί στις σχολές με βάση τον διαδικασιακό που θα φτάσουμε σε μεγάλο βάθος (όπως και τώρα)
Η αύξηση των ωρών δεν θα πρέπει να θολώσει το μυαλό μας ώστε να αυξήσουμε επικίνδυνα την ύλη
Ένας από τους λόγους που τα μισά παιδιά αποτυγχάνουν στο μάθημα μας, πέρα από την αντικειμενική δυσκολία του και το χαμηλό υπόβαθρο κάποιων μαθητών, είναι και η αδυναμία αφομοίωσης του αντικειμένου μέσα σε ένα 2ωρο
Σίγουρα, τα θέματα στο μάθημα δεν έχουν φτάσει σε κορυφαίο επίπεδο δυσκολίας, οπότε καλό θα είναι να αυξήσουμε την δυσκολία σε αυτά που ήδη διδάσκουμε με μερικές σημαντικές προσθήκες, όχι να επεκτείνουμε το μάθημα σε αντικειμενοστρέφειες και πολύπλοκες δομές δεδομένων
Θα πρέπει να ανασάνουμε λίγο όλοι μας και να κάνουμε λίγο πιο ανθρώπινο μάθημα, ώστε να μην τρέχουμε σαν τρελοί όπως τώρα για να καλύψουμε αυτό και εκείνο και το άλλο και την υποπερίπτωση εκείνη
Για μένα, σαν προτάσεις δηλώνω την:
-διατήρηση της ψευδογλώσσας σε ελληνικά γιατί το αντικείμενο μας είναι η αλγοριθμική και όχι ο προγραμματισμός και οι τόσες τεχνικές λεπτομέρειες του
-αποσαφήνιση (επιτέλους) των κύριων σκοτεινών σημείων του μαθήματος μας και κατάργηση των διαφορών αλγορίθμων-προγραμμάτων. Μια και ενιαία μορφή παρουσίασης λύσης
-εισαγωγή μερικών εννοιών που θα επεκτείνουν λιγάκι τις τεχνικές που διδάσκουμε, σαν αυτές που πολύ εύστοχα αναφέρατε ήδη (διαχείριση αλφαριθμητικών, αρχεία, εγγραφές κτλ.)
-εισαγωγή σε κάποιο βαθμό του υπολογισμού της πολυπλοκότητας ενός αλγορίθμου. Πρέπει κάποια στιγμή να μπορεί ο μαθητής να καταλαβαίνει τι σημαίνει βελτίωση κώδικα, να μπορεί να συγκρίνει αλγορίθμους ως προς την απόδοση και να μην στέκεται στην στείρα ερώτηση: "δουλεύει;"
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

#43
Δεν καταλαβαίνω γιατί το να διδάξει κανείς μια γλώσσα η οποία έχει ελάχιστο συντακτικό θόρυβο δεν κάνει αλγοριθμική αλλά προγραμματισμό.
Η γλώσσα είναι ένα εργαλείο, έχει να κάνει με το πως θα το παρουσιάσεις. Η συγκεκριμένη γλώσσα μαζί με 2-3 άλλες ακόμα νομίζω ότι μπορούν να χρησιμοποιηθούν ως η μετάβαση από την ψευδογλώσσα της Β σε κάτι καλύτερο.

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

Πάλι καλά που δεν είπες και vi
Παράθεση από: sstergou στις 15 Νοε 2014, 06:43:04 ΜΜ
To emacs βέβαια :D

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

ΥΓ.για να θυμούνται οι παλιοί και να μαθαίνουν οι νεώτεροι
http://www.albany.edu/faculty/hy973732/ist535/vi_editor_commands.pdf
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

pgrontas

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

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

Μία λύση θα ήταν στα παραδείγματα του βιβλίου να υπάρχουν δύο αναπαραστάσεις: Ψευδογλώσσα και Python (σε αντιστοιχία με την ΓΛΩΣΣΑ, PASCAL, BASIC της ΑΕΠΠ- όχι όμως ως απλή αναφορά αλλά 1-1 αντιστοιχία). Κάτι τέτοιο μπορεί να έχει πολλαπλά οφέλη:

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

ΥΓ: Ένα απλό, γρήγορο περιβάλλον Python που χρησιμοποίησα πέρσι στο πρόγραμμα που προανέφερα ήταν το PyScripter. Ρίξτου μια ματιά.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

merlin

#45
Αν θέλετε και την άποψη ενός καθηγητή που δουλεύει στην επαρχία, σας ενημερώνω ότι το επίπεδο των μαθητών στα Αγγλικά δεν είναι πολύ καλό. Υπάρχουν παιδιά που δεν έχουν κάνει ούτε μια ώρα φροντιστήριο και ό,τι έχουν μάθει είναι από το σχολείο (στα μικρά δημοτικά δε διδασκόντουσαν καθόλου ή στα ολιγοθέσια σε μικρό βαθμό). Γενικότερα, ενώ υπάρχουν μαθητές που έχουν proficiency από την Α' Λυκείου, είναι κάποιοι άλλοι που έχουν σοβαρό πρόβλημα.
Θα πάει το greeklish σύννεφο, αφήστε που όταν θα δείχνουμε δικές μας λύσεις θα ρωτάνε τί είναι το weight, grade, position κλπ που θα έχουμε σαν μεταβλητές...

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

Σκεφτείτε να μπορούμε να γράψουμε σε αρχείο 10000000 εγγραφές (με χρήση π.χ. της ΤΥΧΑΙΟΣ(χ)) και στη συνέχεια να κάνουμε σειριακή vs δυαδική αναζήτηση, απλή εύρεση max vs ταξινόμηση και προβολή του πρώτου, ένα σωρό παραδείγματα που δείχνουν τη διαφορά μας με τα άλλα μαθήματα: Δε μας ενδιαφέρει μόνο να βγει σωστό αποτέλεσμα, αλλά και ο τρόπος! Έμμεσα μπορούμε να  "υποστηρίξουμε" εργαστηριακά έννοιες όπως η πολυπλοκότητα χωρίς να μας κοιτάνε σαν Κινέζους, αλλά ούτε και να εμβαθύνουμε σε μαθηματικές λύσεις.

Το εργαστηριακό κομμάτι για μένα πρέπει να ενισχυθεί πολύ, είναι ευκαιρία τώρα με τις 4+2 ώρες. Αυτό πιστεύω ότι πρέπει να γίνει και με τα άλλα θετικά μαθήματα έτσι ώστε οι μαθητές να αποκτήσουν πραγματική γνώση της θεωρίας.

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

Πέρυσι, στα μαθήματα επιλογής τους έκανα GameMaker. Φτιάξαμε ένα platform game και όταν έφτασε η στιγμή να βάλουμε "τουβλάκια" στην πίστα πάνω στα οποία θα πατούσε ο ήρωάς μας, έπρεπε να τους μιλήσω αναγκαστικά για parent - child. Ομολογώ ότι με εξέπληξαν θετικά, κατάλαβαν αμέσως την κληρονομικότητα όταν τους εξήγησα για ποιο λόγο ελέγχουμε την σύγκρουση μόνο με το "τουβλάκι - γονέα" χωρίς να τσεκάρουμε ένα ένα τα παιδιά, καθώς και πώς τα "τουβλάκια - παιδιά" διατηρούσαν τα δικά τους ξεχωριστά χαρακτηριστικά (τουβλάκι-γρασίδι, τουβλάκι χώμα κλπ).
Όλα τα παραπάνω όμως ήταν μερικά κλικ σε checkboxes. Δεν μπορώ να φανταστώ πως θα "κρύψουμε" την υλοποίηση της ενθυλάκωσης ή του πολυμορφισμού στην ψευδογλώσσα.
Παρασκευάς Πανάγου
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής ΠΕ20

evry

@merlin, pgrontas

Σε αυτό που λέτε με τα greeklish πράγματι υπάρχει πρόβλημα, το οποίο δεν οφείλεται τόσο στις εντολές της γλώσσας αλλά στα ονόματα των μεταβλητών που θα δίνουμε.
Πολύ σωστή παρατήρηση.
Πάντως η λύση να έχουμε παράλληλα ψευδογλώσσα για την τάξη και Python για το εργαστήριο μου φαίνεται καλή.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gkatsion

Χαίρομαι πολύ για όλες τις ιδέες των συναδέλφων!

Μπράβο σε όλους σας γενικά.

Όμως ακόμα ούτε έχουμε μάθει σε ποιους μαθητές θα απευθυνόμαστε, ούτε για ποιες σχολές, ούτε με ποια ύλη...

Άρα μην βιαζόμαστε. Όλοι μας έχουμε χρησιμοποιήσει διάφορα περιβάλλοντα. Και εμένα με έχουν εντυπωσιάσει
διάφορες γλώσσες κατ'εποχές, αλλά δεν σημαίνει πως κάνουν για τους μαθητές.

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

Με συγχωρείτε αλλά θα έχουν μεγάλες δυσκολίες...

Τέλος πάντων θα δούμε, θα συζητήσουμε, και ελπίζω να παίξουμε ρόλο όταν θα υπάρξει κάποια απόφαση!

Υ.Γ σκεφτείτε ότι οι τελικοί φοιτητές πληροφορικής πια (αναφέρομαι στα ΑΕΙ),
δεν είναι του 15 ως 19, αλλά του 10.5 ως 16,
οπότε αν εξαιρεθεί το μετσόβιο.... οι υπόλοιποι είναι για Python κλπ;; δεν ξέρω...
ΈΞΟΔΟΣ_ΑΠΟ_ΛΥΚΕΙΟ <-- ΑΕΙ + PHD + ΑΣΕΠ

evry

καλά κάνεις,
πάντως οι μαθηματικοί και οι φυσικοί σίγουρα δεν τους σκέφτηκαν.
Το ερώτημα είναι : να κάνουμε και εμείς το ίδιο? υπάρχουν υπέρ και κατά
Παράθεση από: gkatsion στις 15 Νοε 2014, 10:09:37 ΜΜ
Σκέφτομαι απλά τους 22 μαθητές της φετινής μου τεχνολογικής Β, που μπορεί να είναι και 26 του χρόνου, και
αναρωτιέμαι τι θα σήμαινε για αυτούς μία "κανονική", αληθινή γλώσσα προγραμματισμού.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

#49
Εμένα δεν μου αρέσει η ιδέα ψευδογλώσσα στην τάξη και python στο εργαστήριο. Ή το ένα ή το άλλο. Και τα δύο μαζί νομίζω σύγχυση θα δημιουργήσουν περισσότερο παρά ευκολία.

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

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

Eri

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

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

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

Για μένα λοιπόν συνοψίζοντας θα έλεγα ότι :
1. Να παραμείνει το εξελληνισμένο περιβάλλον της γλωσσας.
2. Ας υπάρξουν σε αυτό όσες προσθήκες ή/και βελτιώσεις αποφασιστούν.
3. Ας μπουν, αν χωρούν, έννοιες αντικειμενοστραφούς προγραμματισμού και παραδείγματα αντικειμενοστραφούς σχεδίασης στα πλαίσια εργαστηριακών ωρών και με γνώμονα πάντα ότι η εξέταση του μαθήματος γίνεται σε χαρτί.
5. Το σημαντικότερο για μένα. Να γίνει το μάθημα της Β λυκείου 2ωρο για να μπορούμε να μιλάμε για μαθητές που έχουν διδαχθεί την αλγοριθμική σκέψη σε ικανοποιητικό επίπεδο, και οπότε να μπορούν να 'γράψουν κώδικα' σε προγραμματιστικό περιβάλλον.

evry

Στάθη δεν το διατύπωσα καλά
Εννοούσα ότι η ψευδογλώσσα της Β Λυκείου στην αρχή θα χρησιμοποιείται παράλληλα με την πραγματική γλώσσα προγραμματισμού ώστε να βοηθήσει τους μαθητές. Όχι ότι θα κάνουν ταυτόχρονα 2 γλώσσες.

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

Το λέω γιατί τέτοιες ερωτήσεις μου έκαναν πολλοί μαθητές τα τελευταία χρόνια

Παράθεση από: sstergou στις 15 Νοε 2014, 11:41:25 ΜΜ
Εμένα δεν μου αρέσει η ιδέα ψευδογλώσσα στην τάξη και python στο εργαστήριο. Ή το ένα ή το άλλο. Και τα δύο μαζί νομίζω σύγχυση θα δημιουργήσουν περισσότερο παρά ευκολία.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

itt

#52
Κάτι που κάποιοι παραβλέπουν είναι ότι η Python δεν ειναι γνώση χρήσιμη μόνο σε προγραμματιστές. Η Python συνιστά μια πολύ καλή επιλογή για επιστημονικό scripting με τις άπειρες βιβλιοθήκες που υπάρχουν, είναι κατα τη γνώμη μου το εξευγενισμένο ανάλογο του Matlab στο συγκεκριμένο κομμάτι.

evry

πράγματι
http://www.scipy.org/
http://www.scientificpython.net/
https://www.coursera.org/course/scicomp

αλλά matllab δεν είναι, μην τα παραλέμε  :police:

Παράθεση από: itt στις 16 Νοε 2014, 01:57:11 ΠΜ
Κάτι που κάποιοι παραβλέπουν είναι ότι η Python δεν ειναι γνώση χρήσιμη μόνο σε προγραμμαστές. Η Python συνιστά μια πολύ καλή επιλογή για επιστημονικό scripting με τις άπειρες βιβλιοθήκες που υπάρχουν, είναι κατα τη γνώμη μου το εξευγενισμένο ανάλογο του Matlab στο συγκεκριμένο κομμάτι.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

spin

Παράθεση από: evry στις 16 Νοε 2014, 12:42:31 ΠΜ
Το λέω γιατί τέτοιες ερωτήσεις μου έκαναν πολλοί μαθητές τα τελευταία χρόνια
Ευριπίδη αυτές τις ερωτήσεις τις έχουμε ακούσει άπειρες φορές και άλλες τόσες δώσαμε την πρέπουσα απάντηση.
Που δεν είναι άλλη από τη στοχοθεσία του προγράμματος σπουδών για την ΑΕΠΠ.
Και αυτή η απάντηση δεν είναι ούτε δικαιολογία ούτε υπεκφυγή.
Είναι μια μεγάλη αλήθεια, με στιβαρά παιδαγωγικά θεμέλια.
Και για να σε προλάβω, ναι, θα μπορούσαμε να πετύχουμε το στόχο και με μια αληθινή γλώσσα.
Αλλά στην πορεία θα χάναμε αυτούς που τα αγγλικά τους φαίνονται κινέζικα (επιβεβαιώνω κι εγώ αυτά που λέει ο Παρασκευάς παραπάνω για την επαρχία).
Και αυτό θα ήταν μεγάλο κρίμα.

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

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


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

#55
Μια αφήγηση σαν παραμύθι

Παρασκευή 29/1/2010 κατά τις 11:00 το πρωί ανέβαινα με τις κυλιόμενες από το μετρό της Εθνικής Άμυνας έχοντας  προορισμό το Υπουργείο Υποδομών Μεταφορών και Δικτύων, Οδός Αναστάσεως 2 και Τσιγάντε. Ανησυχούσα γιατί, παρόλο που η μέρα ήταν σημαντική και προβλεπόταν ενδιαφέρουσα, σίγουρα όμως θα ήταν απαιτητική και κουραστική, και εγώ ήδη αισθανόμουν εξαντλημένος. Σκεφτόμουν ότι κακώς δεν είχα έρθει στην Αθήνα από την προηγούμενη μέρα αφού θα μπορούσα να μείνω στον αδερφό μου. Όμως δεν ήμουν ακόμα έτοιμος. Το προηγούμενο βράδυ είχα κοιμηθεί πάλι αργά, κατά τις 2:00 π.μ., αφού ήθελα να κάνω κι άλλες διορθώσεις και δοκιμές. Έτσι, μετά από περίπου 3-4 ώρες αγχωμένου ύπνου, ξύπνησα πριν το ξημέρωμα, ντύθηκα, οδήγησα για 3.5 ώρες από τον Πύργο μέχρι την Αθήνα, άφησα το αυτοκίνητο στο σπίτι του αδερφού μου στο Γκάζι, και πήρα τη γραμμή 3 του μετρό.   

Ενώ έμπαινα στο κτίριο του υπουργείου, στο αμφιθέατρο του οποίου θα λάμβανε χώρα η Ημερίδα «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον - Παρελθόν, Παρόν, Μέλλον», σκεφτόμουν ότι τώρα πρέπει να εντοπίσω τα υπόλοιπα παιδιά. Το προηγούμενο βράδυ τους είχα στείλει το email: «Τι θα κάνουμε αύριο; Θα συναντηθούμε κάποια ώρα; Να γνωριστούμε κιόλας βρε αδερφέ! Εννοώ να είμαστε κάποια συγκεκριμένη ώρα στο χώρο της παρουσίασης; Ανάλογα με το τι θα πούμε θα κανονίσω και ώρα αναχώρησης αύριο ξημερώματα! Για σήμερα ελπίζω να πέσω νωρίς για ύπνο! Δηλαδή <= 01:00. Τίποτα άλλο που πρέπει να ξέρουμε; Μην ξεχάσετε να πάρετε μαζί σας τις παρουσιάσεις! Ααα... πώς θα σας γνωρίσω; Να κρατάμε κάτι ως σημάδι; !!!». Ο Στάθης είχε απαντήσει: «Φτάνω στο αεροδρόμιο στις 9:30 οπότε θα είμαι στον χώρο γύρω στις 10:30-10:45. Καλό θα ήταν να γνωριστούμε πριν παρουσιάσουμε γιατί αλλιώς μπορεί να συμβούν τραγελαφικά πράγματα! Το τηλ. μου είναι : ...... Επισυνάπτω την παρουσίαση στην τελική της μορφή, έκανα κάποιες μικροαλλαγές αισθητικού χαρακτήρα. Υ.Γ. Θα φοράω περοκίνι και θα κρατάω μια κορνίζα usb που θα δείχνει ένα τριαντάφυλλο.» Το τελευταίο όμως μάλλον δεν το εννοούσε! Αφού διέσχισα μια φορά το διάδρομο μέχρι το αμφιθέατρο, ξαναγυρνώντας σταμάτησα στο κυλικείο και έκανα μια κλήση στο κινητό του Σπύρου. Ακριβώς μπροστά μου ήταν μια παρέα και αμέσως άκουσα να χτυπάει το κινητό ενός από αυτούς. «Ο Σπύρος!», του είπα. «Ο Νίκος!», μου απάντησε και μου έδωσε το χέρι! Στη συνέχεια χαιρετήθηκα και με τους υπόλοιπους της παρέας: τον Στάθη Στέργου (sstergou), τον Παναγιώτη Τσιωτάκη και την Αλεξάνδρα Ψαλτίδου. 

Ο Σπύρος Δουκάκης μας είχε στρατολογήσει για την πραγματοποίηση μιας έρευνας για το μάθημα της ΑΕΠΠ. Τους υπόλοιπους τους γνώριζε ήδη. Εμένα με είχε βρει μέσα από το Στέκι στο οποίο είχα γίνει μέλος λιγότερο από ένα χρόνο πριν. Κάποια μέρα μου τηλεφώνησε και μου έριξε την ιδέα για την έρευνα. Εγώ γενικά δυσκολεύομαι να πω όχι! Συνεργαστήκαμε λοιπόν όλη η παρέα, φτιάξαμε ένα τεράστιο ηλεκτρονικό ερωτηματολόγιο, το ανεβάσαμε και το ανακοινώσαμε. Η συμμετοχή των συναδέλφων ήταν ανέλπιστα μεγάλη, θα έλεγα συγκινητικά μεγάλη! Στην πραγματικότητα δεν επρόκειτο για δείγμα, αλλά για την πλειοψηφία ίσως από αυτούς που δίδασκαν το μάθημα! Βέβαια μετά ακολούθησε πολλή δουλειά για την επεξεργασία των δεδομένων. Ο Σπύρος ήταν από την αρχή έως το τέλος η ψυχή της ομάδας  και σίγουρα αυτός που κουράστηκε περισσότερο από όλους. Η παρουσίαση των αποτελεσμάτων έγινε τμηματικά, λόγω του όγκου τους, για μεγάλο χρονικό διάστημα. Εκείνη την ημέρα, λοιπόν θα γινόταν η  παρουσίαση των πρώτων αποτελεσμάτων!  Για την ιστορία, αναφέρω ότι η ημερίδα περιελάμβανε 6 παρουσιάσεις από τη δικιά μας ομάδα με στοιχεία από την έρευνα, και άλλες 8 παρουσιάσεις άλλων συναδέλφων, μεταξύ των οποίων ήταν και σύμβουλοι, οι δημιουργοί των εκπαιδευτικών λογισμικών του μαθήματος, αλλά και συγγραφείς του σχολικού βιβλίου. Η συμμετοχή στην ημερίδα ήταν υπεράνω κάθε προσδοκίας αφού την παρακολούθησαν πάνω από 400 συνάδελφοι. Υλικό ημερίδας: http://www.epy.gr/aepp/aepp.php

Πριν την έναρξη της ημερίδας αλλά και στα διαλείμματα, σιγά σιγά γνωριστήκαμε και μιλήσαμε από κοντά και με άλλους συναδέλφους του Στεκιού, όπως ήταν ο Ευριπίδης (evry), ο Παναγιώτης (pgrontas), o Κώστας (ntzios kostas), ο Γιώργος (gpapargi), και άλλοι. Πολλοί από αυτούς μάλιστα ήταν και στο πρόγραμμα των εισηγήσεων. Να αναφέρω ότι μπορεί η ημερίδα να αποτέλεσε για μένα τότε μια ανεπανάληπτη εμπειρία, όμως μετά από τόσο καιρό μπορώ να πω ότι το μεγαλύτερο κέρδος μου ήταν που ήρθα σε επαφή και γνώρισα από κοντά όλους αυτούς τους ανθρώπους.

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

Ξεκίνησαν λοιπόν οι χαιρετισμοί, μετά ο Σπύρος, ο Στάθης, ξανά ο Στάθης για το pseudoglossa.gr, η Πύρζα, ο Νικολαΐδης (spin), δεν θυμάμαι ακριβώς τη σειρά..., διάλειμμα-γεύμα. Μετά ο Παναγιώτης, η Αλεξάνδρα, ο Σπύρος, ο Κανίδης, ο Οικονόμου (αν δεν κάνω λάθος), και ξανά διάλειμμα -καφές. Μετά το διάλειμμα θα ήμουν εγώ! Με το ζόρι στεκόμουν στα πόδια μου, από το πρωί με μισό ποτήρι χυμό και δύο γουλιές νερό. Η παρουσίασή μου είχε τίτλο «ΑΕΠΠ: μάθημα αλγοριθμικής ή προγραμματισμού: Εμπειρική έρευνα σε εκπαιδευτικούς» (http://www.epy.gr/aepp/pts/epy_aepp_29Ian10_adamo_alg_prog.pps). Όπως ήταν αναμενόμενο στην αρχή και για 2-3 λεπτά ήμουν φοβερά αγχωμένος, η χροιά της φωνής μου ήταν αλλαγμένη, και αν δεν έλεγα συνεχώς μέσα μου «πάρε ανάσα... πάρε ανάσα...» θα πάθαινα ασφυξία! Πάντως οι διαφάνειες κυλούσαν κανονικά με το ρυθμό που είχα από πριν χρονομετρήσει, και σιγά σιγά, όπως μου συμβαίνει πάντα, ηρεμούσα...! Στις τελευταίες διαφάνειες ήμουν πλέον τελείως νηφάλιος και μάλιστα έπιασα έκπληκτος τον εαυτό μου να χρωματίζει υπέρ του δέοντος το ύφος της απόδοσης των προτάσεών μας για το μέλλον του μαθήματος.

Μετά συνέχισε ο Κοίλιας με τον φοβερό τίτλο «Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα», ο Ευριπίδης, ο Μαυρομάτης. Στο τέλος ακολούθησε και ενδιαφέρουσα συζήτηση. Όταν η ημερίδα τελείωσε και βγήκαμε έξω είχε πλέον νυχτώσει. Ευτυχώς πέτρες δεν φάγαμε... Τουλάχιστον όχι εκείνη την ημέρα! Και επίσης, όλη η κούραση είχε εξαφανιστεί! Πάλι πίσω στο μετρό, μετά στο Γκάζι, πήρα το αυτοκίνητο, βγαίνοντας από τον Αθήνα έκανα στάση για φαγητό, μετά από 3.5 ώρες έφτασα στο Πύργο, προχωρημένα μεσάνυχτα πλέον...

Επιμύθιο:

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

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

sstergou

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

@evry
Τώρα κατάλαβα τι εννοείς. Οκ, δεκτό. Πάντως αυτές τις ερωτήσεις ίσως σου τις κάνουν περισσότεροι με την python!

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

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

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

Μια μέρα ίσως διεκδικήσουμε την γενική παιδεία. Θα μπορούμε να το κάνουμε;

sstergou

Παράθεση από: spin στις 16 Νοε 2014, 02:29:32 ΠΜ
Δηλαδή κάτι σαν τα dataset των βάσεων, αλλά στο πιο brutal. Επίσης χρειάζεται να αναθεωρηθεί το θέμα των πινάκων ώστε να μπορούν να συνυπάρξουν διαφορετικοί τύποι στον ίδιο πίνακα.

Όχι αν επιστρέφει πίνακα εγγραφών! Τότε δεν θα χρειάζεται τίποτε!

spin

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

fof

Συμφωνώ κι εγώ με την Eri, τον Παναγιώτη, τον Στέργου.. το να επεκταθεί η ψευδογλώσσα σε μια λογική αύξηση της ύλης με στοιχεία αντικειμενοστραφούς προγραμματισμού, με βάση πάντα το γεγονός ότι η εξέταση είναι γραπτή!
Η εξειδικευμένη γνώση μιας γλώσσας θα δυσκολέψει και θα απομακρύνει τους μαθητές από κάθ ΄ αυτούς στόχους του μαθήματος.
Επίσης θεωρώ πως τα κριτήρια για την επιλογή μιας συγκεκριμένης γλώσσας προγραμματισμού όπου επιθυμούμε να εντάξουμε για εκπαιδευτικούς και μόνο σκοπούς  είναι καθαρά υποκειμενικά. Για παράδειγμα.. εγώ διαφωνώ με τη python.. και θεωρώ καταλληλότερη την C++ (γενικού σκοπού, δημοφιλής, γρήγορη, με φοβερές δυνατότητες), ή την php (script language) , ή και την pascal (εκπαιδευτική) στην τελική.

sstergou

Παράθεση από: spin στις 16 Νοε 2014, 01:12:45 ΜΜ
Στάθη το καλό με την dataset-like λύση είναι ότι θα τη μάθουν πιο εύκολα και χωρίς μπερδέματα τα παιδιά.
Το κακό είναι ότι αναφορικά με την απόδοση έχει σε κάποιες περιπτώσεις τρελό overhead.
Σκέψου δηλαδή να θέλεις να προσθέσεις μία μόνο εγγραφή σε ένα μεγάλο αρχείο. Τότε θα πρέπει να φορτώσεις όλα τα περιεχόμενά του σε πίνακα, να προσθέσεις την εγγραφή στον πίνακα και να τον ξαναγράψεις στο αρχείο.
Αλλά από άποψη συντακτικού θα είναι αρκετά κομψή, ιδίως αν θέλουμε να περιορίσουμε τις σχετικές με αρχεία εντολές στο ελάχιστο.
Σπύρο μια έξτρα παράμετρος στην Γράψε_Αρχείο το λύνει αυτό το πρόβλημα.

itt

Παράθεση από: fof στις 16 Νοε 2014, 03:08:44 ΜΜ
Συμφωνώ κι εγώ με την Eri, τον Παναγιώτη, τον Στέργου.. το να επεκταθεί η ψευδογλώσσα σε μια λογική αύξηση της ύλης με στοιχεία αντικειμενοστραφούς προγραμματισμού, με βάση πάντα το γεγονός ότι η εξέταση είναι γραπτή!
Η εξειδικευμένη γνώση μιας γλώσσας θα δυσκολέψει και θα απομακρύνει τους μαθητές από κάθ ΄ αυτούς στόχους του μαθήματος.
Επίσης θεωρώ πως τα κριτήρια για την επιλογή μιας συγκεκριμένης γλώσσας προγραμματισμού όπου επιθυμούμε να εντάξουμε για εκπαιδευτικούς και μόνο σκοπούς  είναι καθαρά υποκειμενικά. Για παράδειγμα.. εγώ διαφωνώ με τη python.. και θεωρώ καταλληλότερη την C++ (γενικού σκοπού, δημοφιλής, γρήγορη, με φοβερές δυνατότητες), ή την php (script language) , ή και την pascal (εκπαιδευτική) στην τελική.

Που ακριβώς διαφωνείς με την Python; Γιατί θεωρείς καταλληλότερη την C++;

fof

Παράθεση από: itt στις 16 Νοε 2014, 03:55:16 ΜΜ
Που ακριβώς διαφωνείς με την Python; Γιατί θεωρείς καταλληλότερη την C++;

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

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

pgrontas

Παράθεση από: fof στις 16 Νοε 2014, 03:08:44 ΜΜ
Η εξειδικευμένη γνώση μιας γλώσσας θα δυσκολέψει και θα απομακρύνει τους μαθητές από κάθ ΄ αυτούς στόχους του μαθήματος.
Θα ήθελα να ξανατονίσω ότι όλοι από όσους έχουν αναφερθεί σε συγκεκριμένες γλώσσες, υποστηρίζουν την διδασκαλία αλγοριθμικής μέσω της γλώσσας και όχι της ίδιας της γλώσσας. Άρα δεν απαιτείται εξειδικευμένη γνώση.

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

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

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

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

ΥΓ:
Στάθη η αφήγηση του Νίκου μου θύμισε ότι εκείνη τη μέρα στην ημερίδα κάτι είχαμε πει στο διάδρομο περί χρήσης Python στο μάθημα. Θυμάσαι τι;


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

itt

Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
όμως δεν έχει σημασία τι πιστεύω εγώ... σημασία έχει ποια γλώσσα κάνει για τα παιδιά , και ποια θα υποστηρίξει  τελεια τους σκοπούς του μαθήματος

Έχει σημασία τι πιστεύεις, συζήτηση κάνουμε.

Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
ισχυρό υπόβαθρο

Πολύ γενικόλογο, δεν αντιλμβάνομαι σε τι αναφέρεσαι.

Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
υποστηρίζει όλα τα είδη προγραμματισμού (δομημένος..αντικειμενοστραφής..γενικός...)

Όπως και η python, με πολύ πιο intuitive σύνταξη, ιδιώματα και abstractions. Η C++ είναι εξαιρετικά αδέξια στο συγκεκριμένο θέμα.
Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
υποστηρίζει προγραμματισμό υψηλού και χαμηλού επιπέδου

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

Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
παίζει σε όλες τις πλατφόρμες

Δεν νομίζω ότι αυτό μας απασχολεί ιδιαίτερα.

Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
σχεδιάζει GUI παντού

Oι περισσότερες βιβλιοθήκες (πχ cairo)  έχουν bindings για την Python οπότε και αυτό δεν είναι πρόβλημα.

Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
πολλές βιβλιοθήκες

Πολλές βιβλιοθήκες υπάρχουν, αλλά δεν υπάρχει ένα package distribution σύστημα όπως έχουν οι περισσότερες γλώσσες και επίσης δεν υπάρχει ένα καλό και απλό build system (με την έννοια ένα που δεν σε  κάνει να θες να σπάσεις το πληκτρολόγιό σου). Γενικά το θεμα με της βιβλιόθηκες είναι το βασικό αντεπιχείρημα στη χρήση της C++.

Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
τεράστιο community

Η Python έχει από τα μεγαλύτερες και πιο ενθουσιώδης κοινότητες στον προγραμμαστισμό.

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

evry

όχι όλα, δεν υποστηρίζει συναρτησιακό σε αντίθεση με την python
Παράθεση από: fof στις 16 Νοε 2014, 05:26:18 ΜΜ
υποστηρίζει όλα τα είδη προγραμματισμού (δομημένος..αντικειμενοστραφής..γενικός...)

@itt
θυμάμαι ότι και σε άλλη κουβέντα δεν είχες και την καλύτερη άποψη για τη c++
Αν επιτρέπεται ποια σχολή έχεις τελειώσει, γιατί νομίζω ότι την έχεις πάρει στραβά από την αρχή
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

itt

Παράθεση από: evry στις 16 Νοε 2014, 07:17:57 ΜΜ
όχι όλα, δεν υποστηρίζει συναρτησιακό σε αντίθεση με την python

Βασικά υποστηρίζει, σε μια πολύ απλοϊκή μορφή, με τη χρήση του std::transform και κάποιων άλλων πραγμάτων στη functional βιβλιοθήκη (placeholders για binding και τέτοια).

Παράθεση από: evry στις 16 Νοε 2014, 07:17:57 ΜΜ
@itt
Αν επιτρέπεται ποια σχολή έχεις τελειώσει, γιατί νομίζω ότι την έχεις πάρει στραβά από την αρχή

Δεν είναι θέμα σχολής φίλε μου, απλούστατα έχω γράψει και έχω συντηρήσει άπειρο κώδικα σε C++. Την έχω δει και από την καλή και από την ανάποδη και γενικά η ανάποδη έχει μεγαλύτερη συχνότητα από την καλή. Και αυτό ανεξάρτητα από το domain, είτε σε κώδικα για image processing είτε σε erp συστήματα ( ο θεός να τα κάνει) γραμμένα με COM, MFC και παρόμοιες ασυναρτησίες. Δεν πιστεύω ότι κάποιος δεν πρέπει να μάθει C++ άμα το θέλει, απλά η γνώμη μου είναι ότι για αρχάριους είναι πολύ κακή ιδέα. Είναι πολύ καλή ιδέα όταν ξέρεις τι κάνεις, ξέρεις το domain σου και απλώς θες να πάρεις όσο performance μπορείς.

evry

#67
στη c++11 όχι στη C++, έτσι δεν είναι?

Παράθεση από: itt στις 16 Νοε 2014, 07:28:59 ΜΜ
Βασικά υποστηρίζει, σε μια πολύ απλοϊκή μορφή, με τη χρήση του std::transform και κάποιων άλλων πραγμάτων στη functional βιβλιοθήκη (placeholders για binding και τέτοια).

πάντως  όπως και να'χει από εκπαιδευτικής πλευράς δεν συγκρίνεται με τον τρόπο που το παρουσιάζει η python.
δεν είναι αναπόσπαστο μέρος της γλώσσας
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

@pgrontas
Δεν θυμάμαι, τι είχα πει; Αν δεν έχει βρωμόλογα μέσα μπορείς να το γράψεις εδώ :) (πλάκα κάνω εννοείται).

spin

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

Παράθεση από: pgrontas στις 16 Νοε 2014, 05:58:31 ΜΜ
Τέλος σε ότι αφορά τα αρχεία, η μόνη χρησιμότητα που βλέπω είναι σε πρακτικο επίπεδο και αφορά την εύκολη παροχή δεδομένων από και προς στον αλγόριθμο. Αυτό όμως μπορεί να γίνει και με εντελώς διαφανή τρόπο. Για παράδειγμα, με αλλαγή της Δεδομένα, Αποτελέσματα ώστε να επικοινωνούν με αρχεία, χωρίς να χρειάζεται ο μαθητής να ξέρει  εντολές εγγραφής και ανάγνωσης.
Σίγουρα, αν είναι μόνο για τα δεδομένα και τα αποτελέσματα υπάρχουν και άλλες λύσεις.
(Και η ΓλωσσοΜάθεια και ο Διερμηνευτής και το pseudoglossa υποστηρίζουν "Άντληση δεδομένων", όπου όλες οι ΔΙΑΒΑΣΕ τραβάνε αυτόματα τις ζητούμενες τιμές από αρχείο)
Αλλά εμένα θα μου άρεσε η έννοια του εξωτερικού μόνιμου αρχείου αποθήκευσης να αποτελεί ΚΑΙ -έστω δευτερεύοντα- διδακτικό στόχο.

Καλός ο γόνιμος προβληματισμός, αν και πολύ φοβάμαι ότι αυτοί που θα αναλάβουν το έργο θα μας γειώσουν όλους και θα κάνουν ότι νομίζουν!  :D

sstergou

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

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

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

alkisg

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

  • Ποια είναι τα πλεονεκτήματα της ΓΛΩΣΣΑΣ από, ας πούμε, μια πλήρως εξελληνισμένη Basic με το κατάλληλο IDE που μοιάζει με Διερμηνευτή ή Γλωσσομάθεια;
  • Ποια είναι τα πλεονεκτήματα της Ψευδογλώσσας όπως τη διδάσκουμε (και όχι όπως την προόριζαν οι συγγραφείς, δηλαδή πολύ πιο ελεύθερη), οπό, ας πούμε, μια εξελληνισμένη Basic η οποία όντως υποστηρίζει και Δεδομένα και Αποτελέσματα και μη δήλωση μεταβλητών;
  • Τι νόημα έχει να διδάσκεται και Ψευδογλώσσα και ΓΛΩΣΣΑ; Αν π.χ. κάποιος ήθελε να διδάξει μια εξελληνισμένη Basic και στην αρχή δεν δήλωνε μεταβλητές (που το επιτρέπει), και μετά που μάθαινε για τύπους δεδομένων τις δήλωνε, τι μειονέκτημα θα είχε σχετικά με την τρέχουσα σπειροειδή διδασκαλία Ψευδογλώσσας / ΓΛΩΣΣΑΣ;
    (ΟΚ σταματάω με τη Basic :), παράδειγμα είναι, δεν εννοώ ότι την προτείνω)
  • Πολλές νέες γλώσσες υποστηρίζουν unicode identifiers. Αυτό σημαίνει ότι μπορεί να δηλωθεί π.χ. σε python3 μια συνάρτηση def ΓΡΑΨΕ(κείμενο): print(κείμενο), και πλέον οι μαθητές να την καλούν ως ΓΡΑΨΕ("Γεια σου κόσμε"). Εάν μεταφραστούν και όλα τα μηνύματα του περιβάλλοντος στα ελληνικά, μένουν μόνο οι δεσμευμένες λέξεις της γλώσσας στα Αγγλικά, για παράδειγμα if, for, while, do... καμιά ντουζίνα όλες κι όλες. Θεωρείται πρόβλημα εάν αυτή η ντουζίνα λέξεις είναι οι μόνες που είναι στα Αγγλικά; Εάν ναι, πάλι λύνεται, αλλά προσωπικά για τις δεσμευμένες λέξεις δεν θεωρώ πρόβλημα τη γλώσσα.
  • Πόσο μπορούμε να βασιστούμε στο IDE που θα επιλεχθεί ή θα υλοποιηθεί; Για παράδειγμα, εάν τα αρχεία έχουν την αναπαράσταση καρτελών κειμένου (σαν το αρχείο εισόδου του Διερμηνευτή, αλλά πολλαπλές καρτέλες, όχι μία), τότε δεν χρειάζεται ιδιαίτερη υποστήριξη για αρχεία από τη γλώσσα, τα stdio + τα άλλα descriptors, σε συνδυασμό με απλές ΓΡΑΨΕ/ΔΙΑΒΑΣΕ αρκούν.

spin

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

sstergou

@alkisg
Για τα 1, 2, 3 : Νομίζω εξαρτάται από την γλώσσα που θα κρύβεται από κάτω. Εγώ δεν συγκρίνω τα υπάρχοντα του ΑΕΠΠ με τις υπάρχουσες γλώσσες αλλά μια ιδανική γλώσσα κομμένη και ραμμένη στα μέτρα μας με την python για παράδειγμα μιας και αυτή φαίνεται να είναι η καλύτερη επιλογή.

Για το 5: Το ide πρέπει κατά τη γνώμη μου να είναι άσχετο είτε μπει ελληνική γλώσσα είτε όχι. Επίσης η εκάστοτε υλοποίηση της γλώσσας πρέπει να είναι άσχετη. Το θέμα είναι το specification μιας και αυτό είναι που μετέπειτα θα καθορίσει και τα περιβάλλοντα.

Για το 4: Αυτό είναι συζητήσιμο και δεν είναι άσχημη ιδέα. Το δίλημμα μετά είναι αν θα επιτραπεί η ελεύθερη χρήση όλων των δυνατοτήτων της host γλώσσας ή αν θα παραμείνουμε στο περιορισμένο ρεπερτόριο που θα διδάσκεται. Η αξιολόγηση ίσως είναι επίσης ένα θέμα.

Στο πρόβλημα π.χ. να εμφανιστούν τα μοναδικά στοιχεία που υπάρχουν σε ένα πίνακα υπάρχει η "απλή" λύση με πίνακα που ξέρουμε στην αεππ και υπάρχει και το one - liner συνδυασμός εντολών εκτός-εντός ύλης:  ΓΡΑΨΕ("\n".join(set(input))) .  Εκεί θα πρέπει να το πάρουμε σωστό ή λάθος; Και μη μου πείτε πού θα το ξέρουν αυτό οι μαθητές γιατί να είστε σίγουροι ότι θα βρεθούν αρκετοί τέτοιοι.

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

@spin
Ακριβώς αυτό όπως επίσης και το βάθος στο οποίο αξίζει να καλύψουμε τον συγκεκριμένο στόχο.

spin

Παράθεση από: itt στις 15 Νοε 2014, 03:08:22 ΠΜ
Θα το αναλύσω αύριο.
Δεν αντιλαμβάνομαι τον τόνο σου. Προφανώς και είναι το πρώτο αποτέλεσμα στην αναζήτηση, υποστηρίζεται επίσημα από τη Microsoft και ο Miguel είναι από τους κορυφαίους προγραμματιστές στον πλανήτη.
Ουπς, σε αυτό ξέχασα να απαντήσω  8)
Εννοώ ότι καλή η δημοφιλία και η διαφήμιση και οι συνεργασίες και το google ranking, αλλά at the end of the day μήπως πρέπει να δοκιμάζουμε κι εμείς οι ίδιοι -έστω κάποιες από- τις προσφερόμενες λύσεις ώστε να έχουμε προσωπική άποψη;
Γιατί κάποια εναλλακτική μπορεί να μας ταιριάζει περισσότερο από αυτό που μας πλασάρουν ως ιδανικό.
Αυτό ως προβληματισμός...

alkisg

Παράθεση από: sstergou στις 16 Νοε 2014, 11:51:07 ΜΜ
Εγώ δεν συγκρίνω τα υπάρχοντα του ΑΕΠΠ με τις υπάρχουσες γλώσσες αλλά μια ιδανική γλώσσα κομμένη και ραμμένη στα μέτρα μας με την python για παράδειγμα μιας και αυτή φαίνεται να είναι η καλύτερη επιλογή.

Αν και η επιλογή της γλώσσας παίζει σημαντικό ρόλο,
νομίζω ότι η επιλογή ή η κατασκευή ενός κατάλληλου περιβάλλοντος, καθώς και οι διαθέσιμες βιβλιοθήκες και οι δυνατότητες visual, event driven, multi platform προγραμματισμού (και ό,τι άλλο μπορεί να περιέχει η εκάστοτε διδακτέα ύλη) παίζουν ακόμα μεγαλύτερο ρόλο.

Για παράδειγμα, προσωπικά η Logo σαν συντακτικό μου φαίνεται χάλια για εισαγωγή στην αλγοριθμική σκέψη.
Τα περιβάλλοντα της Logo όμως δίνουν άμεση δυνατότητα οπτικοποίησης κατά την εισαγωγή στις δομές επιλογής, επανάληψης κλπ, κι αυτό είναι ιδιαίτερα ελκυστικό για τους μαθητές, με αποτέλεσμα να είναι θεμιτό που πρώτα μαθαίνουν Logo και μετά ΓΛΩΣΣΑ. Από την άλλη, εάν μπορούσα να πω σε ΓΛΩΣΣΑ:
Στυλό(ΚΑΤΩ)
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
   ΠΡΟΧΩΡΗΣΕ(20)
   ΣΤΡΙΨΕ(10)
ΤΕΛΟΣ
ε, θα το προτιμούσα από τη Logo και δεν θα είχε και λόγο ο μαθητής να μαθαίνει 2 γλώσσες. Θα ξεκινούσε με οπτικοποιημένα προβλήματα, και όταν χρειαζόταν, θα μπορούσε να κάνει και πιο abstract.

Αντίστοιχα, δεν θα με χαλούσε καθόλου εάν το Scratch υλοποιούσε τη ΓΛΩΣΣΑ αντί να είναι επηρεασμένο από Logo/Smalltalk/Whatever, ώστε να είναι δυνατός και ο block-based προγραμματισμός σε ΓΛΩΣΣΑ.

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

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


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

sstergou

Σεβαστή η άποψή σου Άλκη. Προφανώς υπάρχουν πλεονεκτήματα.

Εγώ πάντως διαφωνώ για το ότι το περιβάλλον παίζει μεγαλύτερο ρόλο από τη γλώσσα.

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

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

ΚΑΛΕΣΕ Στυλό(ΚΑΤΩ)
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
   ΚΑΛΕΣΕ ΠΡΟΧΩΡΗΣΕ(20)
   ΚΑΛΕΣΕ ΣΤΡΙΨΕ(10)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


και από το παραπάνω ίσως η Logo να είναι και καλύτερη.

Επίσης παραμένει το πρόβλημα της αξιολόγησης που ανέφερα πριν. Δεν έχω σκεφτεί ακόμη κάτι που να το παρακάμπτει.

thana$i$

Η συζήτηση κάτι μου θυμίζει.
http://interactivepython.org/runestone/static/thinkcspy/toc.html
και συγκεκριμένα
http://interactivepython.org/runestone/static/thinkcspy/PythonTurtle/IterationSimplifiesourTurtleProgram.html

Προσωπικά θα συμφωνήσω με τον Ευριπίδη και όσα γράφει για την Python, αφήνοντας μεγάλα περιθώρια συζήτησης βέβαια.
Επιπλέον, μου αρέσει και το δεύτερο μέρος αυτού του διαδραστικού βιβλίου, αφού εξηγεί με απλό τρόπο έννοιες που πιστεύω ότι θα πρέπει να συμπεριλάβει το εξεταζόμενο μάθημα.
http://interactivepython.org/runestone/static/pythonds/index.html

itt

Παράθεση από: spin στις 17 Νοε 2014, 12:23:27 ΠΜ
Ουπς, σε αυτό ξέχασα να απαντήσω  8)
Εννοώ ότι καλή η δημοφιλία και η διαφήμιση και οι συνεργασίες και το google ranking, αλλά at the end of the day μήπως πρέπει να δοκιμάζουμε κι εμείς οι ίδιοι -έστω κάποιες από- τις προσφερόμενες λύσεις ώστε να έχουμε προσωπική άποψη;
Γιατί κάποια εναλλακτική μπορεί να μας ταιριάζει περισσότερο από αυτό που μας πλασάρουν ως ιδανικό.
Αυτό ως προβληματισμός...

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

itt

Παράθεση από: evry στις 16 Νοε 2014, 07:58:38 ΜΜ
στη c++11 όχι στη C++, έτσι δεν είναι?

πάντως  όπως και να'χει από εκπαιδευτικής πλευράς δεν συγκρίνεται με τον τρόπο που το παρουσιάζει η python.
δεν είναι αναπόσπαστο μέρος της γλώσσας

Οι περισσότεροι vendors πλέον προσφέρουν σχεδόν πλήρη υποστήριξη της 11, οπότε δεν είναι θέμα. Υπήρχε και πριν την C++11 αυτή η βιβλιοθήκη πάντως, απλά τώρα την μαζεύουν κάπως. Όπως βέβαια είπες, δεν το λες και τίποτα το συγκλονιστικά functional, είναι πολύ πιο αδέξιος ο τρόπος που γράφεις σε σχέση με την Python. Απλά υπάρχει (και) αυτή η δυνατότητα στο χάος της C++ ;) .

spin

Παράθεση από: itt στις 17 Νοε 2014, 12:30:43 ΜΜ
Ναι προφανώς το έχω χρησιμοποιήσει αυτό, μαζί με διάφορες εναλλακτικές (πχ Cordova, Phonegap) και μιλώντας πάντα στο γενικό πλαίσιο που συζητάγαμε έγραψα αυτό που έγραψα. Δεν ήταν η συζήτηση για κάποιο συγκεκριμένο κομμάτι που δεν κάνει καλά το Xamarin και το κάνει καλύτερα η όποια εναλλακτική. Νομίζω ότι έχουμε συννενοηθεί οπότε δεν θα γράψω τίποτα παραπάνω (για να μην βγαίνουμε και off topic πάλι)

ΟΚ.
Αν και τα Cordova/Phonegap δεν θα τα θεωρούσα διαφορετικές εναλλακτικές αφού είναι ουσιαστικά το ίδιο πράμα. Το Phonegap είναι μια έκδοση του Cordova υπό τη σκέπη της Adobe. Η σημαντικότερη διαφορά τους είναι ότι το Phonegap έχει integration με το Dreamweaver της ίδιας εταιρίας. Η ίδια η Adobe έχει δεσμευτεί ότι δεν θα αποκλίνει από την επίσημη γραμμή του Apache για το Cordova. (Δεν είμαι infomaniac  :D, απλά όλα αυτά τα συνάντησα για τη διπλωματική μου)

Όσον αφορά το Xamarin που αναφέρεις πάλι, δεν αμφιβάλλω ότι είναι καλή λύση. Αλλά δεν είναι αυτός ο -μόνος- λόγος που έχει τη στήριξη του γίγαντα Microsoft (με ότι αυτό συνεπάγεται). Ένας σημαντικός λόγος είναι ότι χρησιμοποιεί κατά κόρον τη C#, το πνευματικό παιδί της Microsoft που φτιάχθηκε για την προώθηση της .NET πλατφόρμας της. Επίσης έχουν δώσει βαρύτητα στη συνεργασία του προγράμματος με το Visual Studio. Οπότε στην MS το βλέπουν ως πρώτης τάξεως ευκαιρία να μπουν σε αυτήν την αγορά, αφού εξάλλου και η native γλώσσα των Windows Phone είναι η C#. (Να δεις που θα πέσει εξαγορά με πολλά $$ στο άμεσο μέλλον!)
Ο λόγος που είχα παρατήσει το Xamarin είναι ότι για να έχεις αξιοπρεπές πακέτο πρέπει να πληρώνεις συνδρομή. Μια μόδα που δυστυχώς εξαπλώνεται, ιδίως στη νεαρή cross-platform σκηνή. Και εκεί που έχουν φτάσει τους μισθούς μας τα σκέφτεσαι ακόμα κι αυτά. Το δωρεάν πακέτο είχε, αν θυμάμαι καλά, όριο όσον αφορά το μέγεθος της εφαρμογής που θα φτιάξεις. Δεν ξέρω αν ισχύει ακόμα.

Έχεις δίκιο, είμαστε εντελώς off-topic αλλά ήταν ευκαιρία για μια ενδιαφέρουσα ανταλλαγή απόψεων...

itt

Παράθεση από: spin στις 17 Νοε 2014, 05:43:54 ΜΜ
ΟΚ.
Αν και τα Cordova/Phonegap δεν θα τα θεωρούσα διαφορετικές εναλλακτικές αφού είναι ουσιαστικά το ίδιο πράμα. Το Phonegap είναι μια έκδοση του Cordova υπό τη σκέπη της Adobe. Η σημαντικότερη διαφορά τους είναι ότι το Phonegap έχει integration με το Dreamweaver της ίδιας εταιρίας. Η ίδια η Adobe έχει δεσμευτεί ότι δεν θα αποκλίνει από την επίσημη γραμμή του Apache για το Cordova. (Δεν είμαι infomaniac  :D, απλά όλα αυτά τα συνάντησα για τη διπλωματική μου)

Όσον αφορά το Xamarin που αναφέρεις πάλι, δεν αμφιβάλλω ότι είναι καλή λύση. Αλλά δεν είναι αυτός ο -μόνος- λόγος που έχει τη στήριξη του γίγαντα Microsoft (με ότι αυτό συνεπάγεται). Ένας σημαντικός λόγος είναι ότι χρησιμοποιεί κατά κόρον τη C#, το πνευματικό παιδί της Microsoft που φτιάχθηκε για την προώθηση της .NET πλατφόρμας της. Επίσης έχουν δώσει βαρύτητα στη συνεργασία του προγράμματος με το Visual Studio. Οπότε στην MS το βλέπουν ως πρώτης τάξεως ευκαιρία να μπουν σε αυτήν την αγορά, αφού εξάλλου και η native γλώσσα των Windows Phone είναι η C#. (Να δεις που θα πέσει εξαγορά με πολλά $$ στο άμεσο μέλλον!)
Ο λόγος που είχα παρατήσει το Xamarin είναι ότι για να έχεις αξιοπρεπές πακέτο πρέπει να πληρώνεις συνδρομή. Μια μόδα που δυστυχώς εξαπλώνεται, ιδίως στη νεαρή cross-platform σκηνή. Και εκεί που έχουν φτάσει τους μισθούς μας τα σκέφτεσαι ακόμα κι αυτά. Το δωρεάν πακέτο είχε, αν θυμάμαι καλά, όριο όσον αφορά το μέγεθος της εφαρμογής που θα φτιάξεις. Δεν ξέρω αν ισχύει ακόμα.

Έχεις δίκιο, είμαστε εντελώς off-topic αλλά ήταν ευκαιρία για μια ενδιαφέρουσα ανταλλαγή απόψεων...

Πάντως άμα θες να κάνεις σοβαρή δουλειά και χρησιμοποιείς το stack της Microsoft, τα 70 ευρώ το μήνα για το buisness δεν είναι τίποτα. Ειδικά τώρα που το CLR είναι open source, θα πέσει πολύ καλή δουλειά στο Xamarin.

pgrontas

Ένας ενδιαφέρον νέο στοιχείο:
https://computinged.wordpress.com/2014/11/21/programming-with-pseudocode-keeping-student-interest-the-need-for-school-and-international-curricula-trip-report-on-wipsce-2014/

Στη Σκωτία (που δεν έχουν πρόβλημα γλώσσας) χρησιμοποιούν ψευδογλώσσα ώστε να αποφύγουν το δίλημμα επιλογής γλώσσας (γιατί Python και όχι κάτι άλλο) και για να διασφαλίσουν έναν ελάχιστο κοινο παρονομαστή γνώσεων.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

P.Tsiotakis

Έλεος, δεν υπάρχουν σύμβουλοι της πολιτείας σε εκείνη τη χώρα ?

petrosp13

Τι ξέρουν οι Σκωτσέζοι μωρέ;
Για κανά ουίσκι, καμιά φουστίτσα μέχρι και Γουίλιαμ Γουάλας
Μέχρι εκεί
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

Το ότι κάποιοι χρησιμοποιούν γενικά και αόριστα κάποια ψευδογλώσσα δεν αποτελεί επιχείρημα, διαφορετικά αν υπολογίσουμε πόσοι χρησιμοποιούν πραγματικές γλώσσες προγραμματισμού σε εισαγωγικά μαθήματα προγραμματισμού, (μάλλον κατά 99% το κόβω) δεν θα είχαμε να συζητάμε.
Το θέμα είναι
1) γιατί χρησιμοποιούν ψευδογλώσσα;
2) τι σόι ψευδογλώσσα είναι αυτή;
3) Δηλαδή στο σχολείο διδάσκονται σε ψευδογλώσσα?
4) Στις εξετάσεις τους σε τι γράφουν? γράφουν σε ψευδογλώσσα ή γλώσσα προγραμματισμού;

Όσον αφορά το πρώτο ερώτημα, ο λόγος που οι Σκωτσέζοι χρησιμοποιούν ψευδογλώσσα είναι ότι οι καθηγητές εκεί έχουν πλήρη ελευθερία στο ποια γλώσσα θα διδάξουν στους μαθητές, δηλαδή Scratch, Alice, Java, Python κλπ. Επειδή όμως οι μαθητές θα εξεταστούν σε αυτό το μάθημα αποφάσισαν να συμφωνήσουν όλοι σε μια κοινή γλώσσα για να μην έχουν πρόβλημα στις εξετάσεις (ο ελάχιστος κοινός παρανομαστής γλωσσών που ανέφερε παραπάνω ο Παναγιώτης). Έτσι κατέληξαν στην ψευδογλώσσα., ή τουλάχιστον αυτό που αυτοί νομίζουν ότι είναι ψευδογλώσσα όπως θα δούμε παρακάτω.
Προσοχή!!! Δεν μαθαίνουν ψευδογλώσσα μέσα στη χρονιά. Τη χρησιμοποιούν μόνο στις εξετάσεις.
Ναι.. ξέρω... αυτό, για εμάς που έχουμε πάντα σε αυτή τη χώρα φροντιστηριακή προσέγγιση και χρειαζόμαστε 4-5 ώρες για να διδάξουμε τη Διάβασε, τη διαφορά μεταξύ της Γράψε και της Εμφάνισε και τη διαφορά μεταξύ κεφαλαίων και μικρών, μας φαίνεται αδιανόητο, εκεί όμως το κάνουν διότι προφανώς τους ενδιαφέρει η κατανόηση και όχι η αυτοματοποίηση αλγορίθμων-καλουπιών για επίλυση ασκήσεων με το κιλό (βλέπε μετρητές, αθροιστές, μέγιστα μερικού συνόλου, ολικού συνόλου, υπομερικού συνόλου κλπ)

Ας δούμε τι λέει ο ένας από τους 2 επιστήμονες που σχεδίασε την ψευδογλώσσα γνωστή ως Haggis
Αντιγράφω αποσπασματικά κάποια σημαντικά σημεία του, όποιος θέλει μπορεί να το διαβάσει όλο στην 3η σελίδα στον παρακάτω σύνδεσμο
http://www.casscotland.org.uk/wp-content/uploads/2014/04/SwitchedOnScotland5.pdf

We expected Haggis to be  incorporated into teaching as follows:
1. Pupils learn to program in a "real"  language of the teacher's choice.
2. Planning uses any informal pseudocode with which the teacher is comfortable.
3. Pupils are introduced to Haggis and the key differences between it and the language they've learned,
shortly before the exam. We can provide these key differences for major languages.
Crucially – pupils NEVER need to write Haggis in exams, only ever read and explain it. For writing, they should use the language they're most comfortable with.


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

Μερικές ακόμα φράσεις από το ίδιο άρθρο από έναν απο τους δημιουργούς (υπενθυμίζω) της ψευδογλώσσας Haggis που έχουνε μεγάλη σημασία :

Being able to explain code expressed in formal languages is a fundamental CS skill – now rightly a major learning objective. We need therefore to assess, under exam conditions, whether students have developed it.
Using traditional informally-defined pseudocode for this assessment, as was done in the past, is insufficient.

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

We, the experts, know most likely how to interpret the ambiguous pseudocode, but we must not place such an intolerable load onto a candidate.
Δηλαδή δεν είναι δυνατόν να ζητάμε από τα παιδιά να γράψουν σε ψευδογλώσσα!!!

Instead, we need a formally defined language, whose meaning the students can have learned thoroughly.
Χμμ,  formally defined language, δεν μου ακούγεται για πολύ ψεύδο-γλώσσα αυτό

Hence Haggis – a formal reference language. It isn't a pseudocode as it has a precise definition.

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

Μα τι είναι τελικά αυτή η Haggis? Ας δούμε ένα παράδειγμα. Το παρακάτω πρόγραμμα διαβάζει δυο αριθμούς και εμφανίζει το άθροισμα τους. (Ελπίζω να το έχω σωστά γιατί τώρα μαθαίνω Haggis :D)

RECEIVE a FROM KEYBOARD
RECEIVE b FROM KEYBOARD
SET sum TO a + b
SEND sum TO DISPLAY


Για όποιον θέλει να δει περισσότερα για το τι είναι αυτή η Haggis παραθέτω το παρακάτω έγγραφο
http://www.sqa.org.uk/files_ccc/ComputingScience_Psuedo_SQPN5.pdf

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

Παρόλα αυτά όμως, τελικά οι Σκωτσέζοι κάτι δεν ξέρουν; κάτι ξέρουν, δε νομίζετε;
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

P.Tsiotakis

Οπότε στο βαθμολογικό κέντρο υπάρχει ένας γκουρού κάθε γλώσσας, έτσι; και μοιράζονται πακέτα ή ανά γραπτό;

petrosp13

Παράθεση από: evry στις 22 Νοε 2014, 03:23:53 ΜΜ

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

Μα τι είναι τελικά αυτή η Haggis? Ας δούμε ένα παράδειγμα. Το παρακάτω πρόγραμμα διαβάζει δυο αριθμούς και εμφανίζει το άθροισμα τους. (Ελπίζω να το έχω σωστά γιατί τώρα μαθαίνω Haggis :D)

RECEIVE a FROM KEYBOARD
RECEIVE b FROM KEYBOARD
SET sum TO a + b
SEND sum TO DISPLAY



Διάβασε a
Διάβασε b
sum <-- a + b
Εμφάνισε sum

Ποια η διαφορά;

Γίνεται πλουσιότερος ο μαθητής αν γράψει αυτές τις εντολές σε Pascal, Python, Java, C ή οποιαδήποτε άλλη γλώσσα;
Δεν θέλουμε να διδάξουμε τι σημαίνει μεταβλητή;
Δεν θέλουμε να διδάξουμε τι σημαίνει είσοδος από το πληκτρολόγιο;
Δεν θέλουμε να διδάξουμε τι σημαίνει εντολή εκχώρησης τιμής σε μεταβλητή;
Δεν θέλουμε να διδάξουμε τι σημαίνει έξοδος προς κάποιο μέσο;

Απαιτείται κάποιος να μάθει την συντακτική λεπτομέρεια της εντολής εκχώρησης τιμής κάθε γλώσσας;

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

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

itt

Παράθεση από: petrosp13 στις 22 Νοε 2014, 05:29:13 ΜΜ
Διάβασε a
Διάβασε b
sum <-- a + b
Εμφάνισε sum

Ποια η διαφορά;

Γίνεται πλουσιότερος ο μαθητής αν γράψει αυτές τις εντολές σε Pascal, Python, Java, C ή οποιαδήποτε άλλη γλώσσα;
Δεν θέλουμε να διδάξουμε τι σημαίνει μεταβλητή;
Δεν θέλουμε να διδάξουμε τι σημαίνει είσοδος από το πληκτρολόγιο;
Δεν θέλουμε να διδάξουμε τι σημαίνει εντολή εκχώρησης τιμής σε μεταβλητή;
Δεν θέλουμε να διδάξουμε τι σημαίνει έξοδος προς κάποιο μέσο;

Απαιτείται κάποιος να μάθει την συντακτική λεπτομέρεια της εντολής εκχώρησης τιμής κάθε γλώσσας;

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

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

Μάλλον κάτι μου διέφυγε. Αφού δεν βλέπεις διαφορά μεταξύ ψευδογλώσσας και πχ, python που ακριβώς είναι το πρόβλημα με την διδασκαλία της δεύτερης;

sstergou

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

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

bugman

#90
Αν θέλετε να επεκταθεί η ΓΛΩΣΣΑ με στοιχεία OOP μπορείτε να πάρετε μια ιδέα από την Μ2000 (έτσι και αλλιώς είναι ανοικτού κώδικα και μπορεί κανείς να διαβάσει πως δουλεύουν τα αντικείμενα - ομάδες όπως τα ονομάζω).
Πρόσφατα ανακάλυψα ένα πολύ ωραίο κείμενο από εδώ http://eventdrivenpgm.sourceforge.net/ που δίνει αρκετές ιδέες και έχει παραδείγματα σε java και python.  Εγώ πήρα μια γεύση και έφτιαξα το παρακάτω (βάζω την περιγραφή).

ΠαράθεσηΜε πολύ λίγα λόγια, έχουμε δυο υπηρεσίες, όπου βλέπει η μία το πλήκτρο του ποντικιού, η υπηρεσία δείκτη και μια άλλη που βλέπει ένα συγκεκριμένο πλήκτρο στο πληκτρολόγιο. Υπάρχει ένας Χειριστής Γεγονότων τον οποίο αρχικά χρησιμοποιούμε για να φτιάξουμε τρία υποκείμενα πλήκτρα, ως στοιχεία ελέγχου, και τα ονομάζουμε β1, β2, β3. Φτιάχνουμε τρεις υπηρεσίες, δυο για τα πλήκτρα 1 και 2,  καθώς και μια για το αριστερό πλήκτρο του ποντικού. Καταχωρούμε στο Χειριστή Γεγονότων την κάθε υπηρεσία στη λίστα γεγονότων. Επίσης καταχωρούμε ποια υπηρεσία συνδέεται με ποιο υποκείμενο (ή στοιχείο ελέγχου). Μάλιστα εδώ έχουμε καταχωρήσει το πλήκτρο 1 του πληκτρολογίου στα β1 και β2. Μετά από το στήσιμο αυτό πάμε σε ένα βρόχο όπου κάθε 150 ms προβαίνει σε παρατήρηση, δηλαδή στην παρακολούθηση των υπηρεσιών. Αν κάποια υπηρεσία επιβεβαιωθεί, τότε καλούμε το αντίστοιχο βν (1 ή 2 ή 3) και ειδικότερα την συνάρτηση Κάλεσε_Πίσω η οποία καλεί από το στοιχείο ελέγχου τον Χειριστή Γεγονότων με την συνάρτηση Ερώτημα παρέχοντάς του την αναφορά σε αυτόν, ώστε τελικά ο Χειριστής να δει ποιος είναι, να διαβάσει την ονομασία του και να μας την δείξει στην οθόνη. Με το δεξί πλήκτρο του ποντικού τερματίζουμε το βρόχο και το πρόγραμμα.

Το κείμενο με το πρόγραμμα με ελληνικές εντολές στην Μ2000 είναι εδώ

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