ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ
Θεματολογία Εργαστηρίων
Αντιμετωπίζουμε την Πληροφορική ως Τεχνολογική Επιστήμη.
Ξεκινάμε με εισαγωγή στην Επιστήμη και Τέχνη του Προγραμματισμού Υπολογιστών, σε εργαστήρια που διδάσκεται αλγοριθμικός τρόπος σκέψης και μεθοδολογία επίλυσης πραγματικών (και πρωτότυπων) προβλημάτων με στόχο την ανάπτυξη της κριτικής σκέψης, τηρώντας τις αρχές της Επιστήμης Υπολογιστών. Η υπολογιστική σκέψη, η εκμάθηση της δομής της κάθε γλώσσας, η σύνταξη και τελικά το “coding” είναι ένα δημιουργικό, ευχάριστο και φυσικό επακόλουθο της κατάκτησης των προηγούμενων δεξιοτήτων.
Scratch, C, Python, MIT App Inventor, IOT, …
Δεξιότητες
Για παιδιά που δεν θέλουν να μάθουν απλά «να γράφουν κώδικα σε κάποια γλώσσα προγραμματισμού» αλλά να κατανοήσουν και να κατακτήσουν την Υπολογιστική Σκέψη και τη διαφορά του Programming από το Coding και του Computer Science από το Software Engineering!
Ο προγραμματισμός είναι το άθροισμα του αλγοριθμικού τρόπου σκέψης και του κώδικα. Μαθαίνοντας τον τρόπο σκέψης και μεθοδολογίες ανάλυσης και σύνθεσης προβλημάτων, έχουμε κάνει το αποφασιστικό βήμα για τον προγραμματισμό.
Η διδασκαλία της Πληροφορικής ως τεχνολογικής επιστήμης δεν περιορίζεται μόνο στην εκμάθηση της χρήσης εργαλείων και γλωσσών προγραμματισμού, αλλά επικεντρώνεται επίσης στην κατανόηση των θεμελιωδών αρχών που διέπουν την ανάπτυξη software και συστημάτων.
Μέσα από προσεκτικά σχεδιασμένα προγράμματα σπουδών, οι μαθητές έρχονται σε επαφή με τις βασικές έννοιες των αλγορίθμων, των δομών δεδομένων και της θεωρίας της πληροφορικής, που αποτελούν τα θεμέλια για την επίλυση σύνθετων προβλημάτων.
Εφαρμογές
Προγραμματίζουμε με ακρίβεια και στρατηγική! (Σκεφτείτε το: Ναι, θα μπορούσατε να βάψετε έναν τοίχο με έναν μαρκαδόρο απλά επειδή κάποιος το πρότεινε. Αλλά γιατί να το κάνετε όταν έχετε στη διάθεσή σας πινέλα και ρολά; Δε θα ήταν πιο έξυπνο να χρησιμοποιήσουμε τα κατάλληλα εργαλεία για τη δουλειά; Το ίδιο ισχύει και για τον προγραμματισμό!)
Διορθώνουμε κώδικα με μέθοδο και σύστημα! (Είτε πρόκειται για τα προγράμματα άλλων είτε για τα δικά μας παλιά αριστουργήματα, η επεξεργασία τους απαιτεί δεξιοτεχνία και υπομονή. Και ναι, είναι ένα πολύ δύσκολο και τεράστιο θέμα αυτό – σχεδόν όσο να ψάχνεις το τελευταίο κομμάτι που λείπει από ένα παζλ, αλλά αυτή η πρόκληση είναι ακριβώς που κάνει τον προγραμματισμό συναρπαστικό!)
/* Σημαντικό */
Γράφω κώδικα δεν σημαίνει Προγραμματίζω.
Ελάτε μαζί μας για να χτίσουμε το αύριο, ένα byte τη φορά.
ΠΕΡΙΓΡΑΦΗ ΕΡΓΑΣΤΗΡΙΩΝ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ
Ναι, για παιδιά 8+! Object oriented / event driven programming.
Τα παιδιά δημιουργούν, προγραμματίζοντας σε ένα γραφικό προγραμματιστικό περιβάλλον. Με αλγοριθμικό τρόπο σκέψης,συνδυάζουν μαθηματικά, γεωμετρία, υπολογιστικές ιδέες, άλγεβρα, αριθμητική αλλά και αρχές object oriented και event driven προγραμματισμού.
Α.Ι., Game Theory, Κλασικοί Αλγόριθμοι, Computer Science, Low level programming, … Σχεδιασμός και κατασκευή κλασικών αλγορίθμων από την αρχή.
Με τη γλώσσα C μαθαίνουμε τα θεμελιώδη της Επιστήμης Υπολογιστών και κατασκευάζουμε μόνοι μας τα εργαλεία που θα χρειαστούμε. Για παράδειγμα η ταξινόμηση αριθμών, η εύρεση λέξης σε κείμενο και άλλοι αλγόριθμοι, υλοποιούνται από την αρχή από εμάς χωρίς να καταφύγουμε σε έτοιμες βιβλιοθήκες. (Ναι, οι βιβλιοθήκες βοηθούν πολύ - κάποιοι τις δημιουργούν όμως, γιατί όχι κι εμείς);
Οι μαθητές έρχονται με φυσικό τρόπο περισσότερο κοντά στην δομή του υπολογιστή και των μικροεπεξεργαστών (π.χ. προγραμματισμός Arduino). Έχοντας μάθει προγραμματισμό σε C, όλες οι επόμενες γλώσσες ή περιβάλλοντα προγραμματισμού που θα χρειαστεί κάποιος στην καριέρα του "έρχονται εύκολα".
Η Python είναι μία εξαιρετικά ευέλικτη, object oriented γλώσσα προγραμματισμού, και "προτιμάται" ολοένα και περισσότερο για χρήση σε συστήματα ασφαλείας, δικτύωσης, Internet Οf Τhings και άλλα επαγγελματικά περιβάλλοντα, αλλά και για εκμάθηση προγραμματισμού κατά την εισαγωγή στην Επιστήμη Υπολογιστών.
H θεματολογία κυμαίνεται από αρχές προγραμματισμού μέχρι σύνταξη της γλώσσας, και από τεχνικές object oriented programming μέχρι κατασκευή επιχειρησιακών προγραμμάτων. Web Development, Business Analytics, Cyber Security, Επιστήμη Δεδομένων (Data Science), Στατιστική, Μηχανική Μάθηση (Machine Learning) και Βαθιά Μάθηση (Deep Learning). Όλοι μας, στην εργασία μας, έχουμε ανάγκες επεξεργασίας δεδομένων, επίλυσης προβλημάτων αλλά και παρουσίασης των συμπερασμάτων μας σε "actionable reports and dashboards". Τα spreadsheets έχουν ξεπεραστεί και ό,τι report "βλέπουμε και θαυμάζουμε" είναι φτιαγμένο με παρόμοιες μεθόδους. Αυτά μαθαίνουμε, μεταξύ άλλων.
Pet Robots, Arcade Games, Text to Speech, Platform Games, Puzzles. Σε αυτό το προγραμματιστικό περιβάλλον μαθαίνουμε να δημιουργούμε πλήρως λειτουργικές εφαρμογές για κινητά τηλέφωνα και tablets. Χρησιμοποιούμε κυρίως το προγραμματιστικό περιβάλλον MIT App Inventor.
Τα παιδιά συνειδητοποιούν ότι μπορούν τα ίδια να δημιουργήσουν τις εφαρμογές τους, αφού δουλέψουν κανονικά "όπως οι μεγάλοι" (σχεδιασμός προγράμματος στο χαρτί, αλγόριθμος ροής, ζητούμενη λειτουργικότητα, input-process-output, user interface, κ.α.). Εξαιρετικό περιβάλλον με θεαματικά αποτελέσματα στον αλγοριθμικό τρόπο σκέψης αλλά και στο user interface design.