JAVASCRIPT
Σύντομη περιγραφή εκπαιδευτικού υλικού
Το εκπαιδευτικό υλικό παρουσιάζει βασικές και προχωρημένες έννοιες της ανάπτυξης λογισμικού, του προγραμματισμού διαδικτυακών εφαρμογών και των πληροφοριακών συστημάτων στο σύγχρονο ψηφιακό περιβάλλον. Αρχικά, εισάγει τους εκπαιδευόμενους στην Τεχνολογία Λογισμικού, εξετάζοντας το λογισμικό ως τεχνικό κατασκεύασμα, τα προβλήματα που συνδέονται με την ανάπτυξη και συντήρησή του, τα μοντέλα κύκλου ζωής, τη μηχανική απαιτήσεων, τη δομημένη ανάλυση, την αρχιτεκτονική λογισμικού και τη σχεδίαση αξιόπιστων εφαρμογών.
Στη συνέχεια, το υλικό εστιάζει στον προγραμματισμό διαδικτύου, παρουσιάζοντας την αρχιτεκτονική του Παγκόσμιου Ιστού, το πρωτόκολλο HTTP, τη δομή ιστοσελίδων με HTML, την παρουσίαση με CSS, τη δημιουργία responsive διεπαφών με Bootstrap και τη διαδραστικότητα με JavaScript. Παράλληλα, εξετάζονται βασικές και πιο σύνθετες τεχνικές JavaScript, όπως η διαχείριση συμβάντων, οι συναρτήσεις, τα αντικείμενα, η ασύγχρονη λειτουργία, τα Promises και το async/await.
Το εκπαιδευτικό υλικό καλύπτει επίσης την ανάπτυξη εφαρμογών από την πλευρά του εξυπηρετητή με Node.js, τη χρήση βιβλιοθηκών και πακέτων, τη δημιουργία HTTP server, τη διαχείριση αρχείων, τη χρήση npm, τη διαχείριση μεταβλητών περιβάλλοντος, την αποσφαλμάτωση και τη δημοσίευση εφαρμογών. Επιπλέον, παρουσιάζονται ζητήματα διασύνδεσης με βάσεις δεδομένων, σχεσιακές και μη σχεσιακές, καθώς και βασικές αρχές ασφάλειας διαδικτυακών εφαρμογών, όπως αυθεντικοποίηση, hashing, cookies, sessions και ασφαλής μεταφορά δεδομένων.
Ιδιαίτερη έμφαση δίνεται στα Πληροφοριακά Συστήματα στο Διαδίκτυο, στα επιχειρηματικά μοντέλα του ηλεκτρονικού επιχειρείν και του ηλεκτρονικού εμπορίου, στις υπηρεσίες ιστού, στην αρχιτεκτονική MVC, στα web services, στο cloud computing, στις εφαρμογές κινητών συσκευών και στην ασφάλεια πληροφοριακών συστημάτων. Το υλικό ολοκληρώνεται με την παρουσίαση των Κατανεμημένων Πληροφοριακών Συστημάτων, των αρχιτεκτονικών τους, των υπηρεσιών ονοματοδοσίας και εντοπισμού πόρων, των μηχανισμών συγχρονισμού, των νημάτων, του αμοιβαίου αποκλεισμού, των αλγορίθμων κατανεμημένων συστημάτων και των βασικών μηχανισμών ασφάλειας.
Συνολικά, το εκπαιδευτικό υλικό προσφέρει μια ολοκληρωμένη βάση για την κατανόηση, σχεδίαση, ανάπτυξη, διαχείριση και αξιολόγηση σύγχρονων διαδικτυακών, πληροφοριακών και κατανεμημένων εφαρμογών.
Μαθησιακά αποτελέσματα
Με την ολοκλήρωση της μελέτης του υλικού, οι εκπαιδευόμενοι θα είναι σε θέση να:
- κατανοούν το λογισμικό ως τεχνικό κατασκεύασμα και προϊόν,
- αναγνωρίζουν βασικά προβλήματα ανάπτυξης και συντήρησης λογισμικού,
- εξηγούν την έννοια της Τεχνολογίας Λογισμικού και της Μηχανικής Λογισμικού,
- διακρίνουν βασικά μοντέλα κύκλου ζωής λογισμικού, όπως καταρράκτη, πρωτοτυποποίησης, λειτουργικής επαύξησης και σπειροειδές μοντέλο,
- προσδιορίζουν και ταξινομούν απαιτήσεις λογισμικού σε λειτουργικές και μη λειτουργικές,
- χρησιμοποιούν βασικές τεχνικές δομημένης ανάλυσης, όπως διαγράμματα ροής δεδομένων, οντοτήτων-συσχετίσεων και μετάβασης καταστάσεων,
- κατανοούν βασικές αρχιτεκτονικές λογισμικού, όπως μονολιθική, πελάτη-εξυπηρετητή, τριμερής και πολυμερής αρχιτεκτονική,
- κατανοούν τη σημασία της σχεδίασης λογισμικού, της σχεδίασης διεπαφών, της σχεδίασης δεδομένων και του ψευδοκώδικα,
- εξηγούν τη λειτουργία του Διαδικτύου, του Παγκόσμιου Ιστού και του πρωτοκόλλου HTTP,
- δημιουργούν βασικές ιστοσελίδες με χρήση HTML και HTML5,
- μορφοποιούν ιστοσελίδες με CSS και CSS3,
- χρησιμοποιούν Flexbox, CSS Grid και Bootstrap για τη δημιουργία responsive διεπαφών,
- εφαρμόζουν βασικές αρχές JavaScript για τη δημιουργία διαδραστικών ιστοσελίδων,
- χρησιμοποιούν μεταβλητές, τύπους δεδομένων, συναρτήσεις, αντικείμενα, πίνακες και δομές ελέγχου στη JavaScript,
- κατανοούν τη διαχείριση συμβάντων και το Document Object Model,
- εφαρμόζουν ασύγχρονο προγραμματισμό με Promises και async/await,
- κατανοούν τη χρήση της JavaScript στην πλευρά του εξυπηρετητή μέσω Node.js,
- εγκαθιστούν και χρησιμοποιούν βασικά εργαλεία ανάπτυξης, όπως Node.js, npm, nodemon και Visual Studio Code,
- δημιουργούν απλές εφαρμογές Node.js και βασικούς HTTP servers,
- διακρίνουν βιβλιοθήκες, modules και πακέτα στη Node.js,
- χρησιμοποιούν CommonJS και ES6 Modules για οργάνωση κώδικα,
- εφαρμόζουν βασικές λειτουργίες αρχείων με τη βιβλιοθήκη fs,
- χειρίζονται αιτήματα και απαντήσεις HTTP μέσω request και response objects,
- χρησιμοποιούν μεταβλητές περιβάλλοντος και βασικές πρακτικές παραμετροποίησης εφαρμογών,
- κατανοούν βασικές αρχές αυθεντικοποίησης, hashing, cookies, sessions και HTTPS,
- συνδέουν διαδικτυακές εφαρμογές με σχεσιακές και μη σχεσιακές βάσεις δεδομένων,
- κατανοούν βασικές πράξεις CRUD σε εφαρμογές διαδικτύου,
- αναγνωρίζουν τον ρόλο των ΤΠΕ στην εκπαίδευση, στην τηλεκπαίδευση και στις ηλεκτρονικές πλατφόρμες μάθησης,
- διακρίνουν σύγχρονη και ασύγχρονη τηλεκπαίδευση,
- κατανοούν τη σημασία προτύπων όπως AICC, IMS και SCORM για μαθησιακό υλικό,
- αξιοποιούν βασικές έννοιες JavaScript, SVG και εργαλείων όπως το Janvas για διαδραστικό ψηφιακό περιεχόμενο,
- κατανοούν την έννοια και τη λειτουργία των Πληροφοριακών Συστημάτων,
- κατηγοριοποιούν Πληροφοριακά Συστήματα με βάση τη λειτουργική περιοχή και το επίπεδο διοίκησης,
- εξηγούν τη μετάβαση από τα παραδοσιακά Πληροφοριακά Συστήματα στα Πληροφοριακά Συστήματα στο Διαδίκτυο,
- αναγνωρίζουν βασικά επιχειρηματικά μοντέλα ηλεκτρονικού επιχειρείν και ηλεκτρονικού εμπορίου,
- κατανοούν τη λειτουργία υπηρεσιών ιστού, web portals, e-marketplaces και εφαρμογών cloud,
- περιγράφουν βασικές τεχνολογίες πελάτη, όπως HTML, CSS, JavaScript, XML, JSON, JQuery και AJAX,
- κατανοούν τη λειτουργία application servers, servlets, JSP και αρχιτεκτονικής MVC,
- αναγνωρίζουν βασικές έννοιες Web Services, SOA, SOAP, WSDL, UDDI και RESTful υπηρεσιών,
- αναγνωρίζουν βασικές απειλές ασφάλειας διαδικτυακών εφαρμογών, όπως SQL injection, XSS και CSRF,
- κατανοούν τη σημασία της εμπιστευτικότητας, ακεραιότητας και διαθεσιμότητας στα πληροφοριακά συστήματα,
- κατανοούν την έννοια των Κατανεμημένων Συστημάτων και τη σχέση τους με τα Πληροφοριακά Συστήματα,
- διακρίνουν κεντρικοποιημένα και κατανεμημένα συστήματα,
- αναγνωρίζουν τα πλεονεκτήματα και τους περιορισμούς των κατανεμημένων συστημάτων,
- κατανοούν βασικές αρχιτεκτονικές κατανεμημένων εφαρμογών, όπως πελάτη-εξυπηρετητή, πολυεπίπεδες και υπηρεσιοστρεφείς αρχιτεκτονικές,
- εξηγούν τη λειτουργία middleware, SOA, Web Services, CORBA, RMI, DCOM και RPC,
- κατανοούν την έννοια διεργασιών και νημάτων,
- εφαρμόζουν βασικές αρχές πολυνηματικού προγραμματισμού και συγχρονισμού,
- αναγνωρίζουν προβλήματα όπως race condition, deadlock και starvation,
- κατανοούν βασικές υπηρεσίες ονοματοδοσίας, ευρετηρίου και εντοπισμού πόρων, όπως DNS, LDAP και Active Directory,
- εξηγούν βασικές έννοιες συγχρονισμού σε κατανεμημένα συστήματα, όπως φυσικά ρολόγια, λογικά ρολόγια, Lamport και διανυσματικά ρολόγια,
- περιγράφουν βασικές αρχές αμοιβαίου αποκλεισμού και εκλογής αρχηγού σε κατανεμημένα συστήματα,
- αναγνωρίζουν βασικούς μηχανισμούς προστασίας, όπως κρυπτογραφία, firewalls, VPN, IPsec, IDS και IPS,
- αντιλαμβάνονται τη σημασία της σωστής ανάλυσης, σχεδίασης, ασφάλειας, διαλειτουργικότητας και συντηρησιμότητας για την ανάπτυξη σύγχρονων διαδικτυακών και κατανεμημένων πληροφοριακών συστημάτων.


