Ζητήματα Προγραμματισμού

Υπολογιστική σκέψη

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

Υπάρχουν 4 βασικές τεχνικές στις οποίες βασίζεται η υπολογιστική σκέψη:

  1. Αποσύνθεση (decomposition): η κατάτμηση ενός περίπλοκου προβλήματος ή συστήματος σε άλλα μικρότερα μέρη ευκολότερα διαχειρίσιμα
  2. Αναγνώριση προτύπων (pattern recognition): εντοπισμός ομοιοτήτων μεταξύ τέτοιων προβλημάτων ή υποπροβλημάτων
  3. Αφαίρεση (abstraction): προσήλωση στην ουσιώδη πληροφορία αγνοώντας περιττές λεπτομέρειες
  4. Αλγόριθμοι (algorithms): ανάπτυξη λύσεων βήμα προς βήμα ή κανόνων για την επίλυση προβλημάτων

Αλγόριθμος

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

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

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

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

ΠΑΡΑΔΕΙΓΜΑ ΑΛΓΟΡΙΘΜΟΥ ΓΙΑ ΜΙΚΡΟΥΣ ΜΑΘΗΤΕΣ

Έστω ότι θέλουμε να μαγειρέψουμε μακαρόνια:

Σε μια κατσαρόλα βάζουμε 1 λίτρο νερό, ρυθμίζουμε το μάτι της κουζίνας στη μέγιστη θερμοκρασία, το νερό βράζει, βάζουμε το αλάτι, προσθέτουμε τα μακαρόνια, περιμένουμε στον βρασμό 12′, σουρώνουμε το περιεχόμενο της κατσαρόλας, θέτουμε βούτυρο στην κατσαρόλα, ρίχνουμε τα μακαρόνια, ανακατεύουμε.

Γιατί το παραπάνω παράδειγμα είναι ένας κλασικός αλγόριθμος;

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

Προγραμματισμός

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

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

Ο Υπολογιστής δεν κατανοεί τις ανθρώπινες γλώσσες: τα ελληνικά, τα αγγλικά… αλλά και οι περισσότεροι από εμάς δεν κατανοούμε την δική του γλώσσα, μια συνεχή σειρά από δυαδικά ψηφία: 10010111010110101… Επομένως, για να επικοινωνήσουμε με τον υπολογιστή χρειαζόμαστε έναν κοινό κώδικα επικοινωνίας· αυτό τον σκοπό επιτελούν οι Γλώσσες Προγραμματισμού και τα Προγραμματιστικά Περιβάλλοντα. Υπάρχουν πολλές Γλώσσες Προγραμματισμού με διαφορετικές δυνατότητες και για διαφορετικές χρήσεις. Ιδιαίτερα για την Πρωτοβάθμια Εκπαίδευση, τα περιβάλλοντα οπτικού προγραμματισμού που προτείνονται είναι τα εξής: EasyLogo, Scratch, ΒΥΟΒ, Kodu, MicroWorldsPro, GameMaker, K-Turtle, TurtleArt, openStarlogo, Blockly.

Οπτικός προγραμματισμός

Το Blockly είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου. Αναπτύχθηκε από την Google και παρουσιάζει τις εντολές σε οπτικά μπλοκ. Αυτά τα μπλοκ μπορούν να συναρμολογηθούν με drag and drop. Αυτό σας επιτρέπει να δημιουργήσετε μια σύνθετη σύνταξη μέσα σε λίγα λεπτά.Το Blockly είναι μια βιβλιοθήκη που παρέχει ένα οπτικό επεξεργαστή κώδικα. Η σύνταξη των προγραμμάτων που δημιουργούνται με αυτόν τον τρόπο παραμένει στο παρασκήνιο.Όποιος εργάζεται με το Blockly μπορεί εύκολα να δημιουργήσει σύνθετες διαδικασίες χωρίς να σκέφτεται τις ακριβείς εντολές των επιμέρους γλωσσών προγραμματισμού.

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

 

Οπτικός προγραμματισμός

Το Blockly είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου. Αναπτύχθηκε από την Google και παρουσιάζει τις εντολές σε οπτικά μπλοκ. Αυτά τα μπλοκ μπορούν να συναρμολογηθούν με drag and drop. Αυτό σας επιτρέπει να δημιουργήσετε μια σύνθετη σύνταξη μέσα σε λίγα λεπτά.Το Blockly είναι μια βιβλιοθήκη που παρέχει ένα οπτικό επεξεργαστή κώδικα. Η σύνταξη των προγραμμάτων που δημιουργούνται με αυτόν τον τρόπο παραμένει στο παρασκήνιο.Όποιος εργάζεται με το Blockly μπορεί εύκολα να δημιουργήσει σύνθετες διαδικασίες χωρίς να σκέφτεται τις ακριβείς εντολές των επιμέρους γλωσσών προγραμματισμού.

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