Εισαγωγή
Το μάθημα γενικής παιδείας του Προγράμματος Σπουδών (ΠΣ) της Γ' Λυκείου των ΕΠΑ.Λ. με τίτλο «Εισαγωγή στις Αρχές της Επιστήμης των Ηλεκτρονικών Υπολογιστών» είναι η φυσική συνέχεια του μαθήματος, που διδάσκεται, με τον ίδιο τίτλο, στην Β' Λυκείου των ΕΠΑ.Λ.
Στην Απόφαση καθορισμού του Προγράμματος Σπουδών της Β' Λυκείου, ΦΕΚ 934 τ.Β'/14-04-2014, αναφέρεται πως σκοπός του μαθήματος είναι να αποκτήσουν οι μαθητές γνώσεις σε τομείς και σε θεμελιώδεις έννοιες που σχετίζονται με την Επιστήμη της Πληροφορικής και να αναπτύξουν την αναλυτική και την συνθετική τους σκέψη. Η προσέγγιση που ακολουθείται, σχετίζεται με θέματα τόσο της θεωρητικής, όσο και της εφαρμοσμένης Επιστήμης των Υπολογιστών.

Ακολουθώντας και συνεχίζοντας την παραπάνω προσέγγιση, τα βασικά θέματα που θα πραγματευτούν οι μαθητές και οι μαθήτριες στο μάθημα είναι:
-  η σχεδίαση και η συγγραφή κώδικα σε γλώσσα προγραμματισμού Python
-  η περιγραφή των όρων μετάφραση (compiling), σύνδεση (linking) και φόρτωση (loading)
-  ο Προγραμματισμός για τη δημιουργία ιστοσελίδων
-  η γνωριμία με τα προσωπικά δίκτυα υπολογιστών PAN και WPAN και με τον όρο netiquette
-  η ασφάλεια των πληροφοριών, τα προσωπικά δεδομένα και οι ψηφιακές υπογραφές
-  η παρουσίαση σύγχρονων εργαλείων επικοινωνίας που μπορούν να χρησιμοποιηθούν και για επαγγελματική χρήση
-  η εισαγωγή τους στην ανάπτυξη έργων γενικά και ειδικά η ανάπτυξη έργων Πληροφορικής

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

Οι συγγραφείς

1. Βασικά στοιχεία της γλώσσας προγραμματισμού Python

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

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

Στόχοι
Στόχοι του κεφαλαίου είναι οι μαθητές να:
-  Έλθουν σε επαφή με το περιβάλλον της γλώσσας Python.
-  Χρησιμοποιούν τις βασικές εντολές της γλώσσας προγραμματισμού Python.
-  Υλοποιούν απλά προγράμματα στη γλώσσα προγραμματισμού Python.
-  Μετατρέπουν έναν αλγόριθμο στη γλώσσα προγραμματισμού Python.
-  Περιγράφουν βασικές αλγοριθμικές δομές όπως: την ακολουθία, την επιλογή, την επανάληψη.
-  Εφαρμόζουν βασικές αλγοριθμικές δομές στη γλώσσα προγραμματισμού Python.
-  Επιλέγουν την κατάλληλη αλγοριθμική δομή ανάλογα με το πρόβλημα.
-  Χρησιμοποιούν ενσωματωμένες συναρτήσεις στη γλώσσα προγραμματισμού Python
-  Ορίζουν τις δικές τους συναρτήσεις στη γλώσσα προγραμματισμού Python.
-  Χρησιμοποιούν τις συναρτήσεις για την επίλυση των προβλημάτων τους
-  Εξοικειωθούν με τη δομή δεδομένων «λίστα» στη γλώσσα προγραμματισμού Python.
-  Δημιουργούν πίνακες με χρήση της δομής δεδομένων «λίστα» σε συνδυασμό με τις συναρτήσεις στη γλώσσα προγραμματισμού Python.

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

Ενότητες Κεφαλαίου
-  Σχεδίαση και συγγραφή κώδικα
-  Δομή ακολουθίας
-  Δομή επιλογής
-  Δομή επανάληψης
-  Συναρτήσεις
-  Λίστες
-  Αναφορές

1.1. Σχεδίαση και συγγραφή κώδικα
Στη Β' Λυκείου, στο μάθημα " Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ ", γνωρίσαμε έννοιες αλγορίθμων και δημιουργήσαμε αλγορίθμους για την επίλυση των προβλημάτων. Σε αυτή την ενότητα μετατρέπουμε τους αλγορίθμους σε προγράμματα, δηλαδή σε μια σειρά οδηγιών προς τον υπολογιστή. Το πρόγραμμα θα είναι γραμμένο σε μια γλώσσα προγραμματισμού υψηλού επιπέδου, την Python (πηγαίος κώδικας-source code).
Οι γλώσσες υψηλού επιπέδου είναι δομημένες με τέτοιο τρόπο (γράμματα, ορθογραφικοί συντακτικοί κανόνες λέξεις, προτάσεις κ.λπ.) που πλησιάζουν την ανθρώπινη σκέψη και το επίπεδο των γλωσσών (Ελληνική, αγγλική κ.λπ.) που χρησιμοποιεί ο άνθρωπος, χωρίς όμως να το φθάνουν. Ο πηγαίος κώδικας δεν είναι κατανοητός από τον υπολογιστή, γιατί αυτός δεν «μιλά» τη γλώσσα Python, αλλά τη γλώσσα που «μιλά» η μηχανή/υπολογιστής, τη λεγόμενη γλώσσα μηχανής. Έτσι, ο πηγαίος κώδικας θα πρέπει να μετατραπεί σε ένα πρόγραμμα γλώσσας μηχανής (αντικείμενος κώδικας-object code). Η γλώσσα μηχανής αποτελείται από λέξεις που περιλαμβάνουν διαδοχικές σειρές μηδέν (0) και ένα (1), π.χ. 01100. Τότε και μόνον τότε, το πρόγραμμα θα εκτελεστεί από τον υπολογιστή και θα παράγει αποτελέσματα.

Η γλώσσα Python διαθέτει ένα μεταφραστικό πρόγραμμα με το οποίο, για να γίνει κατανοητό και να εκτελεστεί το πρόγραμμα από τον υπολογιστή, μεταφράζεται σε γλώσσα μηχανής. Το μεταφραστικό πρόγραμμα της Python ανήκει στην κατηγορία των μεταφραστικών προγραμμάτων που ονομάζονται διερμηνευτές (interpreters). Οι διερμηνευτές μεταφράζουν διαδοχικά κάθε εντολή του πηγαίου προγράμματος σε γλώσσα μηχανής και, αν αυτή δεν έχει συντακτικά ή ορθογραφικά λάθη, την εκτελούν. Αν έχει τέτοια λάθη, δεν την εκτελούν, σταματούν την εκτέλεση και εμφανίζουν κατάλληλο μήνυμα λάθους. Όταν διορθωθεί το λάθος, το πρόγραμμα πρέπει να εκτελεστεί πάλι από την αρχή. Η διαδικασία αυτή επαναλαμβάνεται, μέχρι ο διερμηνευτής να μη βρει λάθη αυτού του είδους και να εκτελεστεί το πρόγραμμα. Στην πραγματικότητα, μοιάζει ο υπολογιστής να συζητά με τον προγραμματιστή, μέχρι να εκτελεστεί ολόκληρο το πρόγραμμα$^{1}$.

Να σημειωθεί, ότι άλλες γλώσσες προγραμματισμού διαθέτουν και/ή μεταφραστικά προγράμματα που ανήκουν στην άλλη κατηγορία των μεταφραστικών προγραμμάτων που ονομάζονται μεταγλωττιστές (compilers). Οι μεταγλωττιστές μεταφράζουν σε γλώσσα μηχανής όλες τις εντολές του πηγαίου κώδικα και προβάλλουν στον προγραμματιστή μια λίστα από ορθογραφικά και συντακτικά λάθη.
Αν διορθωθούν ή δεν υπάρχουν εξ αρχής τέτοια λάθη, ένα άλλο πρόγραμμα (φορτωτής-loader) εκτελεί το αντικείμενο πρόγραμμα$^{2}$.

Χαρακτηριστικά της γλώσσας Python
Η Python αναπτύχθηκε από τον Ολλανδό Guido van Rossum το 1990. Το όνομά της το πήρε από την αγαπημένη του τηλεοπτική εκπομπή «Το ιπτάμενο τσίρκο» των Monty Python's.
Η Python είναι μια γλώσσα προγραμματισμού αλληλοεπιδραστική (interactive), προσανατολισμένη στα αντικείμενα (object oriented), εύκολη αλλά ταυτόχρονα και πολύ ισχυρή, αν και όχι τόσο όπως η Java, η C $^{++}$, κ.α. Η Python έχει ως στόχο την παραγωγικότητα του προγραμματιστή (τα προγράμματά της είναι 3-5 φορές μικρότερα από τα αντίστοιχα σε Java, C++) και την εύκολη κατανόηση του κώδικα. Έχει ενσωματωμένες δομές δεδομένων με πλούσια και μεγάλη βιβλιοθήκη έτοιμων προγραμμάτων.

Συγκεκριμένα ως χαρακτηριστικά της μπορεί να αναφερθούν τα εξής:
-  Απλή σύνταξη
-  Γενική χρήση
-  Δομές δεδομένων υψηλού επιπέδου
-  Επεκτάσιμη (αρθρώματα - modules, ανοικτός κώδικας)
-  Είναι φορητή. Παίζει σχεδόν σε όλα τα λειτουργικά συστήματα (Windows, Linux/Unix, OS/2, Mac, Amiga, Linux, FreeBSD, Macintosh, Solaris, OS/2, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE, PocketPC κλπ.)
-  Ενσωματώνεται εύκολα σε άλλες γλώσσες προγραμματισμού ( π.χ. μέσω της J Python μπορεί να χρησιμοποιούνται βιβλιοθήκες Java, του .NET, να γράψουμε κώδικα σε C/C $^{++}$ κ.λπ.)
-  Χρησιμοποιεί διερμηνευτή
-  Ευκολία εκμάθησης
-  Γρήγορη συγγραφή προγραμμάτων
-  Μικρότερα προγράμματα, σύγχρονη προσέγγιση.

Προγραμματισμός στη γλώσσα Python
Το ολοκληρωμένο προγραμματιστικό περιβάλλον της γλώσσας Python διατίθεται ελεύθερα στο Διαδίκτυο. Επισκεπτόμαστε το site της Python: http://www.python.org/download/ και κατεβάζουμε το αρχείο εγκατάστασης για το λειτουργικό σύστημα και τα χαρακτηριστικά του υπολογιστή μας. Στη συνέχεια ακολουθούμε τις αντίστοιχες οδηγίες. Στα παραδείγματά μας θα χρησιμοποιήσουμε την έκδοση της γλώσσας (2.7.10), για Windows.
Μετά την εγκατάστασή της γλώσσας, την τρέχουμε για να αναπτύξουμε τα δικά μας προγράμματα επιλέγοντας το IDLE (Python GUI), όπως κάνουμε για κάθε εφαρμογή που θέλουμε να τρέξουμε. Την τρέχουμε είτε από το αντίστοιχο εικονίδιο στην επιφάνεια εργασίας (Windows 8.0) είτε από: Έναρξη t Όλα τα προγράμματα t Python t IDLE (Python GUI) (Εικόνα 1.1).

Εικόνα 1.1 Εκκίνηση του διερμηνευτή της γλώσσας Python
Με την επιλογή του IDLE (Python GUI) εμφανίζεται η διεπαφή του χρήστη με τη γλώσσα Python (κονσόλα διερμηνευτή-Python Shell). Ο διερμηνευτής μας παρέχει τη δυνατότητα πληκτρολόγησης επεξεργασίας (έκδοσης editing) του πηγαίου κώδικα. Επίσης, δίνει τη δυνατότητα για εύρεση, αντικατάσταση, αντιγραφή, αποκοπή, επικόλληση κ.λπ. Προσφέρει και άλλες διευκολύνσεις, όπως να ανοιχθεί και να γίνει η επεξεργασία και η εκσφαλμάτωση (debugging) μιας εφαρμογής Python (Εικόνα 1.2).

Εικόνα 1.2 Η διεπαφή (διερμηνευτής) της γλώσσας Python
Εδώ πληκτρολογείται κάθε φορά μια εντολή και εκτελείται. Το prompt (σύμβολο) για το ξεκίνημα πληκτρολόγησης μιας νέας εντολής είναι τα τρία σύμβολα «>>>». Στο τέλος μιας εντολής πατάμε ENTER για να εκτελεστεί η εντολή. Ακριβώς στην από κάτω, στην επόμενη γραμμή, εμφανίζεται το αποτέλεσμά της, π.χ. Πληκτρολογούμε: print "Welcome to the Python world!" και μετά ENTER. Στην οθόνη (στην πραγματικότητα, όταν αναφερόμαστε στην οθόνη, εννοούμε στο παράθυρο του διερμηνευτή) θα εμφανιστεί:

>>> print "Welcome to the Python world!" Welcome to the Python world!
Μόλις γράψαμε μια εντολή (statement) σε Python. Χρησιμοποιήθηκε η ενσωματωμένη συνάρτηση print (εκτύπωσε), για να εμφανιστεί στην οθόνη μια τιμή που της δίνουμε (στην έννοια της συνάρτησης θα αναφερθούμε αναλυτικότερα σε επόμενη παράγραφο). Εδώ είναι ένα μήνυμα. Με το ENTER δίνεται η έξοδος (output) της εντολής άμεσα στην επόμενη γραμμή της οθόνης. Η έξοδος εδώ είναι η εμφάνιση του μηνύματος στο όρισμα της print.
To κλείσιμο της κονσόλας του διερμηνευτή πραγματοποιείται από το αντίστοιχο εικονίδιο του παραθύρου του διερμηνευτή ή File t Exit ή File t Close ή με τη χρήση των αντίστοιχων συνδυασμών πλήκτρων, όπως φαίνεται στην Εικόνα 1.3.

Εικόνα 1.3 Η διεπαφή (διερμηνευτής) της γλώσσας Python

Επεξεργαστής κώδικα (Editor)
Στην κονσόλα του διερμηνευτή γράφονται μια-μια οι εντολές του πηγαίου κώδικα. Στην Python για τη δημιουργία του πηγαίου κώδικα διατίθεται ο επεξεργαστής (συντάκτης) πηγαίου κώδικα IDE (Integrated Development Environment-Ολοκληρωμένο Περιβάλλον Ανάπτυξης) του IDLE. Ο πηγαίος κώδικας αποθηκεύεται ως αρχείο με κατάληξη .py. Ο συντάκτης IDE υποστηρίζει τη στοίχιση του κειμένου με αυτόματη δημιουργία εσοχών, όπως απαιτεί η Python. Επίσης, γίνεται χρωματική επι -σήμανση σύνταξης , όπου όλα τα διαφορετικά τμήματα του Python προγράμματος χρωματίζονται κατάλληλα.

Εσοχή κώδικα (Indentation)
Η εσοχή, οι 4 κενοί χαρακτήρες στην αρχή της γραμμής, είναι σημαντική στην Python. Οι αρχικοί κενοί χαρακτήρες στην αρχή της γραμμής καθορίζουν το επίπεδο εσοχής της λογικής γραμμής με αποτέλεσμα την ομαδοποίηση των εντολών. Το μήκος μιας εντολή στην Python αποτελεί μια λογική γραμμή. Η λογική γραμμή μπορεί να περιλαμβάνει περισσότερες γραμμές της οθόνης (μεγάλη εντολή π.χ. όταν υπάρχουν μηνύματα).
Οι εντολές που πάνε μαζί, πρέπει να έχουν το ίδιο επίπεδο εσοχής. Κάθε τέτοια ομάδα εντολών ονομάζεται μπλοκ (block) . Οι λάθος εσοχές μπορεί να προκαλέσουν σφάλματα, π.x. αν εκτελεστεί το παρακάτω παράδειγμα στον συντάκτη (στον συντάκτη δεν χρειάζεται στην αρχή κάθε εντολής prompt «>>>»), δεν θα τρέξει και η Python θα απαντήσει με ένα πλαίσιο μηνύματος λάθους, ότι υπάρχει ένα απρόσμενο κενό. Με την επιλογή «ΟΚ» στο μήνυμα, ο δρομέας, κατάλληλα χρωματισμένος, θα αναβοσβήνει στη θέση του κενού που δεν πρέπει να υπάρχει. Παρατηρούμε ότι η φράση « Υπάρχει ένα κενό διάστημα στην αρχή της γραμμής που είναι σφάλμα » είναι σχόλιο του προγραμματιστή και η Python το αντιλαμβάνεται από το σύμβολο της δίεσης ( # ), που υπάρχει μπροστά από το σχόλιο. Για να εμφανίζονται τα μηνύματα στην ελληνική γλώσσα από τον editor πρέπει: File t Options t Configure IDLE t General (από το παράθυρο Settings που ανοίγει) t Utf-8 t Apply t OK.

i = 3
print ( 'Η τιμή είναι ' , i) # Υπάρχει ένα κενό διάστημα στην αρχή της γραμμής, που είναι σφάλμα
Όταν εξοικειωθείτε με τον συντάκτη, πληκτρολογήστε και αποθηκεύστε τον παραπάνω κώδικα με όνομα «dokimi.py». Μετά εκτελέσετε τον και επιβεβαιώστε όσα προαναφέρθηκαν.
Για να ανοίξει ο συντάκτης επιλέγουμε: File t New File ή τον αντίστοιχο συνδυασμό πλήκτρων (Εικόνα 1.4) και εμφανίζεται το παράθυρο του συντάκτη (Εικόνα 1.5).
Εικόνα 1.4 . Εκκίνηση του συντάκτη πηγαίου κώδικα IDE του IDLE, της γλώσσας Python

Εικόνα 1.5 Παράθυρο του συντάκτη πηγαίου κώδικα IDE του IDLE, της γλώσσας Python
Αν θέλουμε, για παράδειγμα, να δημιουργήσουμε στον συντάκτη τον πηγαίο κώδικα που να περιέχει τη φράση : «Welcome to the Python world!» και να τον αποθηκεύσουμε σε ένα αρχείο με το όνομα my\_first\_program και μετά να το «τρέξουμε», ακολουθούμε τα εξής:
Ανοίγουμε το παράθυρο του συντάκτη με τη διαδικασία που προαναφέρθηκε (από το διερμηνευτή της γλώσσας επιλέγουμε: File t New File) και πληκτρολογούμε print " Welcome to the Python world!" (Εικόνα 1.6).

Εικόνα 1.6 . Ο πηγαίος κώδικας στο συντάκτη IDE του IDLE, της γλώσσας Python.
Για την αποθήκευση του πηγαίου κώδικα από τον συντάκτη για πρώτη φορά, επιλέγουμε από το μενού: File t Save as και ανοίγει o browser για επιλογή φακέλου και ονόματος του αρχείου. Για αποθήκευση αλλαγών σε ήδη υπάρχον αρχείο επιλέγουμε: File t Save και αποθηκεύονται οι αλλαγές μας, χωρίς καμιά άλλη ενέργεια. Να σημειωθεί, ότι αν θέλουμε να αποθηκεύσουμε για πρώτη φορά ένα αρχείο και επιλέγουμε: File t Save, ο ίδιος ο συντάκτης θα μας ζητήσει ένα νέο όνομα για το αρχείο. Η επέκταση του ονόματος του αρχείου στην Python, είναι .py και προστίθεται αυτόματα.

Για να τρέξουμε το πρόγραμμα , πρέπει πρώτα να αποθηκευτεί. Να σημειωθεί, ότι κάθε φορά που κάνουμε κάποια αλλαγή στο πρόγραμμά μας, θα πρέπει να αποθηκεύουμε (όπως πάντοτε) τις αλλαγές. Για να τρέξουμε το πρόγραμμα επιλέγουμε: File t Run Module ή το αντίστοιχο πλήκτρο (Εικόνα 1.7) και εμφανίζεται το αποτέλεσμα στην οθόνη (Εικόνα 1.8).
Εικόνα 1.7 Εκτέλεση του προγράμματος στη γλώσσα Python.
Εικόνα 1.8 Εμφάνιση του αποτελέσματος εκτέλεσης του προγράμματος, στη γλώσσα Python.
Αν δεν έχουμε αποθηκεύσει το πρόγραμμα, εμφανίζεται το πλαίσιο διαλόγου της εικόνας 1.9.

Εικόνα 1.9 Πλαίσιο διαλόγου για αποθήκευση του προγράμματος, προκειμένου να εκτελεσθεί, στη γλώσσα Python.
Επιλέγουμε OK στο πλαίσιο διαλόγου. Επειδή το πρόγραμμα αποθηκεύεται για πρώτη φορά, ανοίγει ο browser και ζητείται ο φάκελος και το όνομα του αρχείου (σε τυχόν επόμενες αποθηκεύσεις του ίδιου προγράμματος, όταν πραγματοποιούμε αλλαγές και θέλουμε να το τρέξουμε, ενώ δεν το έχουμε αποθηκεύσει, δεν ξαναεμφανίζεται ο browser και οι αλλαγές αποθηκεύονται αυτόματα στο αρχείο, που του έχουμε ήδη δώσει όνομα). Επιλέγουμε το φάκελο που επιθυμούμε και πληκτρολογούμε στο αντίστοιχο πεδίο το όνομα «my\_first\_program» (Εικόνα 1.10). Επιλέγουμε Αποθήκευση και εμφανίζεται το αποτέλεσμα του προγράμματος στην οθόνη (Εικόνα 1.8).

Εικόνα 1.10 Πλαίσιο διαλόγου για αποθήκευση του προγράμματος, προκειμένου να εκτελεσθεί, στη γλώσ -σα Python
Για άνοιγμα ενός υπάρχοντος αρχείου με πηγαίο κώδικα Python από τον συντάκτη, επιλέγουμε από το μενού: File t Open και ανοίγει o browser και επιλέγουμε το αρχείο από το φάκελο που το έχουμε αποθηκεύσει.
Για κλείσιμο του συντάκτη επιλέγουμε από το μενού: File t Close ή File t Exit.
Στη συνέχεια παρουσιάζονται τα βασικά στοιχεία της γλώσσας Python και αμέσως μετά θα ακολουθήσει η μετατροπή αλγορίθμων σε γλώσσα Python. Η εκμάθηση της γλώσσας προγραμματισμού Python θα γίνει μέσα από τα παραδείγματα.

Αναγνωριστικά: είναι τα ονόματα που χρησιμοποιούνται για να ορίσουμε το όνομα της μεταβλητής, συνάρτησης κ.λπ. Τα αναγνωριστικά - ονόματα μπορεί να αποτελούνται από γράμματα του λατινικού αλφαβήτου (A - Z, a - z), τον χαρακτήρα \_ (underline) και τα ψηφία (0 έως 9), αρκεί ο πρώτος χαρακτήρας να μην είναι ψηφίο. Π.χ. Έγκυρα ονόματα-αναγνωριστικά είναι: first\_name, code1, x, a1, \_a, price\_sold.
Δεσμευμένες λέξεις: είναι οι λέξεις που χρησιμοποιεί η Python για εντολές.
Αριθμητικές εκφράσεις: είναι οι μαθηματικές παραστάσεις, που αποτελούνται από αριθμούς ή αριθμητικές μεταβλητές ή συναρτήσεις και τα σύμβολα των πράξεων δηλαδή τους αριθμητικούς τελεστές.

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

- + (πρόσθεση)
- * ( αφαίρεση)
- / (διαίρεση)
- ** (δύναμη, πχ. 2 $^{3}$-2**3)
% (το υπόλοιπο ακέραιας διαίρεσης)
Τύποι δεδομένων: Η Python υποστηρίζει τους παρακάτω τύπους δεδομένων
Ακέραιοι: είναι οι γνωστοί ακέραιοι αριθμοί από τα μαθηματικά. Π.χ. ο αριθμός 3, 198,-4, κ.λπ.
Κινητής υποδιαστολής: είναι οι πραγματικοί αριθμοί. Π.χ. 3.14 και 28.2Ε-5, όπου το Ε δηλώνει δύναμη του 10, δηλαδή ο αριθμός 28.2Ε-5 σημαίνει 28.2*10-5.
Μιγαδικοί αριθμοί: είναι οι αριθμοί-2+3j
Λογικές: είναι ο τύπος που μπορεί να πάρει μόνο δύο τιμές True (Αληθής) ή False (Ψευδής).

Συμβολοσειρές: είναι μια ακολουθία χαρακτήρων που ορίζεται με μονά ή διπλά εισαγωγικά, αρκεί με όποια ξεκινάμε με την ίδια να κλείνουμε. Π.χ. "Σήμερα είναι μια ηλιόλουστη μέρα" ή 'Αύριο θα έχει κρύο' ή 'Σταδίου 1125' κλπ.

1.2. Δομή ακολουθίας
Θα περιγράψουμε τις τρεις βασικές εντολές της Python για να δώσουμε τα πρώτα απλά παραδείγματα σε δομή ακολουθίας.

1.2.1. Εντολή εκχώρησης ή καταχώρησης τιμής
Γενική μορφή: <όνομα μεταβλητής ή μεταβλητών> = τιμή ή τιμές σε πλήρη αντιστοιχία.
Λειτουργία: Καταχωρείται η τιμή του δεξιού μέλους στη μνήμη στη μεταβλητή με το όνομα - αναγνωριστικό που έχουμε ορίσει στο αριστερό μέλος.

Π.χ. x=1
#καταχωρείται στη μεταβλητή x η τιμή 1
x=x+15
# αυξάνεται η τιμή της μεταβλητής x κατά 15
οnoma='Άννα'
#καταχωρείται στη μεταβλητή onoma η τιμή Άννα
m1=m2=m3=23
# στις μεταβλητές m1, m2, m3 καταχωρείται η ίδια τιμή 23
x,y=10,18
#στη μεταβλητή x εκχωρείται η τιμή 10 και στη y η τιμή 18
x,y,z=3,7,'Μαρία'
#στη μεταβλητή χ εκχωρείται η τιμή 3, στη y η τιμή 7 και στη ζ η τιμή Μαρία.

1.2.2. Εκχώρηση τιμής σε μια μεταβλητή από το πληκτρολόγιο
Γενική μορφή: όνομα μεταβλητής= input ( "κείμενο προς εμφάνιση ")
Λειτουργία: Στο παράθυρο του διερμηνευτή, εμφανίζεται το κείμενο που έχουμε πληκτρολογήσει, μέσα στην παρένθεση της ενσωματωμένης συνάρτησης (στις συναρτήσεις θα αναφερθούμε σε επόμενη παράγραφο) input. Στη συνέχεια, ο υπολογιστής περιμένει να πληκτρολογήσουμε μια τιμή. Όταν πατήσουμε το Enter, η τιμή που πληκτρολογήσαμε καταχωρείται στη μεταβλητή.

1.2.3. Εμφάνιση τιμής
Γενική μορφή: print κείμενο ή όνομα μεταβλητής
Λειτουργία: Εμφανίζει στο παράθυρο του διερμηνευτή, ό,τι έχουμε ορίσει μέσα στην παρένθεση της ενσωματωμένης συνάρτησης print. Μπορούμε να εμφανίσουμε ένα δικό μας κείμενο, αρκεί να βρίσκεται μέσα σε διπλά ή μονά εισαγωγικά ή την τιμή μιας μεταβλητής δίνοντας μόνο το όνομα της χωρίς εισαγωγικά.
Παράδειγμα 1-1. Θέλουμε να κατεβάσουμε στο κινητό μας τηλέφωνο μια εφαρμογή. Η ταχύτητα σύνδεσής μας στο διαδίκτυο είναι 1,6 ΜΒ/δευτερόλεπτο. Γράψτε σε γλώσσα Python πρόγραμμα, που δέχεται ως είσοδο το μέγεθος της εφαρμογής σε ΜΒ και υπολογίζει σε πόσο χρόνο θα κατέβει η εφαρμογή.

Αλγόριθμος Download
Γράψε ' Δώσε το μέγεθος της εφαρμογής'
Διάβασε μέγεθος
Χρόνος<-- μέγεθος/1,6
Γράψε χρόνος
Τέλος Download

#Download
megethos=input("Δώσε το μέγεθος της εγγραφής")
time=megethos/1.6
print time

Παρατήρηση
Για την εισαγωγή σχολίων , κατάσταση όπου μπορούμε να εισάγουμε επεξηγηματικά σχόλια στο πρόγραμμά μας, θέτουμε μπροστά το σύμβολο # . Με αυτόν τον τρόπο, όταν κάποιος δει το πρόγραμμά μας, θα καταλάβει πιο εύκολα τι ακριβώς κάνει και πώς σκεφτήκαμε να το φτιάξουμε.
Παράδειγμα 1-2: Να δημιουργήσετε πρόγραμμα σε γλώσσα Python που να δίνετε από το πληκτρολόγιο το ημερομίσθιο ενός εργαζομένου και στην συνέχεια να υπολογίζετε και το εμφανίζετε το ποσό που θα εισπράξει μετά από 25 ημέρες εργασίας.

Αλγόριθμος Ημερομίσθιο

Γράψε
'Δώσε το ημερομίσθιο'
Διάβασε
ημερομίσθιο
Μισθός<-- ημερομίσθιο*25

Γράψε
'Μισθός=',Μισθός
Τέλος Ημερομίσθιο
Παράδειγμα 1-3: Να δημιουργήσετε πρόγραμμα σε γλώσσα προγραμματισμού Python, όπου θα δίνετε την ακτίνα του κύκλου και να υπολογίζετε και να εμφανίζετε το μήκος της περιφέρειας και το εμβαδόν του κύκλου.
Αλγόριθμος Κύκλος

Γράψε
'Δώσε ακτίνα κύκλου'
Διάβασε ακτίνα

Π<--3.14
Περιφέρεια<-- ακτίνα*2*π
Εμβαδόν<-- ακτίνα^2*π

Γράψε
'Περιφέρεια κύκλου=',Περιφέρεια
Γράψε 'Εμβαδόν κύκλου=', Εμβαδόν
Τέλος Κύκλος

Παρατήρηση
Η μεταβλητή a (=ακτίνα κύκλου) είναι πραγματική. Η Python δεν απαιτεί να δηλώσουμε τον τύπο της μεταβλητής a πριν τη χρησιμοποιήσουμε, αλλά για να διασφαλίσουμε ότι η τιμή που θα δοθεί είναι πραγματικός αριθμός, μετατρέπουμε την είσοδο σε πραγματικό αριθμό με τη συνάρτηση float(). Παρόμοια, μια τιμή μπορεί να μετατραπεί σε ακέραια με τη συνάρτηση int(): π.χ. όταν θέλουμε να διαβάσουμε ακέραιο αριθμό από το πληκτρολόγιο χρησιμοποιούμε την εντολή: a=int(input('Δώσε ακέραιο αριθμό:'))

#periferia-emvadon circle
a=float(input('Δώσε ακτίνα κύκλου'))
pi=3.14
periferia=a*2*pi
emvadon=a**2*pi
print 'Μήκος περιφέρειας κύκλου:',periferia
print 'Εμβαδόν κύκλο:', emvadon

#Hmeromisthio
imeromisthio=input("Δώσε το ημερομίσθιο:")
misthos= imeromisthio*25
print "Μισθός=",misthos

Ερωτήσεις εμπέδωσης
- 1. Ποιους τύπους δεδομένων υποστηρίζει η γλώσσα python;
- 2. Η εντολή x=y=z=45, τι κάνει κατά την εκτέλεσή της;
- 3. Η εντολή onoma, epitheto='Μαρία','Σωτηρίου', τι κάνει κατά την εκτέλεσή της;
- 4. Μεταφράστε τα παρακάτω τμήματα αλγορίθμων σε γλώσσα Python:

Δραστηριότητες
- 1. Να μετατρέψετε τον παρακάτω Αλγόριθμο σε γλώσσα προγραμματισμού Python:
Αλγόριθμος Ασκ\_1
Εμφάνισε "Δώσε την τιμή του προϊόντος"

Διάβασε Τ
Εμφάνισε "Δώσε τον φόρο που αντιστοιχεί στο προϊόν"

Διάβασε Φ

Φορ ← Τ*Φ
ΤΤ ← Τ+Φορ

Γράψε ΤΤ

Τέλος Ασκ\_1
- 2. Να γράψετε πρόγραμμα σε γλώσσα Python που να δέχεται από το πληκτρολόγιο τα ύψη τριών μαθητών σε εκατοστά και να εμφανίζει το μέσο ύψος τους σε μέτρα.
- 3. Να γράψετε πρόγραμμα σε γλώσσα Python που να δέχεται βαθμούς Φαρενάιτ και να υπολογίζει και εμφανίζει τους αντίστοιχους βαθμούς Κελσίου, λαμβάνοντας υπόψη τον τύπο: Κελσίου=5/9 (Φαρενάιτ-32).
- 4. Να γράψετε πρόγραμμα σε γλώσσα Python που να δέχεται την τιμή ενός προϊόντος, να υπολογίζει και να εμφανίζει το ΦΠΑ του και την τελική τιμή αγοράς του. Δεδομένου ότι το ΦΠΑ του προϊόντος είναι 23% και η Τελική τιμή του είναι Τιμή προϊόντος + ΦΠΑ.
- 5. Μία παροχή νερού μας δίνει 10 lt ανά 9 δευτερόλεπτα. Να γράψετε πρόγραμμα σε γλώσσα Python που να δίνουμε τις διαστάσεις μιας δεξαμενής νερού και να υπολογίζει το χρόνο που χρειάζεται για να γεμίσει η δεξαμενή.
- 6. Να γράψετε πρόγραμμα σε γλώσσα Python που να δίνετε από το πληκτρολόγιο την βάση και το ύψος ενός τριγώνου σε εκατοστά. Στη συνέχεια να υπολογίζει και να εμφανίζει το εμβαδόν του τριγώνου σε εκατοστά, σύμφωνα με το τύπο: Ε=(Β*Υ)/2.

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

Σημείωση: Τα μπλοκ των εντολών που θα εκτελεστούν σε όλες τις περιπτώσεις της if, ορίζονται ως ένα μπλοκ με εσοχή βάζοντας τη μια εντολή κάτω από την άλλη. Αν το μπλοκ εντολών αποτελείται από μια εντολή, τότε μπορεί να γραφτεί στην ίδια γραμμή με την if ή την else. Π.χ.
a=input('give a number ')
if a>0: print a,'>0'
else: print a,'<0'

1.3.1. Λογικές εκφράσεις
Για την σύνταξη της συνθήκης που χρησιμοποιεί η εντολή της δομής επιλογής if, χρειάζεται να συνταχθεί μια λογική έκφραση, η οποία θα δίνει σαν αποτέλεσμα την τιμή Αληθής ή Ψευδής. Για την σύνταξη μιας λογικής έκφρασης χρησιμοποιούνται οι συγκριτικοί τελεστές:
- > Μεγαλύτερο
- >= Μεγαλύτερο ή ίσο
- < Μικρότερο
- <= Μικρότερο ή ίσο
- != Διάφορο
- == Ισότητα
Τελεστές λογικών πράξεων: not, or, and, με τις ακόλουθες λογικές λειτουργίες

1ος τρόπος με απλή επιλογή
Αλγόριθμος ΜΑΧ1
Διάβασε χ,ψ
μεγ ← x
Αν μεγ < y τότε
μεγ ← y

Τέλος\_αν
Τέλος ΜΑΧ1
# Ο μεγαλύτερος δύο αριθμών
x=int(input("Δώσε τον 1ο ακέραιο αριθμό "))
y=int(input("Δώσε τον 2ο ακέραιο αριθμό "))
max=x
if max<y:
max=y
print "Μεγαλύτερος ο ",max
2ος τρόπος με σύνθετη επιλογή

Παράδειγμα 1-5 Ο δείκτης μάζας σώματος (ΔΜΣ) είναι μία ένδειξη για το βαθμό παχυσαρκίας ενός ατόμου και υπολογίζεται από τον τύπο: βάρος/ύψος^2. Δεδομένων του βάρους και του ύψους ενός ατόμου, να εμφανίσετε χαρακτηρισμό που αφορά στο βαθμό παχυσαρκίας του με βάση το ΔΜΣ. Υπάρχουν τέσσερεις περιπτώσεις για τον χαρακτηρισμό του ατόμου, που μπορούν να εξετασθούν με μια δομή πολλαπλής επιλογής.

Γράψε
'ελλιποβαρές άτομο'
Αλλιώς\_αν
ΔΜΣ < 25 τότε
Γράψε 'άτομο με φυσιολογικό βάρος'
Αλλιώς\_αν ΔΜΣ < 30 τότε
Γράψε 'υπέρβαρο άτομο'

αλλιώς

Γράψε

Τέλος\_αν
Τέλος Χαρακτηρισμός Ατόμου

#ΧαρακτηρισμόςΑτόμου
varos=input("Δώσε βάρος")
ypsos=input("Δώσε ύψος")
dms=varos/(ypsos**2)
if dms<18.5:
print 'ελλιποβαρές άτομο'
elif dms<25:
print 'άτομο με φυσιολογικό βάρος'
elif dms<30:
print 'υπέρβαρο άτομο'
else:
print 'άτομο που πάσχει από παχυσαρκία'
'άτομο που πάσχει από παχυσαρκία'

Παράδειγμα 1-6 ( Εμφωλευμένη Δομή επιλογής)
Στο ταχυδρομείο το κόστος αποστολής υπολογίζεται συναρτήσει του προορισμού και του βάρους της επιστολής με βάση τον πίνακα. Δεδομένων του προορισμού και του βάρους μιας επιστολής, να εμφανίσετε το ποσό που στοιχίζει η αποστολή της.

1ος Τρόπος ¨Με εμφωλευμένη Δομή Επιλογής

Αλγόριθμος Επιστολή1

Γράψε 1.
Εσωτερικό'
'2.Εξωτερικό'
Γράψε 'Επιλογή' Διάβασε προορισμό Γράψε 'Δώσε βάρος'
Διάβασε βάρος
Αν προορισμός = 1 τότε Αν βάρος <= 100
κόστος ← 1
αλλιώς
κόστος ← 2
τέλος\_αν
αλλιώς Αν βάρος <= 100 τότε
κόστος ← 2.5
αλλιώς
κόστος ← 4
τέλος\_αν
Γράψε κόστος
Τέλος Επιστολή1

#Επιστολή1
print '1.Εσωτερικό'
print '2. Εξωτερικό'
proorismos=input("Επιλογή: ")
varos=input("Δώσε βάρος: ")
if proorismos==1:
if varos<=100:
kostos=1
else:
kostos=2
else:
if varos<=100:
kostos=2.5
else:
kostos=4
print 'Κόστος μεταφοράς της επιστολής:',kostos

2ος Τρόπος ¨Με σύνθετη Δομή Επιλογής
```
Αλγόριθμος Επιστολή2 Γράψε 1. Εσωτερικό' '2.Εξωτερικό' Γράψε 'Επιλογή' Διάβασε πρ Γράψε 'Δώσε βάρος' Αν πρ 1 και βάρος <= 100 τότε κόστος ← 1 αλλιώς\_αν πρ= 1 και βάρος > 100 τότε κόστος ← 2 αλλιώς\_αν πρ = 2 και βάρος <= 100 τότε κόστος ← 2.5 αλλιώς κόστος ← 4 τέλος\_αν Γράψε 'Κόστος=',κόστος Τέλος Επιστολή2 #Επιστολή2 print '1.Εσωτερικό' print '2. Εξωτερικό' pr=input("Επιλογή: ") varos=input("Δώσε βάρος: ") if pr==1 and varos<=100: kostos=1 elif pr==1 and varos>100: kostos=2 elif pr==2 and varos<=100: kostos=2.5 else: kostos=4 print 'Κόστος μεταφοράς της επιστολής:',kostos
```

Δραστηριότητες
- 1. Μελετήστε το παρακάτω πρόγραμμα.
- i. Τι πιστεύετε ότι κάνει;
- ii. Τι θα εμφανίζει το παρακάτω πρόγραμμα της Python, αν εκτελεστεί διαδοχικά για την τιμή 4, την 11, την 13, την 16, την 18, την 20 και την 23;
- iii. Τροποποιήστε το πρόγραμμα, ώστε αντί της εμφωλευμένης if ... else...if να χρησιμοποιήσετε την σύνθετη if... elif...elif...else...
```
test = input('Παρακαλώ δώσε το βαθμό που πήρες από το τεστ:') if test<=20: if test>= 18: print 'ΑΡΙΣΤΑ' else: if test >= 15: print 'ΚΑΛΑ' else: if test >= 10: print 'ΜΕΤΡΙΟΣ' else: print 'ΑΠΟΡΡΙΠΤΕΤΑΙ' else: print "Ο βαθμός που έδωσες είναι μεγαλύτερος του είκοσι"
```

- 2. Μια εταιρεία ηλεκτρικής ενέργειας χρεώνει την κατανάλωση του ρεύματος σύμφωνα με την παρακάτω κλίμακα:
-  Μέχρι 200 μονάδες (0-200) προς 0,25€/μονάδα
- Τις επόμενες 1000 μονάδες (201-1200) προς 0,40€/μονάδα
-  Τις πέρα των 1200 μονάδων προς 0,50€/μονάδα
Να γραφτεί πρόγραμμα σε γλώσσα Python που να δέχεται τον αριθμό των μονάδων που καταναλώθηκαν από τον πελάτη και να εμφανίζει το ποσό των χρημάτων που χρωστάει ο πελάτης στην εταιρεία ηλεκτρικής ενέργειας.
- 3. Να γραφτεί πρόγραμμα σε γλώσσα Python που να δέχεται τρεις ακέραιους αριθμούς και να εμφανίζει τον μεγαλύτερο και τον μικρότερο.
- 4. Να γραφτεί πρόγραμμα σε γλώσσα Python που να δέχεται 2 αριθμούς και ένα πρόσημο + (για την πρόσθεση) ή - (για την αφαίρεση) ή * (για τον πολλαπλασιασμό ) ή / (για την διαίρεση). Στη συνέχεια, να υπολογίζει και να εμφανίζει το αποτέλεσμα της πράξης που επέλεξε με τους δύο αριθμούς, εμφανίζοντας κατάλληλο μήνυμα.
- 5. Να γραφτεί πρόγραμμα σε γλώσσα Python που να υπολογίζει το μισθό ενός εργαζομένου, ο οποίος δουλεύει με σύμβαση ωρομισθίου σε μια εταιρεία. Να διαβάζει το όνομά του, τις ώρες εργασίας του μήνα, το ωρομίσθιό του και αν είναι έγγαμος ή άγαμος. Οι κρατήσεις που του γίνονται, εξαρτώνται από το ύψος του μισθού. Αν ο μισθός είναι μέχρι 1000€ το μήνα, έχει 15% κρατήσεις, ενώ διαφορετικά έχει 25% κρατήσεις. Επίσης, αν είναι έγγαμος, έχει ένα επίδομα 50€.
- 6. Σε τρεις διαφορετικούς αγώνες πρόκρισης στο άλμα εις μήκος, ένας άλτης πέτυχε τις επιδόσεις α, β, γ. Να γράψετε πρόγραμμα σε γλώσσα Python που:
- i. Να δέχεται τις τιμές α, β, γ.
- ii. Να υπολογίζει και να εμφανίζει τη μέση τιμή των παραπάνω τιμών.
- iii. Να εμφανίζει το μήνυμα προκρίθηκε, εάν η παραπάνω μέση τιμή είναι μεγαλύτερη από 8 μέτρα.
- 7. Η εφορία κάθε τέλος έτους φορολογεί τα αυτοκίνητα ανάλογα με τον κυβισμό τους, σύμφωνα με τον παρακάτω πίνακα:

1.4. Δομή επανάληψης
Η δομή επανάληψης μας επιτρέπει την εκτέλεση ενός μπλοκ εντολών, περισσότερες από μία φορές. Η γλώσσα προγραμματισμού Python υποστηρίζει δύο τύπους επαναλήψεων:
-  Την for , όταν το πλήθος των επαναλήψεων είναι προκαθορισμένο.
- while , όταν το πλήθος των επαναλήψεων δεν είναι προκαθορισμένο, αλλά εκτελούνται για όσο ισχύει μια συνθήκη.

1.4.1. Η δομή επανάληψης While..
Γενική μορφή:
while <συνθήκη>: {
εντολή (-ές)
μπλοκ εντολών
Λειτουργία: Η δομή επανάληψης while… επαναλαμβάνει το μπλοκ εντολών, όσο η συνθήκη είναι Αληθής, ενώ όταν η συνθήκη γίνει Ψευδής, τότε εκτελεί τις εντολές του προγράμματος, μετά το μπλοκ των εντολών της. Το μπλοκ των εντολών καθορίζεται, όπως και στην if…, γράφοντάς τις παραμέσα, στοιχισμένες τη μία κάτω από την άλλη.
Παράδειγμα 1-7. Να γραφτεί πρόγραμμα σε γλώσσα Python που να διαβάζει ηλικίες και να υπολογίζει τον μέσο όρο ηλικιών. Το πρόγραμμα θα τερματίζεται, όταν πληκτρολογηθεί αριθμός μικρότερος ή ίσος του μηδενός.

Σημειώσεις
-  Θα πρέπει πριν από την εντολή while... να έχουμε δώσει τιμή στη/στις μεταβλητή/-τες που χρησι -μοποιεί η συνθήκη, ώστε ανάλογα να εκτελεστεί ο βρόχος.
-  Θα πρέπει μέσα στο μπλοκ των εντολών να υπάρχει να υπάρχει κατάλληλη εντολή, ώστε να αλ-
λάζει τη τιμή της συνθήκης, για να μπορεί η συνθήκη να γίνει Ψευδής. Διαφορετικά ο βρόχος δεν θα τερματίσει.
Παράδειγμα 1-8 Ο καθηγητής έβαλε τους βαθμούς του Α' τετραμήνου στην Πληροφορική και θέλει να βρει το μέσο όρο του τμήματος και πόσοι μαθητές είναι άριστοι (βαθμός πάνω από 18). Οι βαθμοί κυμαίνονται από 0 έως 20. Δεδομένου ότι το πλήθος των μαθητών είναι άγνωστο, ο καθηγητής θέλει να τελειώσει την εισαγωγή των βαθμών όταν δώσει την ειδική τιμή -1. Το πλήθος των μαθητών δεν είναι γνωστό εκ των προτέρων, μπορεί να είναι και μηδέν (0).

1.4.2. Η δομή επανάληψης for..
εντολή(-ές)
Γενική μορφή: for <μεταβλητή> in range (αρχή, μέχρι, βήμα) {
μπλοκ εντολών
Λειτουργία: Η δομή επανάληψης for ... εκτελεί το μπλοκ των εντολών του για ένα καθορισμένο αριθμό επαναλήψεων. Το πόσες φορές θα εκτελεστούν οι εντολές του μπλοκ καθορίζεται από την συνάρτηση range στην οποία δίνουμε ακέραιους αριθμούς που εκφράζουν την αρχή, το τέλος και το βήμα της μεταβλητής-μετρητής. Οι ενδείξεις αρχή και βήμα δεν είναι υποχρεωτικές, ενώ η ένδειξη μέχρι είναι υποχρεωτική. Στη περίπτωση που παραλειφθεί η αρχή, η αρίθμηση ξεκινά από το 0, ενώ αν παραλειφθεί το βήμα, θεωρεί ότι το βήμα είναι 1. Για τις συναρτήσεις στην Python θα αναφερθούμε αναλυτικότερα σε επόμενη παράγραφο.

Παράδειγμα 1-9 Διάφορες περιπτώσεις χρήσης της συνάρτησης range στο προγραμματιστικό περιβάλλον της Python.

Παρατήρηση: Η τιμή του μέχρι που είναι μέσα στη παρένθεση του range, π.χ. το 5 στην 1η περίπτωση, δεν είναι η τελική τιμή του μετρητή των επαναλήψεων. Η τελική τιμή του μετρητή προκύπτει, αν από την τιμή του μέχρι αφαιρέσουμε το βήμα.
Παράδειγμα 1-10 Να γραφτεί πρόγραμμα σε γλώσσα Python που να διαβάζει 20 ηλικίες και να υπολογίζει τον μέσο όρο ηλικιών.

Παράδειγμα 1-11 Ο καθηγητής έβαλε τους βαθμούς του Α' τετραμήνου στην Πληροφορική και θέλει να βρει το μέσο όρο του τμήματος και πόσοι μαθητές είναι άριστοι (βαθμός πάνω από 18). Οι βαθμοί κυμαίνονται από 0 έως 20. Το πλήθος των μαθητών της τάξης είναι 23.

1.4.3. Εύρεση του Μεγαλύτερου ή Μικρότερου από ένα σύνολο αριθμών
Όταν έχουμε ένα σύνολο αριθμών και θέλουμε να βρούμε τον ελάχιστο ή μέγιστο αριθμό αυτών, χρησιμοποιούμε τον παρακάτω αλγόριθμο:
- 1. Σε μεταβλητές max ή min, οι οποίες εκφράζουν αντίστοιχα την μεγαλύτερη ή μικρότερη τιμή που θα έχουν στο τέλος, δίνουμε Αρχική τιμή .

1η περίπτωση

Αυθαίρετες τιμές
Στο max δίνω την μικρότερη δυνατή τιμή.
min δίνω την μεγαλύτερη δυνατή τιμή.
Αυτήν την περίπτωση την χρησιμοποιούμε στις περιπτώσεις που το πεδίο τιμών της μεταβλητής είναι συγκεκριμένο. Π.χ. δίνω τους βαθμούς μαθητών [0,20]. Τότε έχω σαν Αρχικές τιμές:
max=0 min=20.

2η περίπτωση

Συγκεκριμένες τιμές
Στο max και στο min δίνω την πρώτη τιμή από το σύνολο των αριθμών.
Αυτήν την περίπτωση την χρησιμοποιούμε στις περιπτώσεις που το πεδίο τιμών της μεταβλητής δεν είναι ορισμένο. Π.χ. Πληκτρολογούμε αριθμούς και θέλουμε να βρούμε τον μεγαλύτερο και τον μικρότερο. Τότε έχω:
x=input('Δώσε αριθμό')
max=x
min=x

1.1. Σχεδίαση και συγγραφή κώδικα
Στη Β' Λυκείου, στο μάθημα " Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ ", γνωρίσαμε έννοιες αλγορίθμων και δημιουργήσαμε αλγορίθμους για την επίλυση των προβλημάτων. Σε αυτή την ενότητα μετατρέπουμε τους αλγορίθμους σε προγράμματα, δηλαδή σε μια σειρά οδηγιών προς τον υπολογιστή. Το πρόγραμμα θα είναι γραμμένο σε μια γλώσσα προγραμματισμού υψηλού επιπέδου, την Python (πηγαίος κώδικας-source code).
Οι γλώσσες υψηλού επιπέδου είναι δομημένες με τέτοιο τρόπο (γράμματα, ορθογραφικοί συντακτικοί κανόνες λέξεις, προτάσεις κ.λπ.) που πλησιάζουν την ανθρώπινη σκέψη και το επίπεδο των γλωσσών (Ελληνική, αγγλική κ.λπ.) που χρησιμοποιεί ο άνθρωπος, χωρίς όμως να το φθάνουν. Ο πηγαίος κώδικας δεν είναι κατανοητός από τον υπολογιστή, γιατί αυτός δεν «μιλά» τη γλώσσα Python, αλλά τη γλώσσα που «μιλά» η μηχανή/υπολογιστής, τη λεγόμενη γλώσσα μηχανής. Έτσι, ο πηγαίος κώδικας θα πρέπει να μετατραπεί σε ένα πρόγραμμα γλώσσας μηχανής (αντικείμενος κώδικας-object code). Η γλώσσα μηχανής αποτελείται από λέξεις που περιλαμβάνουν διαδοχικές σειρές μηδέν (0) και ένα (1), π.χ. 01100. Τότε και μόνον τότε, το πρόγραμμα θα εκτελεστεί από τον υπολογιστή και θα παράγει αποτελέσματα.

Η γλώσσα Python διαθέτει ένα μεταφραστικό πρόγραμμα με το οποίο, για να γίνει κατανοητό και να εκτελεστεί το πρόγραμμα από τον υπολογιστή, μεταφράζεται σε γλώσσα μηχανής. Το μεταφραστικό πρόγραμμα της Python ανήκει στην κατηγορία των μεταφραστικών προγραμμάτων που ονομάζονται διερμηνευτές (interpreters). Οι διερμηνευτές μεταφράζουν διαδοχικά κάθε εντολή του πηγαίου προγράμματος σε γλώσσα μηχανής και, αν αυτή δεν έχει συντακτικά ή ορθογραφικά λάθη, την εκτελούν. Αν έχει τέτοια λάθη, δεν την εκτελούν, σταματούν την εκτέλεση και εμφανίζουν κατάλληλο μήνυμα λάθους. Όταν διορθωθεί το λάθος, το πρόγραμμα πρέπει να εκτελεστεί πάλι από την αρχή. Η διαδικασία αυτή επαναλαμβάνεται, μέχρι ο διερμηνευτής να μη βρει λάθη αυτού του είδους και να εκτελεστεί το πρόγραμμα. Στην πραγματικότητα, μοιάζει ο υπολογιστής να συζητά με τον προγραμματιστή, μέχρι να εκτελεστεί ολόκληρο το πρόγραμμα$^{1}$.

Να σημειωθεί, ότι άλλες γλώσσες προγραμματισμού διαθέτουν και/ή μεταφραστικά προγράμματα που ανήκουν στην άλλη κατηγορία των μεταφραστικών προγραμμάτων που ονομάζονται μεταγλωττιστές (compilers). Οι μεταγλωττιστές μεταφράζουν σε γλώσσα μηχανής όλες τις εντολές του πηγαίου κώδικα και προβάλλουν στον προγραμματιστή μια λίστα από ορθογραφικά και συντακτικά λάθη.
Αν διορθωθούν ή δεν υπάρχουν εξ αρχής τέτοια λάθη, ένα άλλο πρόγραμμα (φορτωτής-loader) εκτελεί το αντικείμενο πρόγραμμα$^{2}$.

Χαρακτηριστικά της γλώσσας Python
Η Python αναπτύχθηκε από τον Ολλανδό Guido van Rossum το 1990. Το όνομά της το πήρε από την αγαπημένη του τηλεοπτική εκπομπή «Το ιπτάμενο τσίρκο» των Monty Python's.
Η Python είναι μια γλώσσα προγραμματισμού αλληλοεπιδραστική (interactive), προσανατολισμένη στα αντικείμενα (object oriented), εύκολη αλλά ταυτόχρονα και πολύ ισχυρή, αν και όχι τόσο όπως η Java, η C $^{++}$, κ.α. Η Python έχει ως στόχο την παραγωγικότητα του προγραμματιστή (τα προγράμματά της είναι 3-5 φορές μικρότερα από τα αντίστοιχα σε Java, C++) και την εύκολη κατανόηση του κώδικα. Έχει ενσωματωμένες δομές δεδομένων με πλούσια και μεγάλη βιβλιοθήκη έτοιμων προγραμμάτων.

Συγκεκριμένα ως χαρακτηριστικά της μπορεί να αναφερθούν τα εξής:
-  Απλή σύνταξη
-  Γενική χρήση
-  Δομές δεδομένων υψηλού επιπέδου
-  Επεκτάσιμη (αρθρώματα - modules, ανοικτός κώδικας)
-  Είναι φορητή. Παίζει σχεδόν σε όλα τα λειτουργικά συστήματα (Windows, Linux/Unix, OS/2, Mac, Amiga, Linux, FreeBSD, Macintosh, Solaris, OS/2, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE, PocketPC κλπ.)
-  Ενσωματώνεται εύκολα σε άλλες γλώσσες προγραμματισμού ( π.χ. μέσω της J Python μπορεί να χρησιμοποιούνται βιβλιοθήκες Java, του .NET, να γράψουμε κώδικα σε C/C $^{++}$ κ.λπ.)
-  Χρησιμοποιεί διερμηνευτή
-  Ευκολία εκμάθησης
-  Γρήγορη συγγραφή προγραμμάτων
-  Μικρότερα προγράμματα, σύγχρονη προσέγγιση.

Προγραμματισμός στη γλώσσα Python
Το ολοκληρωμένο προγραμματιστικό περιβάλλον της γλώσσας Python διατίθεται ελεύθερα στο Διαδίκτυο. Επισκεπτόμαστε το site της Python: http://www.python.org/download/ και κατεβάζουμε το αρχείο εγκατάστασης για το λειτουργικό σύστημα και τα χαρακτηριστικά του υπολογιστή μας. Στη συνέχεια ακολουθούμε τις αντίστοιχες οδηγίες. Στα παραδείγματά μας θα χρησιμοποιήσουμε την έκδοση της γλώσσας (2.7.10), για Windows.
Μετά την εγκατάστασή της γλώσσας, την τρέχουμε για να αναπτύξουμε τα δικά μας προγράμματα επιλέγοντας το IDLE (Python GUI), όπως κάνουμε για κάθε εφαρμογή που θέλουμε να τρέξουμε. Την τρέχουμε είτε από το αντίστοιχο εικονίδιο στην επιφάνεια εργασίας (Windows 8.0) είτε από: Έναρξη t Όλα τα προγράμματα t Python t IDLE (Python GUI) (Εικόνα 1.1).

Εικόνα 1.1 Εκκίνηση του διερμηνευτή της γλώσσας Python
Με την επιλογή του IDLE (Python GUI) εμφανίζεται η διεπαφή του χρήστη με τη γλώσσα Python (κονσόλα διερμηνευτή-Python Shell). Ο διερμηνευτής μας παρέχει τη δυνατότητα πληκτρολόγησης επεξεργασίας (έκδοσης editing) του πηγαίου κώδικα. Επίσης, δίνει τη δυνατότητα για εύρεση, αντικατάσταση, αντιγραφή, αποκοπή, επικόλληση κ.λπ. Προσφέρει και άλλες διευκολύνσεις, όπως να ανοιχθεί και να γίνει η επεξεργασία και η εκσφαλμάτωση (debugging) μιας εφαρμογής Python (Εικόνα 1.2).

Εικόνα 1.2 Η διεπαφή (διερμηνευτής) της γλώσσας Python
Εδώ πληκτρολογείται κάθε φορά μια εντολή και εκτελείται. Το prompt (σύμβολο) για το ξεκίνημα πληκτρολόγησης μιας νέας εντολής είναι τα τρία σύμβολα «>>>». Στο τέλος μιας εντολής πατάμε ENTER για να εκτελεστεί η εντολή. Ακριβώς στην από κάτω, στην επόμενη γραμμή, εμφανίζεται το αποτέλεσμά της, π.χ. Πληκτρολογούμε: print "Welcome to the Python world!" και μετά ENTER. Στην οθόνη (στην πραγματικότητα, όταν αναφερόμαστε στην οθόνη, εννοούμε στο παράθυρο του διερμηνευτή) θα εμφανιστεί:

>>> print "Welcome to the Python world!" Welcome to the Python world!
Μόλις γράψαμε μια εντολή (statement) σε Python. Χρησιμοποιήθηκε η ενσωματωμένη συνάρτηση print (εκτύπωσε), για να εμφανιστεί στην οθόνη μια τιμή που της δίνουμε (στην έννοια της συνάρτησης θα αναφερθούμε αναλυτικότερα σε επόμενη παράγραφο). Εδώ είναι ένα μήνυμα. Με το ENTER δίνεται η έξοδος (output) της εντολής άμεσα στην επόμενη γραμμή της οθόνης. Η έξοδος εδώ είναι η εμφάνιση του μηνύματος στο όρισμα της print.
To κλείσιμο της κονσόλας του διερμηνευτή πραγματοποιείται από το αντίστοιχο εικονίδιο του παραθύρου του διερμηνευτή ή File t Exit ή File t Close ή με τη χρήση των αντίστοιχων συνδυασμών πλήκτρων, όπως φαίνεται στην Εικόνα 1.3.

Εικόνα 1.3 Η διεπαφή (διερμηνευτής) της γλώσσας Python

Επεξεργαστής κώδικα (Editor)
Στην κονσόλα του διερμηνευτή γράφονται μια-μια οι εντολές του πηγαίου κώδικα. Στην Python για τη δημιουργία του πηγαίου κώδικα διατίθεται ο επεξεργαστής (συντάκτης) πηγαίου κώδικα IDE (Integrated Development Environment-Ολοκληρωμένο Περιβάλλον Ανάπτυξης) του IDLE. Ο πηγαίος κώδικας αποθηκεύεται ως αρχείο με κατάληξη .py. Ο συντάκτης IDE υποστηρίζει τη στοίχιση του κειμένου με αυτόματη δημιουργία εσοχών, όπως απαιτεί η Python. Επίσης, γίνεται χρωματική επι -σήμανση σύνταξης , όπου όλα τα διαφορετικά τμήματα του Python προγράμματος χρωματίζονται κατάλληλα.

Εσοχή κώδικα (Indentation)
Η εσοχή, οι 4 κενοί χαρακτήρες στην αρχή της γραμμής, είναι σημαντική στην Python. Οι αρχικοί κενοί χαρακτήρες στην αρχή της γραμμής καθορίζουν το επίπεδο εσοχής της λογικής γραμμής με αποτέλεσμα την ομαδοποίηση των εντολών. Το μήκος μιας εντολή στην Python αποτελεί μια λογική γραμμή. Η λογική γραμμή μπορεί να περιλαμβάνει περισσότερες γραμμές της οθόνης (μεγάλη εντολή π.χ. όταν υπάρχουν μηνύματα).
Οι εντολές που πάνε μαζί, πρέπει να έχουν το ίδιο επίπεδο εσοχής. Κάθε τέτοια ομάδα εντολών ονομάζεται μπλοκ (block) . Οι λάθος εσοχές μπορεί να προκαλέσουν σφάλματα, π.x. αν εκτελεστεί το παρακάτω παράδειγμα στον συντάκτη (στον συντάκτη δεν χρειάζεται στην αρχή κάθε εντολής prompt «>>>»), δεν θα τρέξει και η Python θα απαντήσει με ένα πλαίσιο μηνύματος λάθους, ότι υπάρχει ένα απρόσμενο κενό. Με την επιλογή «ΟΚ» στο μήνυμα, ο δρομέας, κατάλληλα χρωματισμένος, θα αναβοσβήνει στη θέση του κενού που δεν πρέπει να υπάρχει. Παρατηρούμε ότι η φράση « Υπάρχει ένα κενό διάστημα στην αρχή της γραμμής που είναι σφάλμα » είναι σχόλιο του προγραμματιστή και η Python το αντιλαμβάνεται από το σύμβολο της δίεσης ( # ), που υπάρχει μπροστά από το σχόλιο. Για να εμφανίζονται τα μηνύματα στην ελληνική γλώσσα από τον editor πρέπει: File t Options t Configure IDLE t General (από το παράθυρο Settings που ανοίγει) t Utf-8 t Apply t OK.

i = 3
print ( 'Η τιμή είναι ' , i) # Υπάρχει ένα κενό διάστημα στην αρχή της γραμμής, που είναι σφάλμα
Όταν εξοικειωθείτε με τον συντάκτη, πληκτρολογήστε και αποθηκεύστε τον παραπάνω κώδικα με όνομα «dokimi.py». Μετά εκτελέσετε τον και επιβεβαιώστε όσα προαναφέρθηκαν.
Για να ανοίξει ο συντάκτης επιλέγουμε: File t New File ή τον αντίστοιχο συνδυασμό πλήκτρων (Εικόνα 1.4) και εμφανίζεται το παράθυρο του συντάκτη (Εικόνα 1.5).
Εικόνα 1.4 . Εκκίνηση του συντάκτη πηγαίου κώδικα IDE του IDLE, της γλώσσας Python

Εικόνα 1.5 Παράθυρο του συντάκτη πηγαίου κώδικα IDE του IDLE, της γλώσσας Python
Αν θέλουμε, για παράδειγμα, να δημιουργήσουμε στον συντάκτη τον πηγαίο κώδικα που να περιέχει τη φράση : «Welcome to the Python world!» και να τον αποθηκεύσουμε σε ένα αρχείο με το όνομα my\_first\_program και μετά να το «τρέξουμε», ακολουθούμε τα εξής:
Ανοίγουμε το παράθυρο του συντάκτη με τη διαδικασία που προαναφέρθηκε (από το διερμηνευτή της γλώσσας επιλέγουμε: File t New File) και πληκτρολογούμε print " Welcome to the Python world!" (Εικόνα 1.6).

Εικόνα 1.6 . Ο πηγαίος κώδικας στο συντάκτη IDE του IDLE, της γλώσσας Python.
Για την αποθήκευση του πηγαίου κώδικα από τον συντάκτη για πρώτη φορά, επιλέγουμε από το μενού: File t Save as και ανοίγει o browser για επιλογή φακέλου και ονόματος του αρχείου. Για αποθήκευση αλλαγών σε ήδη υπάρχον αρχείο επιλέγουμε: File t Save και αποθηκεύονται οι αλλαγές μας, χωρίς καμιά άλλη ενέργεια. Να σημειωθεί, ότι αν θέλουμε να αποθηκεύσουμε για πρώτη φορά ένα αρχείο και επιλέγουμε: File t Save, ο ίδιος ο συντάκτης θα μας ζητήσει ένα νέο όνομα για το αρχείο. Η επέκταση του ονόματος του αρχείου στην Python, είναι .py και προστίθεται αυτόματα.

Για να τρέξουμε το πρόγραμμα , πρέπει πρώτα να αποθηκευτεί. Να σημειωθεί, ότι κάθε φορά που κάνουμε κάποια αλλαγή στο πρόγραμμά μας, θα πρέπει να αποθηκεύουμε (όπως πάντοτε) τις αλλαγές. Για να τρέξουμε το πρόγραμμα επιλέγουμε: File t Run Module ή το αντίστοιχο πλήκτρο (Εικόνα 1.7) και εμφανίζεται το αποτέλεσμα στην οθόνη (Εικόνα 1.8).
Εικόνα 1.7 Εκτέλεση του προγράμματος στη γλώσσα Python.
Εικόνα 1.8 Εμφάνιση του αποτελέσματος εκτέλεσης του προγράμματος, στη γλώσσα Python.
Αν δεν έχουμε αποθηκεύσει το πρόγραμμα, εμφανίζεται το πλαίσιο διαλόγου της εικόνας 1.9.

Εικόνα 1.9 Πλαίσιο διαλόγου για αποθήκευση του προγράμματος, προκειμένου να εκτελεσθεί, στη γλώσσα Python.
Επιλέγουμε OK στο πλαίσιο διαλόγου. Επειδή το πρόγραμμα αποθηκεύεται για πρώτη φορά, ανοίγει ο browser και ζητείται ο φάκελος και το όνομα του αρχείου (σε τυχόν επόμενες αποθηκεύσεις του ίδιου προγράμματος, όταν πραγματοποιούμε αλλαγές και θέλουμε να το τρέξουμε, ενώ δεν το έχουμε αποθηκεύσει, δεν ξαναεμφανίζεται ο browser και οι αλλαγές αποθηκεύονται αυτόματα στο αρχείο, που του έχουμε ήδη δώσει όνομα). Επιλέγουμε το φάκελο που επιθυμούμε και πληκτρολογούμε στο αντίστοιχο πεδίο το όνομα «my\_first\_program» (Εικόνα 1.10). Επιλέγουμε Αποθήκευση και εμφανίζεται το αποτέλεσμα του προγράμματος στην οθόνη (Εικόνα 1.8).

Εικόνα 1.10 Πλαίσιο διαλόγου για αποθήκευση του προγράμματος, προκειμένου να εκτελεσθεί, στη γλώσ -σα Python
Για άνοιγμα ενός υπάρχοντος αρχείου με πηγαίο κώδικα Python από τον συντάκτη, επιλέγουμε από το μενού: File t Open και ανοίγει o browser και επιλέγουμε το αρχείο από το φάκελο που το έχουμε αποθηκεύσει.
Για κλείσιμο του συντάκτη επιλέγουμε από το μενού: File t Close ή File t Exit.
Στη συνέχεια παρουσιάζονται τα βασικά στοιχεία της γλώσσας Python και αμέσως μετά θα ακολουθήσει η μετατροπή αλγορίθμων σε γλώσσα Python. Η εκμάθηση της γλώσσας προγραμματισμού Python θα γίνει μέσα από τα παραδείγματα.

Αναγνωριστικά: είναι τα ονόματα που χρησιμοποιούνται για να ορίσουμε το όνομα της μεταβλητής, συνάρτησης κ.λπ. Τα αναγνωριστικά - ονόματα μπορεί να αποτελούνται από γράμματα του λατινικού αλφαβήτου (A - Z, a - z), τον χαρακτήρα \_ (underline) και τα ψηφία (0 έως 9), αρκεί ο πρώτος χαρακτήρας να μην είναι ψηφίο. Π.χ. Έγκυρα ονόματα-αναγνωριστικά είναι: first\_name, code1, x, a1, \_a, price\_sold.
Δεσμευμένες λέξεις: είναι οι λέξεις που χρησιμοποιεί η Python για εντολές.
Αριθμητικές εκφράσεις: είναι οι μαθηματικές παραστάσεις, που αποτελούνται από αριθμούς ή αριθμητικές μεταβλητές ή συναρτήσεις και τα σύμβολα των πράξεων δηλαδή τους αριθμητικούς τελεστές.

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

- + (πρόσθεση)
- * ( αφαίρεση)
- / (διαίρεση)
- ** (δύναμη, πχ. 2 $^{3}$-2**3)
% (το υπόλοιπο ακέραιας διαίρεσης)
Τύποι δεδομένων: Η Python υποστηρίζει τους παρακάτω τύπους δεδομένων
Ακέραιοι: είναι οι γνωστοί ακέραιοι αριθμοί από τα μαθηματικά. Π.χ. ο αριθμός 3, 198,-4, κ.λπ.
Κινητής υποδιαστολής: είναι οι πραγματικοί αριθμοί. Π.χ. 3.14 και 28.2Ε-5, όπου το Ε δηλώνει δύναμη του 10, δηλαδή ο αριθμός 28.2Ε-5 σημαίνει 28.2*10-5.
Μιγαδικοί αριθμοί: είναι οι αριθμοί-2+3j
Λογικές: είναι ο τύπος που μπορεί να πάρει μόνο δύο τιμές True (Αληθής) ή False (Ψευδής).

Συμβολοσειρές: είναι μια ακολουθία χαρακτήρων που ορίζεται με μονά ή διπλά εισαγωγικά, αρκεί με όποια ξεκινάμε με την ίδια να κλείνουμε. Π.χ. "Σήμερα είναι μια ηλιόλουστη μέρα" ή 'Αύριο θα έχει κρύο' ή 'Σταδίου 1125' κλπ.

1.2. Δομή ακολουθίας
Θα περιγράψουμε τις τρεις βασικές εντολές της Python για να δώσουμε τα πρώτα απλά παραδείγματα σε δομή ακολουθίας.

1.2.1. Εντολή εκχώρησης ή καταχώρησης τιμής
Γενική μορφή: <όνομα μεταβλητής ή μεταβλητών> = τιμή ή τιμές σε πλήρη αντιστοιχία.
Λειτουργία: Καταχωρείται η τιμή του δεξιού μέλους στη μνήμη στη μεταβλητή με το όνομα - αναγνωριστικό που έχουμε ορίσει στο αριστερό μέλος.

Π.χ. x=1
#καταχωρείται στη μεταβλητή x η τιμή 1
x=x+15
# αυξάνεται η τιμή της μεταβλητής x κατά 15
οnoma='Άννα'
#καταχωρείται στη μεταβλητή onoma η τιμή Άννα
m1=m2=m3=23
# στις μεταβλητές m1, m2, m3 καταχωρείται η ίδια τιμή 23
x,y=10,18
#στη μεταβλητή x εκχωρείται η τιμή 10 και στη y η τιμή 18
x,y,z=3,7,'Μαρία'
#στη μεταβλητή χ εκχωρείται η τιμή 3, στη y η τιμή 7 και στη ζ η τιμή Μαρία.

1.2.2. Εκχώρηση τιμής σε μια μεταβλητή από το πληκτρολόγιο
Γενική μορφή: όνομα μεταβλητής= input ( "κείμενο προς εμφάνιση ")
Λειτουργία: Στο παράθυρο του διερμηνευτή, εμφανίζεται το κείμενο που έχουμε πληκτρολογήσει, μέσα στην παρένθεση της ενσωματωμένης συνάρτησης (στις συναρτήσεις θα αναφερθούμε σε επόμενη παράγραφο) input. Στη συνέχεια, ο υπολογιστής περιμένει να πληκτρολογήσουμε μια τιμή. Όταν πατήσουμε το Enter, η τιμή που πληκτρολογήσαμε καταχωρείται στη μεταβλητή.

1.2.3. Εμφάνιση τιμής
Γενική μορφή: print κείμενο ή όνομα μεταβλητής
Λειτουργία: Εμφανίζει στο παράθυρο του διερμηνευτή, ό,τι έχουμε ορίσει μέσα στην παρένθεση της ενσωματωμένης συνάρτησης print. Μπορούμε να εμφανίσουμε ένα δικό μας κείμενο, αρκεί να βρίσκεται μέσα σε διπλά ή μονά εισαγωγικά ή την τιμή μιας μεταβλητής δίνοντας μόνο το όνομα της χωρίς εισαγωγικά.
Παράδειγμα 1-1. Θέλουμε να κατεβάσουμε στο κινητό μας τηλέφωνο μια εφαρμογή. Η ταχύτητα σύνδεσής μας στο διαδίκτυο είναι 1,6 ΜΒ/δευτερόλεπτο. Γράψτε σε γλώσσα Python πρόγραμμα, που δέχεται ως είσοδο το μέγεθος της εφαρμογής σε ΜΒ και υπολογίζει σε πόσο χρόνο θα κατέβει η εφαρμογή.

Αλγόριθμος Download
Γράψε ' Δώσε το μέγεθος της εφαρμογής'
Διάβασε μέγεθος
Χρόνος<-- μέγεθος/1,6
Γράψε χρόνος
Τέλος Download

#Download
megethos=input("Δώσε το μέγεθος της εγγραφής")
time=megethos/1.6
print time

Παρατήρηση
Για την εισαγωγή σχολίων , κατάσταση όπου μπορούμε να εισάγουμε επεξηγηματικά σχόλια στο πρόγραμμά μας, θέτουμε μπροστά το σύμβολο # . Με αυτόν τον τρόπο, όταν κάποιος δει το πρόγραμμά μας, θα καταλάβει πιο εύκολα τι ακριβώς κάνει και πώς σκεφτήκαμε να το φτιάξουμε.
Παράδειγμα 1-2: Να δημιουργήσετε πρόγραμμα σε γλώσσα Python που να δίνετε από το πληκτρολόγιο το ημερομίσθιο ενός εργαζομένου και στην συνέχεια να υπολογίζετε και το εμφανίζετε το ποσό που θα εισπράξει μετά από 25 ημέρες εργασίας.

Αλγόριθμος Ημερομίσθιο

Γράψε
'Δώσε το ημερομίσθιο'
Διάβασε
ημερομίσθιο
Μισθός<-- ημερομίσθιο*25

Γράψε
'Μισθός=',Μισθός
Τέλος Ημερομίσθιο
Παράδειγμα 1-3: Να δημιουργήσετε πρόγραμμα σε γλώσσα προγραμματισμού Python, όπου θα δίνετε την ακτίνα του κύκλου και να υπολογίζετε και να εμφανίζετε το μήκος της περιφέρειας και το εμβαδόν του κύκλου.
Αλγόριθμος Κύκλος

Γράψε
'Δώσε ακτίνα κύκλου'
Διάβασε ακτίνα

Π<--3.14
Περιφέρεια<-- ακτίνα*2*π
Εμβαδόν<-- ακτίνα^2*π

Γράψε
'Περιφέρεια κύκλου=',Περιφέρεια
Γράψε 'Εμβαδόν κύκλου=', Εμβαδόν
Τέλος Κύκλος

Παρατήρηση
Η μεταβλητή a (=ακτίνα κύκλου) είναι πραγματική. Η Python δεν απαιτεί να δηλώσουμε τον τύπο της μεταβλητής a πριν τη χρησιμοποιήσουμε, αλλά για να διασφαλίσουμε ότι η τιμή που θα δοθεί είναι πραγματικός αριθμός, μετατρέπουμε την είσοδο σε πραγματικό αριθμό με τη συνάρτηση float(). Παρόμοια, μια τιμή μπορεί να μετατραπεί σε ακέραια με τη συνάρτηση int(): π.χ. όταν θέλουμε να διαβάσουμε ακέραιο αριθμό από το πληκτρολόγιο χρησιμοποιούμε την εντολή: a=int(input('Δώσε ακέραιο αριθμό:'))

#periferia-emvadon circle
a=float(input('Δώσε ακτίνα κύκλου'))
pi=3.14
periferia=a*2*pi
emvadon=a**2*pi
print 'Μήκος περιφέρειας κύκλου:',periferia
print 'Εμβαδόν κύκλο:', emvadon

#Hmeromisthio
imeromisthio=input("Δώσε το ημερομίσθιο:")
misthos= imeromisthio*25
print "Μισθός=",misthos

Ερωτήσεις εμπέδωσης
- 1. Ποιους τύπους δεδομένων υποστηρίζει η γλώσσα python;
- 2. Η εντολή x=y=z=45, τι κάνει κατά την εκτέλεσή της;
- 3. Η εντολή onoma, epitheto='Μαρία','Σωτηρίου', τι κάνει κατά την εκτέλεσή της;
- 4. Μεταφράστε τα παρακάτω τμήματα αλγορίθμων σε γλώσσα Python:

| Γράψε  "Δώσε ακέραιο αριθμό" Διάβασε  α   |
|-------------------------------------------|
| Χ<--100                                   |
| Διάβασε  υ                                |
| Χ<--χ+υ                                   |
| Ον<--"ΑΝΝΑ"                               |
| Επ<--"ΧΑΝΟΥ"                              |
| Εμφάνισε  Ον, Επ                          |
| Διάβασε  χ                                |
| Χ<--χ^2                                   |
| Ψ<--χ+υ                                   |
| Εμφάνισε  χ,ψ                             |

Δραστηριότητες
- 1. Να μετατρέψετε τον παρακάτω Αλγόριθμο σε γλώσσα προγραμματισμού Python:
Αλγόριθμος Ασκ\_1
Εμφάνισε "Δώσε την τιμή του προϊόντος"

Διάβασε Τ
Εμφάνισε "Δώσε τον φόρο που αντιστοιχεί στο προϊόν"

Διάβασε Φ

Φορ ← Τ*Φ
ΤΤ ← Τ+Φορ

Γράψε ΤΤ

Τέλος Ασκ\_1
- 2. Να γράψετε πρόγραμμα σε γλώσσα Python που να δέχεται από το πληκτρολόγιο τα ύψη τριών μαθητών σε εκατοστά και να εμφανίζει το μέσο ύψος τους σε μέτρα.
- 3. Να γράψετε πρόγραμμα σε γλώσσα Python που να δέχεται βαθμούς Φαρενάιτ και να υπολογίζει και εμφανίζει τους αντίστοιχους βαθμούς Κελσίου, λαμβάνοντας υπόψη τον τύπο: Κελσίου=5/9 (Φαρενάιτ-32).
- 4. Να γράψετε πρόγραμμα σε γλώσσα Python που να δέχεται την τιμή ενός προϊόντος, να υπολογίζει και να εμφανίζει το ΦΠΑ του και την τελική τιμή αγοράς του. Δεδομένου ότι το ΦΠΑ του προϊόντος είναι 23% και η Τελική τιμή του είναι Τιμή προϊόντος + ΦΠΑ.
- 5. Μία παροχή νερού μας δίνει 10 lt ανά 9 δευτερόλεπτα. Να γράψετε πρόγραμμα σε γλώσσα Python που να δίνουμε τις διαστάσεις μιας δεξαμενής νερού και να υπολογίζει το χρόνο που χρειάζεται για να γεμίσει η δεξαμενή.
- 6. Να γράψετε πρόγραμμα σε γλώσσα Python που να δίνετε από το πληκτρολόγιο την βάση και το ύψος ενός τριγώνου σε εκατοστά. Στη συνέχεια να υπολογίζει και να εμφανίζει το εμβαδόν του τριγώνου σε εκατοστά, σύμφωνα με το τύπο: Ε=(Β*Υ)/2.

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

| Γενική Μορφή                                                                                                                                                                                                                                                                       | Παραδείγματα                                                                                                                                             |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1η περίπτωση if  <συνθήκη>:  εντολές αν η συνθήκη είναι   Αληθής μπλοκ  εντολών {                                                                                                                                                                                                  | Παράδειγμα 1 # εμφάνισης της απόλυτης τιμής ενός ακεραίου αριθμού a = int (input ('Δώσε ένα ακέραιο αριθμό ')) if a <= 0:  a=(-1)*a print a              |
| εντολές                                                                                                                                                                                                                                                                            | Παράδειγμα 1 # εμφάνισης της απόλυτης τιμής ενός ακεραίου αριθμού a = int (input ('Δώσε ένα ακέραιο αριθμό ')) if a <= 0:  a=(-1)*a print a              |
| Λειτουργία: Αν η συνθήκη είναι Αληθής εκτε-                                                                                                                                                                                                                                        | Παράδειγμα 1 # εμφάνισης της απόλυτης τιμής ενός ακεραίου αριθμού a = int (input ('Δώσε ένα ακέραιο αριθμό ')) if a <= 0:  a=(-1)*a print a              |
| λούνται οι εντολές του μπλοκ.                                                                                                                                                                                                                                                      | Παράδειγμα 1 # εμφάνισης της απόλυτης τιμής ενός ακεραίου αριθμού a = int (input ('Δώσε ένα ακέραιο αριθμό ')) if a <= 0:  a=(-1)*a print a              |
| 2η περίπτωση if  <συνθήκη>:                                                                                                                                                                                                                                                        | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| εντολές αν η συνθήκη είναι Αληθής 1. μπλοκ  εντολών {                                                                                                                                                                                                                              | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| else:                                                                                                                                                                                                                                                                              | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| εντολές αν η συνθήκη είναι Ψευδής 2. μπλοκ  εντολών {                                                                                                                                                                                                                              | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| εντολές                                                                                                                                                                                                                                                                            | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| Λειτουργία: Αν η συνθήκη είναι Αληθής εκτε- λούνται οι εντολές του 1ου μπλοκ του if, ενώ αν  η συνθήκη είναι Ψευδής εκτελούνται οι εντολές  του 2ου μπλοκ του else.                                                                                                                | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| 3η περίπτωση  (Σύνθετη δομή) if  <συνθήκη1>:                                                                                                                                                                                                                                       | #έλεγχος αν ένας αριθμός είναι θετιός ή αρνητικός ή μηδέν                                                                                                |
| εντολές αν η συνθήκη1 είναι Αληθής 1. μπλοκ  εντολών {                                                                                                                                                                                                                             | a=int(input('Δώσε ένα ακέραιο αριθμό '))                                                                                                                 |
| elif  <συνθήκη2>: 2. μπλοκ                                                                                                                                                                                                                                                         | print "Θετικός"                                                                                                                                          |
| εντολές αν η συνθήκη1 είναι Αληθής εντολών {                                                                                                                                                                                                                                       | print "Αρνητικός"                                                                                                                                        |
| else: 3. μπλοκ  εντολών {                                                                                                                                                                                                                                                          | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| εντολές αν η συνθήκη1 και η   συνθήκη2 είναι Ψευδής εντολές                                                                                                                                                                                                                        | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |
| Λειτουργία:  Αν η συνθήκη1 είναι Αληθής, εκτε- λούνται οι εντολές του 1ου μπλοκ, αν είναι Ψευ- δής, ελέγχει την 2η συνθήκη. Αν η 2η συνθήκη βγει Αληθής, εκτελεί τις εντολές του 2ου μπλοκ  εντολών, αν είναι και αυτή Ψευδής τότε εκτε- λούνται οι εντολές του 3ου μπλοκ εντολών. | Παράδειγμα 2 #έλεγχος αν ένας αριθμός είναι άρτιος ή περιττός a=int(input('Δώσε ένα ακέραιο αριθμό ')) if a/2=0:  print "Άρτιος" else:  print "Περιττός" |

Σημείωση: Τα μπλοκ των εντολών που θα εκτελεστούν σε όλες τις περιπτώσεις της if, ορίζονται ως ένα μπλοκ με εσοχή βάζοντας τη μια εντολή κάτω από την άλλη. Αν το μπλοκ εντολών αποτελείται από μια εντολή, τότε μπορεί να γραφτεί στην ίδια γραμμή με την if ή την else. Π.χ.
a=input('give a number ')
if a>0: print a,'>0'
else: print a,'<0'

1.3.1. Λογικές εκφράσεις
Για την σύνταξη της συνθήκης που χρησιμοποιεί η εντολή της δομής επιλογής if, χρειάζεται να συνταχθεί μια λογική έκφραση, η οποία θα δίνει σαν αποτέλεσμα την τιμή Αληθής ή Ψευδής. Για την σύνταξη μιας λογικής έκφρασης χρησιμοποιούνται οι συγκριτικοί τελεστές:
- > Μεγαλύτερο
- >= Μεγαλύτερο ή ίσο
- < Μικρότερο
- <= Μικρότερο ή ίσο
- != Διάφορο
- == Ισότητα
Τελεστές λογικών πράξεων: not, or, and, με τις ακόλουθες λογικές λειτουργίες

| P      | Q      | P and Q   | P or Q   | Not P   |
|--------|--------|-----------|----------|---------|
| ΑΛΗΘΗΣ | ΑΛΗΘΗΣ | ΑΛΗΘΗΣ    | ΑΛΗΘΗΣ   | ΨΕΥΔΗΣ  |
| ΑΛΗΘΗΣ | ΨΕΥΔΗΣ | ΨΕΥΔΗΣ    | ΑΛΗΘΗΣ   | ΨΕΥΔΗΣ  |
| ΨΕΥΔΗΣ | ΑΛΗΘΗΣ | ΨΕΥΔΗΣ    | ΑΛΗΘΗΣ   | ΑΛΗΘΗΣ  |
| ΨΕΥΔΗΣ | ΨΕΥΔΗΣ | ΨΕΥΔΗΣ    | ΨΕΥΔΗΣ   | ΑΛΗΘΗΣ  |
a>=10
2. b!=0
3. (a<10) and (b<0)
Παράδειγμα 1-4 Να υπολογιστεί ο μεγαλύτερος δύο ακέραιων αριθμών που δίνονται από το πληκτρολόγιο.

1ος τρόπος με απλή επιλογή
Αλγόριθμος ΜΑΧ1
Διάβασε χ,ψ
μεγ ← x
Αν μεγ < y τότε
μεγ ← y

Τέλος\_αν
Τέλος ΜΑΧ1
# Ο μεγαλύτερος δύο αριθμών
x=int(input("Δώσε τον 1ο ακέραιο αριθμό "))
y=int(input("Δώσε τον 2ο ακέραιο αριθμό "))
max=x
if max<y:
max=y
print "Μεγαλύτερος ο ",max
2ος τρόπος με σύνθετη επιλογή

| Αλγόριθμος ΜΑΧ2      | # Ο μεγαλύτερος δύο αριθμών                 |
|----------------------|---------------------------------------------|
| Διάβασε χ,ψ          | x=int(input("Δώσε τον 1ο ακέραιο αριθμό ")) |
| Αν x < y  τότε       | y=int(input("Δώσε τον 2ο ακέραιο αριθμό ")) |
| μεγ ← y              | if x>y:                                     |
| Αλλιώς               | max=x                                       |
| μεγ ← x              | else:                                       |
| Τέλος\_αν Τέλος  ΜΑΧ2 | max=y print "Μεγαλύτερος ο ",max            |

Παράδειγμα 1-5 Ο δείκτης μάζας σώματος (ΔΜΣ) είναι μία ένδειξη για το βαθμό παχυσαρκίας ενός ατόμου και υπολογίζεται από τον τύπο: βάρος/ύψος^2. Δεδομένων του βάρους και του ύψους ενός ατόμου, να εμφανίσετε χαρακτηρισμό που αφορά στο βαθμό παχυσαρκίας του με βάση το ΔΜΣ. Υπάρχουν τέσσερεις περιπτώσεις για τον χαρακτηρισμό του ατόμου, που μπορούν να εξετασθούν με μια δομή πολλαπλής επιλογής.

| ΔΜΣ         | Χαρακτηρισμός ατόμου   |
|-------------|------------------------|
| <18,5       | Ελλιποβαρές            |
| 18,5 - 24,9 | Φυσιολογικό βάρος      |
| 25 - 29,9   | Υπέρβαρο               |
| >30         | Πάσχει από παχυσαρκία  |
Αλγόριθμος ΧαρακτηρισμόςΑτόμου Γράψε 'Δώσε βάρος' Διάβασε βάρος Γράψε 'Δώσε ύψος' Διάβασε ύψος
ΔΜΣ ← βάρος / ύψος ^ 2
Αν ΔΜΣ < 18.5
ΔΜΣ < 18.5 τότε

Γράψε
'ελλιποβαρές άτομο'
Αλλιώς\_αν
ΔΜΣ < 25 τότε
Γράψε 'άτομο με φυσιολογικό βάρος'
Αλλιώς\_αν ΔΜΣ < 30 τότε
Γράψε 'υπέρβαρο άτομο'

αλλιώς

Γράψε

Τέλος\_αν
Τέλος Χαρακτηρισμός Ατόμου

#ΧαρακτηρισμόςΑτόμου
varos=input("Δώσε βάρος")
ypsos=input("Δώσε ύψος")
dms=varos/(ypsos**2)
if dms<18.5:
print 'ελλιποβαρές άτομο'
elif dms<25:
print 'άτομο με φυσιολογικό βάρος'
elif dms<30:
print 'υπέρβαρο άτομο'
else:
print 'άτομο που πάσχει από παχυσαρκία'
'άτομο που πάσχει από παχυσαρκία'

Παράδειγμα 1-6 ( Εμφωλευμένη Δομή επιλογής)
Στο ταχυδρομείο το κόστος αποστολής υπολογίζεται συναρτήσει του προορισμού και του βάρους της επιστολής με βάση τον πίνακα. Δεδομένων του προορισμού και του βάρους μιας επιστολής, να εμφανίσετε το ποσό που στοιχίζει η αποστολή της.

|            |           | Βάρος αποστολής         | Βάρος αποστολής        |
|------------|-----------|-------------------------|------------------------|
|            |           | Μέχρι και 100 γραμμάρια | Πάνω από 100 γραμμάρια |
| Προορισμός | Εσωτερικό | 1€                      | 2€                     |
| επιστολής  | Εξωτερικό | 2.50€ 4€                | 2€                     |

1ος Τρόπος ¨Με εμφωλευμένη Δομή Επιλογής

Αλγόριθμος Επιστολή1

Γράψε 1.
Εσωτερικό'
'2.Εξωτερικό'
Γράψε 'Επιλογή' Διάβασε προορισμό Γράψε 'Δώσε βάρος'
Διάβασε βάρος
Αν προορισμός = 1 τότε Αν βάρος <= 100
κόστος ← 1
αλλιώς
κόστος ← 2
τέλος\_αν
αλλιώς Αν βάρος <= 100 τότε
κόστος ← 2.5
αλλιώς
κόστος ← 4
τέλος\_αν
Γράψε κόστος
Τέλος Επιστολή1

#Επιστολή1
print '1.Εσωτερικό'
print '2. Εξωτερικό'
proorismos=input("Επιλογή: ")
varos=input("Δώσε βάρος: ")
if proorismos==1:
if varos<=100:
kostos=1
else:
kostos=2
else:
if varos<=100:
kostos=2.5
else:
kostos=4
print 'Κόστος μεταφοράς της επιστολής:',kostos

2ος Τρόπος ¨Με σύνθετη Δομή Επιλογής
```
Αλγόριθμος Επιστολή2 Γράψε 1. Εσωτερικό' '2.Εξωτερικό' Γράψε 'Επιλογή' Διάβασε πρ Γράψε 'Δώσε βάρος' Αν πρ 1 και βάρος <= 100 τότε κόστος ← 1 αλλιώς\_αν πρ= 1 και βάρος > 100 τότε κόστος ← 2 αλλιώς\_αν πρ = 2 και βάρος <= 100 τότε κόστος ← 2.5 αλλιώς κόστος ← 4 τέλος\_αν Γράψε 'Κόστος=',κόστος Τέλος Επιστολή2 #Επιστολή2 print '1.Εσωτερικό' print '2. Εξωτερικό' pr=input("Επιλογή: ") varos=input("Δώσε βάρος: ") if pr==1 and varos<=100: kostos=1 elif pr==1 and varos>100: kostos=2 elif pr==2 and varos<=100: kostos=2.5 else: kostos=4 print 'Κόστος μεταφοράς της επιστολής:',kostos
```

Δραστηριότητες
- 1. Μελετήστε το παρακάτω πρόγραμμα.
- i. Τι πιστεύετε ότι κάνει;
- ii. Τι θα εμφανίζει το παρακάτω πρόγραμμα της Python, αν εκτελεστεί διαδοχικά για την τιμή 4, την 11, την 13, την 16, την 18, την 20 και την 23;
- iii. Τροποποιήστε το πρόγραμμα, ώστε αντί της εμφωλευμένης if ... else...if να χρησιμοποιήσετε την σύνθετη if... elif...elif...else...
```
test = input('Παρακαλώ δώσε το βαθμό που πήρες από το τεστ:') if test<=20: if test>= 18: print 'ΑΡΙΣΤΑ' else: if test >= 15: print 'ΚΑΛΑ' else: if test >= 10: print 'ΜΕΤΡΙΟΣ' else: print 'ΑΠΟΡΡΙΠΤΕΤΑΙ' else: print "Ο βαθμός που έδωσες είναι μεγαλύτερος του είκοσι"
```

- 2. Μια εταιρεία ηλεκτρικής ενέργειας χρεώνει την κατανάλωση του ρεύματος σύμφωνα με την παρακάτω κλίμακα:
-  Μέχρι 200 μονάδες (0-200) προς 0,25€/μονάδα
- Τις επόμενες 1000 μονάδες (201-1200) προς 0,40€/μονάδα
-  Τις πέρα των 1200 μονάδων προς 0,50€/μονάδα
Να γραφτεί πρόγραμμα σε γλώσσα Python που να δέχεται τον αριθμό των μονάδων που καταναλώθηκαν από τον πελάτη και να εμφανίζει το ποσό των χρημάτων που χρωστάει ο πελάτης στην εταιρεία ηλεκτρικής ενέργειας.
- 3. Να γραφτεί πρόγραμμα σε γλώσσα Python που να δέχεται τρεις ακέραιους αριθμούς και να εμφανίζει τον μεγαλύτερο και τον μικρότερο.
- 4. Να γραφτεί πρόγραμμα σε γλώσσα Python που να δέχεται 2 αριθμούς και ένα πρόσημο + (για την πρόσθεση) ή - (για την αφαίρεση) ή * (για τον πολλαπλασιασμό ) ή / (για την διαίρεση). Στη συνέχεια, να υπολογίζει και να εμφανίζει το αποτέλεσμα της πράξης που επέλεξε με τους δύο αριθμούς, εμφανίζοντας κατάλληλο μήνυμα.
- 5. Να γραφτεί πρόγραμμα σε γλώσσα Python που να υπολογίζει το μισθό ενός εργαζομένου, ο οποίος δουλεύει με σύμβαση ωρομισθίου σε μια εταιρεία. Να διαβάζει το όνομά του, τις ώρες εργασίας του μήνα, το ωρομίσθιό του και αν είναι έγγαμος ή άγαμος. Οι κρατήσεις που του γίνονται, εξαρτώνται από το ύψος του μισθού. Αν ο μισθός είναι μέχρι 1000€ το μήνα, έχει 15% κρατήσεις, ενώ διαφορετικά έχει 25% κρατήσεις. Επίσης, αν είναι έγγαμος, έχει ένα επίδομα 50€.
- 6. Σε τρεις διαφορετικούς αγώνες πρόκρισης στο άλμα εις μήκος, ένας άλτης πέτυχε τις επιδόσεις α, β, γ. Να γράψετε πρόγραμμα σε γλώσσα Python που:
- i. Να δέχεται τις τιμές α, β, γ.
- ii. Να υπολογίζει και να εμφανίζει τη μέση τιμή των παραπάνω τιμών.
- iii. Να εμφανίζει το μήνυμα προκρίθηκε, εάν η παραπάνω μέση τιμή είναι μεγαλύτερη από 8 μέτρα.
- 7. Η εφορία κάθε τέλος έτους φορολογεί τα αυτοκίνητα ανάλογα με τον κυβισμό τους, σύμφωνα με τον παρακάτω πίνακα:

| Κυβισμός      | Φόρος   |
|---------------|---------|
| 0 έως 1100    | 110€    |
| 1101 έως 1400 | 150€    |
| 1401 έως 2000 | 225€    |
| 2001 και πάνω | 600€    |
Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δέχεται τον κυβισμό ενός αυτοκινήτου, να υπολογίζει τον φόρο που του αναλογεί και στη συνέχεια να εμφανίζεται με κατάλληλο μήνυμα.
- 8. Ένα ταξιδιωτικό γραφείο οργανώνει εκδρομές 3ήμερες και 5ήμερες στην Κρήτη, Μυτιλήνη και Ρόδο με αεροπλάνο ή πλοίο. Οι τιμές για κάθε περίπτωση βρίσκονται στον παρακάτω πίνακα:

|            | Αεροπλάνο   | Αεροπλάνο   | Πλοίο   | Πλοίο   |
|------------|-------------|-------------|---------|---------|
| Προορισμός | 3ήμερη      | 5ήμερη      | 3ήμερη  | 5ήμερη  |
| Κρήτη      | 500€        | 700€        | 300€    | 500€    |
| Μυτιλήνη   | 300€        | 500€        | 200€    | 400€    |
| Ρόδος      | 600€        | 800€        | 400€    | 700€    |
Να γραφτεί πρόγραμμα σε γλώσσα Python που να δέχεται τον προορισμό, το μέσο μεταφοράς, τις μέρες διαμονής και το πλήθος των ατόμων. Στη συνέχεια, να υπολογίζει και να εμφανίζει το κόστος της εκδρομής.

1.4. Δομή επανάληψης
Η δομή επανάληψης μας επιτρέπει την εκτέλεση ενός μπλοκ εντολών, περισσότερες από μία φορές. Η γλώσσα προγραμματισμού Python υποστηρίζει δύο τύπους επαναλήψεων:
-  Την for , όταν το πλήθος των επαναλήψεων είναι προκαθορισμένο.
- while , όταν το πλήθος των επαναλήψεων δεν είναι προκαθορισμένο, αλλά εκτελούνται για όσο ισχύει μια συνθήκη.

1.4.1. Η δομή επανάληψης While..
Γενική μορφή:
while <συνθήκη>: {
εντολή (-ές)
μπλοκ εντολών
Λειτουργία: Η δομή επανάληψης while… επαναλαμβάνει το μπλοκ εντολών, όσο η συνθήκη είναι Αληθής, ενώ όταν η συνθήκη γίνει Ψευδής, τότε εκτελεί τις εντολές του προγράμματος, μετά το μπλοκ των εντολών της. Το μπλοκ των εντολών καθορίζεται, όπως και στην if…, γράφοντάς τις παραμέσα, στοιχισμένες τη μία κάτω από την άλλη.
Παράδειγμα 1-7. Να γραφτεί πρόγραμμα σε γλώσσα Python που να διαβάζει ηλικίες και να υπολογίζει τον μέσο όρο ηλικιών. Το πρόγραμμα θα τερματίζεται, όταν πληκτρολογηθεί αριθμός μικρότερος ή ίσος του μηδενός.

| Αλγόριθμος                                                                                                                                                                                                                                                                        | Πρόγραμμα                                                                                                                                                                                                     |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Αλγόριθμος  Ηλικίες  s<-- 0  i<-- 0 Εμφάνισε  "Δώσε ηλικία : " Διάβασε  h Όσο  h>0  επανάλαβε  S<--s+h  I<--i+1 Εμφάνισε  "Δώσε ηλικία : " Διάβασε  h  Τέλος\_επανάληψης Αν  i<>0 τότε  mo=s/i Εμφάνισε  "Μέσος όρος ηλικίας", mo Αλλιώς: Εμφάνισε  "Δεν δόθηκαν ηλικίες" Τέλος\_αν | # Μ.Ο. Ηλικιών s=0 i=0 h=input('Δώσε ηλικία: ') while  h>0:  s=s+h  i=i+1  h=input('Δώσε ηλικία: ') if  i!=0:  mo=s/i  print 'Μέσος όρος ηλικίας',mo else:  print 'Δεν δόθηκαν ηλικίες' τιμή της h N της h  N |

Σημειώσεις
-  Θα πρέπει πριν από την εντολή while... να έχουμε δώσει τιμή στη/στις μεταβλητή/-τες που χρησι -μοποιεί η συνθήκη, ώστε ανάλογα να εκτελεστεί ο βρόχος.
-  Θα πρέπει μέσα στο μπλοκ των εντολών να υπάρχει να υπάρχει κατάλληλη εντολή, ώστε να αλ-
λάζει τη τιμή της συνθήκης, για να μπορεί η συνθήκη να γίνει Ψευδής. Διαφορετικά ο βρόχος δεν θα τερματίσει.
Παράδειγμα 1-8 Ο καθηγητής έβαλε τους βαθμούς του Α' τετραμήνου στην Πληροφορική και θέλει να βρει το μέσο όρο του τμήματος και πόσοι μαθητές είναι άριστοι (βαθμός πάνω από 18). Οι βαθμοί κυμαίνονται από 0 έως 20. Δεδομένου ότι το πλήθος των μαθητών είναι άγνωστο, ο καθηγητής θέλει να τελειώσει την εισαγωγή των βαθμών όταν δώσει την ειδική τιμή -1. Το πλήθος των μαθητών δεν είναι γνωστό εκ των προτέρων, μπορεί να είναι και μηδέν (0).

| Αλγόριθμος                                                                                                                                                                                                                                                                                                                                                                | Πρόγραμμα                                                                                                                                                                                                                                                                                        |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Αλγόριθμος  Πληροφορική  πλ\_αρ ← 0  πλ\_μαθ ←0  αθρ ← 0 Εμφάνισε  'Δώσε βαθμό μαθητή' Διάβασε  β Όσο  β <> -1  επανάλαβε Αν  β > 18  τότε πλ\_αρ ←πλ\_αρ + 1 τέλος\_αν άθρ← αθρ+ β πλ\_μαθ ← πλ\_μαθ + 1 Εμφάνισε 'Δώσε βαθμό μαθητή' Διάβασε  β τέλος\_επανάληψης Αν  πλ\_μαθ <> 0  τότε μ\_ο ← αθρ / πλς\_μαθ Γράψε  μ\_ο, πλ\_αρ αλλιώς Γράψε 'Δεν δόθηκε κανένας βαθμός' τέλος\_αν | #Πληροφορική pl\_ar=0 pl\_math=0 sum=0 b=input('Δώσε βαθμό μαθητή : ') while b!=-1:  if b>18:  pl\_ar=pl\_ar+1  sum=sum+b  pl\_math=pl\_math+1  b=input('Δώσε βαθμό μαθητή : ') if pl\_math!=0:  m\_o=sum/pl\_math  print 'Μέσος όρος=',m\_o,'Aριστούχοι= ',pl\_ar else:  print 'Δεν δόθηκε κανένας βαθμός' |

1.4.2. Η δομή επανάληψης for..
εντολή(-ές)
Γενική μορφή: for <μεταβλητή> in range (αρχή, μέχρι, βήμα) {
μπλοκ εντολών
Λειτουργία: Η δομή επανάληψης for ... εκτελεί το μπλοκ των εντολών του για ένα καθορισμένο αριθμό επαναλήψεων. Το πόσες φορές θα εκτελεστούν οι εντολές του μπλοκ καθορίζεται από την συνάρτηση range στην οποία δίνουμε ακέραιους αριθμούς που εκφράζουν την αρχή, το τέλος και το βήμα της μεταβλητής-μετρητής. Οι ενδείξεις αρχή και βήμα δεν είναι υποχρεωτικές, ενώ η ένδειξη μέχρι είναι υποχρεωτική. Στη περίπτωση που παραλειφθεί η αρχή, η αρίθμηση ξεκινά από το 0, ενώ αν παραλειφθεί το βήμα, θεωρεί ότι το βήμα είναι 1. Για τις συναρτήσεις στην Python θα αναφερθούμε αναλυτικότερα σε επόμενη παράγραφο.

Παράδειγμα 1-9 Διάφορες περιπτώσεις χρήσης της συνάρτησης range στο προγραμματιστικό περιβάλλον της Python.

| Αλγόριθμος                                 | Εντολή for....                    | Αποτέλεσμα     |
|--------------------------------------------|-----------------------------------|----------------|
| Για i από 0 μέχρι 4  Εμφάνισε i            | for i in range(5):  print i       | 0 1 2 3        |
| Για i από 1 μέχρι 3  Εμφάνισε i            | for i in range(1,4):  print i     | 4 1 2 3        |
| Για i από 0 μέχρι 30 με\_βήμα 5  Εμφάνισε i | for i in range(0,35,5):  print i  | 0              |
| Εμφάνισε i                                 | for i in range(0,35,5):  print i  | 5 10 15 20 25  |
| Για i από 5 μέχρι -1 με\_βήμα -1            | for i in range(5,-1,-1):  print i | 30 5 4 3 2 1 0 |

Παρατήρηση: Η τιμή του μέχρι που είναι μέσα στη παρένθεση του range, π.χ. το 5 στην 1η περίπτωση, δεν είναι η τελική τιμή του μετρητή των επαναλήψεων. Η τελική τιμή του μετρητή προκύπτει, αν από την τιμή του μέχρι αφαιρέσουμε το βήμα.
Παράδειγμα 1-10 Να γραφτεί πρόγραμμα σε γλώσσα Python που να διαβάζει 20 ηλικίες και να υπολογίζει τον μέσο όρο ηλικιών.

| Αλγόριθμος                                                                                                                                                                    | Πρόγραμμα                                                                                               |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
| Αλγόριθμος  Ηλικίες  s<-- 0  Για i από 1 μέχρι 20 Εμφάνισε  "Δώσε ηλικία : " Διάβασε  h  s<-- s+h Τέλος\_επανάληψης  mo=s/20 Εμφάνισε  "Μέσος όρος ηλικίας", mo Τέλος  Ηλικίες | #Ηλικίες s=0 for i in range(20):  h=input("Δώσε ηλικία:")  s=s+h mo=s/20 print "Μέσος όρος ηλικίας:",mo |

Παράδειγμα 1-11 Ο καθηγητής έβαλε τους βαθμούς του Α' τετραμήνου στην Πληροφορική και θέλει να βρει το μέσο όρο του τμήματος και πόσοι μαθητές είναι άριστοι (βαθμός πάνω από 18). Οι βαθμοί κυμαίνονται από 0 έως 20. Το πλήθος των μαθητών της τάξης είναι 23.

| Αλγόριθμος                                                                                                                                                                                                                                         | Πρόγραμμα                                                                                                                                                |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| Αλγόριθμος  Βαθμοί\_Πληροφορικής  πλ\_αρ<--0  αθρ<-- 0  Για i από 1 μέχρι 23 Εμφάνισε  "Δώσε βαθμό : " Διάβασε  β  αθρ<-- αθρ+β  Αν β>18 τότε  πλ\_αρ<--πλ\_αρ+1  Τέλος\_αν Τέλος\_επανάληψης  μ\_ο=αθρ/23 Εμφάνισε  μ\_ο,πλ\_αρ Τέλος  Βαθμοί\_Πληροφορικής | #Bαθμοί Πληροφορικής pl\_ar=0 sum=0 for i in range(23):  b=input('Δώσε βαθμό μαθητή : ')   sum=sum+b  if b>18:  pl\_ar=pl\_ar+1 m\_o=sum/23 print m\_o, pl\_ar |

1.4.3. Εύρεση του Μεγαλύτερου ή Μικρότερου από ένα σύνολο αριθμών
Όταν έχουμε ένα σύνολο αριθμών και θέλουμε να βρούμε τον ελάχιστο ή μέγιστο αριθμό αυτών, χρησιμοποιούμε τον παρακάτω αλγόριθμο:
- 1. Σε μεταβλητές max ή min, οι οποίες εκφράζουν αντίστοιχα την μεγαλύτερη ή μικρότερη τιμή που θα έχουν στο τέλος, δίνουμε Αρχική τιμή .

1η περίπτωση

Αυθαίρετες τιμές
Στο max δίνω την μικρότερη δυνατή τιμή.
min δίνω την μεγαλύτερη δυνατή τιμή.
Αυτήν την περίπτωση την χρησιμοποιούμε στις περιπτώσεις που το πεδίο τιμών της μεταβλητής είναι συγκεκριμένο. Π.χ. δίνω τους βαθμούς μαθητών [0,20]. Τότε έχω σαν Αρχικές τιμές:
max=0 min=20.

2η περίπτωση

Συγκεκριμένες τιμές
Στο max και στο min δίνω την πρώτη τιμή από το σύνολο των αριθμών.
Αυτήν την περίπτωση την χρησιμοποιούμε στις περιπτώσεις που το πεδίο τιμών της μεταβλητής δεν είναι ορισμένο. Π.χ. Πληκτρολογούμε αριθμούς και θέλουμε να βρούμε τον μεγαλύτερο και τον μικρότερο. Τότε έχω:
x=input('Δώσε αριθμό')
max=x
min=x

Αρχική τιμή. Υπάρχουν
δύο περιπτώσεις:
- 2. Κάθε νέα τιμή που δίνουμε στην μεταβλητή, την ελέγχουμε με το max ή το min για το μεγαλύτερο ή μικρότερο αντίστοιχα, δηλαδή μεταβλητή>max ή μεταβλητή< min και, αν ισχύουν οι παραπάνω συνθήκες, καταχωρούμε στο max ή στο min τη νέα τιμή της μεταβλητής.
Παράδειγμα 1-12 Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δίνονται από το πληκτρολόγιο 100 αριθμοί. Να βρίσκει και να εμφανίζει τον μεγαλύτερο από τους αριθμούς που πληκτρολογήθηκαν.
Παράδειγμα 1-13 Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δίνονται από το πληκτρολόγιο οι βαθμοί στο μάθημα της Πληροφορικής για 27 μαθητές. Οι βαθμοί που πληκτρολογούμε είναι από 0 έως 20. Να βρίσκει και να εμφανίζει τον μεγαλύτερο βαθμό.

#Μεγαλύτερος
max=0
for i in range(27): b=input('Δώσε βαθμό ') if b>max: max=b
print 'Μεγαλύτερος βαθμός ο ',max
Παράδειγμα 1-14 Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δίνονται από το πληκτρολόγιο οι βαθμοί στο μάθημα της Πληροφορικής για 27 μαθητές. Οι βαθμοί που πληκτρολογούμε είναι από 0 έως 20. Να βρίσκει και να εμφανίζει τον μικρότερο βαθμό.

#Μικρότερος
min=20
for i in range(27):
b=input('Δώσε βαθμό ') if b<min:
min=b
print 'Μικρότερος βαθμός ο ',min
Παράδειγμα 1-15 Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δίνονται από το πληκτρολόγιο οι βαθμοί στο μάθημα της Πληροφορικής για 27 μαθητές. Οι βαθμοί που πληκτρολογούμε είναι από 0 έως 20. Να βρίσκει και να εμφανίζει τον μεγαλύτερο και τον μικρότερο βαθμό.

Δραστηριότητες
- 1. Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δέχεται 100 αριθμούς από τον χρήστη και να εμφανίζει το πλήθος των άρτιων αριθμών που πληκτρολογήθηκαν.
- Σημείωση: Ο έλεγχος για τους άρτιους αριθμούς είναι αν το υπόλοιπο της διαίρεσης ενός αριθμού με το 2 είναι μηδέν. Δηλαδή να ισχύει χ%2==0
- 2. Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δέχεται αριθμούς από τον χρήστη μέχρι να δώσει το μηδέν και να εμφανίζει το πλήθος των περιττών που πληκτρολογήθηκαν.
- 3. Να γραφτεί πρόγραμμα σε γλώσσα Python, που να δέχεται 100 αριθμούς από το πληκτρολόγιο. Στη συνέχεια να υπολογίζει και να εμφανίζει το πλήθος των θετικών, το πλήθος των αρνητικών και το πλήθος των μηδενικών που δόθηκαν.
- 4. Να γραφτεί πρόγραμμα που να υπολογίζει το άθροισμα 1+2+3+...+100.
- 5. Να γραφτεί πρόγραμμα που να υπολογίζει το άθροισμα 1$^{2}$+3$^{2}$+5$^{2}$+...+50$^{2}$..
- 6. Σε ένα τμήμα 27 μαθητών Γ' Λυκείου, θέλουμε να υπολογίσουμε το ποσοστό των μαθητών που πήραν γραπτό βαθμό στη Πληροφορική κάτω από 10, το ποσοστό των μαθητών που πήραν βαθμό από 10 μέχρι 15 και το ποσοστό με βαθμό μεγαλύτερο του 15. Να γραφτεί πρόγραμμα, που να δέχεται τους βαθμούς των μαθητών, να υπολογίζει και να εμφανίζει τα παραπάνω ποσοστά.
- 7. Για κάθε μαθητή δίνονται τα στοιχεία: ονοματεπώνυμο, προφορικός και γραπτός βαθμός ενός μαθήματος. Να γραφτεί πρόγραμμα που να εκτελεί τις παρακάτω λειτουργίες:
- i. Να διαβάζει τα στοιχεία πολλών μαθητών και σταματά, όταν δοθεί ως ονοματεπώνυμο το κενό.
- ii. Να ελέγχει αν ο προφορικός και ο γραπτός βαθμός είναι από 0 μέχρι 20. Στην περίπτωση που δεν είναι ο βαθμός στα επιτρεπτά όρια, να ξαναδιαβάζεται ο βαθμός μέχρι να δώσουμε τον σωστό βαθμό.
- iii. Να υπολογίζει τον τελικό βαθμό του μαθήματος, ο οποίος είναι άθροισμα του 30% του προφορικού βαθμού και του 70% του γραπτού βαθμού. Επίσης, να εμφανίζει το ονοματεπώνυμο του μαθητή και τον τελικό βαθμό του μαθήματος.
- iv. Να υπολογίζει και να εμφανίζει το πλήθος των μαθητών που έχουν βαθμό μεγαλύτερο του 18.
- 8. Μία εταιρεία δημοσκοπήσεων θέτει σ' ένα δείγμα 500 πολιτών ένα ερώτημα. Για την επεξεργασία των δεδομένων να αναπτυχθεί πρόγραμμα που:
- i. Να διαβάζει το φύλλο του πολίτη (Α= Άνδρας, Γ= Γυναίκα).
- ii. Να διαβάζει την απάντηση στο ερώτημα, η οποία μπορεί να είναι 'ΝΑΙ' ή 'ΟΧΙ' ή 'ΔΕΝ ΞΕΡΩ' .
- iii. Να υπολογίζει και να εμφανίζει το πλήθος των ατόμων που απάντησαν 'ΝΑΙ'.
- iv. Να υπολογίζει και να εμφανίζει το πλήθος των ατόμων που απάντησαν 'ΟΧΙ'.
- v. Στο πλήθος των ατόμων που απάντησαν 'ΝΑΙ' να υπολογίζει και να εμφανίζει το ποσοστό των ανδρών και το ποσοστό των γυναικών.
- 9. Ένα σχολείο αποφάσισε να πάει μια 3ήμερη εκδρομή. Να γίνει πρόγραμμα που θα εκτελεί τα παρακάτω:
- i. Να δίνει το σύνολο των μαθητών του σχολείου.
- ii. Για κάθε μαθητή θα δίνεται το ερώτημα "Θέλεις να πας εκδρομή (ΝΑΙ/ΟΧΙ) ;"
- iii. Ο μαθητής θα απαντά στο παραπάνω ερώτημα με ΝΑΙ ή ΟΧΙ.
- iv. Να υπολογίζει και να εμφανίζει το πλήθος και το ποσοστό των μαθητών που απάντησαν "ΝΑΙ".
- 10. Να γραφτεί πρόγραμμα που να δέχεται αριθμούς μέχρι να πληκτρολογήσουμε το 100. Το πρόγραμμα να υπολογίζει και να εμφανίζει το άθροισμα, το πλήθος και το μέσο όρο των αριθμών που δόθηκαν. Ο αριθμός 100, που σηματοδοτεί και το τέλος της πληκτρολόγησης, να λαμβάνεται υπόψη στους παραπάνω υπολογισμούς.
- 11. Να γραφτεί πρόγραμμα για 35 μαθητές, που να δίνονται οι μέσοι όροι των βαθμών τους. Το πρόγραμμα να υπολογίζει και να εμφανίζει:
- i. Τον μεγαλύτερο βαθμό
- ii. Τον μικρότερο βαθμό, και
- iii. Τον μέσο όρο όλων των βαθμών.

1.5. Συναρτήσεις
Οι συναρτήσεις είναι επαναχρησιμοποιήσιμα μέρη προγραμμάτων. Μπορούμε να δώσουμε ένα όνομα σε ένα σύνολο εντολών και να το τρέχουμε, χρησιμοποιώντας το όνομα αυτό σε οποιοδήποτε σημείο του προγράμματός μας, όσες φορές θέλουμε. Αυτό είναι γνωστό ως κλήση (calling) της συνάρτησης. Η Python έχει δύο είδη συναρτήσεων, τις ενσωματωμένες (έτοιμες) και αυτές που μπορεί να δημιουργήσει ο προγραμματιστής. Έχουν ήδη χρησιμοποιηθεί ενσωματωμένες συναρτήσεις, όπως η Input(), η print (), η int(), η float (), η range() κ.λπ. Στον πίνακα 1.1 φαίνονται αλφαβητικά οι ενσωματωμένες συναρτήσεις της Python.

Πίνακας 1.1 Οι ενσωματωμένες συναρτήσεις της Python, κατά αλφαβητική σειρά.

1.5.1. Συναρτήσεις που δημιουργεί ο προγραμματιστής
Οι συναρτήσεις ορίζονται χρησιμοποιώντας τη λέξη κλειδί def, μετά την οποία ακολουθεί ένα όνομα που ταυτοποιεί την εκάστοτε συνάρτηση και κατόπιν ακολουθεί ένα ζευγάρι παρενθέσεων που μπορούν να περικλείουν μερικά ονόματα μεταβλητών, οι οποίες ονομάζονται παράμετροι. Οι παράμετροι δεν είναι υποχρεωτικές. Η γραμμή τελειώνει με άνω κάτω τελεία (:). Π.χ.
def xairetismos () :
print ( " Welcome to the Python world! " )
# Τέλος της συνάρτησης
xairetismos () # κλήση της συνάρτησης
xairetismos () # κλήση της συνάρτησης για άλλη μια φορά

Το αποτέλεσμα των δύο διαδοχικών κλήσεων της συνάρτησης στην οθόνη είναι:
Welcome to the Python world!
Welcome to the Python world!
Στο παράδειγμα ορίζεται μια συνάρτηση με το όνομα xairetismos () ακολουθώντας τη σύνταξη, όπως εξηγήθηκε παραπάνω. Αυτή η συνάρτηση δεν έχει παραμέτρους και έτσι δεν δηλώνονται καθόλου μεταβλητές/παράμετροι ανάμεσα στις παρενθέσεις. Οι παράμετροι στις συναρτήσεις αποτελούν την είσοδο στη συνάρτηση, ώστε κάθε φορά που την καλούμε με το όνομά της, να περνούν διαφορετικές τιμές στη συνάρτηση και να παράγονται τα αντίστοιχα αποτελέσματα. Παρατηρήστε ότι στο παραπάνω παράδειγμα, καλούμε την ίδια συνάρτηση δύο φορές. Αν δεν χρησιμοποιούσαμε συνάρτηση, θα έπρεπε να γράψουμε χωρίς τον ίδιο κώδικα (που μπορεί να είναι αρκετά μεγάλος) δύο φορές στα αντίστοιχα σημεία του προγράμματος.

Η Γενική δομή σύνταξης μιας συνάρτησης, όπως έχει αναφερθεί μέχρι τώρα, είναι:
Def όνομα συνάρτησης (παράμετροι) :

Εντολές
Παρατηρήστε ότι οι εντολές της συνάρτησης (block εντολών), έχουν υποχρεωτικά εσοχή (ένα Tab δηλαδή 4 κενά). Αν δεν υπάρχει η εσοχή, το πρόγραμμα δεν εκτελείται και εμφανίζεται αντίστοιχο μήνυμα λάθους.
Επίσης, είναι δυνατό μια συνάρτηση να κληθεί από μια άλλη συνάρτηση, π.χ. με ορισμένη τη συνάρτηση xairetismos (), ορίζουμε τις συναρτήσεις name () και kalosorisma () και καλούμε τη νέα συνάρτηση kalosorisma (), ως ακολούθως:
def name():
print "stavros"
def kalosorisma ():
name ()
xairetismos ()
kalosorisma ()

Στην οθόνη θα εμφανισθεί:

stavros
Welcome to the Python world!
Το block των εντολών της συνάρτησης kalosorisma () περιλαμβάνει μια κλήση της συνάρτησης name () και μια κλήση της συνάρτησης xairetismos (), τα αποτελέσματα των οποίων εμφανίζονται διαδοχικά στην οθόνη. Αν θέλαμε δίπλα στο «Stavros», να εμφανίζεται το αποτέλεσμα «Welcome to the Python world!», στο τέλος της εντολής print "Stavros", του block εντολών της συνάρτησης name (), πληκτρολογούμε το «,». Δηλαδή, αν θέλουμε το αποτέλεσμα μιας εκτύπωσης να είναι στην οθόνη, στην ίδια γραμμή με την προηγούμενη εκτύπωση, στο τέλος της πρώτης εντολής βάζουμε το «,», π.χ.

def name():
print "stavros",
και εμφανίζεται με την κλήση της συνάρτησης kalosorisma ():
stavros Welcome to the Python world!

1.5.2. Παράμετροι συναρτήσεων
Μια συνάρτηση μπορεί να έχει και παραμέτρους. Οι παράμετροι είναι μεταβλητές, που μπαίνουν μέσα στο ζευγάρι των παρενθέσεων του ορισμού της συνάρτησης και διαχωρίζονται με κόμμα. Οι μεταβλητές αυτές λέγονται παράμετροι και διαφέρουν από τις άλλες μεταβλητές στο εξής: όταν καλούμε μια συνάρτηση που περιλαμβάνει παραμέτρους, αυτές οι παράμετροι πρέπει να έχουν συγκεκριμένες τιμές, οι οποίες είναι στην πραγματικότητα οι τιμές που χρειάζεται η συνάρτηση, για να υπολογίσει το αποτέλεσμά της. Αν π.χ. έχουμε ορίσει τη συνάρτηση add (a, b) που προσθέτει δύο αριθμούς και θέλουμε να προσθέσουμε το 5 και το 7 μέσω αυτής της συνάρτησης, την καλούμε ως εξής: add (5, 7) και η συνάρτηση θα μας εμφανίσει στην οθόνη τον αριθμό 12. Δηλαδή, στην πραγματικότητα με την κλήση της συνάρτησης δίνουμε στην πρώτη παράμετρο, την a, την τιμή 5 και στη δεύτερη την τιμή 7. Αν θέλουμε να προσθέσουμε το 30 και το 20 μέσω αυτής της συνάρτησης, την καλούμε ως εξής: add (30, 20) και η συνάρτηση θα μας εμφανίσει στην οθόνη τον αριθμό 50. Οι τιμές που δίνονται στις παραμέτρους, είναι σύμφωνα με τη σειρά των τιμών στις παρενθέσεις της κλήσης της συνάρτησης. Δηλαδή, στην τελευταία περίπτωση το 30 αντιστοιχεί στην παράμετρο a, ενώ το 20 στην b. Οι τιμές που δίνουμε στις παραμέτρους ονομάζονται ορίσματα. Όλες οι άλλες μεταβλητές που υπάρχουν στο block εντολών μιας συνάρτησης και δεν είναι παράμετροι (όπως αυτές ορίστηκαν παραπάνω), είναι οι κοινές μεταβλητές που γνωρίζετε. Οι μεταβλητές αυτές, αν δεν δηλωθούν ως καθολικές (global) (οι οποίες υπερβαίνουν τα όρια του παρόντος εγχειριδίου) έχουν τοπική εμβέλεια (scope), οι τιμές τους δεν επηρεάζουν τις μεταβλητές με το ίδιο όνομα και είναι σε άλλα σημεία του προγράμματος, εκτός του block εντολών της συνάρτησης.

```
def add (a, b ): sum = a +b print "sum =", sum add (30, 20 )
```
Στην οθόνη θα εμφανιστεί το αποτέλεσμα:

sum = 50
Στην συναρτήσεις μάς δίνεται η δυνατότητα, μετά το τέλος του υπολογισμού μιας συνάρτησης, να επιστρέφεται αυτός ο υπολογισμός στη συνάρτηση με την εντολή Return. Π.χ.:
```
def addnew (a, b ): sum = a +b return sum print "sum=", addnew (5, 12 )
```
Στην οθόνη θα εμφανιστεί το αποτέλεσμα:

sum = 17
Στο παραπάνω παράδειγμα της συνάρτησης που προσθέτει δύο αριθμούς, ο υπολογισμός του αθροίσματος καταχωρείται στην τοπική μεταβλητή sum, της οποίας η τιμή με την εντολή return, δίνεται ως τιμή στο όνομα της συνάρτησης. Δηλαδή, το όνομα της συνάρτησης έχει την τιμή που της έχει επιστραφεί, την τιμή της sum, δηλαδή το άθροισμα δύο αριθμών. Αν τώρα καλέσουμε την συνάρτηση με το όνομά της (addnew (5, 12 )), αυτή θα εκτελεστεί, αλλά δεν θα εμφανιστεί τίποτε στον
διερμηνευτή. Η τιμή μιας συνάρτησης μπορεί να χρησιμοποιηθεί ως όρισμα σε μια άλλη εντολή ή συνάρτηση. Στο παραπάνω παράδειγμα χρησιμοποιείται ως όρισμα της συνάρτησης print (). Συγκεκριμένα: print "sum=", addnew (5, 12).

Μπορούμε τώρα να συμπληρώσουμε τον ορισμό της δομής της συνάρτησης στην Python, με την υποσημείωση ότι η return είναι προαιρετική, όπως και οι παράμετροι ως ακολούθως:
def όνομα συνάρτησης ( παράμετροι ) :
Εντολές
return <αποτέλεσμα>
Σχηματικά, μια συνάρτηση με τις παραμέτρους της, το block των εντολών της και τα αποτελέσματά της είναι δυνατό να παρασταθεί, όπως φαίνεται στο σχήμα 1.1. Όπου η συνάρτηση δέχεται ως εισόδους τις παραμέτρους, κάνει την επεξεργασία σύμφωνα με το block των εντολών της και παράγει ως εξόδους τα αποτελέσματα.

Σχήμα 1.1 Σχηματική παράσταση παραμέτρων, συνάρτησης και αποτελεσμάτων συνάρτησης

Δραστηριότητες στις συναρτήσεις
- 1. Να ορίσετε μια συνάρτηση σε γλώσσα Python, που όταν την καλείτε, να εμφανίζει το όνομά σας τρεις (3) φορές. Μετά, να ορίσετε μια νέα συνάρτηση, η οποία να χρησιμοποιεί την προηγούμενη και όταν την καλείτε, να εμφανίζει το όνομά σας έξι φορές.
- 2. Να ορίσετε μια συνάρτηση στη γλώσσα Python με παράμετρο Ν, που όταν την καλείτε, να εμφανίζει το όνομά σας τόσες φορές, όσες αντιστοιχούν στην τιμή της παραμέτρου της εντολής με την οποία καλείτε τη συνάρτηση.
- 3. Να δημιουργήσετε μια συνάρτηση στη γλώσσα Python που, όταν την καλείτε, να εμφανίζει το άθροισμα τριών αριθμών που θα πληκτρολογείτε. Στη συνέχεια να δημιουργήσετε μια νέα συνάρτηση, που θα χρησιμοποιεί την προηγούμενη και που, όταν την καλείτε, να υπολογίζει και να εμφανίζει το μέσο όρο των τριών αριθμών που πληκτρολογείτε.
- 4. Να ορίσετε συνάρτηση στη γλώσσα Python που, όταν την καλείτε για συγκεκριμένο αριθμό, να εμφανίζει το τετράγωνο (ύψωση σε δύναμη) του αριθμού που δώσατε κατά την κλήση της.
- 5. Να ορίσετε μια συνάρτηση στη γλώσσα Python με παράμετρο που, όταν την καλείτε, αν το όρισμα είναι ένας ακέραιος ή πραγματικός αριθμός, να εμφανίζει την απόλυτη τιμή του. Σε οποιαδήποτε άλλη περίπτωση να εμφανίζει: «Το όρισμα δεν είναι ούτε ακέραιος, ούτε πραγματικός αριθμός».
- 6. Να ορίσετε μια συνάρτηση στη γλώσσα Python με παραμέτρους που, όταν την καλείτε, να εμφανίζει το μεγαλύτερο μεταξύ δύο δοθέντων αριθμών
- 7. Να ορίσετε μια συνάρτηση στη γλώσσα Python με παραμέτρους που, όταν την καλείτε, να εμφανίζει το μικρότερο μεταξύ δύο δοθέντων αριθμών
- 8. Να ορίσετε μια συνάρτηση στη γλώσσα Python με παραμέτρους που, όταν την καλείτε, να εμφανίζει το μεγαλύτερο μεταξύ δύο δοθέντων αριθμών ή κατάλληλο μήνυμα στην περίπτωση που είναι ίσοι.
- 9. Να ορίσετε μια συνάρτηση στη γλώσσα Python με παραμέτρους τη βάση και το ύψος ενός τριγώνου που, όταν την καλείτε, να εμφανίζει το εμβαδόν του τριγώνου.

1.6. Λίστες
Λίστα στην Python είναι μια δομή δεδομένων. Είναι μια διατεταγμένη συλλογή στοιχείων (αντικειμένων). Δηλαδή, είναι ένα σύνολο στοιχείων τα οποία βρίσκονται σε συγκεκριμένη θέση. Οι θέσεις είναι διαδοχικές και η αρίθμησή τους αρχίζει από το μηδέν (0) και αυξάνει κατά ένα. Τα στοιχεία μιας λίστας μπορεί να είναι διαφορετικού τύπου (συνήθως είναι του ίδιου τύπου) και περιλαμβάνονται μεταξύ των συμβόλων των αγκυλών «[…]». Μια λίστα μπορεί να περιλαμβάνει το ίδιο στοιχείο περισσότερες από μία φορές, π.χ.

```
animals = ["lion", "tiger", "dog", "cat"] numbers = [50,60,70,80] squares = [1, 4, 9, 16, 25] days = ["Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο","Κυριακή"]
```
Η αρίθμηση της λίστας animals φαίνεται στο παρακάτω σχήμα 1.2.
Σχήμα 1. 2 Η διάταξη των στοιχείων στη δομή δεδομένων, λίστα
Η διάταξη (θέσεις των στοιχείων στη λίστα, ποιο είναι πρώτο, ποιο δεύτερο κλπ.), στη λίστα animals, είναι η ακόλουθη:
Το πρώτο στοιχείο είναι το lion, στην πρώτη θέση, στη θέση μηδέν (0) και είναι το στοιχείο animals [ 0 ], της λίστας.

Το δεύτερο στοιχείο είναι το tiger, στη δεύτερη θέση, στη θέση ένα (1) και είναι το στοιχείο animals [ 1 ], της λίστας.
Το τρίτο στοιχείο είναι το dog, στην τρίτη θέση, στη θέση δύο (2) και είναι το στοιχείο animals [ 2 ], της λίστας.
Το τέταρτο στοιχείο είναι το cat, στην τέταρτη θέση, στη θέση τρία (3) και είναι το στοιχείο animals [ 3 ], της λίστας.

Δημιουργία λίστας
Για να δημιουργήσουμε λοιπόν μια λίστα, γράφουμε το όνομά της και μέσα σε αγκύλες περικλείουμε τα αντικείμενα που περιλαμβάνει.
Μια κενή λίστα δημιουργείται με το άνοιγμα και το κλείσιμο των αγκυλών. Π.χ. kenh\_lista [] Αφού έχει δημιουργηθεί μια λίστα, είναι δυνατό να προσθέσετε, να μετακινήσετε ή να ψάξετε για στοιχεία σ' αυτή τη λίστα.
Για να αναφερθούμε σε ένα στοιχείο της λίστας γράφουμε το όνομα της λίστας και μέσα στις αγκύλες τη θέση του στοιχείου στη λίστα, π.χ. αν θέλουμε να αναφερθούμε στο στοιχείο lion της λίστας, γράφουμε: animals [ 0 ],

Διάτρεξη των στοιχείων μιας λίστας
Για να εμφανίσουμε το περιεχόμενο (όλα τα στοιχεία) μιας λίστας , την βάζουμε ως όρισμα στη συνάρτηση print,π.χ.
print animals
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:
['lion', 'tiger', 'dog', 'cat']
Για να εμφανίσουμε κάποιο από τα στοιχεία της λίστας, γράφουμε:
print animals [ 0 ]
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:

print animals [ 1 ]
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:

tiger

print animals [ 2 ]
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:

print animals [ 3]
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:

Cat
Για αναφορά σε ένα στοιχείο της λίστας, γράφουμε το όνομα της λίστας και μέσα στις αγκύλες γράφουμε τη θέση του στη λίστα. Ένας μνημονικός κανόνας, για να μην κάνουμε λάθος στον προσδιορισμό της θέσης του στοιχείου (η λίστα αρχίζει από τη θέση μηδέν και όχι από τη θέση ένα), είναι ο εξής: Αν μια λίστα έχει ν στοιχεία, το τελευταίο στοιχείο της δεν είναι το ν-οστό αλλά το ν-1. Π.χ. η λίστα squares = [1, 4, 9, 16, 25], περιλαμβάνει 5 στοιχεία. Το τελευταίο στοιχείο της λίστας το 25, βρίσκεται στη θέση 4 της λίστας (0,1,2,3,4) και είναι το squares [ 4 ] = 25.

Ένας άλλος τρόπος για να εμφανίσουμε όλα τα στοιχεία μιας λίστας, στην προκειμένη περίπτωση, της λίστα squares = [1, 4, 9, 16, 25], χρησιμοποιούμε μια απλή δομή «for…». Π.χ.:
```
squares = [1, 4, 9, 16, 25] for χ in squares: print x
```
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:
```
1 4 9 16 25
```
Για να εμφανίσουμε κάποια από τα στοιχεία μιας λίστας, χρησιμοποιούμε μια απλή δομή «for». Στην προκειμένη περίπτωση, της λίστα squares = [1, 4, 9, 16, 25], για να εμφανίσουμε τα στοιχεία της από το δεύτερο (θέση 1), συμπεριλαμβανομένου μέχρι και το τελευταίο, πληκτρολογούμε:.

```
squares = [1, 4, 9, 16, 25] size = len(squares) for x in range(2,size): print squares [x]
```
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:
```
9 16 25
```
Η ενσωματωμένη συνάρτηση len (squares) παίρνει ως τιμή, ένα ν ακέραιο αριθμό που είναι το πλήθος των στοιχείων (μέγεθος) της λίστας (squares) που είναι πέντε (5). Η τιμή αυτή εκχωρείται στη μεταβλητή size. Η «for…» εμφανίζει μέσω της συνάρτησης print () όλα τα στοιχεία της λίστας, από το δεύτερο στοιχείο της (συμπεριλαμβανομένου και αυτού) μέχρι την τιμή της μεταβλητής size, που έχει τιμή, την τιμή της len (), που είναι το μέγεθος (πλήθος στοιχείων) της λίστας.

Για την εμφάνιση των στοιχείων από το δεύτερο (θέση 1) συμπεριλαμβανομένου μέχρι και του τετάρτου (θέση 3, προτελευταίο στοιχείο), πληκτρολογούμε:.
```
squares = [1, 4, 9, 16, 25] size = len(squares) for x in range(2,size-1): print squares [x]
```
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:
```
9 16
```

Διαγραφή στοιχείων λίστας
Για να διαγράψουμε στοιχεία από μια λίστα χρησιμοποιούμε την εντολή del, π.χ. για να διαγράψουμε τα στοιχεία της λίστας από το δεύτερο στοιχείο της μέχρι και το τέταρτο, ένας τρόπος είναι ο παρακάτω:
```
squares = [1, 4, 9, 16, 25] del squares [2:4] print ( squares )
```
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί η λίστα squares με τα στοιχεία που δεν έχουν διαγραφεί:

[1, 4, 25]

Δραστηριότητες στις λίστες
- 1. Δημιουργήστε μια λίστα με τα ονόματα των μηνών του έτους και εκτυπώστε τη.
- 2. Εκτυπώστε το πλήθος των στοιχείων της λίστας της δραστηριότητας 1.
- 3. Από την δραστηριότητα 1 εμφανίστε τον πρώτο μήνα του Φθινοπώρου και τον τρίτο μήνα της Άνοιξης.
- 4. Από την δραστηριότητα 1 εμφανίστε τους μήνες του Καλοκαιριού.
- 5. Από την δραστηριότητα 1 εμφανίστε το μήνα Οκτώβριο με τη χρήση της ενσωματωμένης συνάρτησης len().

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

Δημιουργία πίνακα
Να δημιουργηθεί μια συνάρτηση, η οποία όταν καλείται, να δημιουργεί ένα μονοδιάστατο πίνακα τόσων θέσεων, όσων επιθυμούμε. Παράλληλα, να αποδίδεται σε όλα τα στοιχεία του ως αρχική τιμή το μηδέν (0).
```
#sinartisi dhmioyrgias pinaka kai apodoshs arxιkhs timhs def dhmiourgia\_array(size): sqlist=[ ] for x in range(0,size): sqlist.append(0) return sqlist
```
Στην αρχή, ορίζουμε μια συνάρτηση την dhmiourgia\_array (size): με την παράμετρο size'. Όταν καλούμε τη συνάρτηση με συγκεκριμένη τιμή για την παράμετρο, θα δημιουργεί ένα πίνακα τόσων θέσεων, όσες και η τιμή της παραμέτρου.

Με την sqlist=[ ] ορίζουμε μια κενή λίστα, η οποία θα είναι και ο πίνακάς μας.
Με την for x in range (0,size) επαναλαμβάνουμε το block των εντολών της «for…»μέχρι την τιμή της παραμέτρου, που είναι και το μέγεθος του πίνακα.
Στην sqlist.append(0) εφαρμόζουμε τη μέθοδο append(0) στην λίστα (πίνακα) sqlist. Η μέθοδος αυτή, προσθέτει ένα νέο στοιχείο στο τέλος της λίστας και του αποδίδει τιμή μηδέν (0). Μέχρι τώρα στα προγράμματα που αναπτύξαμε, χρησιμοποιούσαμε βασικά ένα μπλοκ εντολών, οι οποίες χειριζόντουσαν δεδομένα (διαδικασιακός προγραμματισμός). Όπως έχει αναφερθεί, η γλώσσα Python είναι και αντικειμενοστρεφής γλώσσα και μπορούμε, σύμφωνα με αυτή την ιδιότητα, να γράφουμε τα προγράμματά μας και με άλλη μέθοδο. Αυτή η μέθοδος συγγραφής προγραμμάτων συνδυάζει δεδομένα και λειτουργικότητα πάνω σε ένα αντικείμενο $^{3}$.

Στην περίπτωση αυτή, το αντικείμενο είναι η λίστα sqlist, στο οποίο εφαρμόζεται η μέθοδος append(0). Η σύνταξη είναι όπως ακριβώς φαίνεται: δίπλα στο όνομα του αντικειμένου, μπαίνει τελεία και αμέσως μετά το όνομα της μεθόδου. Εδώ, η αλλαγή συμπεριφοράς του αντικειμένου (sqlist) είναι το μεγάλωμα της λίστας κατά ένα στοιχείο και η απόδοση αρχικής τιμής μηδέν, ως αποτέλεσμα της μεθόδου append(0), που εφαρμόζεται σε αυτή.
Για να δημιουργήσουμε ένα πίνακα 5 θέσεων με αρχική τιμή μηδέν (0), καλούμε τη συνάρτηση sqlist ()με τιμή παραμέτρου το 5, ως όρισμα σε μια εντολή εκχώρησης, και εκτυπώνουμε την τιμή της μεταβλητής που εκχωρήσαμε την τιμή της συνάρτησης δημιουργίας πίνακα, sqlist (),π.χ.

#dhmioyrgia pinaka pente theseon me klish thw sqlist() a = dhmiourgia\_array(5) print "a=", a
Στην οθόνη μετά την εκτέλεση θα εμφανιστεί:
a= [0, 0, 0, 0, 0]

Γέμισμα πίνακα
Στο παρακάτω παράδειγμα κατασκευάζεται μια συνάρτηση γεμίσματος ενός υπάρχοντος μονοδιάστατου πίνακα. Έχουμε ήδη δημιουργήσει τον πίνακα α, 5 θέσεων, με αρχική τιμή μηδέν. (Όλα τα στοιχεία του έχουν την τιμή μηδέν).
#dhmioyrgia pinaka kai apodosh arxkhs timhs def dhmiourgia\_array(size): sqlist=[ ] for x in range(0,size): sqlist.append(0) return sqlist print #dhmioyrgia pinaka pente theseon print "#dhmioyrgia pinaka pente theseon, klhsh synarthshs" print
a = dhmiourgia\_array(5)
print "a=", a

Για να λειτουργήσει η επόμενη
«synartish gemismatos pinaka»
Και να μην δώσει λάθος μήνυμα ο διερμηνευτής πρέπει πρώτα να έχει δημιουργηθεί η συνάρτηση "a".
```
#"synartish gemismatos pinaka" print def gemisma\_array(sqlist): a=sqlist for x in range(0,len(a)): a[x] = input("a[x]=") return a print
```
Αμέσως μετά, καλούμε τη συνάρτηση γεμίσματος πίνακα «gemisma\_array(sqlist)» και εκχωρούμε την τιμή της στην μεταβλητή b.
#klish synartishs gemismatos
b= gemisma\_array(a)
Στο οθόνη, μετά την εκτέλεση, θα μας ζητηθεί να δώσουμε από το πληκτρολόγιο διαδοχικά 5 τιμές (μια για κάθε στοιχείο του πίνακα «α»), όπως φαίνεται παρακάτω.

```
a[x]=12 a[x]=23 a[x]=34 a[x]=45 a[x]=56
```
Στο παραπάνω παράδειγμα οι τιμές που δώσαμε στα στοιχεία του πίνακα «α», από το πληκτρολόγιο είναι : 12, 23, 34, 45 και 56.

Εκτύπωση πίνακα
Για να εκτυπώσουμε τα στοιχεία του πίνακα, μπορούμε να χρησιμοποιήσουμε έναν από τους παρακάτω τρόπους:

Πρώτος τρόπος εκτύπωσης πίνακα
```
#ektyposi pinaka b (5 theseon ) a\_tropos print "ektyposi pinaka b (5 theseon ) a\_tropos" print print "b=", b
```
Αν ο πίνακας είναι b=[12, 23, 34, 45, 56], στην οθόνη μετά την εκτέλεση θα εμφανιστεί:
```
ektyposi pinaka b (5 theseon ) a\_tropos b= [12, 23, 34, 45, 56]
```

Δεύτερος τρόπος εκτύπωσης πίνακα
```
#ektyposi pinaka b (5 theseon ) b\_tropos for item in b: print (item),
```
Αν ο πίνακας είναι b=[12, 23, 34, 45, 56], μετά την εκτέλεση θα εμφανιστεί στον διερμηνευτή:
23 34 45 56

Τρίτος τρόπος εκτύπωσης του πίνακα
```
#ektyposi\_pinaka b, c\_tropos Print "ektyposi\_pinaka b, c\_tropos" print "len(b)=",len( b ) print for x in range(len(b)): print b [ x ]
```
Αν ο πίνακας είναι b=[12, 23, 34, 45, 56], μετά την εκτέλεση θα εμφανιστεί στην οθόνη:
```
len(b)= 5 12 23 34 45 56
```

Εκτύπωση τμήματος πίνακα
Αν θέλουμε να εμφανίσουμε τα στοιχεία του πίνακα b από το δεύτερο (θέση 3) μέχρι και το τελευταίο του, πληκτρολογούμε:
```
#ektyposi\_tmimatos pinaka b print "len(b)=",len( b ) print for x in range(2, len(b)): print b [ x ]
```
Αν ο πίνακας είναι b=[12, 23, 34, 45, 56], στην οθόνη μετά την εκτέλεση θα εμφανιστεί:
```
len(b)= 5 34 45 56
```

Εκτύπωση πίνακα με κλήση συνάρτησης
```
def ektiposi\_array(table): print "len(b)=",len( b ) print for x in range(len(b)): print "b[x]=", b [ x ] pin = ektiposi\_array(b)
```
Αν ο πίνακας είναι b=[12, 23, 34, 45, 56], στο διερμηνευτή μετά την εκτέλεση θα εμφανιστεί:
```
len(b)= 5 b[x]= 12 b[x]= 23 b[x]= 34 b[x]= 45 b[x]= 56
```

Εκτύπωση πίνακα με κλήση συνάρτησης και χρήση του τελεστή «%»
Αν θέλουμε τα αποτελέσματα της εμφάνισης των στοιχείων του πίνακα να είναι πιο παραστατικά (π.χ. b[0]= 12), πρέπει να χρησιμοποιήσουμε τον τελεστή «%», ως ακολούθως:
```
def ektiposi\_array(table): print "len(b)=",len( b ) print i=0 for x in range(len(b)): print "b[%s]=" % ( i ), b[x] i = i + 1 pin = ektiposi\_array(b)
```
Αν ο πίνακας είναι b=[12, 23, 34, 45, 56], μετά την εκτέλεση θα εμφανιστεί στο διερμηνευτή:
```
b[0]= 12 b[1]= 23 b[2]= 34 b[3]= 45 b[4]= 56
```

Ο τελεστής «%»σε μια συμβολοσειρά χρησιμοποιείται για να συνδυάσουμε συμβολοσειρές με μεταβλητές, π.χ. στο παραπάνω παράδειγμα θέλουμε, κατά την εκτύπωση των στοιχείων του πίνακα, να φαίνεται και η θέση του κάθε στοιχείου στον πίνακα και δίπλα από την τιμή του στοιχείου να φαίνεται η τιμή του (π.χ. b[0]=12). Για να το επιτύχουμε, χρησιμοποιούμε τη μεταβλητή «i», ως μετρητή της «for» και την εντολή εκτύπωσης:

print "b[%s]=" % ( i ), b[x]
Σε αυτή την εντολή, το %s , στη συμβολοσειρά, "b[%s]=" , αντιστοιχεί με το % ( i ). Αυτή είναι ακριβώς και η λειτουργία του τελεστή «%» , να αντιστοιχίζει τη θέση της συμβολοσειράς που βρίσκεται ο τελεστής, με την μεταβλητή που έχει μπροστά της τον τελεστή και σε αυτή τη θέση της συμβολοσειράς να βάζει, κατά την εκτύπωση, την τιμή της αντίστοιχης μεταβλητής. Η σύνταξη είναι όπως φαίνεται στο παράδειγμα. Έτσι, αν η τιμή της μεταβλητής ι είναι μηδέν, η τιμή αυτή τοποθετείται κατά την εκτύπωση στη θέση της συμβολοσειράς, που είναι ο τελεστής «%» και εμφανίζεται στο διερμηνευτή b[0]= , και δίπλα εκτυπώνεται η τιμή της μεταβλητής b[x] , που είναι το άλλο όρισμα της print . Αν θέλουμε να συνδυάσουμε μια συμβολοσειρά με περισσότερες μεταβλητές, τοποθετούμε στα αντίστοιχα σημεία της συμβολοσειράς τόσους τελεστές, όσες και οι μεταβλητές μας, π.χ.

```
string\_1 = "Ακρόπολη" string\_2 = "μνημείο" print "Στην Αθήνα, η %s, είναι ένα υπέροχο %s." % (string\_1, string\_2)
```
Στο διερμηνευτή μετά την εκτέλεση θα εμφανιστεί:
Στην Αθήνα, η Ακρόπολη, είναι ένα υπέροχο μνημείο.
Στο παραπάνω παράδειγμα, ο πρώτος τελεστής «%» αντιστοιχεί στην πρώτη μεταβλητή (string\_1) και ο δεύτερος στη δεύτερη (string\_2).

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

```
# "mesos oros me klhsh synarthshs" def mo (pinaka): k=pinaka sum=0 for x in range(len(k)): sum=sum+k[x] mesos\_oros = sum/len(k) return mesos\_oros
```
```
mesos\_oros= mo(b) print print "o mesos oros einai mo=", mesos\_oros
```
Αν ο πίνακας είναι b=[1, 2, 3, 4, 5], στο διερμηνευτή μετά την εκτέλεση θα εμφανιστεί:
```
o mesos oros einai mo= 3
```

Εύρεση της θέσης του στοιχείου ενός πίνακα με την ελάχιστη τιμή, με χρήση συνάρτησης
```
#eyresh theshs elaxistoy pinaka def posMin( start, end, array ) : pos = start for i in range(start, end) : if array[ i ] < array[ pos ] : pos = i return pos print print " o mikroyteros einai sth thesh ", posMin ( 0, len(b), b ) b[x]=34 a[x]=45 a[x]=1 a[x]=451 a[x]=67 Αν ο πίνακας είναι b=[34, 45, 1, 451, 67], Στο διερμηνευτή μετά την εκτέλεση θα εμφανισθεί: o mikroyteros einai sth thesh 2
```

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

2. Συστήματα Διαχείρισης Περιεχομένου

Εισαγωγή
Σκοπός του κεφαλαίου είναι η παρουσίαση των αρχών σχεδίασης και φιλοσοφίας των σύγχρονων συστημάτων διαχείρισης περιεχομένου (Content Management System - CMS) και στη συνέχεια η δημιουργία και διαχείριση ενός ιστοτόπου (website) με τη χρήση ενός από τα πιο δημοφιλή συστήματα διαχείρισης περιεχομένου, το WordPress.

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

Λέξεις Κλειδιά
Συστήματα Διαχείρισης Περιεχομένου, CMS, WordPress, Joomla, Drupal, ιστότοπος, πρόσθετα, plugins, σχόλια, άρθρα, σελίδες, μενού, widgets, θέματα, themes, μέλη ιστοτόπου.

Ενότητες Κεφαλαίου
-  Συστήματα Διαχείρισης περιεχομένου
-  Δημιουργία ιστότοπου με το Σύστημα Διαχείρισης Περιεχομένου WordPress
-  Αναφορές

2.1. Συστήματα Διαχείρισης περιεχομένου
Ο όρος Σύστημα Διαχείρισης Περιεχομένου είναι η μετάφραση του αγγλικού όρου "Content Management System" (CMS) και αναφέρεται σε μια μορφή λογισμικού, που επιτρέπει σε κάποιον να δημιουργεί, να δημοσιεύει, να οργανώνει, και να διαχειρίζεται περιεχόμενο, όπως κείμενα, εικόνες, βίντεο κ.λπ. με εύκολο τρόπο, χωρίς να είναι απαραίτητη η γνώση γλωσσών προγραμματισμού.
Τα περισσότερα Συστήματα διαχείρισης περιεχομένου διαδικτυακού τόπου (Web CMS) είναι πακέτα λογισμικού διακομιστή (Server software) που χρησιμοποιούν μια βάση δεδομένων (συνήθως τη MYSQL), για ν' αποθηκεύουν όλο το περιεχόμενο του ιστότοπου.

Ένα Σύστημα Διαχείρισης Περιεχομένου διαθέτει φιλικό γραφικό περιβάλλον για την πρόσβαση του διαχειριστή στο περιεχόμενο της ιστοσελίδας. Με ένα username και ένα password δηλαδή, ο διαχειριστής της ιστοσελίδας μπορεί να έχει πρόσβαση σε μια ειδική περιοχή της (back-end ή παρασκήνιο), μέσα από την οποία μπορεί να επεξεργάζεται το περιεχόμενό της. Η προσθήκη περιεχομένου γίνεται μέσω κειμενογράφων, όμοιων με το MS Word. Οι διάφορες πληροφορίες οργανώνονται σε κατηγορίες και υποκατηγορίες και η διαχείριση τους είναι αρκετά εύκολη, γιατί το μόνο που χρειάζεται είναι ένας απλός φυλλομετρητής, μέσω του οποίου ο διαχειριστής του ιστότοπου μπορεί να συντάξει ένα οποιοδήποτε κείμενο και να ενημερώσει το δικτυακό τόπο.

Οι αλλαγές που κάνει ο διαχειριστής, γίνονται αμέσως ορατές μέσω του διαδικτύου από τους επισκέπτες του ιστότοπου, που βλέπουν μόνο την «μπροστινή όψη» (front-end) του ιστότοπου.

2.1.1. Η ανατομία ενός CMS
Η λειτουργικότητα ενός CMS μπορεί να αναλυθεί στις εξής διαδικασίες:
-  δημιουργία περιεχομένου
-  διαχείριση περιεχομένου
-  δημοσίευση
-  παρουσίαση

Δημιουργία περιεχομένου
Το CMS παρέχει ένα εύχρηστο περιβάλλον συγγραφής που μοιάζει με το MS Word. Επίσης, υπάρχει η δυνατότητα της διαχείρισης της δομής του ιστότοπου, δηλαδή, πού θα τοποθετηθούν οι νέες σελίδες, ποια θα είναι η αλληλοεπίδραση τους με άλλες σελίδες, καθώς και την ανασυγκρότηση των σελίδων, όταν κάποια έχει διαγραφεί, ώστε να μη δημιουργούνται σπασμένοι σύνδεσμοι (broken links).

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

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

Παρουσίαση
Το CMS θα φροντίσει για την πλοήγηση στον ιστότοπο, δημιουργώντας τους απαραίτητους συνδέσμους (links) ανάλογα με το περιεχόμενο που υπάρχει. Επίσης, υποστηρίζει διαφορετικούς φυλλομετρητές ή και χρήστες με δυσκολίες. Το Σύστημα Διαχείρισης Περιεχομένου μπορεί να κάνει τον ιστότοπο μας δυναμικό και διαδραστικό, αυξάνοντας κατακόρυφα την αποτελεσματικότητα του.
Μια ακόμα σημαντική δυνατότητα των συστημάτων αυτών είναι η ταυτόχρονη δημοσίευση του περιεχομένου σε διαφορετικές μορφές για εκτύπωση και ηλεκτρονική διανομή (PDF, Word, κ.λπ.), για ασύρματες ή φορητές συσκευές, RSS Feeds ή XML.

2.1.2. Πλεονεκτήματα των CMS
-  Αποκεντρωμένη συντήρηση του περιεχομένου, αφού η διαχείριση του ιστότοπου γίνεται μέσω φυλλομετρητή από οπουδήποτε και οποτεδήποτε.
-  Ταυτόχρονη ενημέρωση από πολλούς χρήστες και από διαφορετικούς υπολογιστές.
-  Δεν απαιτούνται ειδικές τεχνικές γνώσεις από τους διαχειριστές.
-  Μείωση εξόδων για την συντήρηση μιας ιστοσελίδας, αφού δεν υπάρχει ανάγκη λήψης τεχνικής υποστήριξης.
-  Αυξημένη ασφάλεια, αφού το περιεχόμενο του ιστότοπου αποθηκεύεται σε βάσεις δεδομένων που προστατεύονται τηρώντας αντίγραφα ασφαλείας. Επίσης, παρέχεται η δυνατότητα καθορισμού επιπέδων πρόσβασης στο περιεχόμενο για διαφορετικούς ρόλους χρηστών.
-  Χρήση υψηλής ποιότητας προτύπων σχεδίασης, που αυξάνουν την ποιότητα μίας ιστοσελίδας.
-  Ταχύτητα στη δημιουργία νέων σελίδων, στην ενημέρωση των αλλαγών σε υπάρχουσες σελίδες και στην αρχειοθέτηση της πληροφορίας.
-  Μεγάλη ευελιξία και εύκολη πλοήγηση (navigation) σε μια ιστοσελίδα.
-  Αυξημένη δυνατότητα επέκτασης.
-  Μειωμένη επανάληψη ίδιων πληροφοριών.

Πώς γίνεται η ανάπτυξη ιστοσελίδων χωρίς τη χρήση ενός CMS
Εικόνα 2.11$^{4}$
Στην Εικόνα 2.1 βλέπουμε ότι για να δημιουργήσουμε τη σελίδα στα δεξιά της εικόνας θα πρέπει να ξέρουμε πώς να γράψουμε τον κώδικα στ' αριστερά της εικόνας. Ο κώδικας στ' αριστερά αποτελείται από δύο μέρη: τη γλώσσα HTML, που είναι η βασική γλώσσα για τη δόμηση σελίδων του παγκόσμιου ιστού και τη γλώσσα υπολογιστή CSS, που χρησιμοποιείται για τη στιλιστική μορφοποίηση μιας ιστοσελίδας.

Πώς γίνεται η ανάπτυξη ιστοσελίδων με τη χρήση ενός CMS.

Εικόνα 2.2 5
Στην Εικόνα 2.2 βλέπουμε ότι με ένα CMS το μόνο που χρειάζεται, είναι να γράψουμε το κόκκινο κείμενο στ' αριστερά της εικόνας, για να δημιουργήσει τη σελίδα στα δεξιά. Ο κώδικας HTML και ο κώδικας CSS υλοποιούνται από εργαλεία που διαθέτει το CMS και η δουλειά του χρήστη είναι να γράφει μόνο το περιεχόμενο και ν' αποφασίζει πού θα εμφανιστεί.

2.1.3. Τύποι CMS
Υπάρχουν δύο μεγάλες κατηγορίες CMS: τα ελεύθερου ανοιχτού κώδικα (open-source) και τα κλειστού κώδικα (closed-source).
Τα CMS ανοιχτού κώδικα διατίθενται δωρεάν με ελεύθερο τον πηγαίο κώδικά τους, ώστε, όποιος γνωρίζει προγραμματισμό, να μπορεί να τον προσαρμόσει στις ανάγκες του. Υποστηρίζονται συνήθως από μια μεγάλη κοινότητα χρηστών και προγραμματιστών, που βελτιώνουν συνεχώς τον πηγαίο κώδικα, δημιουργούν νέα πρόσθετα και θέματα, που τα προσφέρουν δωρεάν.
Τα πιο δημοφιλή CMS ανοιχτού κώδικα είναι:

-  Drupal
-  Joomla
-  WordPress
-  Mambo
-  Xoops
-  Zikula
-  Xaraya
Τα CMS κλειστού κώδικα από την άλλη, είναι εμπορικά λογισμικά, τα κατασκευάζουν και τα υποστηρίζουν εταιρείες λογισμικού με οικονομικό αντάλλαγμα. Δεν επιτρέπουν την πρόσβαση και την αλλαγή του πηγαίου κώδικά τους από τους πελάτες, ενώ προστατεύονται από νόμους περί πνευματικής ιδιοκτησίας. Ο κλειστός κώδικας έχει το πλεονέκτημα ότι σημαίνει περισσότερη ασφάλεια και καλύτερη υποστήριξη, αφού όταν συμβεί οτιδήποτε θ' αναλάβει η εταιρεία που ανέπτυξε τον κώδικα να επιλύσει το πρόβλημα.

Μερικά CMS κλειστού κώδικα είναι:
-  IBM Workplace Web Content Management
-  Vignette Content Management
-  Jalios Content Management
-  Powerfront Content Management System

2.1.4. WordPress
Το WordPress είναι από τα πιο δημοφιλή συστήματα διαχείρισης περιεχομένου. Ξεκίνησε το 2003, σαν μια πλατφόρμα για την κατασκευή και δημοσίευση μόνο ιστολογίων (blogs). Τα τελευταία χρόνια έχει εξελιχθεί σ' ένα πλήρες πρόγραμμα κατασκευής ιστοσελίδων, e-shop, forum και όλων των sites. Σήμερα, παραπάνω από το 58% όλων των ιστότοπων που χρησιμοποιούν CMS, είναι φτιαγμένα με το WordPress.
Τα πλεονεκτήματα του, που έχουν συμβάλλει στη δημοτικότητα του, είναι:
-  Η απλότητα και φιλικότητά του απέναντι στους χρήστες. Δεν απαιτεί γνώσεις προγραμματισμού και ένας μέσος χρήστης μπορεί να το μάθει εύκολα. Τα πάντα είναι οργανωμένα με ένα λογικό τρόπο, έτσι ώστε να είναι εύκολο να βρει ο χρήστης αυτό που ψάχνει.
-  Η εύκολη και γρήγορη εγκατάστασή του. Χρησιμοποιεί ευρέως διαδεδομένες τεχνολογίες (PHP, SQL, HTML) και δεν έχει ιδιαίτερες απαιτήσεις στην παραμετροποίηση και εγκατάστασή του, με αποτέλεσμα ένας ιστότοπος να μπορεί να φιλοξενηθεί σχεδόν από οποιοδήποτε διακομιστή (Server).
-  Διαθέτει μεγάλη βιβλιοθήκη προτύπων και προσθέτων που επιτρέπουν στους χρήστες να προσθέτουν νέα χαρακτηριστικά και δυνατότητες, ώστε να επεκτείνουν τη λειτουργία του ιστότοπου.
-  Παράγει σελίδες φιλικές προς τις μηχανές αναζήτησης. Οι μηχανές αναζήτησης «αγαπούν» το WordPress, επειδή χρησιμοποιεί καλογραμμένο κώδικα. Με το μηχανισμό μονίμων συνδέ-

σμων που διαθέτει, αλλά και με τη χρήση πρόσθετων SEO (Search Engine Optimization), υποστηρίζει πλήρως το περιεχόμενο των σελίδων και το βοηθά ν' ανέβει θέσεις στα αποτελέσματα αναζήτησης.
-  Πολλαπλοί συγγραφείς. Το σύστημα των χρηστών στο WordPress επιτρέπει μέχρι 10 επίπεδα χρηστών με διαφορετικά προνόμια σε σχέση με τη δημοσίευση, την επεξεργασία του περιεχομένου κ.α.
-  Ο εύκολος διαμοιρασμός περιεχομένου σε social media, WP Socializer, Facebook, Easy Twitter Feed Widget Plugin κ.α.
-  Αμφίδρομη επικοινωνία με τους επισκέπτες. Με τα σχόλια (comments) που διαθέτει, επιτρέπει την αμφίδρομη επικοινωνία μεταξύ του συντάκτη και του αναγνώστη.
-  Συμβατότητα με κινητά. Το WordPress αυτόματα αναγνωρίζει αν η ιστοσελίδα προβάλλεται μέσα από μια κινητή συσκευή και διαμορφώνει κατάλληλα την εμφάνιση της.
-  Η μεγάλη κοινότητα χρηστών και προγραμματιστών που το υποστηρίζει, το αναβαθμίζει και το βελτιώνει.

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

Φιλοξενία ιστοσελίδας
Η ιστοσελίδα του WordPress είναι η WordPress.org. Από εκεί μπορούμε να κατεβάσουμε και να εγκαταστήσουμε το λογισμικό του. Χρειαζόμαστε όμως ένα Web Server (host), που θα φιλοξενήσει την ιστοσελίδα που θα δημιουργήσουμε. Υπάρχει όμως και μια υπηρεσία, που ονομάζεται WordPress. com και παρέχει τη φιλοξενία του ιστότοπου μας δωρεάν, δίνοντάς μας χώρο 3GB. Μας παρέχει δωρεάν themes, για να επιλέξουμε ένα από αυτά. Παρέχει δωρεάν backup του site, όλες τις αναβαθμίσεις των plugins και των θεμάτων. Το όνομα του site μας είναι της μορφής: name.wordpress.com.

Στην επόμενη ενότητα, θ' αναπτύξουμε έναν ιστότοπο βασισμένο στο WordPress και η φιλοξενία του θα γίνει στο Πανελλήνιο Σχολικό Δίκτυο (ΠΣΔ) που μας παρέχεται δωρεάν. Τ' όνομα της ιστοσελίδας θα είναι της μορφής users.sch.gr/username/<φάκελος\_εγκατάστασης>. Εκεί μπορούμε να εγκαταστήσουμε ένα από τα δωρεάν θέματα (themes) που υπάρχουν διαθέσιμα στο διαδίκτυο. Επίσης μπορούμε να εγκαταστήσουμε ένα πλήθος από δωρεάν plugins. Η συντήρηση του site είναι δική μας ευθύνη. Θα πρέπει να παίρνουμε backups, να κάνουμε τις απαραίτητες ενημερώσεις και αναβαθμίσεις των plugins και των θεμάτων.

Θεωρούμε ότι η εγκατάσταση του WordPress έχει γίνει ήδη, είτε στο Πανελλήνιο Σχολικό Δίκτυο είτε τοπικά στον υπολογιστή σας. Παρόλα αυτά, στα παραρτήματα Α και Β θα βρείτε τις οδηγίες για την εγκατάσταση του WordPress και με τους δυο τρόπους.
Πριν ξεκινήσουμε όμως την ανάπτυξη του δικού μας ιστότοπου, ας δούμε μερικούς ιστότοπους που δημιουργήθηκαν με τη χρήση του WordPress.
Eurosport.com. Ένα παγκόσμιο αθλητικό ειδησεογραφικό site.
130.bulgari.com. Το site του διάσημου ιταλικού οίκου Bulgari.
22lyk-athin.att.sch.gr. Η ιστοσελίδα του 22ου Λυκείου Αθηνών.

e-sintages.gr. Συνταγές μαγειρικής
pcsteps.gr. Ενα site τεχνολογίαςbu.edu/abroad. Το πανεπιστήμιο της Βοστώνης.

2.2. Δημιουργία ιστότοπου με το Σύστημα Διαχείρισης Περιεχομένου WordPress

2.2.1. Η σελίδα διαχείρισης του WordPress
Για να συνδεθούμε στο διαχειριστικό περιβάλλον του WordPress θα πρέπει να επισκεφτούμε τον δικτυακό τόπο http://www. example.gr/wordpress/wp-admin/, (όπου το "example.gr" θα πρέπει να το αντικαταστήσουμε με το όνομα του δικτυακού τόπου μας) και να συμπληρώσουμε το όνομα χρήστη και τον κωδικό πρόσβασης του διαχειριστή που δηλώσαμε κατά την εγκατάσταση του WordPress (Εικόνα 2.3).
Η αρχική σελίδα του πίνακα ελέγχου του WordPress φαίνεται στην Εικόνα 2.4. Η κύρια περιοχή του πίνακα ελέγχου περιέχει περιοχές όπως: "Καλώς ήρθατε στο WordPress!" για την εκτέλεση κάποιων πρώτων διαχειριστικών ενεργειών, "Με μια ματιά" για την διαχείριση του περιεχομένου του ιστότοπου, "Πρόσφατα σχόλια" για την διαχείριση των σχολίων, κ.α. Αυτά τα πεδία μπορούν να μεταφερθούν με αριστερό κλικ και σύρσιμο και να κρυφτεί το περιεχόμενό τους με κλικ στο βελάκι, δίπλα στον τίτλο τους.

Εικόνα 2.3 Σύνδεση στο διαχειριστικό περιβάλλον του WordPress
Εικόνα 2.4 Αρχική σελίδα πίνακα ελέγχου WordPress

2.2.2. Μενού πλοήγησης
Το μενού πλοήγησης (Εικόνα 2.5) αποτελείται από συνδέσμους προς διαχειριστικές ενέργειες και βρίσκεται αριστερά του πίνακα ελέγχου. Ο κάθε σύνδεσμος ανοίγει κάνοντας κλικ στο βελάκι δεξιά του τίτλου, για να προβληθεί το υπό-μενού.
Για να γυρίσουμε στον πίνακα ελέγχου από οποιαδήποτε σελίδα του διαχειριστικού περιβάλλοντος, κάνουμε κλικ στο σύνδεσμο «Πίνακας ελέγχου» στο επάνω μέρος του μενού πλοήγησης.
Εικόνα 2.5 Μενού πλοήγησης πίνακα ελέγχου WordPress
Επίσης στην πάνω πλευρά του πίνακα ελέγχου υπάρχει το κουμπί " Προσθήκη " για την άμεση προσθήκη ενός Άρθρου, Πολυμέσων, Σελίδας ή Μέλους. Για να πλοηγηθούμε σε μια νέα περιοχή, απλά κάνουμε κλικ στο βελάκι και επιλέγουμε τον επιθυμητό σύνδεσμο.

Εργασία 1
Δημιουργήστε σε ένα φύλλο χαρτί τον αρχικό πίνακα περιεχομένων (site map) για το δικτυακό τόπο που θ' αναπτύξετε. Συζητήστε μεταξύ σας για το ποιες θα είναι οι σημαντικότερες ενότητες που μπορεί να περιέχει ένας τέτοιος τόπος και γράψτε το όνομα κάθε ενότητας κάτω από το άλλο. Αναδιατάξτε τον πίνακα χωρίζοντας τις ενότητες σε κατηγορίες και υποκατηγορίες.

2.2.3. Θέματα στο WordPress
Τα θέματα (templates) είναι πακέτα που αλλάζουν ριζικά την εμφάνιση του ιστότοπου μας, χωρίς γνώσεις γραφιστικής ή προγραμματισμού. Ελέγχουν την οπτική διάταξη και την εμφάνιση των ιστοσελίδων μας. Όταν δημιουργείται ένας ιστότοπος, έχει πάντα το ίδιο προεπιλεγμένο θέμα, που μπορούμε να το αλλάξουμε, επιλέγοντας ένα από τα έτοιμα θέματα που υπάρχουν ήδη εγκατεστημένα. Από προεπιλογή το WordPress έχει εγκατεστημένα τέσσερα θέματα.
Για να κατανοήσουμε τη δυναμική των θεμάτων, ας πάρουμε σαν παράδειγμα ένα αυτοκίνητο, όπου το CMS είναι η μηχανή του και το θέμα του είναι η εξωτερική του εμφάνιση. Εάν ένα αυτοκίνητο έχει την καλύτερη μηχανή, αλλά φτωχή εμφάνιση, δεν θα προσελκύσει αγοραστές. Έτσι και στους ιστότοπους, όσο ποιοτικό κι αν είναι το περιεχόμενο τους, η εμφάνιση είναι που θα δημιουργήσει την πρώτη εντύπωση στο χρήστη.

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

Όταν επιλέγουμε το θέμα της ιστοσελίδας μας, θα πρέπει να εξετάζουμε:
-  Τους χρωματικούς συνδυασμούς.
- Το πλήθος στηλών: Τα θέματα περιλαμβάνουν συνήθως μια επικεφαλίδα, μια περιοχή περιεχομένου (για τα άρθρα σας) και μια περιοχή μπάρας (sidebar) (για τις επιμέρους Μονάδες-widgets σας) και έρχονται σε διάφορες τυπικές διατάξεις:
-  Μια ενιαία στήλη χωρίς περιοχή μπάρας (οι μονάδες (widgets) βρίσκονται στο κάτω μέρος της ιστοσελίδας).
-  Δύο Στήλες - συνήθως μια μεγάλη στήλη και έναν στενότερο sidebar.
- Τρεις Στήλες - με δύο πλαϊνές μπάρες (sidebars) στη μία πλευρά της ιστοσελίδας ή αριστερά και δεξιά της κεντρικής στήλης.
-  Τέσσερις Στήλες- Μια στήλη περιεχόμενο και τρεις sidebars. Αυτός ο τύπος διάταξης τείνει να είναι πολύ 'γεμάτος' και λιγότερο κατάλληλος για την ανάγνωση του περιεχομένου. Η διάταξη που χρησιμοποιείται συχνότερα είναι οι δύο ή τρεις στήλες.
-  Το πλάτος του
- Επιπλέον χαρακτηριστικά που προσφέρει το θέμα

Δραστηριότητα 1. Διαχείριση θεμάτων
Από τον Πίνακα Ελέγχου επιλέγουμε από το μενού πλοήγησης: Εμφάνιση t Θέματα που μας οδηγεί στην σελίδα Διαχείρισης θεμάτων. Εκεί βλέπουμε ότι το θέμα Twenty Fourteen είναι το ενεργό, δηλαδή αυτό που χρησιμοποιείται αυτή τη στιγμή (Εικόνα 2.6).
Εικόνα 2.6 Σελίδα διαχείρισης θεμάτων
Εμείς θα πατήσουμε το Twenty Thirteen και στο παράθυρο που θα μας ανοίξει, θα επιλέξουμε « Ενεργοποίηση ». Αυτόματα γυρνάμε στη σελίδα Διαχείρισης θεμάτων και βλέπουμε ότι το θέμα Twenty Thirteen είναι το ενεργό. Πατάμε επάνω του για να δούμε τις λεπτομέρειες του θέματος και να διαμορφώσουμε την εμφάνιση του ιστότοπού μας. Στην οθόνη θα εμφανιστεί το παράθυρο που
φαίνεται στην Εικόνα 2.7. Επιλέγουμε « Προσαρμογή » κι από το μενού, που εμφανίζεται αριστερά στην οθόνη, διαμορφώνουμε τον ιστότοπό μας:
- 1. Αλλάζουμε τον τίτλο του ιστότοπου σε «Δοκιμαστικός ιστότοπος».
- 2. Αλλάζουμε τον υπότιτλο με το ονοματεπώνυμό μας.
- 3. Διαλέγουμε όποιο χρώμα θέλουμε για τα γράμματα του κειμένου της κεφαλίδας.
- 4. Επιλέγουμε μια εικόνα για την κεφαλίδα διαλέγοντας μια από τις προτεινόμενες ή βρίσκοντας μια στο διαδίκτυο, αποθηκεύοντας τη στον υπολογιστή μας και τέλος μεταφορτώνοντας τη στο WordPress επιλέγοντας « Προσθήκη νέας εικόνας ».

Τις υπόλοιπες ρυθμίσεις που περιλαμβάνει το μενού αυτό θα τις δούμε σε επόμενη δραστηριότητα.
Πατήστε « Αποθήκευση και δημοσίευση » για να εφαρμοστούν οι αλλαγές μας.
Εικόνα 2.7 Λεπτομέρειες θέματος
Για να δούμε την ιστοσελίδα μας όχι σαν διαχειριστής, αλλά σαν επισκέπτης, θα πάμε στο πάνω αριστερό μέρος της σελίδας Διαχείρισης, θα κάνουμε δεξί κλικ στο όνομα του website και θα επιλέξουμε « Άνοιγμα δεσμού σε νέα καρτέλα » (Εικόνα 2.8).
Εικόνα 2.8 Επίσκεψη ιστοτόπου
Στη συνέχεια θα εγκαταστήσουμε ένα νέο θέμα από το δικτυακό τόπο του WordPress.

Από τον Πίνακα Ελέγχου επιλέγουμε από το μενού πλοήγησης: Εμφάνιση t Θέματα που μας οδηγεί στην σελίδα Διαχείρισης θεμάτων. Από το επάνω μέρος της σελίδας επιλέγουμε « Προσθήκη Νέου ». Πατάμε το κουμπί « Φίλτρα Χαρακτηριστικών » για να διαλέξουμε το χρώμα ή τα χρώματα που θα εμφανίζονται στη ιστοσελίδα μας, τις στήλες, τη μορφολογία και άλλα χαρακτηριστικά (Εικόνα 2.9).
Εικόνα 2.9 Φίλτρα χαρακτηριστικών
Διαλέγουμε τα χαρακτηριστικά που θέλουμε, αλλά όσο αφορά στη διάταξη θα επιλέξουμε δίστηλο και διάταξη για κινητές συσκευές.

Όταν τελειώσουμε, πατάμε το κουμπί « Εφαρμογή φίλτρων ». Θα μας ανοίξει μια σελίδα με θέματα που ταιριάζουν με τα χαρακτηριστικά που ζητήσαμε. Διαλέγουμε αυτό που μας αρέσει, πάμε το
δείκτη του ποντικιού πάνω του και πατάμε « Εγκατάσταση ». Μόλις τελειώσει η εγκατάσταση, θα επιλέξουμε « Ενεργοποίηση » (Εικόνα 2.10). Μπορούμε να διαμορφώσουμε τον ιστότοπό μας, όπως παραπάνω, και κατόπιν να κάνουμε ανανέωση της σελίδας που βλέπει ο επισκέπτης, για να δούμε πώς φαίνεται το νέο θέμα που ενεργοποιήσαμε.

Εικόνα 2.10 Ενεργοποίηση νέου θέματος
Από τη σελίδα Διαχείρισης θεμάτων πατάμε στο ενεργό θέμα και κατόπιν στο κουμπί « Προσαρμο -γή » και ελέγχουμε, αν το νέο θέμα μας προσφέρει περισσότερες δυνατότητες διαμόρφωσης της ιστοσελίδας μας. Αν έχει νέες δυνατότητες πειραματιζόμαστε μ' αυτές αλλάζοντας τα χρώματα, τις γραμματοσειρές, τη διάταξη του θέματος μας κ.α. (Εικόνα 2.11).
Εικόνα 2.11 Δυνατότητες διαμόρφωσης ιστοσελίδας
Ένας άλλος τρόπος για να εγκαταστήσουμε ένα νέο θέμα είναι να το κατεβάσουμε από το διαδίκτυο σ' ένα φάκελο στον υπολογιστή μας σε μορφή zip και κατόπιν μέσα από τη σελίδα Διαχείρισης θεμάτων να επιλέξουμε «Προσθήκη Νέου» t «Μεταφόρτωση θέματος» . Θα πατήσουμε το κουμπί «Αναζήτηση» (Εικόνα 2.12), θα βρούμε το φάκελο του υπολογιστή μας που έχουμε αποθηκεύσει το θέμα και θα πατήσουμε «Άνοιγμα» . Το θέμα θα φορτωθεί στο WordPress και στη συνέχεια θα μπορούμε να το ενεργοποιήσουμε και να το διαμορφώσουμε, όπως εμείς θέλουμε.

Εικόνα 2.12 Μεταφόρτωση θέματος
Στο διαδίκτυο υπάρχουν πολλοί πάροχοι θεμάτων για όλα τα CMS. Κάποια θέματά τους τα δίνουν χωρίς πληρωμή και κάποια χρειάζεται να πληρώσουμε ένα μικρό ποσό, για να τα κατεβάσουμε. Μερικοί από αυτούς τους παρόχους είναι:
cssigniter.com (Ελληνική)
Elegant Themes
Headway Themes

Themify
Studiopress
Woo Themes
Mojo Themes
Theme forest
Τέλος, υπάρχει και ο τρόπος της εγκατάστασης θέματος με τη χρήση ftp client, όπως είναι η εφαρμογή Filezila.

Εργασία 2
Αναζητήστε το θέμα που ταιριάζει με τον ιστότοπο που θα δημιουργήσετε και εγκαταστήστε το με έναν από τους τρόπους που μάθατε στην προηγούμενη δραστηριότητα.

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

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

Κατηγορίες και ετικέτες μπορούμε να προσθέσουμε μόνο σε άρθρα και όχι σε σελίδες.
Σε μία ιστοσελίδα υπάρχουν δύο ειδών κείμενα που μπορεί κανείς να γράψει: σελίδες (pages) και άρθρα (posts).
Και τα δύο γράφονται με τον ίδιο απλό κειμενογράφο. Μ' αυτό τον κειμενογράφο μπορούμε να γράψουμε ένα νέο άρθρο ή σελίδα ή να κάνουμε αλλαγές σε κάποιο που έχουμε ήδη γράψει.
Οι σελίδες (pages) προορίζονται για θέματα σταθερού και μόνιμου περιεχομένου, δηλαδή είναι, όπως λέμε, στατικές. Για παράδειγμα, σ' ένα ιστότοπο μπορείτε να έχετε στατική τη σελίδα «Επικοινωνία» όπου σ' αυτήν γράφετε τα στοιχεία επικοινωνίας σας (διεύθυνση, τηλέφωνο, e-mail, κάποιο χάρτη που να δείχνει τη διεύθυνση σας). Επίσης, στους ιστότοπους (όχι στα blogs) συνήθως η «Αρχική» είναι στατική σελίδα. Τις σελίδες μπορείτε να τις δημοσιεύσετε είτε σαν βασικά στοιχεία του μενού, είτε σαν υποσελίδες σ' ένα βασικό στοιχείο του μενού.

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

Δραστηριότητα 2. Δημιουργία κατηγοριών - υποκατηγοριών, μενού, άρθρων, ετικετών
Ξεκινάμε με την δημιουργία των κατηγοριών. Από τον Πίνακα Ελέγχου επιλέγουμε Άρθρα και στην συνέχεια Κατηγορίες και μεταβαίνουμε στην σελίδα όπως φαίνεται πιο κάτω (Εικόνα 2.13).
Εικόνα 2.13 Προσθήκη Κατηγορίας
Θα δούμε τα παρακάτω τέσσερα πεδία:
Όνομα - Το όνομα της νέας κατηγορίας.
Σύντομο όνομα - Η βελτιστοποιημένη μορφή του ονόματος της κατηγορίας που δημιουργούμε για να εμφανίζεται στο URL της ιστοσελίδας μας. Συνήθως περιέχει μόνο πεζά (λατινικά) γράμματα, αριθμούς και ενωτικά.

Γονέας - Οι κατηγορίες μπορούν να διατάσσονται και ιεραρχικά. Εδώ ορίζουμε ότι η κατηγορία που δημιουργούμε είναι υποκατηγορία κάποιας άλλης.
Περιγραφή -Η περιγραφή θέλει λίγο προσοχή. Ενώ από το WordPress δεν εμφανίζεται πουθενά κάποια θέματα την εμφανίζουν. Οπότε, αν γεμίσουμε το πεδίο περιγραφή, χρειάζεται να είμαστε προσεκτικοί στο τι θα γράφουμε ή να ελέγξουμε το θέμα μας, αν την εμφανίζει.
Όταν συμπληρώσουμε όσα από τα πεδία χρειαζόμαστε, τότε επιλέγουμε το κουμπί « Προσθήκη κα -τηγορίας ».

Μια κατηγορία που υπάρχει συνήθως σε όλους τους ιστότοπους είναι η Αρχική. Δημιουργείται για να υπάρχει στο κυρίως μενού και να μας μεταφέρει στο Home page, όπου κι αν βρισκόμαστε μέσα στην ιστοσελίδα.
Το επόμενο βήμα είναι η δημιουργία μενού από τις κατηγορίες - υποκατηγορίες που υπάρχουν.
Για να προσθέσουμε τις κατηγορίες-υποκατηγορίες στο κεντρικό μενού του ιστότοπου μεταβαίνουμε στον Πίνακα Ελέγχου και από το μενού αριστερά επιλέγουμε Εμφάνιση t Μενού . Θα μεταβούμε στην σελίδα που φαίνεται στην Εικόνα 2.14.

Πληκτρολογούμε ένα όνομα που θέλουμε για το μενού. Συνήθως στα μενού δίνουμε ονόματα ανάλογα με την περιοχή της σελίδας που θα εμφανίζονται (π.χ. Κεντρικό Μενού, Αριστερό Μενού κτλ.), ώστε να είναι εύκολο να διακρίνουμε, βλέποντας την ιστοσελίδα μας αργότερα, σε ποιο μενού πρέπει να πάμε για ν' αλλάξουμε κάτι.
Εικόνα 2.14 Δημιουργία Μενού
Επιλέγουμε «Κατηγορίες» αριστερά, μετά «Προβολή όλων» και κάνουμε κλικ σε όλες τις κατηγορίες και υποκατηγορίες που θέλουμε να τοποθετήσουμε σ' αυτό το μενού. Έπειτα κάνουμε κλικ στο κουμπί «Προσθήκη στο μενού» (Εικόνα 2.15).

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

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

Αν θέλουμε να δημιουργήσουμε κι ένα δεύτερο μενού που τα στοιχεία του θα εμφανίζονται στην πλευρική στήλη (sidebar) της ιστοσελίδας μας, πρέπει να κάνουμε τα εξής:
Να δημιουργήσουμε το μενού, όπως μάθαμε παραπάνω, προσθέτοντας του τα στοιχεία (σελίδες, κατηγορίες, υποκατηγορίες ή συνδέσμους) που θέλουμε και να το αποθηκεύσουμε.
Από τον Πίνακα Ελέγχου επιλέγουμε Εμφάνιση t Μικροεφαρμογές . Από τις διαθέσιμες μικροεφαρμογές θα πατήσουμε με το ποντίκι πάνω στο « Προσαρμοσμένο μενού », θα το σύρουμε δεξιά και θα το αφήσουμε μέσα στην περιοχή μονάδων που εμφανίζεται στην πλευρική στήλη (Εικόνα 2.17). Εμφανίζονται τα εξής πεδία:

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

Υπάρχουν διάφοροι τρόποι για τη δημιουργία νέου άρθρου:
Από τον Πίνακα ελέγχου , χρησιμοποιώντας το μενού πλοήγησης: Άρθρα -> Νέο άρθρο.
Χρησιμοποιώντας το μενού γρήγορης Προσθήκης από το πάνω μέρος της σελίδας επιλέγοντας Προ -σθήκη ->Άρθρου.
Θα μεταβούμε στην σελίδα δημιουργίας/επεξεργασίας άρθρου, όπου εμφανίζεται ένας επεξεργαστής κειμένου, όμοιος με το Microsoft Word καθώς και πρόσθετες επιλογές διαμόρφωσης. Αν πατήσουμε στο τελευταίο εικονίδιο στη σειρά, θα ανοίξει μια δεύτερη σειρά εργαλείων μορφοποίησης (Εικόνα 2.18). Γράφουμε το κείμενό μας και επιλέγουμε από τα υπάρχοντα κουμπιά τη διαμόρφωση που θέλουμε.

Εικόνα 2.18 Δημιουργία νέου άρθρου
Στην πιο απλή περίπτωση συγγραφής ενός άρθρου θα πρέπει να συμπληρώσουμε:
Τον τίτλο του - Γράφουμε τον τίτλο του θέματος στο οποίο αναφέρεται το άρθρο και θα εμφανίζεται πάνω από το περιεχόμενο του άρθρου.
Το περιεχόμενο του - Εδώ γράφουμε το περιεχόμενο του άρθρου με την βοήθεια του κειμενογράφου.
Την κατηγορία - Επιλέγουμε την κατηγορία που θα ανήκει το άρθρο.
Όταν τελειώσουμε, πατάμε το κουμπί «Δημοσίευση» .
Όταν ένα άρθρο είναι δημοσιευμένο και χρειαστεί να το τροποποιήσουμε, τότε, όταν τελειώσουμε τις αλλαγές μας στο άρθρο, πατάμε το κουμπί " Ενημέρωση ".

«Διαβάστε Περισσότερα»
Όταν γράφουμε ένα άρθρο, ενδέχεται να είναι μεγάλο. Στην αρχική σελίδα μας ένα ογκώδες κείμενο χαλάει λίγο την εμφάνιση της. Πρέπει λοιπόν να το κόψουμε και ο επισκέπτης, για να το διαβάσει ολόκληρο, θα πρέπει να πατήσει στον τίτλο του άρθρου. Στο WordPress ένα από τα εργαλεία στον κειμενογράφο είναι το "Εισαγωγή σήμανσης Διαβάστε περισσότερα", το οποίο, στην ουσία, κόβει το άρθρο εκεί που το βάζουμε.
Για να εισάγουμε το Διαβάστε Περισσότερα, βάζουμε τον δρομέα στη θέση του κειμένου που θέλου-
με να γίνει η διακοπή και πατάμε το εικονίδιο γραμμή μορφοποίησης του κειμενογράφου.
που βρίσκεται δεύτερο από το τέλος στην πρώτη

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

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

Περιγραφή : λίγα λόγια για την εικόνα.
Στοίχιση : πώς θα ευθυγραμμιστεί η εικόνα στο περιεχόμενο μας, οι επιλογές είναι: Αριστερά, Κέντρο, Δεξιά, Καμία.
Μέγεθος : όταν φορτώνουμε μια εικόνα, το WordPress δημιουργεί πολλαπλά αντίγραφα σε διάφορα μεγέθη, τα έξης: Μικρογραφία, Μέσο, Μεγάλο, Πλήρες.
Μετά την επεξεργασία πατάμε το κουμπί «Ε ισαγωγή σε άρθρο », για να εισάγουμε την εικόνα στο άρθρο.
Επισήμανση: Τα αρχεία που ανεβάζουμε από τον υπολογιστή μας, αποθηκεύονται στη δομή αρχείων του WordPress και καταλαμβάνουν χώρο από αυτόν που έχουμε διαθέσιμο στο web server. Αυτό θα έχει ως συνέπεια να γεμίσει ο χώρος μας. Μια λύση είναι να αποθηκεύουμε αυτά τα αρχεία σε εξωτερικές υπηρεσίες (box, dropbox, google drive, youtube κ.τ.λ.) και να χρησιμοποιούμε συνδέσμους κατευθείαν προς την πηγή.

Για να δημιουργήσουμε μια συλλογή εικόνων, επιλέγουμε τις εικόνες που επιθυμούμε και κάνουμε κλικ στο κουμπί " Δημιουργία νέας συλλογής " (Εικόνα 2.19).
Εικόνα 2.19 Δημιουργία συλλογής εικόνων
Μπορούμε επίσης να ενσωματώσουμε πολυμέσα από πολλούς δημοφιλείς ιστότοπους, όπως το Twitter, το YouTube, το Flickr και άλλα, χωρίς πρώτα να τα έχουμε κατεβάσει στον υπολογιστή μας: Επιλέγουμε το κουμπί Προσθήκη πολυμέσων . Επιλέγουμε Εισαγωγή από URL. Επικολλούμε την διεύθυνση της εικόνας.

Εισαγωγή συνδέσμων
Σύνδεσμος (link) : ονομάζεται το κείμενο (ή γενικά το αντικείμενο - βίντεο - εικόνα) που αν κάνουμε κλικ πάνω του θα μεταβούμε είτε σε κάποιο άλλο σημείο της σελίδας (εσωτερικός σύνδεσμος), είτε σε κάποια σελίδα (ή άρθρο) εντός του ιστότοπου (τοπικός σύνδεσμος) ή ακόμα σε κάποιο άλλο ιστότοπο (εξωτερικός σύνδεσμος).
Γράφουμε το κείμενο που αφορά τον σύνδεσμο. Στην συνέχεια επιλέγουμε αυτό το κείμενο με το ποντίκι. Πατάμε στο εικονίδιο " Εισαγωγή/ Επεξεργασία Συνδέσμου " .
Μετά το πάτημα του εικονιδίου εμφανίζεται ένα παράθυρο στο οποίο μπορούμε να εισάγουμε τα παρακάτω στοιχεία:

URL : η διεύθυνση του συνδέσμου
Άνοιγμα συνδέσμου σε νέο παράθυρο : αν θέλουμε ο σύνδεσμος να ανοίγει σε νέο παράθυρο, έτσι ώστε να μην χάνεται το άρθρο που διαβάζουμε. Σε αντίθετη περίπτωση, αφήνουμε ανενεργή την επιλογή.
Αφού έχουμε εισαγάγει τα στοιχεία που θέλουμε, πατάμε στο κουμπί Προσθήκη συνδέσμου , για να ολοκληρωθεί η εισαγωγή του συνδέσμου.
Μπορεί να θέλουμε να αφαιρέσουμε τον σύνδεσμο. Τοποθετούμε τον δρομέα στο κείμενο του συνδέσμου και πατάμε στο εικονίδιο του κειμενογράφου " Αφαίρεση συνδέσμου " .

Προγραμματισμός για δημοσίευση άρθρου σε μεταγενέστερη ημερομηνία
Μπορούμε να προγραμματίσουμε την δημοσίευση κάποιου άρθρου σε μεταγενέστερη ημερομηνία, σε λίγες ημέρες ή εβδομάδες (Εικόνα 2.20).
Εικόνα 2.20 Προγραμματισμός δημοσίευσης άρθρου
Κάνουμε κλικ στο σύνδεσμο « Αλλαγή » δίπλα στην επιλογή « Δημοσίευση: 'Άμεσα » στο πλαίσιο «Δημοσίευση». Εισάγουμε την ημερομηνία και την ώρα που θέλουμε να δημοσιευτεί το άρθρο. Κάνουμε κλικ στο κουμπί « Εντάξει » και κατόπιν κάνουμε κλικ στο κουμπί «Προγραμματισμός».

Το άρθρο μας θα είναι σε κράτηση μέχρι την ώρα και ημερομηνία που έχουμε ορίσει.

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

Προστασία άρθρου με κωδικό πρόσβασης
Υπάρχουν άρθρα που τα γράφουμε και θέλουμε να έχουν πρόσβαση σ' αυτά μόνο κάποιοι αναγνώστες που διαθέτουν κάποιο συγκεκριμένο κωδικό. Αυτό γίνεται ως έξης:
Στο υπομενού Δημοσίευση (Εικόνα 2.20) επιλέγουμε Ορατότητα . Κάνουμε κλικ στο « Έχει Συνθημα -τικό » , γράφουμε το συνθηματικό που θέλουμε και πατάμε «Εντάξει».

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

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

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

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

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

Πρόσφατα άρθρα - Μπορούμε να εμφανίζουμε τα τελευταία άρθρα που αναρτήθηκαν στον ιστότοπο μας.
Μεταστοιχεία - Μπορούμε να εμφανίζουμε συνδέσμους σε λειτουργίες όπως: Διαχείριση, Αποσύνδεση, Κανάλι RSS άρθρων, Κανάλι RSS σχολίων και WordPress.org.
Προσαρμοσμένο μενού -Έχουμε την δυνατότητα να δημιουργήσουμε πολλά διαφορετικά μενού επιλογών που θα εμφανίζονται σε διάφορα σημεία της ιστοσελίδας.
Σελίδες - Μπορούμε να εμφανίζουμε συνδέσμους στις σελίδες του ιστότοπου μας, ταξινομημένες κατά τίτλο, κατά σειρά ή κατά id σελίδας. Μπορούμε ν' αποκλείσουμε την εμφάνιση κάποιων σελίδων, βάζοντας τα id τους χωρισμένα με κόμμα στο πεδίο «Εξαιρέσεις»

Κείμενο -Χρησιμοποιείται για να προσθέτουμε κείμενο, κώδικα HTML, κώδικα JavaScript ή απλό κείμενο σε κάποια περιοχή του θέματος μας. Είναι μια πολύ χρήσιμη μικροεφαρμογή, γιατί μπορούμε να κάνουμε πάρα πολλά πράγματα μ' αυτήν όπως για παράδειγμα να προσθέσουμε διαφημίσεις, λίστα φωτογραφιών, λίστα βίντεο, συνδέσμους κ.α.
Ας δούμε ένα παράδειγμα για τη χρήση αυτής της μικροεφαρμογής. Ας υποθέσουμε ότι ο ιστότοπός μας κέρδισε το πρώτο βραβείο σε κάποιο διαγωνισμό και θέλουμε να βάλουμε το σήμα που κερδίσαμε στο υποσέλιδο της ιστοσελίδας μας. Οι διοργανωτές του διαγωνισμού μας έστειλαν με e-mail λίγες γραμμές κώδικα HTML. Μπορούμε να ενεργοποιήσουμε τη μικροεφαρμογή Κείμενο και μέσα στο «Περιεχόμενο» να επικολλήσουμε τον κώδικα HTML που λάβαμε. Η εικόνα του σήματος θα εμφανιστεί αμέσως στον ιστότοπό μας.

Το ίδιο μπορούμε να κάνουμε αν θέλουμε να εμφανίζουμε διαφημίσεις της Google.
RSS - RSS είναι τα αρχικά του Really Simple Syndication. Πρόκειται για μια υπηρεσία internet, η οποία μεταφέρει αυτόματα περιεχόμενο από μια 'πηγή' στη δική μας ιστοσελίδα. Το περιεχόμενο αυτό μπορεί να είναι άρθρα, ειδήσεις ή άλλες πληροφορίες που δημοσιεύονται σε ιστοσελίδες, blogs, forum, κ.λπ. Μέσω του RSS Feed, ο χρήστης μπορεί να λαμβάνει τις πληροφορίες από τους ιστότοπους που τον ενδιαφέρουν, σχεδόν αμέσως μετά τη δημοσίευσή τους.

Μια 'πηγή' πληροφοριών, έχει τη δυνατότητα να μας προσφέρει αυτή την υπηρεσία, εφόσον - κάπου- εμφανίζει το εικονίδιο .
Για να χρησιμοποιήσουμε αυτή τη μικροεφαρμογή πρέπει να ορίσουμε τη διεύθυνση του καναλιού RSS, δηλαδή την Url της πηγής πληροφοριών. Προαιρετικά, μπορούμε να δώσουμε μια ονομασία για το κανάλι RSS. Επίσης, μπορούμε να επιλέξουμε πόσα νέα άρθρα θέλουμε να φαίνονται. ¨Όταν τελειώσουμε πατάμε «Αποθήκευση».

Δραστηριότητα 3. Εισαγωγή Μικροεφαρμογών (widgets)
Για να ενεργοποιήσουμε μια μικροεφαρμογή από τις διαθέσιμες, από τον Πίνακα Ελέγχου επιλέγουμε Εμφάνιση->Μικροεφαρμογές .
Σύρουμε τη μικροεφαρμογή « Αναζήτηση » σε μια περιοχή του θέματος μας. Μόλις σύρουμε μια μικροεφαρμογή σε μια περιοχή, θα ανοίξει για να ορίσουμε τις ρυθμίσεις της. Μόλις είμαστε έτοιμοι, πατάμε «Αποθήκευση» και η μικροεφαρμογή θα εμφανιστεί στον ιστότοπό μας.
Αν θέλουμε να αφαιρέσουμε μια μικροεφαρμογή αλλά να διατηρήσουμε τις ρυθμίσεις της για το μέλλον, την σύρουμε στις Ανενεργές μικροεφαρμογές. Αργότερα γίνεται να την προσθέσουμε πάλι από εκεί. Η δυνατότητα αυτή είναι ιδιαίτερα χρήσιμη όταν αλλάζουμε μεταξύ θεμάτων με διαφορετική υποστήριξη Μικροεφαρμογών.

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

Εργασία 4
Να προσθέσετε στην σελίδα σας τουλάχιστον 4 μικροεφαρμογές. Οι 2 να είναι αυτές της Αναζήτησης και του Ημερολογίου.
Να δημιουργήσετε ένα καινούργιο μενού με το όνομα «Αριστερό μενού», στο οποίο θα εισάγετε ότι κρίνετε εσείς απαραίτητο (κατηγορίες, σελίδες) και θα το προσθέσετε σαν μονάδα στην αριστερή πλευρική στήλη της σελίδας σας.
Επισκεφθείτε την αγαπημένη σας ειδησεογραφική ιστοσελίδα ή blog και ψάξτε να βρείτε σε πιο σημείο υπάρχει η RSS ροή ειδήσεων. Στα blog συνήθως υπάρχει μόνο μια ροή με όλα τα άρθρα που γράφονται, ενώ στις ειδησεογραφικές ιστοσελίδες υπάρχουν ροές για κάθε κατηγορία ειδήσεων ξεχωριστά και μια ροή με όλες τις ειδήσεις.

Αφού αντιγράψετε τη διεύθυνση URL της ροής ειδήσεων (RSS feed,) πηγαίνετε στον πίνακα ελέγχου του blog σας και προσθέστε ένα widget στο υποσέλιδο που να δείχνει τις τελευταίες ειδήσεις από τη ροή που διαλέξατε.
Αν ολοκληρώσατε σωστά τη διαδικασία, πρέπει στο υποσέλιδο του ιστότοπου σας πλέον να εμφανίζονται οι τελευταίες ειδήσεις από την ιστοσελίδα που είχατε επιλέξει.
Πού θα βρείτε την Url (διεύθυνση) , ώστε τα νέα μηνύματα να φτάνουν στο δικό σας blog ;
Πάτε στην ιστοσελίδα από την οποία θέλετε να έχετε ενημέρωση. Εντοπίζετε το εικονίδιο και πατάτε κλικ πάνω του. Ανοίγει ένα νέο παράθυρο, από το οποίο αντιγράφετε την Url. Με τη διαδικασία ΑντιγραφήςΕπικόλλησης μεταφέρετε το περιεχόμενο της αντιγραφής μας μέσα στην περιοχή ρυθμίσεων της Μικροεφαρμογής RSS στο πεδίο « Ορίστε τη διεύθυνση του καναλιού RSS » (Εικόνα 2.22).

Εικόνα 2.22 Εισαγωγή Google Rss στο υποσέλιδο

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

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

Περνώντας το δείκτη του ποντικιού πάνω από κάθε σειρά της λίστας Σχόλιων, εμφανίζονται σύνδεσμοι κάτω από το σχόλιο:
Έγκριση / Αποέγκριση - Μας επιτρέπει να εγκρίνουμε την εμφάνιση του σχολίου στον ιστότοπό μας. Αν το σχόλιο είναι ήδη εγκεκριμένο, τότε αυτή η σύνδεση θα αλλάξει σε Αποέγκριση, για να σταματήσουμε την εμφάνιση του.
Απάντηση - Μπορούμε να γράψουμε μια απάντηση στο σχόλιο. Η απάντηση θα εμφανίζεται στον ιστότοπο μας.
Ταχυεπεξεργασία -Μπορούμε να επεξεργαστούμε το όνομα του σχολιαστή, το e-mail ή το URL, καθώς και το περιεχόμενο του σχολίου και να πατήσουμε «Ενημέρωση σχολίου», όταν τελειώσουμε.

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

Δραστηριότητα 5. Έλεγχος των σχολίων του ιστότοπου
Από τον Πίνακα Ελέγχου επιλέγουμε Ρυθμίσεις -> Συζήτηση , Στο παράθυρο που ανοίγει μπορούμε να καθορίσουμε το αν και πώς θα επιτρέπεται να σχολιάζει κανείς τα άρθρα/ σελίδες του ιστότοπού μας (Εικόνα 2.23).
Εικόνα 2.23 Ρυθμίσεις συζητήσεων
Οι επιλογές που υπάρχουν είναι οι παρακάτω:
-  Αρχικές ρυθμίσεις άρθρων
-  Άλλες ρυθμίσεις σχολίων.
-  Να ειδοποιούμαι όποτε.
-  Για να προβληθεί σχόλιο.
-  Συντονισμός σχολίων
-  Μαύρη λίστα σχολίων
-  Άβαταρ

Αρχικές ρυθμίσεις άρθρων
- 9 Ειδοποίηση ιστολογίων που συνδέονται από άρθρα: Ορίζουμε να ειδοποιούνται αυτόματα οι ιστότοποι, όταν κάνουμε αναφορά σε αυτούς (δίνοντας την διεύθυνση URL).
- 9 Να επιτρέπονται οι ειδοποιήσεις συνδέσμων από άλλα ιστολόγια (παραθέματα και παραπομπές) σε νέα άρθρα: Με αυτή τη ρύθμιση ειδοποιείται ο δικός μας ιστότοπος, όταν γίνεται αναφορά σε αυτόν από κάποιο άλλο ιστότοπο.
- 9 Επιτρέπονται σχόλια σε άρθρα: Επιτρέπουμε στους αναγνώστες να σχολιάζουν τα άρθρα μας.

Άλλες ρυθμίσεις σχολίων
- 9 Ο συντάκτης πρέπει να συμπληρώσει όνομα και ηλεκτρονική διεύθυνση: Επιλέγουμε, αν θέλουμε ο συντάκτης ενός σχολίου να είναι υποχρεωμένος να συμπληρώνει το όνομα και τη διεύθυνση ηλεκτρονικού ταχυδρομείου του, για να γίνει αποδεκτό το σχόλιο του.
- 9 Σχόλια επιτρέπονται μόνο σε εγγεγραμμένα και συνδεδεμένα μέλη: Με αυτή τη ρύθμιση ορίζουμε ότι επιτρέπουμε σχόλια μόνο από εγγεγραμμένα μέλη που έχουν συνδεθεί. (Η επιλογή αυτή είναι προτεινόμενη, γιατί θα μας γλυτώσει από ανεπιθύμητα σχόλια).
- 9 Αυτόματο κλείσιμο σχολίων σε άρθρα άνω των 14 ημερών: Καθορίζεται αν μετά από 14 ημέρες θα κλείνουν αυτόματα τα σχόλια στα άρθρα μας. Υπάρχει η δυνατότητα να ορίσουμε όσες μέρες θέλουμε.
- 9 Εμφώλευση σχολίων έως 5 επίπεδα: Με αυτήν την επιλογή ορίζουμε το πλήθος των επιπέδων ένθετων (εμφωλευμένων) απαντήσεων που θα επιτρέπονται.
- 9 Σελιδοποίηση σχολίων: 50 σχόλια 1ου επιπέδου ανά σελίδα και μπροστά η τελευταία σελίδα: Όταν ένα άρθρο αποσπάσει πολλά σχόλια από τους αναγνώστες, αυτά θα πρέπει να ομαδοποιηθούν με κάποιο τρόπο. Εδώ, καθορίζουμε το πλήθος των σχόλιων πρώτου επιπέδου που θέλουμε να εμφανίζονται σε κάθε σελίδα, καθώς επίσης και ποια από αυτές τις σελίδες θα εμφανίζεται πρώτη.
- 9 Στην κορυφή να προβάλλονται τα παλαιότερα σχόλια: Ορίζουμε αν στην κορυφή της σελίδας θα εμφανίζονται τα νεότερα ή τα παλαιότερα σχόλια.

Να ειδοποιούμαι όποτε
- 9 Υποβάλλεται σχόλιο: Μόλις υποβληθεί ένα σχόλιο σε κάποιο άρθρο, ο διαχειριστής θα ειδοποιείται με ένα μήνυμα ηλεκτρονικού ταχυδρομείου στον λογαριασμό e-mail που έχει ορίσει στις γενικές ρυθμίσεις. (Προτεινόμενη)
- 9 Υπάρχει σχόλιο για έλεγχο: Καθορίζεται αν θέλουμε να λαμβάνουμε ειδοποίηση όταν ένα σχόλιο αναμένει έγκριση. (Προτεινόμενη)

Για να προβληθεί ένα σχόλιο
- 9 Πρέπει να εγκριθεί από διαχειριστή: Εδώ ορίζουμε αν τα σχόλια θα πρέπει να πάρουν έκκριση από τον διαχειριστή πριν εμφανιστούν στα άρθρα. (Προτεινόμενη)
- 9 Ο συντάκτης πρέπει να έχει ήδη εγκεκριμένο σχόλιο: Εγκρίνονται αυτόματα τα σχόλια από χρήστες που έχουν ήδη ένα εγκεκριμένο σχόλιο.

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

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

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

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

Το WordPress έχει πέντε προκαθορισμένους ρόλους:
-  Διαχειριστής (administrator): Έχει πλήρη έλεγχο και μπορεί να κάνει τα πάντα. Ακόμη και να διαγράψει τον ιστότοπο. Συστήνεται να υπάρχει μόνο ένας administrator.
-  Αρχισυντάκτης (editor): Μπορεί να δει, να αλλάξει, να δημοσιεύσει και να διαγράψει οποιοδήποτε άρθρο ή σελίδα. Μπορεί να διαχειριστεί τα σχόλια, τις κατηγορίες, να ανεβάσει αρχεία κτλ.
-  Συντάκτης (author): Μπορεί να δημοσιεύσει και να αλλάξει μόνο τα δικά του άρθρα και να ανεβάσει αρχεία ή εικόνες. Δεν μπορεί να αλλάξει, να προσθέσει ή να διαγράψει σελίδες.
-  Συνεργάτης (contributor): Μπορεί να δημιουργήσει άρθρα, αλλά δεν μπορεί να τα δημοσιεύσει αν δεν πάρει πρώτα έγκριση από τον διαχειριστή. Από την στιγμή που θα πάρει έγκριση και δημοσιευθούν, δεν μπορεί στη συνέχεια να τα τροποποιήσει. Ο Συνεργάτης δεν μπορεί να ανεβάσει αρχεία ή εικόνες.
-  Συνδρομητής (Subscriber) : Μπορεί μόνο να διαβάσει αναρτήσεις και να επεξεργαστεί το προφίλ του, όπως και προσωπικά δεδομένα μέσα σε αυτό.

Δραστηριότητα 6. Διαχείριση μελών
Από τον Πίνακα Ελέγχου, πατώντας πάνω στην επιλογή « Μέλη » του κάθετου μενού, εμφανίζονται όλα τα μέλη που έχουν κάποιο δικαίωμα πρόσβασης στο διαχειριστικό περιβάλλον του ιστότοπου μας. Οι χρήστες με ρόλο διαφορετικό του Διαχειριστή, έχουν λιγότερες επιλογές στο διαχειριστικό περιβάλλον του ιστότοπου. Μόνο ο Διαχειριστής μπορεί να προσθέσει νέα μέλη, να διαγράψει μέλη ή /και να αλλάξει ρόλο σε άλλους.
Για την προσθήκη ενός νέου μέλους θα επιλέξουμε από το πάνω μέρος της σελίδας, δίπλα από τον τίτλο Μέλη, το κουμπί « Προσθήκη ». Στη σελίδα που εμφανίζεται θα γράψουμε υποχρεωτικά το Όνομα χρήστη, την Ηλ. Διεύθυνση του και τον Ρόλο του. Τα υπόλοιπα πεδία είναι προαιρετικά. Όταν τελειώσουμε πατάμε « Προσθήκη μέλους » (Εικόνα 2.25).

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

Αλλαγή -Μπορούμε να αλλάξουμε το ρόλο του μέλους σε νέο ρόλο και τέλος πατάμε το κουμπί «Ενημέρωση μέλους».

Εργασία 6
Δημιουργήστε 3 νέα μέλη για τον ιστότοπο σας. Στο ένα θα δώσετε το ρόλο του Συντάκτη και στους άλλους δύο το ρόλο του Συνεργάτη.

2.2.8.

2.2.9. Πρόσθετα (plugins)
Ως πρόσθετα, ορίζονται μικρά προγράμματα τα οποία δεν μπορούν να τρέξουν μόνα τους, αντιθέτως είναι φτιαγμένα για ένα μεγαλύτερο πρόγραμμα, μέσα στο οποίο τρέχουν και δίνουν νέες δυνατότητες σε αυτό.
Στο WordPress τα πρόσθετα είναι τμήματα κώδικα PHP, τα οποία επεκτείνουν τις δυνατότητες που μας προσφέρει η βασική εγκατάσταση του WordPress. Το WordPress είναι ένα από τα πλέον διαδεδομένα CMS και υπάρχει μια τεράστια κοινότητα από χρήστες και προγραμματιστές που το υποστηρίζουν. Αυτό επιτρέπει στους διαχειριστές να επιλέγουν από χιλιάδες πρόσθετα, και να αυξάνουν τις δυνατότητες και τις υπηρεσίες που παρέχει ο ιστότοπος τους.

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

Δραστηριότητα 7. Εγκατάσταση προσθέτων (plugins)
Από τον «Πίνακα Ελέγχου» του WordPress, θα πρέπει να επιλέξουμε την καρτέλα « Πρόσθετα » στο αριστερό μενού και στη συνέχεια να πατήσουμε στο σύνδεσμο « Νέο πρόσθετο ». Δεξιά, θα εμφανιστεί μια σελίδα, στην οποία μπορούμε να πραγματοποιήσουμε αναζητήσεις (Εικόνα 2.26).
Εικόνα 2.26 Προσθήκη προσθέτων
Εκεί, αν ξέρουμε τι ψάχνουμε, η Αναζήτηση είναι αυτό ακριβώς που χρειαζόμαστε. Η αναζήτηση γίνεται στο Αποθετήριο Προσθέτων του WordPress.org για ένα συγκεκριμένο Όρο, Συγγραφέα ή Ετικέτα.

Αν θέλουμε να δούμε ποια πρόσθετα είναι διαθέσιμα, μπορούμε να περιηγηθούμε στα «Προτεινόμενα» και «Δημοφιλή» χρησιμοποιώντας τις συνδέσεις στο επάνω αριστερό μέρος της οθόνης.
Μπορούμε να δούμε τ' αγαπημένα πρόσθετα ενός άλλου χρήστη μέσω του συνδέσμου «Αγαπημένα», στο πάνω αριστερό μέρος της οθόνης και πληκτρολογώντας το όνομα χρήστη του στο WordPress.org.
Αν θέλουμε να εγκαταστήσουμε ένα πρόσθετο από αλλού, πρώτα πρέπει να το έχουμε κατεβάσει, σε μορφή zip, στον υπολογιστή μας.
Από την Προσθήκη προσθέτων πατάμε στον σύνδεσμο « Μεταφόρτωση προσθέτου » πάνω αριστερά. Θα μας ζητηθεί να μεταφορτώσουμε το πακέτο .zip, και μόλις μεταφορτωθεί, μπορούμε να ενεργοποιήσουμε το νέο πρόσθετο.

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

Υπάρχει η πιθανότητα αν εγκαταστήσουμε ένα ασύμβατο πρόσθετο με την έκδοση του WordPress που διαθέτουμε, να γίνει αδύνατη η πρόσβαση στον «Πίνακα Ελέγχου» ή ακόμα και στον ίδιο τον ιστότοπο μας. Σ' αυτή την περίπτωση, θα πρέπει να συνδεθούμε απευθείας στο διακομιστή που φιλοξενεί τον ιστότοπο μας μέσω FTP και να διαγράψουμε το φάκελο του πρόσθετου από το φάκελο "/wp-content/plugins".
Ορισμένα πρόσθετα θα χρειαστεί να τα ρυθμίσουμε μόλις τα εγκαταστήσουμε, προκειμένου να λειτουργήσουν. Η πρόσβαση στις ρυθμίσεις του πρόσθετου συνήθως γίνεται μέσω του μενού «Ρυθμίσεις», ή από το μενού του πρόσθετου που δημιουργείται στον «Πίνακα Ελέγχου».

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

Εργασία 7. Σελίδα Επικοινωνίας
Η κάθε ιστοσελίδα θα πρέπει να έχει και κάποιους διαθέσιμους τρόπους, έτσι ώστε να επικοινωνούν οι επισκέπτες μαζί μας. Το Contact Form 7 είναι ένα εξαιρετικό πρόσθετο το οποίο μας επιτρέπει εύκολα να δημιουργήσουμε φόρμες επικοινωνίες για την σελίδα μας. Θα το εγκαταστήσουμε μέσα από τα Πρόσθετα, επιλέγοντας από το μενού Πρόσθετα t Νέο Πρόσθετο . Μπορούμε τόσο να το αναζητήσουμε, με τον μηχανισμό αναζήτησης, όσο και να το βρούμε κάνοντας κλικ στον σύνδεσμο Δημοφιλή .

Όταν το εγκαταστήσουμε και το ενεργοποιήσουμε, θα δούμε στην οθόνη με τα πρόσθετα αυτό που εγκαταστήσαμε, όσο και ότι μπήκε η επιλογή « Επικοινωνία » στον Πίνακα Ελέγχου.
Στο μενού επιλέγουμε Επικοινωνία t Προσθήκη νέας . Όταν γίνει αυτό, ανοίγει το παράθυρο ρυθμίσεων της φόρμας επικοινωνίας για WordPress. Στο πάνω μέρος δίνουμε ένα όνομα για τη φόρμα μας.
Από κάτω βλέπουμε ένα οριζόντιο μενού, με τα πεδία Φόρμα, Αλληλογραφία, Μηνύματα και Επιπρόσθετες ρυθμίσεις.
Φόρμα - Υπάρχουν ορισμένα εξ' ορισμού πεδία (Όνομα, email, Θέμα, Το μήνυμά σας και Αποστολή) σε μορφή html κώδικα. Αυτά τα πεδία θα μπουν στην φόρμα με την σειρά που τα βλέπουμε.

Κάτω από τη λέξη Φόρμα, βλέπουμε μια σειρά από πρόσθετα πεδία που μπορούμε να βάλουμε στη φόρμα μας (Εικόνα 2.27).

Εικόνα 2.27 Πρόσθετα πεδία φόρμας
Έστω ότι θέλουμε να προσθέσουμε το πεδίο τηλέφωνο κάτω από το πεδίο email. Θα βάλουμε τον δρομέα στο σημείο που θέλουμε να μπει το πεδίο αυτό, θα πατήσουμε στο πρόσθετο πεδίο tel και αυτό θα μπει στον κώδικα HTML. Θα του δώσουμε ένα όνομα «Το τηλέφωνό σας», για να ξέρει ο επισκέπτης τι πρέπει να εισάγει σ' αυτό το πεδίο και θα προσθέσουμε τις ίδιες ετικέτες HTML που έχουν τα πεδία που υπάρχουν ήδη. Ο κώδικας θα έχει τώρα τη μορφή:
Πατάμε Αποθήκευση κάθε φορά που μετακινούμαστε στο οριζόντιο μενού.

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

Εικόνα 2.28 Κώδικας φόρμας επικοινωνίας
Ξεκινάμε μια νέα σελίδα στην οποία εισάγουμε τον τίτλο της «Φόρμα Επικοινωνίας» και στον επεξεργαστή κειμένου βάζουμε τον παραπάνω αντιγραμμένο κώδικα της φόρμας επικοινωνίας. Στην συνέχεια από τον Πίνακα Ελέγχου επιλέγουμε Εμφάνιση t Μενού και στο πτυσσόμενο μενού « Επι -λογή μενού για επεξεργασία » διαλέγουμε το Πρωτεύον μενού και πατάμε « Επιλογή ». Στην περιοχή Σελίδες, τσεκάρουμε τη Φόρμα Επικοινωνίας και την προσθέτουμε στο μενού. Όταν θα δούμε την σελίδα, θα δούμε την φόρμα επικοινωνίας στο σημείο την οποία την βάλαμε.

Δραστηριότητα 8. Προσθήκη μιας λίστας με εξωτερικούς συνδέσμους
Για να βάλουμε μια λίστα με συνδέσμους (links) προς αγαπημένους μας ή χρήσιμους ιστότοπους, χρειάζεται πρώτα να εγκαταστήσουμε ένα πρόσθετο (plugin). Στην παρούσα δραστηριότητα θα χρειαστούμε το Simple Links .
Για να το εγκαταστήσουμε από τον Πίνακα Ελέγχου επιλέγουμε Πρόσθετα → Νέο πρόσθετο και στην Αναζήτηση γράφουμε: Simple Links. Όταν το εγκαταστήσουμε και το ενεργοποιήσουμε θα δούμε στο αριστερό κάθετο μενού το σύνδεσμο με το όνομά του.

Οι σύνδεσμοι μπορούν να ομαδοποιηθούν σε κατηγορίες συνδέσμων. (δεν είναι οι ίδιες με αυτές των άρθρων). Έτσι, αργότερα στη Μικροεφαρμογή «Σύνδεσμοι», που θα προσθέσουμε σε κάποια μονάδα του θέματος μας, μπορούμε να ορίζουμε να εμφανίζονται μόνο οι σύνδεσμοι που ανήκουν σε συγκεκριμένη κατηγορία.
Πατάμε το Simple Links → Link Categories και προσθέτουμε κατηγορίες συνδέσμων (όπως ακριβώς κάναμε με τις κατηγορίες άρθρων), ακόμη και υποκατηγορίες συνδέσμων. Δίνουμε ένα όνομα της κατηγορίας και πατάμε το κουμπί « Add new Category ».

Για να προσθέσουμε ένα νέο σύνδεσμο, πατάμε το « Add New Link » και στην οθόνη που θα εμφανιστεί, συμπληρώνουμε όσα πεδία θέλουμε (Εικόνα 2.29). Μόνο το όνομα συνδέσμου (το κείμενο που θέλουμε να εμφανίσουμε στην θέση του συνδέσμου) και η διεύθυνση url είναι υποχρεωτικά πεδία. Τα διαθέσιμα πεδία είναι:
-  Όνομα - το όνομα που θέλουμε να φαίνεται για τον ιστότοπο στον οποίο παραπέμπουμε.
-  Web Address - Η διεύθυνση διαδικτύου στην οποία οδηγεί ο σύνδεσμος όταν πατηθεί.
-  Description -Η περιγραφή του συνδέσμου. Την δίνουμε αν θέλουμε μια περιγραφή η οποία θα φαίνεται όταν ο επισκέπτης βάλει το δείκτη ποντικιού πάνω στο όνομα.
-  Link Categories - Δεξιά τσεκάρουμε την κατηγορία που θέλουμε να ανήκει αυτός ο σύνδεσμος. Κάθε σύνδεσμος πρέπει να ανήκει σε μία ή περισσότερες κατηγορίες. Αν δεν ορίσετε κάποια κατηγορία αποθηκεύοντας τον σύνδεσμο, αυτός θα ενταχθεί στην γενική κατηγορία Σύνδεσμοι.
-  Link Target - Καθορίζει αν ο σύνδεσμος θα ανοίξει στο ίδιο παράθυρο του φυλλομετρητή ή σε άλλο. Επιλέγουμε το - new window or tab. για να ανοίγει ο σύνδεσμος σε νέο παράθυρο ή σε νέα καρτέλα, ώστε να μην φεύγει ο επισκέπτης από την δική μας σελίδα.
-  Επιλεγμένη Εικόνα - Μπορούμε να ανεβάσουμε μια εικόνα η οποία θα εμφανίζεται μαζί με τον σύνδεσμο.

Τέλος πατάμε το Δημοσίευση και είναι έτοιμος ο σύνδεσμος!
Έτσι εισάγουμε όσους επιπλέον συνδέσμους θέλουμε στην κατηγορία αυτή.
Εικόνα 2.29 Προσθήκη νέου συνδέσμου
Στη συνέχεια θα δημιουργήσουμε μια μονάδα που θα εμφανίζει τους συνδέσμους της κατηγορίας μας στην σελίδα του επισκέπτη.
Από την Εμφάνιση → Μικροεφαρμογές βάζουμε τον δείκτη του ποντικιού στο Simple Links και με αριστερό κλικ το σέρνουμε στην στήλη που θέλουμε να εμφανίζεται (π.χ. Δεξιά ή αριστερή Sidebar, μονάδες υποσέλιδου). Πατάμε μετά πάνω στην μονάδα που σύραμε και κάνουμε τις ανάλογες ρυθμίσεις, όπως να ορίσουμε το όνομα που θέλουμε να φαίνεται, να τσεκάρουμε την κατηγορία που φτιάξαμε και θέλουμε να συνδεθεί και στο τέλος πατάμε το Αποθήκευση.

Εργασία 8
Στην εργασία αυτή ζητάμε να δημιουργήσετε στον ιστότοπό σας τουλάχιστον 2 κατηγορίες που να περιέχουν από 3 συνδέσμους η κάθε μία και να εμφανίζονται σε μια μονάδα της ιστοσελίδας σας.

Δραστηριότητα 9. Δημιουργία και ανάρτηση Φωτογραφικού Άλμπουμ στον ιστότοπο
Για να φτιάξουμε ένα φωτογραφικό άλμπουμ μέσα στον ιστότοπο μας, χρειαζόμαστε να εγκαταστήσουμε ένα ακόμα πρόσθετο. Αυτό θα είναι το Photo Gallery .
Αυτή τη φορά όμως θα το κατεβάσουμε από τη σελίδα: https://wordpress.org/plugins/photo-gallery/ σε μορφή zip και θα επιλέξουμε να το αποθηκεύσουμε στο δίσκο του υπολογιστή μας.
Για να το εγκαταστήσουμε θα πάμε από τον Πίνακα Ελέγχου, Πρόσθετα → Νέο Πρόσθετο και πατάμε το Μεταφόρτωση πρόσθετου. Θα αναζητήσουμε το φάκελο που αποθηκεύσαμε το zip αρχείο, θα επιλέξουμε το αρχείο και θα πατήσουμε Άνοιγμα. Πατάμε « Εγκατάσταση » και περιμένουμε μέχρι να ολοκληρωθεί.

Αν εμφανιστεί αυτό το μήνυμα: «Το αρχείο υπερβαίνει το όριο upload\_max\_filesize του php.ini», θα ζητήσουμε από τον υπεύθυνο του web server να διορθώσει το πρόβλημα και θα προσπαθήσουμε ξανά από την αρχή. Όταν εγκατασταθεί το πρόσθετο, πατάμε το Ενεργοποίηση και εμφανίζεται στην στήλη αριστερά του πίνακα ελέγχου.
Για να φτιάξουμε τώρα το άλμπουμ ακολουθούμε την εξής διαδικασία :
Συγκεντρώνουμε τις φωτογραφίες που θέλουμε να βάλουμε στο άλμπουμ, και τις αλλάζουμε μέγεθος, ώστε να μην έχουν διάσταση πάνω από 1200x1200.

Από τον πίνακα ελέγχου επιλέγουμε το Photo Gallery → Add Galleries / Images → Add new . Στο πεδίο Name βάζουμε ένα όνομα για το άλμπουμ. Στο πεδίο Description γράφουμε μια περιγραφή για το άλμπουμ. Με κλικ στο Add Preview Image ανεβάζουμε την εικόνα που θα χρησιμοποιηθεί για την προεπισκόπηση της συλλογής. Αν το αφήσουμε κενό, θα πάρει αυτόματα την πρώτη εικόνα από την συλλογή που θα ανεβάσουμε. Κάνουμε κλικ στο κουμπί Add Images για να ανεβάσουμε τις φωτογραφίες και μόλις ανεβούν πατάμε το Select All και μετά το Add selected images to gallery . Τέλος πατάμε το Save .

Για να δημοσιεύσουμε το άλμπουμ σε άρθρο ή σελίδα του ιστότοπού μας, πηγαίνουμε στον Πίνακα Ελέγχου κι από το κάθετο μενού επιλέγουμε Άρθρα → Νέο Άρθρο . Εισάγουμε ένα άρθρο και από το μενού επεξεργασίας του κειμενογράφου πατάμε το κουμπί που έχει ως εικονίδιο μια φωτογραφική μηχανή (Εικόνα 2.30).
Εικόνα 2.30 Μενού επεξεργασίας κειμενογράφου
Στο παράθυρο που εμφανίζεται, διαλέγουμε από την πρώτη ενότητα Display, έναν από τους τρόπους εμφάνισης των φωτογραφιών (Εικόνα 2.31). Για την δωρεάν έκδοση του WordPress μπορούμε να χρησιμοποιήσουμε ένα από τα παρακάτω: Thumbnails, Slideshow, Image Browser, Compact Album και Extended Album.

Στην πρώτη στήλη διαλέγουμε το φωτο άλμπουμ που φτιάξαμε και ορίζουμε κάποιες ρυθμίσεις για τις φωτογραφίες. Τέλος, αφού κάνουμε όλες τις ρυθμίσεις, πατάμε το «insert» για να το εισάγουμε στο άρθρο μας.
Εικόνα 2.31 Εισαγωγή Photo Gallery
Ένας άλλος τρόπος να εισάγουμε άλμπουμ στη σελίδα μας, είναι να πάμε στον Πίνακα Ελέγχου και από το Εμφάνιση t Μικροεφαρμογές να σύρουμε τη μικροεφαρμογή Photo Gallery Slideshow μέσα σε κάποια sidebar ή στο υποσέλιδο ή τέλος στην Κεφαλίδα.

Εργασία 9
Στην εργασία αυτή ζητάμε να κάνετε ένα φωτογραφικό άλμπουμ με 8 φωτογραφίες και να το εμφανίσετε με μορφή Slideshow σε κάποια από τις μονάδες του ιστότοπου σας.

Δραστηριότητα 10. Ανάρτηση βίντεο στον ιστότοπο
Για να αναρτήσουμε ένα βίντεο κάνουμε τα εξής:
Πηγαίνουμε στη σελίδα https://www.youtube.com/ και αναζητούμε ένα βίντεο της αρεσκείας μας. Κάτω από το βίντεο υπάρχει η επιλογή Κοινή Χρήση, την ανοίγουμε και διαλέγουμε Ενσωμάτωση (embed). Κατόπιν πατάμε στο «ΕΜΦΑΝΙΣΗ ΠΕΡΙΣΣΟΤΕΡΩΝ» και στο μέγεθος βίντεο ρυθμίζουμε τις διαστάσεις που θέλουμε. Αντιγράφουμε τον κώδικα που εμφανίζεται πάνω από το βίντεο. Πηγαίνουμε στον ιστότοπο μας, στον Πίνακα ελέγχου, κάνουμε δημιουργία νέου άρθρου και στον επεξεργαστή κειμένου πατάμε το « Κείμενο » και κάνουμε επικόλληση τον κώδικα στο τέλος. Όμοια μπορούμε να ενσωματώσουμε βίντεο και από το http://vimeo.com/ .

Δραστηριότητα 11. Εγκατάσταση προσθέτων
Παρακάτω αναφέρουμε περιληπτικά μερικά ακόμα πρόσθετα που είναι απαραίτητα σε κάθε ιστότοπο:
Google XML Sitemaps . Το πρόσθετο αυτό δημιουργεί ένα «χάρτη» (sitemap) του ιστότοπου και τον ενημερώνει αυτόματα κάθε φορά που κάνουμε κάποια αλλαγή σε αυτόν.
Yoast . Αυτό το πρόσθετο βελτιώνει σημαντικά την κατάταξη του ιστότοπου στις μηχανές αναζήτησης (π.χ. Google, Yahoo). Απαιτεί αρκετές ρυθμίσεις από το χρήστη για να γίνει αποτελεσματικό,
αλλά υπάρχουν οδηγοί στο διαδίκτυο που μας δίνουν αναλυτικές οδηγίες για τη σωστή ρύθμισή του, όπως; http://www.seopedia.gr/wordpress-seo-yoast-plugin-odigos/

Akismet . Η χρήση του είναι δωρεάν και είναι ένα από τα πρόσθετα που έρχονται προεγκατεστημέ -να με το WordPress. Το Akismet προστατεύει αποτελεσματικά τον ιστότοπο μας από ανεπιθύμητα σχόλια χρηστών τύπου spam.
Υπάρχουν πολλά ακόμα πρόσθετα που μπορούμε να εγκαταστήσουμε στον ιστότοπο μας, αλλά αυτό δεν σημαίνει ότι πρέπει να στήνουμε όλα τα πρόσθετα που μας αρέσει η λειτουργία τους.

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

3. Δίκτυα

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

Στόχοι
Στόχοι του κεφαλαίου είναι οι μαθητές και οι μαθήτριες να:
-  περιγράφουν τα δίκτυα κινητής τηλεφωνίας, τα δίκτυα PAN και τα δίκτυα WPAN
-  ονομάζουν και να περιγράφουν τις σύγχρονες υπηρεσίες δικτύων
-  εφαρμόζουν κανόνες καλής συμπεριφοράς στην επικοινωνία μέσω δικτύων και μέσω Διαδικτύου

Λέξεις Κλειδιά
Δίκτυα επικοινωνιών, κινητή τηλεφωνία, προσωπικά δίκτυα, PAN, ασύρματα προσωπικά δίκτυα, WPAN, μετάδοση φωνής μέσω Διαδικτύου, voip, Διαδικτυακή τηλεόραση, Internet television, webtv, iptv κοινωνικά δίκτυα, social networks, νεφοπληροφορική, cloud computing, κανόνες συμπεριφοράς στο Διαδίκτυο, Netiquette.

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

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

3.2. Δίκτυα επικοινωνιών

3.2.1. Δίκτυα κινητής τηλεφωνίας
Τα δίκτυα κινητής τηλεφωνίας υπάρχουν και έχουν αλλάξει τις ζωές μας εδώ και πάρα πολλά χρόνια. Το έτος 1973 έγινε η πρώτη παρουσίαση και η πρώτη εκπομπή από τον πρόγονο των φορητών κινητών τηλεφώνων, (κατασκευάστηκε από την εταιρεία Motorola, Inc.), που χρησιμοποιούμε σήμερα. Το έτος 1979, συστάθηκε στην Ιαπωνία το πρώτο εμπορικό δίκτυο κινητής τηλεφωνίας από την εταιρεία Nippon Telegraph and Telephone Corporation (NTT). Στην Ελλάδα η συνδρομητική κινητή τηλεφωνία εμφανίζεται για πρώτη φορά τον Ιούνιο του 1993, ακολουθεί την αρχιτεκτονική των κυψελωτών δικτύων κινητής τηλεφωνίας και το πρότυπο ονομάζεται Παγκόσµιο Σύστηµα Κινητών Επικοινωνιών, (Global System for Mobile communications, GSM).

Οι τεχνολογίες των δικτύων κινητής τηλεφωνίας και των φορητών συσκευών κινητών τηλεφώνων συνεχίζουν να εξελίσσονται. Κάθε σημαντικό βήμα εξέλιξης στην κινητή τηλεφωνία ονομάζεται γενιά (generation, G). Σήμερα, Αύγουστος του 2015, βρισκόμαστε μετά την τέταρτη γενιά (4G), είμαστε έτοιμοι για την γενιά 4.5G και οδηγούμαστε προς την πέμπτη γενιά (5G).
Ο βασικός σκοπός ενός δικτύου κινητής τηλεφωνίας είναι η επικοινωνία μεταξύ φορητών συσκευών και η μεταφορά της πληροφορίας δηλαδή της φωνής, του μηνύματος (κειμένου), της εικόνας, του βίντεο, από ένα κινητό τηλέφωνο ή άλλη φορητή συσκευή π.χ. ταμπλέτα, έξυπνο τηλέφωνο κλπ σε ένα άλλο τηλέφωνο ή συσκευή εκμεταλλευόμενοι την ηλεκτρομαγνητική ενέργεια. Τα δίκτυα κινητής τηλεφωνίας, για να λειτουργήσουν, χρησιμοποιούν ραδιοκύματα.

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

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

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

3.2.2. Προσωπικά δίκτυα
Τα προσωπικά δίκτυα, (Personal Area Networks, PAN), είναι μια κατηγορία ιδιωτικών ενσύρματων δικτύων, που δημιουργούνται από τη διασύνδεση ιδιωτικών υπολογιστών (κύρια φορητών υπολογιστών χωρίς όμως αυτό να είναι υποχρεωτικό), έξυπνων τηλεφώνων, (Smart Phone), υπολογιστών παλάμης, (Personal Digital Assistant, PDA), φωτογραφικών μηχανών, εκτυπωτών κλπ με σκοπό την ανταλλαγή και το συγχρονισμό διαφόρων τύπων αρχείων, π.χ. μουσικής, εικόνων, βίντεο κλπ, μηνυμάτων ηλεκτρονικού ταχυδρομείου, επαφών, ραντεβού και καταγραφών ημερολογίου για προσωπική χρήση. Στην επόμενη εικόνα παρουσιάζεται η σχηματική υλοποίηση ενός προσωπικού δικτύου.

Εικόνα 3.1 Προσωπικό δίκτυο, (PAN)$^{6}$.
Η εμβέλεια αυτών των δικτύων, λόγω των καλωδίων, είναι αρκετά περιορισμένη. Φτάνουν μέχρι τα 2-3 μέτρα. Δίκτυα αυτού του τύπου υλοποιούνται μέσω συνδέσεων USB ή μέσω συνδέσεων FireWire και το κύριο πλεονέκτημα τους είναι η ασφάλεια κατά τη μεταφορά των προσωπικών δεδομένων. Προϋπόθεση για τη δημιουργία τέτοιων δικτύων είναι η ανάθεση του ρόλου του «αφέντη» (master) σε μια από τις συσκευές, την κύρια συσκευή (που έχει ικανοποιητικά τεχνικά χαρακτηριστικά και μπορεί να αναλάβει τη διασύνδεση των συσκευών), ενώ όλες οι υπόλοιπες συνδεδεμένες συσκευές, οι δευτερεύουσες συσκευές, αναλαμβάνουν το ρόλο του «σκλάβου» (slave). Συχνές χρήσεις αυτού του τύπου δικτύων είναι η επέκταση των τοπικών δικτύων εντός κτηρίων με τη χρήση διανομέων (hub) και η διασύνδεση καμερών σε εφαρμογές ελέγχου και παρακολούθησης ιδιωτικών χώρων.

3.2.3. Ασύρματα Προσωπικά δίκτυα
Τα ενσύρματα προσωπικά δίκτυα, λόγω της ανάγκης των καλωδίων και λόγω των τεχνικών χαρακτηριστικών των συνδέσεων USB και των συνδέσεων FireWire, έχουν μειονεκτήματα στην υλοποίηση και τη χρήση τους.
Τα ασύρματα προσωπικά δίκτυα, (Wireless Personal Area Networks, WPAN), αποτελούν μια ενδιαφέρουσα εναλλακτική. Είναι δίκτυα που δημιουργούνται κατά περίπτωση, (ad hoc), διότι η τοπολογία τους μεταβάλλεται ανάλογα με τις συσκευές που συνδέουμε. Η εμβέλειά τους είναι γύρω στα δέκα μέτρα.

Οι ασύρματες τεχνολογίες που χρησιμοποιούνται στα ασύρματα προσωπικά δίκτυα για τη διασύνδεση των συσκευών είναι το Bluetooth και το IrDA (υπέρυθρο φως όπως στα χειριστήρια των τηλεοράσεων). Στην επόμενη εικόνα παρουσιάζεται η σχηματική υλοποίηση ενός ασύρματου προσωπικού δικτύου με Bluetooth.
Εικόνα 3.2 Ασύρματο προσωπικό δίκτυο, (WPAN)$^{7}$.
Στα ασύρματα προσωπικά δίκτυα, όπως ακριβώς ισχύει και στα ενσύρματα, μια συσκευή αναλαμβάνει το ρόλο της κύριας συσκευής, το ρόλου του «αφέντη» (master) του δικτύου. Όσες συσκευές είναι ενεργές και βρίσκονται στην εμβέλεια της κύριας συσκευής αποτελούν τις δευτερεύουσες συσκευές και αναλαμβάνουν το ρόλο του «σκλάβου» (slave). Οι ενεργές συσκευές εκτός εμβέλειας του ασύρματου δικτύου και οι απενεργοποιημένες συσκευές δεν αποτελούν μέρος του ασύρματου προσωπικού δικτύου. Χαρακτηριστικές δευτερεύουσες συσκευές είναι τα ασύρματα πληκτρολόγια και ποντίκια, τα Bluetooth ηχεία, τα ασύρματα ακουστικά κλπ.

3.3. Σύγχρονες υπηρεσίες δικτύων
Ο ορισμός του Διαδικτύου (Internet), κρύβει την έννοια της διασύνδεσης πολλών διαφορετικών δικτύων υπολογιστών και την επικοινωνία μεταξύ αυτών των διαφορετικών υπολογιστών μέσω του πρωτοκόλλου TCP/IP.
Ο Timothy John Berners-Lee τον Μάρτιο του έτους 1989, στο ερευνητικό ίδρυμα CERN, στην Ελβετία, πρότεινε την δημιουργία ενός συστήματος διαχείρισης πληροφοριών, το οποίο όμως εξελίχθηκε στην δημιουργία του Παγκόσμιου Ιστού (World Wide Web), που είχε ως αποτέλεσμα την ταχεία εξάπλωση του Διαδικτύου, όπως το γνωρίζουμε στις ημέρες μας.

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

3.3.1. Μετάδοση φωνής μέσω Διαδικτύου
Η βασική ιδέα για τη μετάδοση της φωνής μέσω του Διαδικτύου είναι η μετατροπή του αναλογικού σήματος της φωνής σε ψηφιακό σήμα και η μετάδοση αυτού του ψηφιακού σήματος με την μορφή πακέτων δεδομένων (data packet), μέσα από την τεχνική υποδομή του Διαδικτύου. Η μετάδοση της φωνής υλοποιείται μέσω της υπηρεσίας VoIP (Voice Over Internet Protocol) χρησιμοποιώντας το πρωτόκολλο TCP/IP.
Με αυτόν τον τρόπο, την μετάδοση της φωνής μέσω του Διαδικτύου, φαίνεται πως δεν είναι αναγκαία η χρήση των υπηρεσιών που προσφέρουν οι τηλεφωνικές εταιρείες και οι τηλεπικοινωνιακοί οργανισμοί. Ίσως να πιστέψει κάποιος ότι θα έπρεπε να καταργηθεί η κλασική επικοινωνία μέσω τηλεφώνου. Αυτό όμως δεν είναι απόλυτα ακριβές, μια που για τεχνικούς λόγους δεν έχει νόημα (σήμερα τουλάχιστον) η κατάργηση της κλασικής τηλεφωνικής επικοινωνίας.

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

Για τις επιχειρήσεις ειδικότερα, ανεξάρτητα του μεγέθους τους, η εσωτερική επικοινωνία μεταξύ των εργαζομένων, άρα και η μετάδοση της φωνής, πρέπει να είναι φθηνή, γρήγορη, ποιοτική και ασφαλής. H τεχνολογική λύση που ικανοποιεί τα παραπάνω χαρακτηριστικά, είναι τα Ιδεατά Ιδιωτικά Δίκτυα (Virtual Private Network, VPN), τα οποία χρησιμοποιούν την υποδομή του Διαδικτύου για εσωτερική επικοινωνία, αλλά και για τη σύνδεση των υπολογιστών στο Διαδίκτυο.

3.3.2. Διαδικτυακή τηλεόραση
Η Διαδικτυακή τηλεόραση (Internet Television) γενικά μπορεί να οριστεί σαν ένα σύστημα μετάδοσης πληροφορίας, το οποίο εκπέμπει ψηφιακό τηλεοπτικό σήμα σε χρήστες ή συνδρομητές μέσω του πρωτοκόλλου TCP/IP χρησιμοποιώντας την τεχνική υποδομή του Διαδικτύου.
Το ψηφιακό τηλεοπτικό σήμα, δηλαδή τα τηλεοπτικά προγράμματα, των ψηφιακών τηλεοπτικών καναλιών μεταφέρονται σε πραγματικό χρόνο (real time) ή μετά από απαίτηση του χρήστη ή του συνδρομητή (on demand) σε πολυμεσικά αρχεία ειδικού τύπου ή σε αρχεία βίντεο (video streaming) από τους εξυπηρετητές (servers) των τηλεοπτικών καναλιών που προσφέρουν αυτήν την υπηρεσία στον χρήστη ή τον συνδρομητή. Τα αρχεία βίντεο εμφανίζονται στον φυλλομετρητή ιστοσελίδων (browser) του υπολογιστή του χρήστη, αν πρόκειται για υπηρεσία WebTV. Αντίστοιχα, τα πολυμεσικά αρχεία των ψηφιακών τηλεοπτικών καναλιών αποκωδικοποιούνται μέσω ειδικού αποκωδικοποιητή στην τηλεόραση, στην παιχνιδομηχανή (video game console), στο set-top box (STB) ή set-top unit (STU) του χρήστη ή του συνδρομητή, αν αναφερόμαστε στην υπηρεσία IPTV. Οι ειδικές συσκευές έχουν εγκατεστημένο ειδικό λογισμικό και μπορούν να συνδεθούν στο Διαδίκτυο ενσύρματα ή ασύρματα. Επίσης, δίνεται η δυνατότητα στον συνδρομητή να παρακολουθήσει ένα πρόγραμμα που τον ενδιαφέρει κάποια άλλη χρονική στιγμή (time shifting) με την εγγραφή του προγράμματος σε σκληρό δίσκο.

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

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

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

3.3.4. Νεφοπληροφορική
Η νεφοπληροφορική (cloud computing) συχνά εμφανίζεται με τον όρο «υπολογιστικό νέφος» στην Ελληνική βιβλιογραφία. Επίσης, συχνά βρίσκουμε και τον όρο «νεφοϋπολογιστική», που όμως δεν είναι ταυτόσημος με τους προηγούμενους όρους.
Η νεφοπληροφορική μοιάζει να είναι μια νέα τεχνολογία που ξαφνικά εμφανίστηκε στις μέρες μας με την εξάπλωση του Διαδικτύου. Οι αρχές πάνω στις οποίες βασίζεται όμως, δεν είναι τόσο καινούργιες. Υπήρχαν οι ιδέες και κάποιες από αυτές είχαν χρησιμοποιηθεί από τις απαρχές της επιστήμης των υπολογιστών για την υλοποίηση των πρώτων υπολογιστικών συστημάτων χρησιμοποιώντας, τις τότε δικτυακές υποδομές, που αργότερα εξελίχθηκαν στο Διαδίκτυο.

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

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

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

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

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

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

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

Μέσα σε αυτό το πλαίσιο η χρήση του Διαδικτύου απαιτεί κανόνες συμπεριφοράς. Οι κανόνες αυτοί που λέγονται επίσης «Κώδικας δεοντολογικής συμπεριφοράς στο Διαδίκτυο», (Network Etiquette ή netiquette), είναι ένα σύνολο κανόνων που καθορίζουν την αποδεκτή και ευπρεπή συμπεριφορά μεταξύ δύο ή περισσότερων χρηστών, (ίδιας ή διαφορετικής ηλικίας, εθνικότητας, πλούτου, πεποιθήσεων κλπ), κατά την από απόσταση, ηλεκτρονική επικοινωνία και χρήση των εφαρμογών και των υπηρεσιών του Διαδικτύου.
Να σημειώσουμε πως αυτού του είδους οι κανόνες προϋπήρχαν της δημιουργίας του Διαδικτύου, είχαν ήδη υιοθετηθεί από τους πρωτεργάτες της Επιστήμης των Υπολογιστών κατά την επικοινωνία τους μέσω του ηλεκτρονικού ταχυδρομείου (e-mail). Οι κανόνες είχαν εθιμοτυπικό χαρακτήρα, δηλαδή ήταν άγραφοι, αντανακλούσαν τα πιστεύω και την κουλτούρα όσων συμμετείχαν στην επικοινωνία και ήταν αποδεκτοί από όλους.

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

Ο βασικός κανόνας κατά την επικοινωνία μας στο Διαδίκτυο μέσω ηλεκτρονικού ταχυδρομείου, στα κοινωνικά δίκτυα και στις εικονικές κοινότητες, στους χώρους συζήτησης π.χ. forums, blogs, chats και στις υπηρεσίες ανταλλαγής μηνυμάτων, (instant messaging), είναι πως απέναντι μας βρίσκονται άνθρωποι διαφορετικοί από εμάς, που δεν τους γνωρίζουμε πολύ καλά. Επίσης, αν δεν χρησιμοποιούμε εφαρμογές βιντεοκλήσεων, ίσως να μην τους βλέπουμε κατά πρόσωπο. Η απουσία της πρόσωπο-με πρόσωπο επικοινωνίας δεν πρέπει να μας δίνει την ψευδαίσθηση ότι μπορούμε να μιλάμε άσχημα και να προσβάλουμε τους συνομιλητές μας.

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

3.5. Ερωτήματα - Δραστηριότητες
- 1. Με τη βοήθεια των μηχανών αναζήτησης ψάξε στο Διαδίκτυο πληροφορίες σχετικές με την κινητή τηλεφωνία πρώτης γενιάς (1G). Σημείωσε τα βασικά χαρακτηριστικά αυτής της τεχνολογίας και προσπάθησε να βρεις εικόνες και χαρακτηριστικά των κινητών τηλεφώνων αυτής της γενιάς. Σύγκρινε τα χαρακτηριστικά των κινητών τηλεφώνων της πρώτης γενιάς με το δικό σου. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων. (**)
- 2. Με τη βοήθεια των μηχανών αναζήτησης ψάξε στο Διαδίκτυο πληροφορίες σχετικές με την κινητή τηλεφωνία δεύτερης γενιάς (2G). Σημείωσε τα βασικά χαρακτηριστικά αυτής της τεχνολογίας και προσπάθησε να βρεις εικόνες και χαρακτηριστικά των κινητών τηλεφώνων αυτής της γενιάς. Σύγκρινε τα χαρακτηριστικά των κινητών τηλεφώνων της δεύτερης γενιάς με το δικό σου. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων. (**)
- 3. Με τη βοήθεια των μηχανών αναζήτησης ψάξε στο Διαδίκτυο πληροφορίες σχετικές με την κινητή τηλεφωνία τρίτης γενιάς (3G). Σημείωσε τα βασικά χαρακτηριστικά αυτής της τεχνολογίας και προσπάθησε να βρεις εικόνες και χαρακτηριστικά των κινητών τηλεφώνων αυτής της γενιάς. Σύγκρινε τα χαρακτηριστικά των κινητών τηλεφώνων της τρίτης γενιάς με το δικό σου. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων. (**)
- 4. Με τη βοήθεια των μηχανών αναζήτησης ψάξε στο Διαδίκτυο πληροφορίες σχετικές με την κινητή τηλεφωνία τέταρτης γενιάς (4G). Σημείωσε τα βασικά χαρακτηριστικά αυτής της τεχνολογίας και προσπάθησε να βρεις εικόνες και χαρακτηριστικά των κινητών τηλεφώνων αυτής της γενιάς. Σύγκρινε τα χαρακτηριστικά των κινητών τηλεφώνων της τέταρτης γενιάς με το δικό σου. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων. (**)
- 5. Με τη βοήθεια των μηχανών αναζήτησης ψάξε στο Διαδίκτυο πληροφορίες σχετικές με την κινητή τηλεφωνία πέμπτης γενιάς (5G). Σημείωσε τα βασικά χαρακτηριστικά αυτής της τεχνολογίας και προσπάθησε να βρεις εικόνες και χαρακτηριστικά των κινητών τηλεφώνων αυτής της γενιάς. Σύγκρινε τα χαρακτηριστικά των κινητών τηλεφώνων της πέμπτης γενιάς με το δικό σου. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων. (**)
- 6. Με τη βοήθεια των μηχανών αναζήτησης ψάξε στο Διαδίκτυο πληροφορίες σχετικές με τα προσωπικά δίκτυα (PAN) και τα ασύρματα προσωπικά δίκτυα (WPAN). Προσπάθησε να βρεις εικόνες και παραδείγματα. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων.
- 7. Προσπάθησε να βρεις πληροφορίες για το πώς θα υλοποιήσεις ένα προσωπικό δίκτυο (PAN) στο σχολείο ή στο σπίτι. (**)
- 8. Προσπάθησε να βρεις πληροφορίες για το πώς θα υλοποιήσεις ένα ασύρματο προσωπικό δίκτυο (WPAN). (**)
- 9. Με τη βοήθεια των μηχανών αναζήτησης ψάξε στο Διαδίκτυο πληροφορίες σχετικές με τη Διαδικτυακή τηλεόραση στην Ελλάδα. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων.
- 10. Με τη βοήθεια των μηχανών αναζήτησης και από την εμπειρία σου ψάξε στο Διαδίκτυο πληροφορίες σχετικές με τα κοινωνικά δίκτυα (social networks). Προσπάθησε να βρεις τις ιστοσελίδες τουλάχιστον έξι κοινωνικών δικτύων και να σημειώσεις για το κάθε ένα από αυτά πόσα μέλη έχουν (δεν χρειάζεται ακριβής αριθμός, μόνο εκτίμηση του πλήθους), πώς γίνεσαι μέλος, τα ενδιαφέροντα των μελών, ποιες υπηρεσίες προσφέρονται, αν παρέχουν υπηρεσίες επί πληρωμή, αν επιτρέπονται να είναι μέλη παιδιά κάτω των 15 ετών, αν επιτρέπεται το ανέβασμα εικόνων και βίντεο από τα μέλη, αν επιτρέπεται η ανταλλαγή εικόνων και βίντεο μεταξύ των μελών και
τέλος ποια πολιτική ακολουθούν στην προστασία των προσωπικών δεδομένων. Φτιάξε μια μικρή παρουσίαση με τη βοήθεια λογισμικού παρουσιάσεων.

Σημείωση: Σε καμία περίπτωση δεν χρειάζεται και δεν πρέπει να γίνεις μέλος σε κανένα από τα κοινωνικά δίκτυα που θα επιλέξεις να παρουσιάσεις για να απαντήσεις στα παραπάνω ερωτήμα -τα. Οι πληροφορίες βρίσκονται διάσπαρτες στο Διαδίκτυο και περιμένουν να τις ανακαλύψεις.
- 11. Με τη βοήθεια ενός περιηγητή ιστοσελίδων πήγαινε στην ιστοσελίδα http://www.saferinternet. gr και ακολούθησε τους συνδέσμους: «Έφηβοι» --> «Επικοινωνία» --> «Savoir Vivre». Διάβασε τους κανόνες στον σύνδεσμο «Netiquette» και δοκίμασε το τεστ σχετικά με τους κανόνες συμπεριφοράς στο Διαδίκτυο στον σύνδεσμο «Quiz».
- Μπορείς να μεταβείς απευθείας στο τεστ ακολουθώντας τη διαδρομή http://www. saferinternet.gr/index.php?childobjId=Category133&objId=Category40&parentobjId=Page3
- 12. Με τη βοήθεια ενός περιηγητή ιστοσελίδων πήγαινε στην ιστοσελίδα http://www.e-yliko.gr και ακολούθησε τους συνδέσμους: «Ενημερωτικό υλικό» --> «Ασφάλεια στο Διαδίκτυο». Δοκίμασε το τεστ σχετικά με τους κανόνες συμπεριφοράς στο Διαδίκτυο στον σύνδεσμο «Δοκιμάστε τις γνώσεις σας στην Καλή Συμπεριφορά στο Διαδίκτυο».
- Μπορείς να μεταβείς απευθείας στο τεστ ακολουθώντας τη διαδρομή http://www.e-yliko.gr/ htmls/pc\_use/netiquette.htm
- 13. Τι θα έλεγες σε ένα παιδί για να εξηγήσεις τους κανόνες συμπεριφοράς στο Διαδίκτυο;
- (**): Για τον τρόπο εργασίας και αξιοποίησης των δραστηριοτήτων θα δοθούν αναλυτικές οδηγίες στους εκπαιδευτικούς.

4. Ασφάλεια Πληροφοριών και Επικοινωνία

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

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

Λέξεις Κλειδιά
Ασφάλεια, ασφάλεια πληροφοριών, κρυπτογραφία, προσωπικά δεδομένα, ηλεκτρονική υπογραφή, ψηφιακή υπογραφή.

Ενότητες Κεφαλαίου
-  Εισαγωγή στην ασφάλεια των πληροφοριών
-  Κρυπτογραφία
-  Ηλεκτρονική και ψηφιακή υπογραφή
-  Οργανισμοί έκδοσης ψηφιακής υπογραφής
-  Αναφορές

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

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

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

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

Η ασφάλεια των προσωπικών δεδομένων και των πληροφοριών, που διακινούνται μέσω ενός τηλεπικοινωνιακού δικτύου κατά την επικοινωνία μεταξύ δύο μερών με τη χρήση ψηφιακής τεχνολογίας, βασίζεται στις αρχές της ακεραιότητας, της εμπιστευτικότητας και της διαθεσιμότητας. Η προστασία της ΑΚΕΡΑΙΟΤΗΤΑΣ (integrity), διασφαλίζει ότι τα δεδομένα έχουν υποστεί αλλαγές μόνο από πιστοποιημένα άτομα. Η προστασία της ΕΜΠΙΣΤΕΥΤΙΚΟΤΗΤΑΣ (confidentiality), διασφαλίζει τη διατήρηση της πληροφορίας μυστικής από όλους, εκτός από εκείνους που είναι εξουσιοδοτημένοι να τη δουν και η προστασία της ΔΙΑΘΕΣΙΜΟΤΗΤΑΣ (availability), διασφαλίζει την αποφυγή προσωρινής ή μόνιμης απώλειας πρόσβασης στις πληροφορίες από εξουσιοδοτημένους χρήστες (η πρόσβαση πρέπει να είναι αδιάλειπτη).

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

4.3. Κρυπτογραφία
Κρυπτογραφία είναι η ανταλλαγή μηνυμάτων μεταξύ δύο μερών με τέτοιο τρόπο, ώστε η κατανόηση του περιεχομένου των μηνυμάτων να είναι δυνατή μόνο από τον αποστολέα και τον παραλήπτη. Το αρχικό μήνυμα ονομάζεται «καθαρό κείμενο» (plaintext), η διαδικασία παραμόρφωσης του αρχικού μηνύματος, ώστε να μην είναι κατανοητό, ονομάζεται «κρυπτογράφηση», το κρυπτογραφημένο μήνυμα ονομάζεται «κρυπτογράφημα» και η διαδικασία ανάκτησης του αρχικού μηνύματος από το κρυπτογράφημα ονομάζεται «αποκρυπτογράφηση».

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

Εικόνα 4.2 Ασύμμετρη κρυπτογραφία
Ο Κώδικας του Καίσαρα είναι μία από τις απλούστερες και πιο γνωστές τεχνικές συμμετρικής κωδικοποίησης στην κρυπτογραφία. Ο Ιούλιος Καίσαρας επινόησε έναν απλό κρυπτογραφικό αλγόριθμο για να επικοινωνεί με τους επιτελείς του, με μηνύματα που δεν θα ήταν δυνατόν να τα διαβάσουν οι εχθροί του. Ο αλγόριθμος βασίζεται στην αντικατάσταση κάθε γράμματος του αλφαβήτου με κάποιο άλλο γράμμα με κατάλληλη και συγκεκριμένη επιλογή. Ο αλγόριθμος κρυπτογράφησης είναι η ολίσθηση των γραμμάτων του αλφαβήτου προς τα δεξιά. Κάθε γράμμα αντικαθίσταται από κάποιο άλλο με κάποιο κλειδί π.χ. 3. Δηλαδή, η κρυπτογράφηση ενός μηνύματος γίνεται με αντικατάσταση κάθε γράμματος από το γράμμα που βρίσκεται 3 θέσεις δεξιότερά του στο αλφάβητο. Θα μπορούσε το κλειδί να ήταν ο αριθμός 6, οπότε το κρυπτογραφημένο κείμενο που θα προέκυπτε θα ήταν διαφορετικό. Έτσι, διατηρώντας τον ίδιο αλγόριθμο κρυπτογράφησης και επιλέγοντας διαφορετικό κλειδί, παράγονται διαφορετικά κρυπτογραφημένα μηνύματα.

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

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

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

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

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

4.5. Οργανισμοί έκδοσης ψηφιακής υπογραφής
Η πιστοποίηση και η επαλήθευση της πραγματικής ταυτότητας των φυσικών προσώπων στις ηλεκτρονικές συναλλαγές μέσω του Διαδικτύου και η ακεραιότητα των συναλλαγών γίνονται πραγματικότητα μέσω των υπηρεσιών που προσφέρονται από την Υποδομή Δημοσίου Κλειδιού (Public Key Infrastructure, PKI). Οι αρχές της ακεραιότητας και της εμπιστευτικότητας για τις οποίες έχουμε ήδη μιλήσει συνοδεύονται από την αρχή της ΜΗ ΑΡΝΗΣΗ ΑΠΟΔΟΧΗΣ (Non-Repudiation) και την αρχή της ΠΙΣΤΟΠΟΙΗΣΗΣ (Authentication). Η αρχή της Μη Άρνησης Αποδοχής διασφαλίζει πως ένα άτομο που έστειλε ένα μήνυμα, δεν μπορεί να ισχυριστεί ότι δεν το δημιούργησε και δεν το έστειλε, ενώ η αρχή της Πιστοποίησης διασφαλίζει και επιβεβαιώνει την ταυτότητα του αποστολέα. Η ταυτότητα βασίζεται στον συνδυασμό του δημόσιου και του ιδιωτικού κλειδιού.

Για την λειτουργία των υπηρεσιών της Υποδομής Δημοσίου Κλειδιού είναι απαραίτητη η ύπαρξη της Έμπιστης Τρίτης Οντότητας, η οποία αναλαμβάνει το ρόλο του ενδιάμεσου μεταξύ των αποστολέων και των παραληπτών και η οποία εκδίδει τα δημόσια και τα ιδιωτικά κλειδιά, τα λεγόμενα πιστοποιητικά (certificates). Η Έμπιστη Τρίτη Οντότητα συνηθίζεται να λέγεται Αρχή Πιστοποίησης (Certification Authority, CA).
Τα πιστοποιητικά που εκδίδει μια Αρχή Πιστοποίησης διασφαλίζουν ότι η ανταλλαγή μηνυμάτων μέσω ηλεκτρονικού ταχυδρομείου, οι ηλεκτρονικές συναλλαγές στο Διαδίκτυο και η επικοινωνία μεταξύ εξυπηρετητών (server) είναι ασφαλείς και ελεγχόμενες. Στην πράξη, αντίστοιχα με τις τρεις παραπάνω λειτουργίες, τα πιστοποιητικά χωρίζονται σε τρεις κατηγορίες.

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

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

Οι σύγχρονες εφαρμογές πλοήγησης στο Διαδίκτυο υποστηρίζουν πρωτόκολλα κρυπτογράφησης και ασφαλούς πλοήγησης για τη διενέργεια ηλεκτρονικών συναλλαγών. Το πρωτόκολλο HTTPS (Hypertext Transfer Protocol Secure) είναι αυτό που χρησιμοποιείται ευρύτατα στις μέρες μας για τις Διαδικτυακές συναλλαγές. Με το πρωτόκολλο αυτό οι πληροφορίες ανταλλάσσονται κρυπτογραφη -μένες και γίνεται έλεγχος της αυθεντικότητας της ιστοσελίδας. Ο χρήστης ενημερώνεται με οπτικό τρόπο πως βρίσκεται σε ασφαλή τοποθεσία και πως μπορεί να στείλει προσωπικές πληροφορίες χωρίς κίνδυνο. Συνδυάζεται με το πρωτόκολλο SET (Secure Electronic Transactions), στην περίπτωση που θέλουμε να εκτελέσουμε ηλεκτρονικές συναλλαγές μέσω πιστωτικών καρτών. Γνωστή υπηρεσία για την εκτέλεση ηλεκτρονικών συναλλαγών είναι η PayPal.

Στην συνέχεια θα παρουσιάσουμε ενδεικτικά μερικούς οργανισμούς που παρέχουν στα μέλη τους τη δυνατότητα έκδοσης ψηφιακής υπογραφής.
Στην ιστοσελίδα https://aped.gov.gr/procedures/pos-tha-apoktiso-psifiaki-ypografi/ δίνονται οδη -γίες για τη διαδικασία αίτησης, έκδοσης και παραλαβής ψηφιακού πιστοποιητικού από την Αρχή Πιστοποίησης του Ελληνικού Δημοσίου για τους πολίτες της Χώρας.
Στην ιστοσελίδα https://it.auth.gr/services/security/ παρουσιάζονται οι υπηρεσίες και δίνονται οδη -γίες για τη διαδικασία αίτησης, έκδοσης και παραλαβής ψηφιακών πιστοποιητικών από το Κέντρο Ηλεκτρονικής Διακυβέρνησης του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης.

Στην ιστοσελίδα http://www.noc.ntua.gr/index.php?name=FAQ&id\_cat=39 δίνονται οδηγίες για τη διαδικασία αίτησης, έκδοσης και παραλαβής ψηφιακού πιστοποιητικού από το ΚΕΝΤΡΟ ΔΙΚΤΥΩΝ του Εθνικού Μετσόβιου Πολυτεχνείου.
Αντίστοιχες υπηρεσίες διαθέτουν και προσφέρουν στα μέλη τους όλα τα Τριτοβάθμια Εκπαιδευτικά Ιδρύματα της Χώρας και το Πανελλήνιο Σχολικό Δίκτυο, http://www.sch.gr

4.6. Ερωτήματα - Δραστηριότητες

Δραστηριότητα 1
Γράψτε σε δύο διαφορετικές «λωρίδες χαρτιού» το ελληνικό αλφάβητο όπως φαίνεται στην Εικόνα 4.4
Εικόνα 4.4 Κώδικας του Καίσαρα (δραστηριότητα)
Το πρώτο αλφάβητο αντιπροσωπεύει το απλό κείμενο, ενώ το δεύτερο αλφάβητο αντιπροσωπεύει το κρυπτογραφημένο κείμενο.
Α) μπορείτε να βρείτε ποιο είναι το κλειδί της κρυπτογράφησης;
- Β) Κρυπτογραφήστε τη λέξη «Μαθητής».
Όταν γίνεται κρυπτογράφηση, αναζητείται κάθε γράμμα του απλού κειμένου και γράφεται το αντίστοιχο γράμμα από την γραμμή του κρυπτογραφημένου κειμένου. Η αποκρυπτογράφηση γίνεται με την αντίστροφη φορά.

Γ) Επιλέξτε ένα διαφορετικό κλειδί και ξαναγράψτε το δεύτερο αλφάβητο (κρυπτογραφημένο κείμενο) με βάση το κλειδί που επιλέξατε.
Κωδικοποιήστε τη φράση «Ιούλιος Καίσαρας». Ανταλλάξτε το κρυπτογραφημένο κείμενο με τον διπλανό σας και προσπαθήστε να το αποκρυπτογραφήσετε.

5. Εισαγωγή στην ανάπτυξη έργων (Πληροφορικής)

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

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

Λέξεις Κλειδιά
Έργο, δημόσια έργα, ιδιωτικά έργα, Συμπράξεις Δημοσίου και Ιδιωτικού Τομέα, project, ανάπτυξη έργου, project management, υπεύθυνος έργου, συντονιστής έργου, project manager, project leader, μελέτη σκοπιμότητας, feasibility study, ρόλοι, ομάδες έργου, υποέργα, καταμερισμός εργασιών, χρονοπρογραμματισμός εργασιών, εξέλιξη ενός έργου, σύγχρονες υπηρεσίες επικοινωνίας μέσω Διαδικτύου, σύγχρονα εργαλεία επικοινωνίας.

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

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

5.2. Εισαγωγή στην ανάπτυξη έργων
Στην γενική περίπτωση, ως έργο μπορεί να θεωρηθεί οποιαδήποτε ανθρώπινη δημιουργία ή κατασκευή, προϊόν ή υπηρεσία που εξυπηρετεί κάποιο σκοπό. Ένα έργο έχει ορισμένα χαρακτηριστικά όπως μέγεθος, πολυπλοκότητα, προϋπολογισμό, κρίσιμες παραμέτρους, ιδιαιτερότητες κλπ. Τα παραπάνω χαρακτηριστικά κάθε έργου είναι αυτά που το κάνουν να είναι μοναδικό.
Τα έργα χωρίζονται σε τρείς κατηγορίες (α) τα δημόσια έργα, (β) τα ιδιωτικά έργα και (γ) τις συμπράξεις δημοσίου και ιδιωτικού τομέα (ΣΔΙΤ), ανάλογα με το ποιος είδε την αναγκαιότητα του έργου και επένδυσε σε αυτό, ποιος παρήγγειλε στον ανάδοχο και πλήρωσε για την υλοποίηση του έργου και ποιος θα είναι ο κάτοχος του έργου μετά την υλοποίηση του.

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

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

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

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

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

Χαρακτηριστικά έργα Πληροφορικής μπορούμε να αναζητήσουμε στην ιστοσελίδα της «ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Α.Ε.» (http://www.ktpae.gr/), στην επιλογή «Διαγωνισμοί». Στις «Επιλογές Προβολής» αλλάζουμε το πεδίο «Τύπος Προβολής» από «Τρέχουσες Εγγραφές» σε «Ιστορικό Αρχείο» για να δούμε όλους τους διαγωνισμούς. Μπορούμε να πληροφορηθούμε για τα είδη των έργων και για τις διαδικασίες που πραγματοποιούνται μέχρι την ολοκλήρωση ενός έργου από τον ανάδοχο και την παράδοση του στον κύριο, στον φορέα για τον οποίο προορίζεται το έργο.

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

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

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

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

5.4. Καταμερισμός των εργασιών ενός έργου
Η οργάνωση, η διαχείριση και ο καταμερισμός των εργασιών κάθε έργου εξαρτάται από το ποιο μοντέλο οργανωτικής δομής θα χρησιμοποιηθεί στο έργο, από το πόσες και ποιες ομάδες επαγγελματιών θα συμμετέχουν και από το ποιες θα είναι οι διασυνδέσεις - σχέσεις μεταξύ των ομάδων. Όπως έχουμε αναφέρει προηγούμενα, κάθε έργο διαιρείται σε τμήματα, σε υποέργα, ώστε να είναι πιο εύκολη η διαχείριση των εργασιών και κάθε ομάδα θα αναλάβει και θα ολοκληρώσει ένα ή περισσότερα υποέργα. Αν η διαδικασία της τμηματοποίησης ενός έργου σε μικρότερα υποέργα συμβαίνει σε έργα εκτός Πληροφορικής, συνηθίζουμε να λέμε ότι εφαρμόζεται η Αναλυτική Δομή Εργασιών, ΑΔΕ, (Work Breakdown Structure, WBS).

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

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

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

Μεθοδολογίες που χρησιμοποιούνται για την υλοποίηση έργων Πληροφορικής είναι το «Μοντέλο του καταρράκτη», (Waterfall model), η διαδικασία SCRUM και η μέθοδος Kanban.

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

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

Ο χρονοπρογραμματισμός των εργασιών ενός έργου αποτυπώνεται στο χαρτί ή υλοποιείται στον υπολογιστή με δυο τεχνικές, με τα διαγράμματα PERT και τα διαγράμματα Gantt.

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

Για την παρακολούθηση της εξέλιξης ενός έργου Πληροφορικής μπορεί να χρησιμοποιηθεί η Μέθοδος της κρίσιμης διαδρομής, (Critical Path Method, CPM), η τεχνική PERT, (Project Evaluation & Review Technique), η μέθοδος PERT/CPM, τα Διαγράμματα δικτύου, (Network Diagram) και η Δικτυωτή ανάλυση με τα Κομβικά δίκτυα, (Activity On Node) και τα Τοξωτά δίκτυα, (Activity on Arrow).
Οι παραπάνω μέθοδοι (με ή χωρίς τροποποιήσεις) έχουν υλοποιηθεί σε εμπορικά και σε ανοικτού κώδικα λογισμικά, τα οποία βοηθούν το έργο των επαγγελματιών που ασχολούνται με την ανάπτυξη έργων γενικότερα, αλλά και με την ανάπτυξη έργων Πληροφορικής ειδικότερα. Μερικά ενδεικτικά παραδείγματα εμπορικού λογισμικού είναι το PRINCE2 της AXELOS, το Primavera της Oracle, το Project και το Sharepoint της Microsoft και άλλα. Αντίστοιχα, μερικά ενδεικτικά παραδείγματα ανοικτού λογισμικού είναι το projectlibre, το libreplan, το openproject, το project-open, το redmine και άλλα.

5.7. Παράδειγμα ανάπτυξης έργου Πληροφορικής
Στην ιστοσελίδα http://ebooks.edu.gr/ επιλέγοντας τον σύνδεσμο «Υλικό ανά μάθημα» και ακολουθώντας τον σύνδεσμο «Γ' Λυκείου» βρίσκεται αναρτημένο το βιβλίο μαθητή «Εφαρμογές Πληροφορικής Υπολογιστών (Α, Β, Γ Γενικού Λυκείου Γενικής Παιδείας)». Στο ενδέκατο κεφάλαιο με τίτλο «ΠΟΛΥΜΕΣΑ» και στην ενότητα 11.3 δίνεται ένα ολοκληρωμένο παράδειγμα ανάπτυξης εφαρμογών πολυμέσων.
Μπορείτε να μεταβείτε απευθείας στην ενότητα 11.3 ακολουθώντας την διαδρομή http://ebooks. edu.gr/modules/ebook/show.php/DSGL-C127/577/3748,16438/

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

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

5.8.1. Υπηρεσίες διάθεσης χώρου για την αποθήκευση αρχείων στο Διαδίκτυο και εργαλεία συγ -χρονισμού
Οι Διαδικτυακές υπηρεσίες που διαθέτουν χώρο για την αποθήκευση των αρχείων των χρηστών του Διαδικτύου σε κέντρα δεδομένων (Data Center), τα τελευταία χρόνια έχουν αποκτήσει μεγάλη άνθηση. Συχνά, για την περιγραφή αυτών των υπηρεσιών χρησιμοποιούμε την λέξη «Αποθετήρια» και εννοούμε τους ιδεατούς χώρους αποθήκευσης των προσωπικών μας αρχείων ή των αρχείων που έχουμε επεξεργαστεί σε συνεργασία με τα άλλα μέλη των ομάδων εργασίας στις οποίες ανήκουμε.

Το πλεονέκτημα αυτών των υπηρεσιών είναι η δυνατότητα που μας προσφέρουν να έχουμε πρόσβαση σε προσωπικά αρχεία και δεδομένα από τον υπολογιστή, την ταμπλέτα ή το έξυπνο τηλέφωνό μας οποιαδήποτε στιγμή το θελήσουμε. Οι περισσότερες από αυτές τις υπηρεσίες υποστηρίζουν τον συγχρονισμό των αρχείων με τις συσκευές μας και επιτρέπουν τον διαμοιρασμό αρχείων με πρόσωπα που επιθυμούμε.
Ενδεικτικές υπηρεσίες αυτού του είδους είναι το Cloud Drive της εταιρείας Amazon, το iCloud της εταιρείας Apple, το Dropbox της εταιρείας Dropbox, το Drive της εταιρείας Google και το OneDrive της εταιρείας Microsoft και άλλες. Από τις παραπάνω, οι βασικές υπηρεσίες του Dropbox, του Drive και του OneDrive είναι δωρεάν, με περιορισμούς όμως στον όγκο των δεδομένων που μπορούμε να αποθηκεύσουμε, ενώ για παραπάνω δυνατότητες οι υπηρεσίες προσφέρονται επί πληρωμή. Για τη χρήση των παραπάνω υπηρεσιών είναι απαραίτητη η εγγραφή μας ως μέλη.

Το Πανελλήνιο Σχολικό Δίκτυο (http://www.sch.gr) προσφέρει στα μέλη του την υπηρεσία myfiles με την οποία μπορούμε να αποθηκεύουμε και να διαμοιράζουμε αρχεία.

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

Με τις υπηρεσίες δημιουργίας και επεξεργασίας αρχείων μπορούμε να δημιουργούμε και να τροποποιούμε αρχεία είτε μόνοι μας είτε συνεργατικά με τα μέλη της ομάδας με τους οποίους εργαζόμαστε σε κάποιο κοινό έργο. Υπηρεσίες αυτού του είδους ενδεικτικά είναι το Google Docs της εταιρείας Google το οποίο συνεργάζεται με το Google Drive, το OneDrive της εταιρείας Microsoft που συνεργάζεται με το Microsoft Office, η επί πληρωμή έκδοση DropBox for Business, το HackPad, το Zoho, το OnlyOffice, το ownCloud Documents και άλλες.

Τελευταία, το Πανελλήνιο Σχολικό Δίκτυο (http://www.sch.gr) προσφέρει στα μέλη του την υπηρεσία +γραφίς, (http://grafis.sch.gr/), με την οποία δίνεται η δυνατότητα της δημιουργίας, επεξεργασίας και αποθήκευσης συνεργατικών εγγράφων. Η υπηρεσία +γραφίς συνεργάζεται με υπηρεσίες όπως το Drive και το Dropbox.

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

Ενδεικτικές υπηρεσίες είναι το Skype της εταιρείας Microsoft, το ooVoo της εταιρείας ooVoo LLC, το Hangouts της εταιρείας Google και άλλες. Οι βασικές υπηρεσίες και εδώ προσφέρονται δωρεάν μετά την εγγραφή του χρήστη ως μέλος.

5.9. Ερωτήματα - Δραστηριότητες
- 1. Ο σκοπός και τα ιδιαίτερα χαρακτηριστικά ενός έργου είναι αυτά που το κάνουν μοναδικό. Η διακόσμηση της βιτρίνας ενός καταστήματος μπορεί να θεωρηθεί ιδιωτικό έργο;
- 2. Προσπάθησε να βρεις πληροφορίες για το «Μοντέλο του καταρράκτη». (**)
- 3. Προσπάθησε να βρεις πληροφορίες για τη διαδικασία SCRUM. (**)
- 4. Προσπάθησε να βρεις πληροφορίες για τη μέθοδο Kanban. (**)
- 5. Παρουσίαση δεδομένων σε διάγραμμα Gantt στο Microsoft Office Excel 2007 με προσομοίωση γραφήματος. Με τη βοήθεια ενός περιηγητή ιστοσελίδων πήγαινε στην ιστοσελίδα και ακολούθησε τις οδηγίες, https://support.office.com/el-gr/article/%CE%A0%CE%B1%CF%81%CE%BF%CF%8 5%CF%83%CE%AF%CE%B1%CF%83%CE%B7-%CE%B4%CE%B5%CE%B4%CE%BF%CE%BC%CE%AD %CE%BD%CF%89%CE%BD-%CF%83%CE%B5-%CE%B3%CF%81%CE%AC%CF%86%CE%B7%CE%BC %CE%B1-Gantt-%CF%83%CF%84%CE%BF-Excel-f8910ab4-ceda-4521-8207-f0fb34d9e2b6?ui=elGR&rs=el-GR&ad=GR
- Εναλλακτικά, αναζήτησε την πρόταση: «Παρουσίαση δεδομένων σε γράφημα Gantt στο Excel», στο Διαδίκτυο.
- 6. Επισκέψου τις επίσημες ιστοσελίδες των λογισμικών παρακολούθησης έργων που αναφέρονται στην βιβλιογραφία-δικτυογραφία του κεφαλαίου και παρατήρησε τα χαρακτηριστικά των λογισμικών. Φτιάξε έναν συγκεντρωτικό πίνακα των βασικών χαρακτηριστικών με τη βοήθεια λογισμικού υπολογιστικών φύλλων. (**)
- 7. Κατάγραψε τις ομοιότητες και τις διαφορές των υπηρεσιών διάθεσης χώρου για την αποθήκευση αρχείων στο Διαδίκτυο. Φτιάξε έναν συγκεντρωτικό πίνακα με τη βοήθεια λογισμικού υπολογιστικών φύλλων χρησιμοποιώντας την βιβλιογραφία-δικτυογραφία του κεφαλαίου για βοήθεια. (**)
- 8. Μπορείς να ανακαλύψεις αν υπάρχουν στο Διαδίκτυο και άλλες δωρεάν ή επί πληρωμή υπηρεσίες που διαθέτουν χώρο για αποθήκευση αρχείων και οι οποίες δεν αναφέρονται;
- 9. Κατάγραψε τις ομοιότητες και τις διαφορές των υπηρεσιών δημιουργίας και επεξεργασίας αρχείων κειμένου, υπολογιστικών φύλλων και παρουσιάσεων στο Διαδίκτυο και δημιούργησε μια μικρή παρουσίαση με βοήθεια λογισμικού παρουσιάσεων και με τη χρήση διαγραμμάτων. Χρησιμοποίησε την βιβλιογραφία - δικτυογραφία του κεφαλαίου για βοήθεια. (**)
- 10. Υπάρχουν άλλες δωρεάν υπηρεσίες στο Διαδίκτυο που επιτρέπουν την συνεργατική δημιουργία και την τροποποίηση αρχείων και τις οποίες δεν αναφέραμε;
- 11. Κατάγραψε τις ομοιότητες και τις διαφορές των υπηρεσιών επικοινωνίας με τη χρήση μηνυμάτων, φωνής και εικόνας στο Διαδίκτυο, (ενότητα 5.7.3), σε έναν συγκεντρωτικό πίνακα με τη βοήθεια λογισμικού υπολογιστικών φύλλων. Χρησιμοποίησε την βιβλιογραφία - δικτυογραφία για βοήθεια. (**)
- (**): Για τον τρόπο εργασίας και αξιοποίησης των δραστηριοτήτων θα δοθούν αναλυτικές οδηγίες στους εκπαιδευτικούς.

Α. Εγκατάσταση του WordPress στο Πανελλήνιο Σχολικό Δίκτυο

Δημιουργία βάσης δεδομένων στο ΠΣΔ
Για να ξεκινήσουμε την διαδικασία εγκατάστασης WordPress στον ιστοχώρο μας στο ΠΣΔ, μετά από τη σύνδεση με τους κωδικούς μας στο http://www.sch.gr, επιλέγουμε διαδοχικά :

mySch → Πίνακας ελέγχου (ζητά ξανά τον κωδικό μας στο ΠΣΔ) → Ρυθμίσεις βάσης δεδομένων MySQL.
Στη συνέχεια ακολουθούμε τα παρακάτω βήματα:
- 1. Αν επιθυμούμε να δημιουργήσουμε νέα βάση δεδομένων (π.χ. αν έχουμε έναν παλαιότερο ιστότοπο), πατάμε «Προσθήκη» και δημιουργείται η νέα βάση δεδομένων.
- (Μην πατήσετε "Ανανέωση κωδικού" για να μην χάσετε παλαιότερο κωδικό που πιθανώς σχετίζεται με άλλο π.χ. ιστότοπό σας).
- 2. Πατάμε το κουμπί «ΟΚ» ή το κουμπί «Εφαρμογή», αν θέλουμε να παραμείνουμε στην σελίδα αυτή. (Θα πατήσουμε "Ανανέωση κωδικού" μόνο αν δεν φαίνεται κωδικός πρόσβασης MySQL, ώστε να εμφανιστεί).
- 3. Κρατάμε με προσοχή σε σημείωσή μας τα εξής: Εξυπηρετητής (Host ή Server), Όνομα χρήστη, κωδικό πρόσβασης MySQL και όνομα βάσης δεδομένων.

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

Κατέβασμα του WordPress στον υπολογιστή μας και προετοιμασία για τη μεταφορά του στο ΠΣΔ
- 1. Κατεβάζουμε το αρχείο της τελευταίας έκδοσης του WordPress από την επίσημη ιστοσελίδα http://el.wordpress.org/.
- 2. Χρησιμοποιούμε ένα πρόγραμμα αποσυμπίεσης και αποσυμπιέζουμε το αρχείο του WordPress σε ένα φάκελο στον υπολογιστή μας. Με την αποσυμπίεση δημιουργήθηκε ένας φάκελος με το όνομα "wordpress".

Μεταφορά του φακέλου Wordpress στο χώρο μας στο ΠΣΔ με το πρόγραμμα FileZilla
Με την χρήση ενός προγράμματος ftp client, όπως το Filezilla, ανεβάζουμε τα αρχεία που βρίσκονται
μέσα στον φάκελο με το όνομα "wordpress", στον ιστοχώρο μας στο ΠΣΔ.
Το πρόγραμμα FileZilla μπορούμε να το εγκαταστήσουμε από τον ακόλουθο σύνδεσμο: http:// filezilla-project.org, επιλέγοντας το FileZilla client. Στην συνέχεια, ανάλογα με το λειτουργικό μας σύστημα, θα επιλέξουμε τον αντίστοιχο σύνδεσμο.
Αφού το εγκαταστήσουμε, για να συνδεθούμε με τον χώρο μας στο ΠΣΔ θα σας ζητηθούν κάποια στοιχεία:

-  Στο Κόμβος (Host) γράφουμε users.sch.gr
-  Ως Όνομα χρήστη (Username) και Κωδικό πρόσβασης (Password) θα χρησιμοποιήσουμε τα ίδια που χρησιμοποιούμε και για τη σύνδεσή μας στο ΠΣΔ.
-  Έπειτα πατάμε το "Γρήγορη σύνδεση" (QuickConnect).
Στην αριστερή πλευρά του νέου παραθύρου, θα εμφανίζονται τα αρχεία του υπολογιστή μας, ενώ δεξιά θα βλέπουμε τα περιεχόμενα αρχεία στο χώρο μας στο ΠΣΔ. Για να μεταφέρουμε ένα αρχείο από τον υπολογιστή μας στο ΠΣΔ, εντοπίζουμε το αρχείο στην αριστερή πλευρά και με δεξί κλικ πάνω στο όνομά του επιλέγουμε "Αποστολή". (Εναλλακτικά, αρκεί να «σύρουμε» το αρχείο από το αριστερό προς το δεξί μέρος του παραθύρου). Αντίστοιχα στη δεξιά πλευρά με δεξί κλικ πάνω στο όνομα του αρχείου, μπορούμε να επιλέξουμε "Λήψη" για να κατεβάσουμε ένα αρχείο από το ΠΣΔ στον υπολογιστή μας. Για οποιαδήποτε ενέργειά μας, όπως διαγραφή, μετονομασία του αρχείου κ.ά. χρησιμοποιούμε είτε το δεξί κλικ είτε τη μπάρα εργαλείων.

Μεταφέρουμε τον φάκελο "wordpress" στο χώρο μας στο ΠΣΔ. Η διαδικασία αυτή ενδέχεται να διαρκέσει αρκετή ώρα, η οποία εξαρτάται από την ταχύτητα σύνδεσής μας στο Διαδίκτυο, αλλά και από τον φόρτο εργασιών των server του ΠΣΔ.

Εγκατάσταση του WordPress στον server του ΠΣΔ
1ο Βήμα
-  Όταν ολοκληρωθεί η μεταφορά του φακέλου "wordpress" επισκεπτόμαστε τη διεύθυνση http://users.sch.gr/username/wordpress/, όπου στη θέση του "username" θα πρέπει να βάλουμε το όνομα χρήστη του λογαριασμού μας το ΠΣΔ.
-  Μόλις φορτώσει η παραπάνω διεύθυνση θα μας εμφανιστεί η αρχική σελίδα εγκατάστασης του WordPress. Στην συνέχεια θα πρέπει να πατήσουμε το κουμπί "Πάμε".
-  Ανοίγει μια σελίδα στην οποία συμπληρώνουμε τα στοιχεία που κρατήσαμε από την δημιουργία βάσης δεδομένων στο ΠΣΔ. Πατάμε το Εκτέλεση εγκατάστασης.
-  Στην επόμενη σελίδα θα πρέπει να συμπληρώσουμε τα παρακάτω στοιχεία (που εσείς θέλετε):
- 1. Το όνομα του δικτυακού τόπου που θα δημιουργήσουμε.
- 2. Το όνομα χρήστη του διαχειριστή του ιστότοπου (δεν είναι απαραίτητο να είναι το username μας στο ΠΣΔ).
- 3. Τον κωδικό πρόσβασης του διαχειριστή (δεν είναι απαραίτητο να είναι το password μας στο ΠΣΔ) και
- 4. Τον λογαριασμό σας ηλεκτρονικού ταχυδρομείου ως διαχειριστής του ιστότοπου.

Πατάμε το "Εγκατάσταση WordPress".
Όταν ολοκληρωθεί η εγκατάσταση του WordPress θα μας εμφανιστεί η σελίδα που φαίνεται στην παρακάτω Εικόνα.
Εδώ τελείωσε η εγκατάσταση. Πατάμε το Σύνδεση.
Ανοίγει η σελίδα που μας συνδέει με την σελίδα διαχείρισης (Πίνακα ελέγχου) του ιστότοπου μας. Δίνουμε το όνομα χρήστη και το συνθηματικό που δημιουργήσαμε παραπάνω.

Β. Εγκατάσταση του WordPress σε τοπικό υπολογιστή

Δημιουργία βάσης δεδομένων στο ΠΣΔ
Για να ξεκινήσουμε την διαδικασία εγκατάστασης WordPress στον ιστοχώρο μας στο ΠΣΔ, μετά από τη σύνδεση με τους κωδικούς μας στο http://www.sch.gr, επιλέγουμε διαδοχικά :

mySch → Πίνακας ελέγχου (ζητά ξανά τον κωδικό μας στο ΠΣΔ) → Ρυθμίσεις βάσης δεδομένων MySQL.
Στη συνέχεια ακολουθούμε τα παρακάτω βήματα:
- 1. Αν επιθυμούμε να δημιουργήσουμε νέα βάση δεδομένων (π.χ. αν έχουμε έναν παλαιότερο ιστότοπο), πατάμε «Προσθήκη» και δημιουργείται η νέα βάση δεδομένων.
- (Μην πατήσετε "Ανανέωση κωδικού" για να μην χάσετε παλαιότερο κωδικό που πιθανώς σχετίζεται με άλλο π.χ. ιστότοπό σας).
- 2. Πατάμε το κουμπί «ΟΚ» ή το κουμπί «Εφαρμογή», αν θέλουμε να παραμείνουμε στην σελίδα αυτή. (Θα πατήσουμε "Ανανέωση κωδικού" μόνο αν δεν φαίνεται κωδικός πρόσβασης MySQL, ώστε να εμφανιστεί).
- 3. Κρατάμε με προσοχή σε σημείωσή μας τα εξής: Εξυπηρετητής (Host ή Server), Όνομα χρήστη, κωδικό πρόσβασης MySQL και όνομα βάσης δεδομένων.

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

Κατέβασμα του WordPress στον υπολογιστή μας και προετοιμασία για τη μεταφορά του στο ΠΣΔ
- 1. Κατεβάζουμε το αρχείο της τελευταίας έκδοσης του WordPress από την επίσημη ιστοσελίδα http://el.wordpress.org/.
- 2. Χρησιμοποιούμε ένα πρόγραμμα αποσυμπίεσης και αποσυμπιέζουμε το αρχείο του WordPress σε ένα φάκελο στον υπολογιστή μας. Με την αποσυμπίεση δημιουργήθηκε ένας φάκελος με το όνομα "wordpress".

Μεταφορά του φακέλου Wordpress στο χώρο μας στο ΠΣΔ με το πρόγραμμα FileZilla
Με την χρήση ενός προγράμματος ftp client, όπως το Filezilla, ανεβάζουμε τα αρχεία που βρίσκονται
μέσα στον φάκελο με το όνομα "wordpress", στον ιστοχώρο μας στο ΠΣΔ.
Το πρόγραμμα FileZilla μπορούμε να το εγκαταστήσουμε από τον ακόλουθο σύνδεσμο: http:// filezilla-project.org, επιλέγοντας το FileZilla client. Στην συνέχεια, ανάλογα με το λειτουργικό μας σύστημα, θα επιλέξουμε τον αντίστοιχο σύνδεσμο.
Αφού το εγκαταστήσουμε, για να συνδεθούμε με τον χώρο μας στο ΠΣΔ θα σας ζητηθούν κάποια στοιχεία:

-  Στο Κόμβος (Host) γράφουμε users.sch.gr
-  Ως Όνομα χρήστη (Username) και Κωδικό πρόσβασης (Password) θα χρησιμοποιήσουμε τα ίδια που χρησιμοποιούμε και για τη σύνδεσή μας στο ΠΣΔ.
-  Έπειτα πατάμε το "Γρήγορη σύνδεση" (QuickConnect).
Στην αριστερή πλευρά του νέου παραθύρου, θα εμφανίζονται τα αρχεία του υπολογιστή μας, ενώ δεξιά θα βλέπουμε τα περιεχόμενα αρχεία στο χώρο μας στο ΠΣΔ. Για να μεταφέρουμε ένα αρχείο από τον υπολογιστή μας στο ΠΣΔ, εντοπίζουμε το αρχείο στην αριστερή πλευρά και με δεξί κλικ πάνω στο όνομά του επιλέγουμε "Αποστολή". (Εναλλακτικά, αρκεί να «σύρουμε» το αρχείο από το αριστερό προς το δεξί μέρος του παραθύρου). Αντίστοιχα στη δεξιά πλευρά με δεξί κλικ πάνω στο όνομα του αρχείου, μπορούμε να επιλέξουμε "Λήψη" για να κατεβάσουμε ένα αρχείο από το ΠΣΔ στον υπολογιστή μας. Για οποιαδήποτε ενέργειά μας, όπως διαγραφή, μετονομασία του αρχείου κ.ά. χρησιμοποιούμε είτε το δεξί κλικ είτε τη μπάρα εργαλείων.

Μεταφέρουμε τον φάκελο "wordpress" στο χώρο μας στο ΠΣΔ. Η διαδικασία αυτή ενδέχεται να διαρκέσει αρκετή ώρα, η οποία εξαρτάται από την ταχύτητα σύνδεσής μας στο Διαδίκτυο, αλλά και από τον φόρτο εργασιών των server του ΠΣΔ.

Εγκατάσταση του WordPress στον server του ΠΣΔ
1ο Βήμα
-  Όταν ολοκληρωθεί η μεταφορά του φακέλου "wordpress" επισκεπτόμαστε τη διεύθυνση http://users.sch.gr/username/wordpress/, όπου στη θέση του "username" θα πρέπει να βάλουμε το όνομα χρήστη του λογαριασμού μας το ΠΣΔ.
-  Μόλις φορτώσει η παραπάνω διεύθυνση θα μας εμφανιστεί η αρχική σελίδα εγκατάστασης του WordPress. Στην συνέχεια θα πρέπει να πατήσουμε το κουμπί "Πάμε".
-  Ανοίγει μια σελίδα στην οποία συμπληρώνουμε τα στοιχεία που κρατήσαμε από την δημιουργία βάσης δεδομένων στο ΠΣΔ. Πατάμε το Εκτέλεση εγκατάστασης.
-  Στην επόμενη σελίδα θα πρέπει να συμπληρώσουμε τα παρακάτω στοιχεία (που εσείς θέλετε):
- 1. Το όνομα του δικτυακού τόπου που θα δημιουργήσουμε.
- 2. Το όνομα χρήστη του διαχειριστή του ιστότοπου (δεν είναι απαραίτητο να είναι το username μας στο ΠΣΔ).
- 3. Τον κωδικό πρόσβασης του διαχειριστή (δεν είναι απαραίτητο να είναι το password μας στο ΠΣΔ) και
- 4. Τον λογαριασμό σας ηλεκτρονικού ταχυδρομείου ως διαχειριστής του ιστότοπου.

Πατάμε το "Εγκατάσταση WordPress".
Όταν ολοκληρωθεί η εγκατάσταση του WordPress θα μας εμφανιστεί η σελίδα που φαίνεται στην παρακάτω Εικόνα.
Εδώ τελείωσε η εγκατάσταση. Πατάμε το Σύνδεση.
Ανοίγει η σελίδα που μας συνδέει με την σελίδα διαχείρισης (Πίνακα ελέγχου) του ιστότοπου μας. Δίνουμε το όνομα χρήστη και το συνθηματικό που δημιουργήσαμε παραπάνω.

Β. Εγκατάσταση του WordPress σε τοπικό υπολογιστή

Εγκατάσταση του XAMPP
Το XAMPP είναι ένα πρόγραμμα που διανέμεται ελεύθερα και δημιουργεί ένα περιβάλλον εικονικού Server στον υπολογιστή μας, ο οποίος μπορεί να μεταφράσει δεδομένα της γλώσσας προγραμματισμού PHP και της γλώσσας βάσεων δεδομένων.
Το XAMPP μπορούμε να το κατεβάσουμε από εδώ: https://www.apachefriends.org/
Επιλέγουμε την έκδοση για το λειτουργικό μας σύστημα (εδώ θα δείξουμε για Windows OS) και αποθηκεύουμε το αρχείο στον σκληρό μας δίσκο. Αφού κατέβει το αρχείο .exe το τρέχουμε και προχωράμε στην εγκατάσταση. Θα μας εμφανίσει το παρακάτω μήνυμα:

Πατάμε "Yes" στο πρώτο παραθυράκι που εμφανίζεται και μας λέει να κλείσουμε το antivirus (αν δεν υπάρχει εγκατεστημένο antivirus στο σύστημα μας, το συγκεκριμένο παράθυρο δεν εμφανίζεται).
Στο επόμενο παράθυρο που εμφανίζεται με τα components δεν πειράζουμε τίποτα και πατάμε πάλι "Next".
Επιλέγουμε πρώτα τη γλώσσα που επιθυμούμε (συγκεκριμένα επιλέχθηκε η Ελληνική γλώσσα).
Στη συνέχεια αφήνουμε ως έχει τη διαδρομή που θα εγκατασταθεί το πρόγραμμα στο σκληρό μας δίσκο, πατάμε "Next" και περιμένουμε, έως ότου ολοκληρωθεί η εγκατάσταση.

Πριν την εγκατάσταση του WordPress πρέπει να δημιουργηθεί η βάση δεδομένων που θα χρησιμοποιηθεί για την ιστοσελίδα.
Πρώτα ενεργοποιούμε το πρόγραμμα XAMPP και στο παραθυράκι που ανοίγει πατάμε start στα module του Apache και της MySql.
Στη συνέχεια επιλέγουμε το κουμπί "Admin" του Mysql module, με το οποίο ανοίγει το εργαλείο phpmyadmin (η εφαρμογή διαχείρισης βάσεων) και κάνουμε κλικ στο "Βάσεις δεδομένων".
Εδώ δίνουμε το όνομα που θέλουμε για την τοπική μας βάση και σαν κωδικοποίηση επιλέγουμε "utf8\_unicode\_ci" και πατάμε «Δημιουργία».

Εγκατάσταση αρχείων WordPress
Η τελευταία έκδοση του WordPress στα ελληνικά είναι διαθέσιμη στην διεύθυνση https:// el.wordpress.org/. Εξάγουμε τα αρχεία εγκατάστασης από το αρχείο που κατεβάσαμε από την ιστοσελίδα του WordPress, στον φάκελο που θα φιλοξενήσει τον ιστότοπο μας (xampp/htdocs/wordpress) και στην συνέχεια επισκεπτόμαστε την διεύθυνση http://localhost/wordpress στον browser μας, για να εμφανιστεί η σελίδα εγκατάστασης του WordPress.
Συμπληρώνουμε τα πεδία για την σύνδεση με την βάση που δημιουργήσαμε στο PhpMyAdmin.

Αφού συμπληρώσουμε τα στοιχεία, πατάμε "Υποβολή" και συνεχίζουμε με την εγκατάσταση.
Θα πρέπει να συμπληρώσουμε άλλη μια φόρμα, η οποία φαίνεται στην παρακάτω εικόνα.
Τίτλος ιστότοπου → Ο τίτλος της ιστοσελίδας μας.
Όνομα χρήστη και Συνθηματικό → Το όνομα χρήστη και ο κωδικός με τα οποία ο χρήστης θα κάνει είσοδο στον πίνακα ελέγχου του WordPress.
Η ηλ. διεύθυνσή σας → Το e-mail του διαχειριστή, που πιθανότατα θα χρειαστεί για κάποιες μελλοντικές λειτουργίες.
Η διαδικασία της εγκατάστασης τελείωσε! Είσαστε έτοιμοι να εισέλθουμε στον ιστότοπο μας και να ξεκινήσουμε να τον φτιάχνουμε. Είμαστε έτοιμοι να κάνουμε login, με όνομα χρήστη και συνθηματικό αυτά που βάλαμε παραπάνω.

Γ. Πρόταση σχεδιασμού ιστότοπου με το WordPress
Ο ιστότοπος θα είναι για ένα ραδιοφωνικό σταθμό. Ας ονομάσουμε το ραδιοφωνικό σταθμό μας EPAL FM και ας δούμε από ποιες σελίδες θα αποτελείται ο ιστότοπος μας:
Παραγωγοί : Μια σελίδα με τους εργαζόμενους του EPAL FM. Προσωπικές πληροφορίες για τον καθένα και φωτογραφίες.
Ο σταθμός : Μια σελίδα με πληροφορίες για το σταθμό (πoιοί είμαστε, γιατί υπάρχουμε)
Πρόγραμμα : Εβδομαδιαίο πρόγραμμα εκπομπών και πληροφορίες για κάθε εκπομπή.
Charts : Μια σελίδα με τα εβδομαδιαία charts για να ενημερώνονται οι επισκέπτες.

Συνεντεύξεις : Σελίδα με ηχητικά αποσπάσματα από συνεντεύξεις που πήραμε από καλλιτέχνες στον EPAL FM.
Listen to EPAL FM : Σελίδα με πληροφορίες και τους συνδέσμους (links) για το πως μπορεί κάποιος να μας ακούσει ζωντανά.
Επικοινωνία : Στοιχεία και φόρμα επικοινωνίας για τους ακροατές μας.

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

Ο σχεδιασμός των σελίδων θα είναι όπως φαίνεται παρακάτω:
Κεντρική σελίδα
Οι υπόλοιπες σελίδες του ιστότοπου.
Ας δούμε τις σελίδες μια - μια ξανά:
Παραγωγοί : Μια στατική σελίδα με γενικές πληροφορίες για τους παραγωγούς και υποενότητες σελίδες με λεπτομέρειες γι' αυτούς.
Ο σταθμός : Μια στατική σελίδα που θα περιέχει μια περιγραφή του σταθμού.
Πρόγραμμα : Παρομοίως.
Charts : Tα charts, μια και η χρονολογία είναι σημαντική πληροφορία, θα τα κάνουμε άρθρα (posts). Θα φτιάξουμε μια κατηγορία, όπου εκεί θα ανεβάζουμε ένα άρθρο για κάθε chart. Υπάρχουν αρκετοί τρόποι που θα μας βοηθήσουν να τα ταξινομήσουμε ανά μήνα, εβδομάδα ή ότι άλλο θέλουμε για να τα δείξουμε στον ιστότοπο μας.

Συνεντεύξεις : Και εδώ θα χρησιμοποιήσουμε άρθρα. Θα φτιάξουμε μια κατηγορία «Συνεντεύξεις», ώστε να κρατήσουμε ένα αρχείο με χρονολογική σειρά.
Listen to EPAL FM : Στατική σελίδα. Κείμενο και links προς τα αρχεία ήχου του σταθμού.
Επικοινωνία : Στατική σελίδα με μια φόρμα επικοινωνίας και στοιχεία επικοινωνίας.
Κεντρική σελίδα : Εδώ φυσικά θα εμφανίσουμε κάτι από όλες τις παραπάνω σελίδες. Μια συνέντευξη, την εκπομπή που είναι στον αέρα, ένα τυχαίο παραγωγό κλπ.
Τώρα θα χρειαστεί να επιλέξουμε ένα θέμα που θα ταιριάζει για τον ιστότοπο μας και να εγκαταστήσουμε κάποια πρόσθετα (plugins) που θα μας χρειαστούν.


ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ