Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό Πρόγραμμα «Εκπαίδευση και Διά Βίου Μάθηση» (ΕΠΕΔΒΜ) του ΕΣΠΑ (2007-2013), Άξονας Προτεραιότητας 7: «Ενίσχυση της Διά Βίου Εκπαίδευσης Ενηλίκων στις 8 Περιφέρειες Σύγκλισης» με κωδικό MIS 296121 και η οποία συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο - ΕΚΤ) και από εθνικούς πόρους, μέσω του Προγράμματος Δημοσίων Επενδύσεων (ΠΔΕ) του ΥΠΑΙΘ. Σύγχρονες Μέθοδοι Προγραμματισμού Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα και πληρότητα των συγγραμμάτων την αποκλειστική ευθύνη φέρουν οι συγγραφείς, κριτικοί αναγνώστες και ακαδημαϊκοί υπεύθυνοι που ανέλαβαν το έργο αυτό.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστημών και Τεχνολογίας Πρόγραμμα Σπουδών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Θεματική Ενότητα ΕΞΕΙΔΙΚΕΥΣΕΙΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Τόμος Γ Σύγχρονες Μέθοδοι Προγραμματισμού Συγγραφή ΣΠΥΡΙΔΩΝ ΣΙΟΥΤΑΣ Αναπληρωτής Καθηγητής Ιονίου Πανεπιστημίου ΙΩΑΝΝΗΣ ΤΖΗΜΑΣ Επίκουρος Καθηγητής ΤΕΙ Δυτικής Ελλάδας ΙΩΑΝΝΗΣ ΚΑΡΥΔΗΣ Διδάσκων (Π.Δ. 407/80) στο Ιόνιο Πανεπιστήμιο Κριτική Ανάγνωση ΕΥΑΓΓΕΛΟΣ ΣΑΚΚΟΠΟΥΛΟΣ Διδάκτωρ Πανεπιστημίου Πατρών Ακαδημαϊκός Υπεύθυνος για την ανάπτυξη του έντυπου διδακτικού υλικού του ΠΣ ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Συντονιστής για την ανάπτυξη του έντυπου διδακτικού υλικού της ΘΕ ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Ειδικός στη Μεθοδολογία της Ανοικτής και εξ Αποστάσεως Εκπαίδευσης ΑΔΑΜΑΝΤΙΑ ΣΠΑΝΑΚΑ Γλωσσική Επιμέλεια ΧΑΡΙΚΛΕΙΑ ΠΑΠΑΔΟΠΟΥΛΟΥ Τεχνική Επιμέλεια Καλλιτεχνική Επιμέλεια Σελιδοποίηση ΒΙΒΛΙΟΤΕΧΝΙΑ ΠΑΠΠΑΣ ΦΩΤΙΟΣ - ΔΟΥΒΟΥ ΣΕΒΑΣΤΗ Ο.Ε. ISBN: 978-960-538-982-6 Κωδικός Έκδοσης: ΠΛΣ 60/Γ Copyright 2015 για την Ελλάδα και όλο τον κόσμο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πάροδος Αριστοτέλους 18, 26335 Περιβόλα Πατρών Τηλ.: 2610 367300, Φαξ: 2610 367650 To παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις του Ελληνικού Νόμου (Ν. 2121/1993 όπως έχει τροποποιηθεί και ισχύει σήμερα) και τις διεθνείς συμβάσεις περί πνευματικής ιδιοκτησίας. Απαγορεύεται απολύτως η άνευ γραπτής αδείας του εκδότη, κατά οποιονδήποτε τρόπο ή μέσο, αντιγραφή, φωτοανατύπωση και εν γένει αναπαραγωγή, εκμίσθωση ή δανεισμός, μετάφραση, διασκευή, αναμετάδοση στο κοινό σε οποιαδήποτε μορφή (ηλεκτρονική, μηχανική κ.λπ.) και η εν γένει εκμετάλλευση του συνόλου ή μέρους του έργου.
Σχολή Θετικών Επιστημών και Τεχνολογίας Πρόγραμμα Σπουδών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Θεματική Ενότητα ΕΞΕΙΔΙΚΕΥΣΕΙΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Τόμος Γ Σύγχρονες Μέθοδοι Προγραμματισμού ΣΠΥΡΙΔΩΝ ΣΙΟΥΤΑΣ Αναπληρωτής Καθηγητής Ιονίου Πανεπιστημίου ΙΩΑΝΝΗΣ ΤΖΗΜΑΣ Επίκουρος Καθηγητής ΤΕΙ Δυτικής Ελλάδας ΙΩΑΝΝΗΣ ΚΑΡΥΔΗΣ Διδάσκων (Π.Δ. 407/80) στο Ιόνιο Πανεπιστήμιο ΠΑΤΡΑ 2015
Βιογραφικά Ο Σπυρίδων Σιούτας είναι Αναπληρωτής Καθηγητής στο Τμήμα Πληροφορικής του Ιονίου Πανεπιστημίου. Αποφοίτησε από το Τμήμα Μηχανικών Η/Υ και Πληροφορικής της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών το Δεκέμβριο του 1997. Έλαβε Μεταπτυχιακό Δίπλωμα Ειδίκευσης (MPhil) και Διδακτορικό (PhD) από το ίδιο Τμήμα τα έτη 2000 και 2002 αντίστοιχα. Τα ερευνητικά του ενδιαφέροντα εστιάζονται σε Αλγορίθμους Διαχείρισης Μεγάλου Όγκου Δεδομένων τόσο σε κεντρικοποιημένες (centralized) όσο και σε μη κεντρικοποιημένες (decentralized) ή κατανεμημένες (distributed) Βάσεις Δεδομένων. Έχει δημοσιεύσει πάνω από 100 άρθρα σε έγκριτα διεθνή επιστημονικά συνέδρια και περιοδικά και έχει λάβει πάνω από 600 ετεροαναφορές. O Ιωάννης Τζήμας είναι Επίκουρος Καθηγητής στο Τμήμα Μηχανικών Πληροφορικής του ΤΕΙ Δυτικής Ελλάδας. Είναι απόφοιτος του Τμήματος Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής του Πανεπιστημίου Πατρών και διδάκτωρ του ίδιου Τμήματος στον τομέα των Τεχνολογιών Διαδικτύου. Η ερευνητική του δραστηριότητα εστιάζεται στους τομείς των Δικτυοκεντρικών Πληροφοριακών Συστημάτων, των Δικτύων Η/Υ και των εφαρμογών τους, καθώς και των Τεχνολογιών Διαδικτύου, όπου έχει δημοσιεύσει σημαντικό αριθμό άρθρων σε διεθνή επιστημονικά περιοδικά και συνέδρια. Από το 1995 έως σήμερα έχει διατελέσει Τεχνικός Υπεύθυνος του εργαστηρίου Γραφικών, Πολυμέσων και Γεωγραφικών Συστημάτων του Τμήματος Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής του Πανεπιστημίου Πατρών, ενώ παράλληλα από το 1997 έως το 2011 ήταν Τεχνικός Συντονιστής της Ερευνητικής Μονάδας Τεχνολογιών Διαδικτύου και Πολυμέσων του Ερευνητικού Ακαδημαϊκού Ινστιτούτου Τεχνολογίας Υπολογιστών. Με τις παραπάνω ιδιότητες έχει συμμετάσχει στο συντονισμό και στην υλοποίηση ερευνητικών και αναπτυξιακών έργων από το 1995 έως σήμερα. Τέλος, μέχρι τα μέσα του 2013, ήταν επιστημονικός υπεύθυνος του Κέντρου Διαχείρισης Δικτύου του ΤΕΙ Μεσολογγίου. Ο Ιωάννης Καρύδης είναι Διδάσκων (Π.Δ. 407/80) στο Τμήμα Πληροφορικής του Ιονίου Πανεπιστημίου. Έλαβε πτυχίο (BEng in Engineering Science & Technology) από το Brunel University του Ηνωμένου Βασιλείου το 2000, Μεταπτυχιακό Δίπλωμα (MSc in Advanced Methods in Computer Science) από το Queen Mary University του Ηνωμένου Βασιλείου το 2001 και Διδακτορικό Δίπλωμα (Μέθοδοι Εξόρυξης και Ανάκτησης Ακουστικών και Συμβολικών Μουσικών Δεδομένων) από το Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης το 2006. Στη συνέχεια εκπόνησε μεταδιδακτορική μελέτη στις Μουσικές Βάσεις Δεδομένων στο ίδιο πανεπιστήμιο. Κατά το 2013-2014 διετέλεσε ΣΕΠ του ΕΑΠ (ΠΛΣ 60 Εξειδικεύσεις Τεχνολογίας Λογισμικού). Από το Δεκέμβριο του 2014 έως το Μάιο του 2015 εργάστηκε ως μεταδιδάκτορας στο πεδίο της Μουσικής Ανάκτησης Πληροφορίας στο Ινστιτούτο Επεξεργασίας Λόγου. Τα ερευνητικά του ενδιαφέροντα περιλαμβάνουν τις βάσεις δεδομένων ακουστικών σημάτων, την ανάκτηση μουσικής πληροφορίας, την εξόρυξη γνώσης από ακουστικά και συμβολικά ηχητικά δεδομένα και την πολιτιστική πληροφορική. Το 2013 συνιδρύει και έκτοτε είναι διαχειριστής της Creative Web Applications (www.cwa.gr). Αν θελήσετε να επικοινωνήσετε μαζί του, το e-mail του είναι: karydis@ionio.gr.
Περιεχόμενα Πρόλογος...17 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στις τεχνολογίες του παγκόσμιου ιστού Σπ. Σιούτας Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...19 1.1 HTML...21 1.1.1 Ιστορική αναδρομή HTML...21 1.1.2 DTD και HTML...27 1.1.3 Ανάλυση για τα μέρη των ετικετών...29 1.1.4 Ετικέτα κεφαλίδας «<head/>»...31 1.1.5 Ετικέτα <head> και μηχανές αναζήτησης...32 1.1.6 Ετικέτα κεφαλίδας περιεχομένου «<h1>, <h2>, <h3>, <h4>, <h5>, <h6>»...33 1.1.7 Ετικέτα παραγράφου «<p>»...34 1.1.8 Ετικέτα λίστας «<ul>, <ol>, <li>»...35 1.1.9 Εικόνες και «<img/>»...36 1.1.10 Μορφότυποι εικόνων Μεγέθη...37 1.1.11 Ετικέτα υπερσυνδέσμων «<a>»...37 1.1.12 Ετικέτα δημιουργίας φόρμας «<form>, <input>, <select>»...39 1.1.13 Ετικέτα περιεχομένου «<div>»...41 1.1.14 Ετικέτα για την εισαγωγή κώδικα JavaScript «<script>»...46 1.1.15 Υποστηριζόμενες τεχνολογίες...46 1.2 HTML5 Ετικέτες Χαρακτηριστικά...48 1.2.1 Ετικέτα Canvas και SVG...48 1.2.2 Ετικέτες πολυμέσων...50
8 ΣΥΓΧΡΟΝΕΣ ΜΕΘΟΔΟΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 1.3 CSS Style...53 1.3.1 Στοιχεία του CSS3...56 1.4 XML XQuery XPath...65 1.4.1 Βασική σύνταξη XML εγγράφων...65 1.4.2 XQuery...67 1.4.3 XPath...70 Σύνοψη...73 Λίστα Ελέγχου Γνώσεων...73 Ευρετήριο Όρων...74 Γλωσσάρι...75 Βιβλιογραφία...76 Οδηγός για Περαιτέρω Μελέτη...77 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...78 Απαντήσεις Δραστηριοτήτων...80 Κατάλογος εικόνων...87 Κατάλογος πινάκων...88 ΚΕΦΑΛΑΙΟ 2 Τεχνολογίες scripting προγραμματισμού στον ιστό Σπ. Σιούτας Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...89 2.1 Αίτημα και απάντηση ιστοσελίδας (web request & response)...91 2.2 HTML DOM...93 2.3 JavaScript jquery...95 2.3.1 jquery βιβλιοθήκη...96 2.3.2 jquery: Χρησιμοποιώντας τα βασικά εργαλεία...99 2.3.3 jquery: Επιλέγοντας στοιχεία...101
ΠΕΡΙΕΧΟΜΕΝΑ 9 2.3.4 jquery: Διαμορφώνοντας στοιχεία...102 2.3.5 jquery: Επεξεργασία κανόνων CSS...106 2.3.6 jquery: Χειρισμός συμβάντων...108 2.3.7 jquery: Επεξεργασία εφέ...110 2.3.8 jquery: Ενσωματώνοντας νέα εργαλεία για τη βιβλιοθήκη...113 2.4 JSON...115 2.5 AJAX...117 2.5.1 AJAX κλήσεις με τη βοήθεια της jquery...120 Σύνοψη...130 Λίστα Ελέγχου Γνώσεων...130 Ευρετήριο Όρων...131 Γλωσσάρι...131 Βιβλιογραφία...132 Οδηγός για Περαιτέρω Μελέτη...132 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...133 Απαντήσεις Δραστηριοτήτων...135 Κατάλογος εικόνων...139 Κατάλογος πινάκων...139 K ΕΦΑΛΑΙΟ 3 Εισαγωγή στον προγραμματισμό με τη γλώσσα Python Ι. Τζήμας Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...141 3.1 Βασικοί τύποι δεδομένων...143 3.1.1 Αριθμοί Numbers...143 3.1.2 Συμβολοσειρές Strings...146 3.1.3 Λίστες (Lists)...152
10 ΣΥΓΧΡΟΝΕΣ ΜΕΘΟΔΟΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 3.1.4 Πλειάδες (Tuples)...155 3.1.5 Σύνολα (Sets)...157 3.1.6 Λεξικά (Dictionaries)...159 3.1.7 None...161 3.1.8 Λογικοί τύποι (Booleans)...162 3.2 Έλεγχος ροής...164 3.2.1 Εντολές και μπλοκ...164 3.2.2 Συνθήκες και λογικές εκφράσεις...165 3.2.3 Η εντολή if...167 3.2.4 Εντολές επανάληψης...170 3.2.5 Η συνάρτηση range...171 3.2.6 Τεχνικές επανάληψης...172 3.2.7 Οι εντολές break και continue...175 3.2.8 Η εντολή pass...177 3.2.9 H εντολή else σε βρόχους επανάληψης...177 3.3 Συναρτήσεις...180 3.3.1 Παράδειγμα συνάρτησης...180 3.3.2 Ορίσματα συνάρτησης...181 3.3.3 Τοπικές και καθολικές μεταβλητές...182 3.3.4 Προεπιλεγμένες τιμές ορισμάτων...183 3.3.5 Λέξεις-κλειδιά ορισμάτων...184 3.3.6 Μεταβλητό πλήθος ορισμάτων...184 3.3.7 Η εντολή return...186 3.3.8 DocStrings...186 3.4 Κλάσεις...188 3.4.1 Ορισμός κλάσης...189 3.4.2 Μέθοδοι...189
ΠΕΡΙΕΧΟΜΕΝΑ 11 3.4.3 Η μέθοδος init...191 3.4.4 Χαρακτηριστικά και στατικές μέθοδοι...193 3.4.5 Κληρονομικότητα...197 3.4.6 Ενθυλάκωση...202 3.4.7 Πολυμορφισμός...205 3.5 Αρχεία...208 3.5.1 Ανάγνωση αρχείου κειμένου...208 3.5.2 Εγγραφή σε αρχείο κειμένου...212 3.5.3 Δυαδικά (Binary) αρχεία...214 3.5.4 Συμπιεσμένα αρχεία...214 Σύνοψη...216 Λίστα Ελέγχου Γνώσεων...216 Ευρετήριο Όρων...217 Γλωσσάρι...221 Βιβλιογραφία...225 Οδηγός για Περαιτέρω Μελέτη...226 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...227 Απαντήσεις Δραστηριοτήτων...237 Κατάλογος πινάκων...250 K ΕΦΑΛΑΙΟ 4 Εισαγωγή στον προγραμματισμό με τη γλώσσα Ruby Ι. Τζήμας Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...251 4.1 Βασικοί τύποι δεδομένων...253 4.1.1 Μεταβλητές Variables...253 4.1.2 Αριθμοί Numbers...254
12 ΣΥΓΧΡΟΝΕΣ ΜΕΘΟΔΟΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 4.1.3 Σταθερές Constants...257 4.1.4 Συμβολοσειρές Strings...258 4.1.5 Πίνακες (Arrays)...264 4.1.6 Δομές κατακερματισμού (Hashes)...267 4.2 Έλεγχος ροής...271 4.2.1 Η εντολή if...271 4.2.2 Επιστρεφόμενη τιμή...273 4.2.3 Η εντολή case...274 4.2.4 Η εντολή επανάληψης while...276 4.2.5 Οι εντολές unless και until...277 4.2.6 Η μέθοδος loop...278 4.2.7 Η εντολή επανάληψης for...279 4.2.8 Εκτέλεση πριν και μετά το πρόγραμμα...280 4.3 Μέθοδοι...281 4.3.1 Ορισμός...281 4.3.2 Επιστρεφόμενες τιμές...281 4.3.3 Ορίσματα...282 4.3.4 Μπλοκ...284 4.4 Κλάσεις...286 4.4.1 Βασικά χαρακτηριστικά αντικειμενοστρέφειας...288 4.4.2 Μέθοδοι κλάσης και μέθοδοι αντικειμένου...292 4.4.3 Κληρονομικότητα...292 4.4.4 Υπερσκέλιση μεθόδων...294 4.4.5 Ενθυλάκωση...295 4.4.6 Πολυμορφισμός...297 4.4.7 Εμφωλευμένες κλάσεις...298
ΠΕΡΙΕΧΟΜΕΝΑ 13 4.5 Αρχεία...300 4.5.1 Ανάγνωση από αρχείο...301 4.5.2 Εγγραφή σε αρχείο...303 4.5.3 Κωδικοποιήσεις...305 4.5.4 Λειτουργίες αρχείων...306 Σύνοψη...310 Λίστα Ελέγχου Γνώσεων...311 Ευρετήριο Όρων...312 Γλωσσάρι...315 Βιβλιογραφία...319 Οδηγός για Περαιτέρω Μελέτη...320 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...321 Απαντήσεις Δραστηριοτήτων...327 Κατάλογος πινάκων...332 ΚΕΦΑΛΑΙΟ 5 Εισαγωγή στις τεχνολογίες παγκόσμιου ιστού στον εξυπηρετητή με τη γλώσσα Ruby και το πλαίσιο Rails Ι. Καρύδης Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...333 5.1 Γενικά...337 5.2 Ιστορικά στοιχεία...338 5.3 Εγκατάσταση του πλαισίου Rails...339 5.4 Δημιουργία σκελετού εφαρμογής και εκκίνηση του πλαισίου Rails...341 5.4.1 hello, world...344 5.5 Αρχιτεκτονική Μοντέλο Όψη Ελεγκτής...346
14 ΣΥΓΧΡΟΝΕΣ ΜΕΘΟΔΟΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 5.6 Διασύνδεση με βάση δεδομένων...348 5.6.1 Συμβάσεις προτύπου ενεργών εγγραφών στο Rails...348 5.6.2 Δημιουργία και υπερφόρτωση μοντέλων προτύπου ενεργών εγγραφών...349 5.7 Επιτάχυνση ανάπτυξης...352 5.8 Φόρμες και επικύρωση...355 5.8.1 Ανταλλαγή πληροφορίας με φόρμες...355 5.8.2 Επικύρωση πληροφορίας στις φόρμες...360 5.9 Προηγμένα θέματα στο Rails...365 5.9.1 Eμφωλεύοντας συνδεδεμένα μοντέλα...365 5.9.2 Rails και JavaScript/AJAX...372 5.9.3 Θέματα ασφάλειας στο Rails...375 Σύνοψη...382 Λίστα Ελέγχου Γνώσεων...383 Ευρετήριο Όρων...384 Γλωσσάρι...385 Βιβλιογραφία...388 Οδηγός για Περαιτέρω Μελέτη...391 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...393 Απαντήσεις Δραστηριοτήτων...398 Κατάλογος εικόνων...400 Κατάλογος πινάκων...401 ΠΑΡΑΡΤΗΜΑ Εγκατάσταση συστήματος διαχείρισης εικονικών υπολογιστών...402 Εγκατάσταση Ubuntu 12.04 LTS στον εικονικό υπολογιστή...403 Εγκατάσταση της Ruby στον εικονικό υπολογιστή...411
ΠΕΡΙΕΧΟΜΕΝΑ 15 ΚΕΦΑΛΑΙΟ 6 Τεχνολογίες του προηγμένου προγραμματισμού ιστού Ι. Καρύδης Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...413 6.1 Διαχείριση εκδόσεων στον προγραμματισμό...415 6.1.1 Το σύστημα Git...415 6.1.2 Το σύστημα Subversion...422 6.2 Συνεδρίες (Sessions)...427 6.3 Δοκιμάζοντας την απόδοση των εφαρμογών...431 6.4 Διάθεση προτυποποιημένης πληροφορίας κατά RSS...435 6.5 Βασικές αρχές API προγραμματισμού ιστού...440 6.6 Η Python στο διαδικτυακό προγραμματισμό...445 Σύνοψη...449 Λίστα Ελέγχου Γνώσεων...450 Ευρετήριο Όρων...451 Γλωσσάρι...452 Βιβλιογραφία...454 Οδηγός για Περαιτέρω Μελέτη...455 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...457 Απαντήσεις Δραστηριοτήτων...462 Κατάλογος εικόνων...464 Κατάλογος πινάκων...464