Τι είναι πρόγραμμα και αλγόριθμος

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

Τι είναι αλγόριθμος

Ελληνικός καφές στο μπρίκι. Βάζεις νερό, ρίχνεις καφέ και ζάχαρη, το βάζεις στη φωτιά και περιμένεις. Όταν φουσκώσει, το σερβίρεις. Αν δεν έχει φουσκώσει ακόμα, συνεχίζεις να το ζεσταίνεις και ξανακοιτάς.
Αν το ζωγραφίσεις βήμα βήμα, βγαίνει ένα διάγραμμα ροής:
Ο ελληνικός καφές ως αλγόριθμος Διάγραμμα ροής: Αρχή, νερό στο μπρίκι, καφές και ζάχαρη, ζέστανε. Ερώτηση: φούσκωσε; Αν ναι, σέρβιρε και τέλος. Αν όχι, γύρνα στο ζέστανε και ρώτα ξανά. Ναι Όχι Αρχή Νερό στο μπρίκι Καφές και ζάχαρη Ζέστανε Φούσκωσε; Σέρβιρε Τέλος
Μια περιγραφή σαν αυτή, με βήματα σε σαφή σειρά και ερωτήσεις που έχουν πάντα απάντηση ναι ή όχι, λέγεται αλγόριθμος. Η λέξη ακούγεται βαριά, αλλά αλγόριθμοι υπήρχαν πολύ πριν από τους υπολογιστές: η διαίρεση που έμαθες στο δημοτικό είναι αλγόριθμος.
Πρόσεξε τι είδη βημάτων έχει το διάγραμμα. Κάποια γίνονται το ένα μετά το άλλο. Η ερώτηση διαλέγει πού πας μετά. Το βέλος που γυρίζει πίσω σημαίνει ότι κάτι επαναλαμβάνεται μέχρι να ισχύσει μια συνθήκη. Αυτά τα τρία σου φτάνουν για να γράψεις σχεδόν οποιοδήποτε πρόγραμμα: σειρά, απόφαση, επανάληψη. Στο σχολικό βιβλίο της Πληροφορικής θα τα βρεις ως δομή ακολουθίας, δομή επιλογής και δομή επανάληψης.
Και το πρόγραμμα; Είναι ένας αλγόριθμος γραμμένος σε μια γλώσσα που ο υπολογιστής μπορεί να εκτελέσει.

Ο υπολογιστής δε συμπληρώνει κενά

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

Από το κείμενο στην οθόνη

Για να δώσεις οδηγίες σε υπολογιστή, τις γράφεις σε μια γλώσσα προγραμματισμού. Μοιάζει λίγο με αγγλικά, αλλά έχει αυστηρούς κανόνες, ώστε κάθε γραμμή να έχει ακριβώς μία ερμηνεία. Αυτό που γράφεις λέγεται κώδικας.
Εδώ θα γράφεις σε Python. Η λέξη σημαίνει δύο πράγματα μαζί: τη γλώσσα και το πρόγραμμα που εκτελεί τον κώδικά σου. Εσύ γράφεις, η Python εκτελεί μία γραμμή τη φορά, εσύ βλέπεις το αποτέλεσμα.
Από τον κώδικα στην οθόνη Εσύ γράφεις κώδικα, δύο γραμμές print. Η Python τον εκτελεί μία γραμμή τη φορά. Στην οθόνη βλέπεις Γεια και μετά Τέλος. ΓΡΑΦΕΙΣ ΕΚΤΕΛΕΙ Η PYTHON ΒΛΕΠΕΙΣ Ο κώδικας print("Γεια") print("Τέλος") Python εκτελεί μία γραμμή τη φορά Οθόνη Γεια Τέλος
Η οδηγία που θα χρησιμοποιείς συνέχεια εδώ είναι το print: ό,τι βάλεις μέσα στις παρενθέσεις και στα εισαγωγικά, το γράφει στην οθόνη.
Δες τρεις γραμμές που περιγράφουν τον καφέ. Πριν προχωρήσεις, απάντησε στην ερώτηση.
Πρόβλεψε
print("Βάλε νερό στο μπρίκι")
print("Σέρβιρε στο φλιτζάνι")
print("Ζέστανε μέχρι να φουσκώσει")

Τι θα εμφανιστεί στην οθόνη;

Διάλεξε μία

Προχώρα τις ίδιες τρεις γραμμές βήμα βήμα και κοίτα πότε εμφανίζεται το κάθε μήνυμα.
Βήμα προς βήμα
Βήμα 1 από 3
print("Βάλε νερό στο μπρίκι")
print("Σέρβιρε στο φλιτζάνι")
print("Ζέστανε μέχρι να φουσκώσει")
Μεταβλητές

Καμία μεταβλητή ακόμα.

Η Python ξεκινάει από την πρώτη γραμμή. Στην οθόνη εμφανίζεται: Βάλε νερό στο μπρίκι.

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

Δοκίμασε να γράψεις έναν αλγόριθμο

Το δύσκολο είναι να περιγράψεις με βήματα κάτι που κάνεις χωρίς να το σκέφτεσαι.
Γράψε τα βήματα για να βγάλεις εισιτήριο από το μηχάνημα του μετρό, ένα print για κάθε βήμα. Η πρώτη γραμμή είναι έτοιμη. Όταν τελειώσεις, διάβασέ τα σαν να μην έχεις δει ποτέ μηχάνημα: υπάρχει βήμα που το θεώρησες αυτονόητο και δεν το έγραψες;
python
Οι περισσότεροι ξεχνούν να διαλέξουν είδος εισιτηρίου ή να περιμένουν να τυπωθεί πριν φύγουν από το μηχάνημα.

Γιατί Python

Κάθε αρχάριος περνάει μέρες ψάχνοντας με ποια γλώσσα να ξεκινήσει. Οι ιδέες όμως είναι ίδιες παντού. Η γραμμή που τυπώνει κάτι στην οθόνη είναι print("Γεια") στην Python και console.log("Γεια") στη JavaScript. Αλλάζει ο τρόπος γραφής, ενώ η σειρά, οι αποφάσεις και οι επαναλήψεις μένουν ίδιες.
Η Python είναι εδώ, επειδή έχει λίγα σύμβολα που δε σημαίνουν τίποτα για έναν αρχάριο. Διαβάζεται σχεδόν σαν κείμενο, οπότε η προσοχή σου μένει στον αλγόριθμο. Όταν κάποτε μάθεις δεύτερη γλώσσα, θα σου πάρει συνήθως λίγες εβδομάδες, γιατί θα μαθαίνεις μόνο καινούργιο τρόπο γραφής.

Χρειάζονται μαθηματικά;

Όχι περισσότερα από όσα χρειάζεσαι για να ελέγξεις έναν λογαριασμό της ΔΕΗ. Τα περισσότερα προγράμματα δεν κάνουν πράξεις πιο δύσκολες από όσες θα έκανες με το κομπιουτεράκι του κινητού. Ένα e-shop, για παράδειγμα, ελέγχει αν ο κωδικός σου είναι σωστός και σου στέλνει email όταν γίνει η παραγγελία.
Χρειάζεσαι ακρίβεια και σωστή σειρά, όπως στον καφέ. Υπάρχουν τομείς που ζητούν περισσότερα μαθηματικά, όπως τα γραφικά παιχνιδιών ή η ανάλυση δεδομένων, αλλά εκεί φτάνεις αργότερα και μόνο αν το διαλέξεις.

Και αν τον κώδικα τον γράφει το AI;

Ένα εργαλείο AI θα σου γράψει τις γραμμές του καφέ σε δύο δευτερόλεπτα, και τις περισσότερες φορές σωστά. Το πρόβλημα είναι οι υπόλοιπες. Όταν κάνει λάθος, συνήθως δεν παίρνεις μήνυμα σφάλματος: το πρόγραμμα τρέχει και σερβίρει κρύο νερό. Αν δεν μπορείς να διαβάσεις τα βήματα και να πεις «εδώ λείπει κάτι», δύσκολα θα το καταλάβεις. Γι' αυτό μαθαίνεις να διαβάζεις κώδικα ακόμα κι αν σκοπεύεις να τον γράφει κάποιος άλλος για σένα.

Το ίδιο σε ψευδοκώδικα

Στο σχολείο γράφεις αλγορίθμους και σε ψευδοκώδικα: βήματα με αυστηρή μορφή, όπως σε γλώσσα προγραμματισμού, αλλά με ελληνικές λέξεις, για να τα διαβάσει άνθρωπος στο τετράδιο ή σε ένα διαγώνισμα. Το σχολικό βιβλίο της Πληροφορικής της Γ' Λυκείου χρησιμοποιεί τη ΓΛΩΣΣΑ. Οι τρεις γραμμές του καφέ, με την ίδια λάθος σειρά:
ΓΛΩΣΣΑ
ΠΡΟΓΡΑΜΜΑ ΚΑΦΕΣ
ΑΡΧΗ
  ΓΡΑΨΕ 'Βάλε νερό στο μπρίκι'
  ΓΡΑΨΕ 'Σέρβιρε στο φλιτζάνι'
  ΓΡΑΨΕ 'Ζέστανε μέχρι να φουσκώσει'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Το ΓΡΑΨΕ κάνει περίπου ό,τι το print. Το κείμενο μπαίνει σε απλά εισαγωγικά '...'. Η ΓΛΩΣΣΑ θέλει επιπλέον ένα όνομα για το πρόγραμμα και τις εντολές ανάμεσα στο ΑΡΧΗ και στο ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ. Ο κανόνας της σειράς μένει ίδιος, οπότε και εδώ ο καφές σερβίρεται κρύος.

Σύνοψη

  • Πρόγραμμα είναι μια σειρά από οδηγίες που ο υπολογιστής εκτελεί με τη σειρά και κατά γράμμα. Προγραμματισμός είναι να γράφεις αυτές τις οδηγίες.
  • Αλγόριθμος λέγεται η περιγραφή των βημάτων, με σαφή σειρά και ερωτήσεις με απάντηση ναι ή όχι. Γραμμένος σε γλώσσα προγραμματισμού, γίνεται πρόγραμμα.
  • Σειρά, απόφαση και επανάληψη σου φτάνουν για σχεδόν οποιοδήποτε πρόγραμμα. Στο σχολικό βιβλίο λέγονται δομή ακολουθίας, δομή επιλογής και δομή επανάληψης.
  • Στον ψευδοκώδικα το ΓΡΑΨΕ κάνει περίπου ό,τι το print και οι εντολές μπαίνουν ανάμεσα στο ΑΡΧΗ και στο ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ, πάλι με τη σειρά που τις έγραψες.
  • Ο υπολογιστής δε συμπληρώνει κενά. Την ακρίβεια που ένας άνθρωπος βάζει μόνος του πρέπει να τη γράψεις εσύ.
  • Η Python είναι και η γλώσσα και το πρόγραμμα που εκτελεί τον κώδικά σου, μία γραμμή τη φορά. Το print γράφει στην οθόνη ό,τι του δώσεις.
  • Οι ιδέες είναι ίδιες σε κάθε γλώσσα και δε χρειάζονται μαθηματικά πέρα από του σχολείου. Με την ίδια ακρίβεια μπορείς να ελέγξεις και κώδικα που έγραψε ένα AI.

Θες να συνεχίσεις;

Το course είναι δωρεάν. Κάνε σύνδεση για να κρατάς την πρόοδο και τις σημειώσεις σου.