Τετάρτη, 26 Ιουνίου 2013

Τα τμήματα ΑΕΙ και ΤΕΙ Πληροφορικής στο μηχανογραφικό δελτίο του 2013

Στο μηχανογραφικό δελτίο του 2013 υπάρχουν συνολικά 38 τμήματα που σχετίζονται με την επιστήμη της Πληροφορικής. Από αυτά τα 23 τμήματα είναι ΑΕΙ και τα υπόλοιπα 15 είναι ΤΕΙ. 


Στα τμήματα των ΑΕΙ δεν παρατηρήθηκαν μεγάλες αλλαγές αφού θα υπάρχει ένα μόνο καινούργιο τμήμα στο Πανεπιστήμιο Θεσσαλίας με έδρα τη Λαμία. Συνολικά στα τμήματα των ΑΕΙ θα εισαχθούν 3615 μαθητές. Αντίθετα στα τμήματα των ΤΕΙ έγιναν πάρα πολλές αλλαγές αφού υπήρξαν αρκετές καταργήσεις και συγχωνεύσεις τμημάτων. Μία σημαντική αλλαγή είναι ότι τα περισσότερα πλέον θα φέρουν την ονομασία Μηχανικών Πληροφορικής ΤΕ. Συνολικά στα τμήματα των ΤΕΙ θα εισαχθούν 1890 μαθητές.

Στη συνέχεια μπορείτε να δείτε ένα αρχείο που περιέχει τα 38 τμήματα Πληροφορικής που υπάρχουν στο μηχανογραφικό δελτίο του 2013. Στα τμήματα των ΑΕΙ θα βρείτε τον αριθμό των εισακτέων για το έτος 2013 και τις βάσεις των ετών 2012 και 2011. Στα τμήματα των ΤΕΙ υπάρχει και πάλι ο αριθμός των εισακτέων αλλά δεν ενσωματώθηκαν οι βάσεις λόγω των μεγάλων αλλαγών που έγιναν. Τέλος τα τμήματα ΑΕΙ έχουν ταξινομηθεί με κριτήριο τη βάση της κάθε σχολής το 2012.


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

Πέμπτη, 20 Ιουνίου 2013

Στατιστικά χρήσης του Διαδικτύου [Infographic]

Ένα πολύ ενδιαφέρον infographic για τη χρήση του Διαδικτύου δημιούργησε το Μάιο του 2013 η εταιρεία HostGator. Αρχικά αναφέρει ότι το 37,3% του παγκόσμιου πληθυσμού χρησιμοποιεί το Διαδίκτυο. Από αυτούς το 70% το χρησιμοποιεί σε καθημερινή βάση. Τα ποσοστά χρήσης ωστόσο διαφέρουν από ήπειρο σε ήπειρο με τη Βόρεια Αμερική να κρατάει τα πρωτεία (78,6%) και την Αφρική να υστερεί σημαντικά (15,6%) . Η Ευρώπη βρίσκεται στην τρίτη θέση με ποσοστό 63,2%.


Η γλώσσα που χρησιμοποιείται περισσότερο είναι η Αγγλική (536,6 εκατομμύρια χρήστες) αλλά κατά πόδας ακολουθεί η Κινεζική (444,9 εκατομμύρια χρήστες). Την πεντάδα των πιο δημοφιλών γλωσσών συμπληρώνουν η Ισπανική, η Ιαπωνική και η Πορτογαλική. Όσον αφορά τους φυλλομετρητές κυρίαρχος είναι πλέον ο Google Chrome (37,1%) και ακολουθούν ο Internet Explorer (29,8%) και ο Firefox (21,3%).

Σημαντικό είναι το γεγονός ότι όλο και περισσότεροι χρήστες χρησιμοποιούν τα κινητά τους για να μπουν στο Internet. Επίσης 139,344 νέες ιστοσελίδες δημιουργούνται καθημερινά ενώ η Google συνεχίζει να είναι η κυρίαρχη μηχανή αναζήτησης (88%). Όσον αφορά τους χρήστες σελίδων κοινωνικής δικτύωσης είναι εντυπωσιακό το γεγονός ότι σπαταλούν κατά μέσο όρο 3,2 ώρες ημερησίως στις σελίδες αυτές. Η πιο δημοφιλής σελίδα κοινωνικής δικτύωσης είναι φυσικά το Facebook και ακολουθείται από το YouTube, το Twitter, το Google+, το LinkedIn, το Tumblr, το Instagram, το Reddit και το Pinterest.

Δείτε όλα τα παραπάνω στατιστικά αλλά και πολλά άλλα στο παρακάτω infographic.

A day in the life of the Internet

Πηγή: A Day in The Life of The Internet via HostGator

Κυριακή, 16 Ιουνίου 2013

Η ιστορία των γλωσσών προγραμματισμού [Infographic]

Οι γλώσσες προγραμματισμού είναι τεχνητές γλώσσες που επιτρέπουν στους χρήστες να γράψουν προγράμματα που υλοποιούν συγκεκριμένους αλγορίθμους. Η ιστορία τους ξεκινά το 1843 όταν η Άντα Λάβλεϊς, σχολιάζοντας μία διάλεξη του Τσαρλς Μπάμπατζ για την αναλυτική μηχανή του, αναφέρει ότι μία τέτοια μηχανή θα μπορούσε στο μέλλον εκτός από μαθηματικά προβλήματα να συνθέτει πολύπλοκη μουσική και να παράγει γραφικά. Μάλιστα στο άρθρο της περιλαμβάνει και ένα "σχέδιο" σχετικά με το πώς η Αναλυτική Μηχανή θα μπορούσε να υπολογίζει αριθμούς Μπερνούλι (Bernoulli numbers). Αυτό ακριβώς το "σχέδιο" θεωρείται από τους ιστορικούς το πρώτο πρόγραμμα υπολογιστή.


Στις σύγχρονες γλώσσες προγρμματισμού φαίνεται ότι κυριαρχούν κατά σειρά οι γλώσσες Java, C, Objective-C, C++, C#, PHP, Visual Basic, Python, Ruby και Perl. Τα στοιχεία αυτά παρουσιάζονται στο παρακάτω infographic όπου επιπλέον γίνεται αναφορά στην ιστορία των γλωσσών προγραμματισμού. Μάλιστα για κάθε γλώσσα αναφέρεται ο δημιουργός της, σε ποιες εφαρμογές χρησιμοποιείται αλλά και από ποιες μεγάλες εταιρείες έχει χρησιμοποιηθεί για την υλοποίηση των προγραμμάτων της.


Πηγή: Veracode Application Security

Παρασκευή, 14 Ιουνίου 2013

FunForFuns: Μία ιστοσελίδα με μπλε ιστορίες, ανέκδοτα, σπαζοκεφαλιές ...

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


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

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

Τετάρτη, 12 Ιουνίου 2013

Scratch: Θέματα τελικών εξετάσεων 2013

Στα πλαίσια του μαθήματος Πληροφορικής που διδάσκω στη Γ' Γυμνασίου χρησιμοποίησα, για πρώτη φορά φέτος (σχολικό έτος 2012-2013), το προγραμματιστικό περιβάλλον του Scratch. Στη συνέχεια μπορείτε να δείτε τα θέματα που έβαλα στις εξετάσεις της εξεταστικής περιόδου Μαΐου - Ιουνίου.


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

Τα τελευταία 3 θέματα αφορούσαν την υλοποίηση προγραμμάτων. Το θέμα 7 αφορούσε το σχεδιασμό του γράμματος Τ στο οποίο όμως η γάτα έπρεπε να ξεκινάει από διαφορετικό σημείο το σχεδιασμό. Το θέμα 8 αφορούσε την υλοποίηση ενός παιχνιδιού στο οποίο ένας δύτης έπρεπε να κινείται με τα πλήκτρα και να ελέγχεται η επαφή του με ένα κλειδί. Το θέμα 9 αφορούσε την υλοποίηση ενός παιχνιδιού με αριθμούς στο οποίο ήταν απαραίτητη η χρήση λογικών τελεστών. Και τα τρία προγράμματα υλοποιήθηκαν σε πολύ μεγάλο βαθμό από τους περισσότερους μαθητές αν και το τελευταίο το επέλεξαν πολύ λίγοι.  



Κυριακή, 9 Ιουνίου 2013

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


Η υλοποίηση του προγράμματος απαιτεί την ολοκλήρωση 12 αποστολών. Οι αποστολές αυτές έχουν ως βασικό τους στόχο την επίλυση συγκεκριμένων προβλημάτων που σχετίζονται με το μπλακ-τζακ όπως π.χ. είναι το ποντάρισμα, ο διπλασιασμός του πονταρίσματος, η τεχνική του card counting και ο χειρισμός του άσου πότε ως μονάδα και πότε ως έντεκα. Η υλοποίηση όμως αυτών των στόχων συνδέεται ταυτόχρονα και με την υλοποίηση στόχων που αφορούν τη διδασκαλία διαφόρων εννοιών του προγραμματισμού όπως π.χ. είναι η δομή επιλογής, η δομή επανάληψης, οι μεταβλητές, οι πίνακες και οι διαδικασίες. Ας σημειωθεί ότι ο χρήστης μπορεί να χρησιμοποιήσει την εφαρμογή χωρίς να δημιουργήσει ένα λογαριασμό. Ωστόσο αν θέλει να αποθηκεύεται τόσο ο κώδικας που γράφει όσο και η ολοκλήρωση των αποστολών θα πρέπει να δημιουργήσει ένα λογαριασμό στην ιστοσελίδα. 

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

Παρασκευή, 7 Ιουνίου 2013

Εργασίες Μαθητών Γ' Γυμνασίου στο Scratch για το σχολικό έτος 2012-2013

Στο μάθημα της Πληροφορικής στη Γ' Γυμνασίου κατά το σχολικό έτος 2012-2013 χρησιμοποιήθηκε το προγραμματιστικό περιβάλλον του Scratch. Οι μαθητές, κατά τη διάρκεια της σχολικής χρονιάς, ασχολήθηκαν με τις εξής ενότητες: εντολές της παλέτας Κίνηση, εντολές της παλέτας Όψεις, εντολές της παλέτας Πένα, Δομή επιλογής, Ανταλλαγή μηνυμάτων, Δομή επανάληψης και Μεταβλητές.


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

Παιχνίδι : Arkanoid
Μαθήτριες : Άρτεμις, Παναγιώτα



Παιχνίδι : Μαζεύοντας φρούτα
Μαθήτριες : Άντζελα, Εσμεράλντα



Παιχνίδι : Περνώντας το δρόμο
Μαθήτριες : Αθανασία, Κατερίνα


Παιχνίδι : Παρκάρισμα αυτοκινήτου
Μαθήτριες : Κατερίνα, Ρούλα


Παιχνίδι : Καλάθι με φρούτα
Μαθήτριες : Ελένη, Μαρία


Παιχνίδι : Scrolling Game
Μαθητές : Χρήστος, Γιώργος


Παιχνίδι : Pong Game
Μαθητής : Δημήτρης


Πέμπτη, 6 Ιουνίου 2013

LogicBox: Ένα puzzle-game για την εκμάθηση προγραμματιστικών εννοιών

Το Jahooma's LogicBox είναι ένα από τα καλύτερα puzzle-games που σχετίζονται με τον προγραμματισμό. Σκοπός του παιχνιδιού είναι ο χρήστης, ακολουθώντας τις οδηγίες που του δίνονται σε κάθε πίστα, να τοποθετήσει κατάλληλα τα διαθέσιμα κουτιά μέσα στο πλέγμα ώστε για κάθε είσοδο χαρακτήρων που δίνεται να παράγεται η επιθυμητή έξοδος. Εκτός όμως από την επιθυμητή έξοδο θα πρέπει η ολοκλήρωση της πίστας να γίνεται και προς τη σωστή κατεύθυνση.

Σχήμα 1: Το όγδοο επίπεδο του παιχνιδιού

Ας πάρουμε όμως τα πράγματα από την αρχή. Στο παραπάνω σχήμα βλέπετε ένα στιγμιότυπο από το όγδοο επίπεδο του παιχνιδιού. Αριστερά υπάρχει ένα πίνακας μίας στήλης στον οποίο υπάρχουν τα κουτιά που μπορούν να χρησιμοποιηθούν. Θα μπορούσε να πει κάποιος ότι τα  κουτιά αυτά αντιπροσωπεύουν τις διαθέσιμες εντολές (αξίζει να σημειωθεί βέβαια ότι οι διαθέσιμες εντολές διαφέρουν από πίστα σε πίστα). Για να ολοκληρώσει ο χρήστης μία πίστα καλείται να τοποθετήσει κατάλληλα τα κουτιά, με drag and drop, μέσα στο πλέγμα 6Χ6 ώστε να επιτευχθεί ο σκοπός του παιχνιδιού που αναγράφεται ακριβώς πάνω από το πλέγμα. 

Μέσα στο πλέγμα τώρα υπάρχει ένας μαύρος κύκλος ο οποίος υποδηλώνει το σημείο εκκίνησης του προγράμματος. Ο κύκλος αυτός δεν έχει καμία επίπτωση στα δεδομένα εισόδου ενώ τα οδηγεί και προς τα πάνω (αυτό καθορίζεται από την κατεύθυνση του βέλους). Δεξιά τώρα υπάρχουν τα δεδομένα εισόδου και οι επιθυμητές έξοδοι. Παρατηρήστε ότι υπάρχουν στη συγκεκριμένη πίστα 5 διαφορετικές είσοδοι (empty, abc, a, abbccd, jahooma). Για κάθε είσοδο θα πρέπει να παραχθεί αντίστοιχη έξοδος (π.χ. αν η είσοδος είναι abc θα πρέπει να παραχθεί έξοδος a). Η έξοδος αυτή έχει επίσης ένα κόκκινο βέλος, κάτι που υποδηλώνει ότι θα πρέπει η έξοδος να γίνει από το κάτω μέρος του πλέγματος (που αντιστοιχεί στο κόκκινο χρώμα).

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

 Σχήμα 2: Το μενού του παιχνιδιού

Στο μενού θα βρείτε 19 πίστες. Από αυτές η πρώτη είναι ένα μικρό tutorial με το οποίο θα μάθετε να παίζετε το παιχνίδι ενώ υπάρχουν ακόμα 13 κανονικές πίστες και 5 πίστες - προκλήσεις (challenges). Σε κάθε μία από τις παραπάνω πίστες βαθμολογήστε για δύο πράγματα: τον αριθμό των κουτιών που χρησιμοποιήσατε και τον αριθμό των βημάτων που απαιτήθηκαν για την εκτέλεση του προγράμματος. Στο σχήμα 2 φαίνεται ότι για την 4η πίστα χρησιμοποίησα 2 κουτιά (που ήταν η βέλτιστη λύση) και τα βήματα εκτελέσης ήταν 32 (που ήταν επίσης η βέλτιστη λύση).

Στο σχήμα 2 μπορείτε πάνω δεξιά να δείτε ότι υπάρχει ένας πράσινος σταυρός, ο οποίος υποδηλώνει ότι η ολοκήρωση αυτής της πίστας δημιουργεί μία νέα εντολή την οποία θα χρειαστείτε στη συνέχεια. Επίσης υπάρχει μία ασπίδα που υποδηλώνει ότι έχετε πετύχει το καλύτερο σκορ. Εγώ π.χ. στις πίστες 1-4 έχω πετύχει το καλύτερο σκορ, κάτι όμως που δεν πέτυχα στις πίστες 5 και 7.

Ο καλύτερος όμως τρόπος για να μάθετε το παιχνίδι είναι να το παίξετε. Εύχομαι να διασκεδάσετε.

Τετάρτη, 5 Ιουνίου 2013

Η καινούργια έκδοση Scratch 2.0 [Video]

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


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

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

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

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

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



Τρίτη, 4 Ιουνίου 2013

Τι είναι ο προστακτικός (imperative) προγραμματισμός;

Ο προστακτικός προγραμματισμός (imperative programming) είναι ένα προγραμματιστικό υπόδειγμα (programming paradigm) στο οποίο τα προγράμματα αποτελούνται από μία αρχική κατάσταση και από εντολές που αλλάζουν αυτή την κατάσταση (Weisskopf, 2012). Αυτό μπορεί να γίνει αντιληπτό και από την ίδια τη λέξη "προστακτικός", η οποία σημαίνει ότι προστάζουμε, δίνουμε δηλαδή εντολές στον υπολογιστή και αυτός στη συνέχεια υπακούει και τις εκτελεί.Θα μπορούσε επομένως να ειπωθεί ότι το προγραμματιστικό αυτό υπόδειγμα είναι το εξής (Nørmarks, 2010):

Πρώτα κάνε αυτό. Μετά κάνε εκείνο.

Στους περισσότερους προγραμματιστές είναι βέβαια αυτονόητο ότι η σειρά εκτέλεσης των εντολών παίζει σημαντικό ρόλο όπως επίσης είναι προφανές ότι υπάρχουν μεταβλητές των οποίων οι τιμές μεταβάλλονται. Ωστόσο υπάρχουν και πολλές άλλες γλώσσες προγραμματισμού στις οποίες τα παραπάνω δεν έχουν κανένα απολύτως νόημα (Webber, 2005). Ένα τέτοιο παράδειγμα είναι η γλώσσα Prolog.

Σχήμα 1: Σχέσεις μεταξύ κάποιων προστακτικών γλωσσών (Πηγή: Wikipedia)

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

Άλλα χαρακτηριστικά των προστακτικών γλωσσών είναι τα εξής (Nørmarks, 2010):
  • Αντιστοίχηση με τον τρόπο λειτουργίας μίας μηχανής Von-Neumann.
  • Έλεγχος της σειράς εκτέλεσης των εντολών με τη χρήση δομών ελέγχου.
  • Η αλλαγή της κατάστασης του προγράμματος είναι συνάρτηση του χρόνου. 

Η Weisskopf (2012) αναφέρει επίσης ότι μία προστακτική γλώσσα προγραμματισμού είναι Turing complete αν υποστηρίζει ακεραίους, βασικούς αριθμητικούς τελεστές, τιμοδότηση, ακολουθιακή εκτέλεση εντολών, δομή επανάληψης και δομή επιλογής.  


Παραδείγματα προστακτικών γλωσών
Το προγραμματιστικό αυτό υπόδειγμα ακολουθούν οι περισσότερες σύγχρονες γλώσσες προγραμματισμού που χρησιμοποιούν οι επαγγελματίες προγραμματιστές όπως π.χ. οι C, C++, Java, Python, Pascal και πολλές άλλες.

Πηγές
Nørmarks, K. (2010). Overview of the four main programming paradigms. Διαθέσιμο στο δικτυακό τόπο http://people.cs.aau.dk/~normark/prog3-03/html/notes/paradigms_themes-paradigm-overview-section.html.
Webber, A. (2005). Σύγχρονες γλώσσες προγραμματισμού. Ηράκλειο: Πανεπιστημιακές εκδόσεις Κρήτης.
Weisskopf, A. (2012). Imperative Programming - Chapter 12. Διαθέσιμο στο δικτυακό τόπο http://www.cs.uah.edu/~weisskop/Notes424-524/ch12.ppt.

Κυριακή, 2 Ιουνίου 2013

Διδάσκοντας μαθητές Δημοτικού να προγραμματίζουν [Video]

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

Βασιζόμενες στην παραπάνω ιδέα του Resnick η Clare Sutcliffe και η Linda Sandvik ξεκίνησαν τη δημιουργία του δικτύου Code Club στην Αγγλία τον Απρίλιο του 2012. Το εθνικό αυτό δίκτυο υποστηρίζεται από εθελοντές προγραμματιστές οι οποίοι διδάσκουν μαθητές Δημοτικού, ηλικίας 9 έως 11, να προγραμματίζουν σε κλαμπ που λειτουργούν μετά το σχολείο.


Σε κάθε κλαμπ συμμετέχουν 15 μαθητές και αυτή τη στιγμή υπάρχουν 788 σε όλη την Αγγλία. Τα μαθήματα περιλαμβάνουν τη διδασκαλία του Scratch τόσο σε αρχικό όσο και σε προχωρημένο επίπεδο ενώ υπάρχει η προοπτική σε επόμενο στάδιο να διδάσκονται οι μαθητές HTML και CSS αλλά και Python.

Δείτε στη συνέχεια και μία ομιλία της Clare Sutcliffe στο Tedx Brighton για αυτή την πρωτοβουλία αλλά και για τους λόγους που πρέπει ένας μαθητής να μάθει να προγραμματίζει από μικρή ηλικία.