• Nenhum resultado encontrado

Aνάπτυξη δραστηριοτήτων στο Προγραμματιστικό Περιβάλλον App Inventor

N/A
N/A
Protected

Academic year: 2023

Share "Aνάπτυξη δραστηριοτήτων στο Προγραμματιστικό Περιβάλλον App Inventor"

Copied!
52
0
0

Texto

(1)

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Aνάπτυξη δραστηριοτήτων στο Προγραμματιστικό Περιβάλλον App Inventor

Εμμανουήλ Κ. Πατάγιας Μπακαράκης

ΕΠΙΒΛΕΠONTEΣ: Μαρία Γρηγοριάδου, Ομότιμη Καθηγήτρια Δρ. Αλεξάνδρα Γασπαρινάτου

(2)

ΑΘΗΝΑ

Φεβρουάριος 2018

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Aνάπτυξη δραστηριοτήτων στο Προγραμματιστικό Περιβάλλον App Inventor

Εμμανουήλ Κ. Πατάγιας Μπακαράκης Α.Μ.: 1115200900172

ΕΠΙΒΛΕΠΟΝΤΕΣ: Μαρία Γρηγοριάδου, Ομότιμη Καθηγήτρια Δρ. Αλεξάνδρα Γασπαρινάτου

(3)

ΠΕΡΙΛΗΨΗ

Στο πλαίσιο της παρούσας πτυχιακής εργασίας μελετούμε ζητήματα που σχετίζονται με το εκπαιδευτικό πλαίσιο της διδασκαλίας του προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση και εστιάζουμε στο προγραμματιστικό περιβάλλον App Inventor, το οποίο είναι ιδανικό για σχεδιασμό και ανάπτυξη εφαρμογών για κινητές συσκευές με λογισμικό Android. Αποτελεί ένα εξαιρετικό εργαλείο το οποίο χρησιμοποιήθηκε για τη διδασκαλία του προγραμματισμού στην Α' Λυκείου του 2ου Πειραματικού Σχολείου Αθηνών στο μάθημα «Εφαρμογές Πληροφορικής». O στόχος των δραστηριοτήτων είναι οι μαθητές να κατανοήσουν τις βασικές έννοιες του προγραμματισμού, να αποκτήσουν έναν προγραμματιστικό τρόπο σκέψης, και μέσω του συγκεκριμένου περιβάλλοντος, να είναι σε θέση να αναπτύσσουν εφαρμογές κινητών συσκευών.

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

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

Τέλος, παρουσιάζουμε τα συμπεράσματα που προέκυψαν από την εβδομαδιαία υποστήριξη του μαθήματος και αναλύουμε τον τρόπο με τον οποίο αντιμετώπισαν οι μαθητές τις δραστηριότητες.

ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Διδασκαλία προγραμματισμού, Eφαρμογές για κινητές συσκευές ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Περιβάλλον App Inventor, Κατανόηση Προγραμματισμού, Λογισμικό Android.

(4)

ABSTRACT

In the context of this thesis, we study issues related to the teaching context of programming in Secondary Education and we focus on the App Inventor programming environment, which can support the design and development of applications for mobile devices with Android software. App Inventor was used for teaching programming in the 1st Lyceum of the 2nd Athens Experimental School in the course "Computer Applications". The aim of the activities is the students to understand the basic concepts of programming, to develop algorithmic thinking, and through the specific programming environment, to be able to develop applications for mobile devices. In our work we analyze how App Inventor works and how it is used in teaching programming. Also, a bibliographic review of articles about program Comprehension is presented.

Following, we present the activities that took place within the course, giving detailed description of the scenario, the objectives, the learning outcomes and the implementation process. Students developed the following applications with the App Inventor environment: a piano, a target weapon game, a moving robot, and in the final project of the course, a calculator.

Finally, we present the conclusions from the weekly support of the course and we analyze the way the students reacted to the activities.

SUBJECT AREA: Teaching Programming, Applications for mobile devices

KEYWORDS: App Inventor environment, Program Comprehension, Android software.

(5)

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΕΡΙΛΗΨΗ ... 3

ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ... 7

ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ... 9

ΠΡΟΛΟΓΟΣ ... 10

1. ΕΙΣΑΓΩΓΗ ... 11

1.1Σκοπόςεργασίας ... 11

1.2 Δομή... 11

1.3 Γνωριμία και επικοινωνία ... 12

1.3.1 Πρώτη γνωριμία και εντυπώσεις ... 12

1.3.2 Επικοινωνία με τους μαθητές ... 12

2. ΒΙΒΛΙΟΓΡΑΦΙΚΗ ΑΝΑΣΚΟΠΗΣΗ ... 14

3. ΤΟ ΠΕΡΙΒΑΛΛΟΝ APP INVENTOR ... 19

3.1 Γλώσσες προγραμματισμού μπλοκ ... 19

3.2 App Inventor - Περιγραφή ... 20

3.3 Αξιοποίηση του App Inventor στη διδασκαλία του προγραμματισμού ... 20

3.4 Περιορισμοί του App Inventor... 21

4. ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ... 23

4.1 Περιγραφή ... 23

4.2 Εφαρμογή 1: Δημιουργία ενός πιάνου ... 29

4.2.1 Φύλλο Εργασίας ... 29

4.3 Εφαρμογή 2: Gun Shooting ... 34

4.3.1 Φύλλο Εργασίας (Part 1) ... 34

(6)

4.3.2 Φύλλο Εργασίας (Part 2) ... 39

4.4 Εφαρμογή 3: Move the robot !!!! ... 41

4.4.1 Φύλλο Εργασίας ... 41

4.5 Project μαθήματος ... 47

ΣΥΜΠΕΡΑΣΜΑΤΑ... 50

ΒΙΒΛΙΟΓΡΑΦΙΚΕΣ ΑΝΑΦΟΡΕΣ ... 52

(7)

ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ

Eικόνα 1 – Δημιουργία Νέου Project ... 24

Εικόνα 2 - Περιβάλλον σχεδιασμού ... 25

Εικόνα 3 - Δημιουργία κουμπιού ... 25

Εικόνα 4 - Ιδιότητες συστατικών ... 26

Εικόνα 5 - Παλέτα ... 27

Eικόνα 6 - Μπλοκ κώδικα (blocks) ... 28

Εικόνα 7- Πιάνο ... 30

Εικόνα 8 – Προγραμματισμός νότας ντο ... 32

Εικόνα 9 - Προγραμματισμός όλων των ήχων ... 33

Εικόνα 10 - Gun shooting Τελικό ... 37

Εικόνα 11 – Μέθοδος Dragged ... 38

Εικόνα 12 - Μέθοδος Initialize ... 38

Eικόνα 13 - Μέθοδος Touched ... 39

Eικόνα 14 - Μέθοδος CollidedWith ... 40

Εικόνα 15 - Μέθοδος Touched ... 40

Εικόνα 16 - Συνάρτηση MoveTo ... 41

Εικόνα 17 - Χρήση Clock ... 41

Εικόνα 18 - Χρήση Random Integer ... 41

Εικόνα 19 - Move the Robot τελικό ... 43

Εικόνα 20 - Πριν και μετά την επιλογή ... 46

Εικόνα 21 - Σύνδεση με ρομπότ ... 46

(8)

Εικόνα 22 - Ελέγχος Σύνδεσης (Α) ... 46

Εικόνα 23 - Ελέγχος Σύνδεσης (Β) ... 47

Εικόνα 24 - Πάνω κουμπί ... 47

Εικόνα 25 - Η σχεδίαση της υπολογιστικής μηχανής ... 48

Εικόνα 26- Εισαγωγή αριθμών ... 49

(9)

ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ

Πίνακας 1 – Ιδιότητες layout πιάνου ... 31

Πίνακας 2 – Ιδιότητες κουμπιών πιάνου ... 31

Πίνακας 3 – Ιδιότητες συστατικών gun shooting ... 35

Πίνακας 4 – Ιδιότητες layout του gun shooting ... 36

Πίνακας 5 - Ιδιότητες συστατικών ρομπότ ... 44

(10)

ΠΡΟΛΟΓΟΣ

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

Η διδασκαλία του προγραμματισμού έχει ως σκοπό περισσότερο στην απόκτηση των κατάλληλων δεξιοτήτων προκειμένου οι μαθητές να μπορούν να επιλύσουν προβλήματα με έναν δομημένο και αναλυτικό τρόπο σκέψης. Για αυτόν ακριβώς το λόγο αξιοποιούνται καθημερινά σε όλα τα σχολεία παγκόσμια διάφορα προγραμματιστικά περιβάλλοντα. Όμως, πολλές έρευνες παρουσιάζουν ότι οι μαθητές συναντούν πολλά εμπόδια κατά τη διάρκεια εκμάθησης του προγραμματισμού (Siti Rosminah & Ahmad Zamzuri, 2012). Τα εμπόδια αυτά πολλές φορές προκύπτουν λόγω των κλασσικών διδακτικών μεθόδων που συχνά δύναται να δημιουργήσουν αποστροφή στο μάθημα του προγραμματισμού από τους μαθητές. Επίσης αρκετοί είναι οι μαθητές που δεν μπορούν να αφομοιώσουν εύκολα τις προγραμματιστικές έννοιες και γνώσεις και οι οποίοι δεν διαθέτουν τις κατάλληλες δεξιότητες για να επιλύσουν προγραμματιστικά προβλήματα. Μην ξεχνάμε πως ο προγραμματισμός από μόνος τους είναι μια σύνθετη διαδικασία και ο μαθητής χρειάζεται ιδιαίτερο κίνητρο για να μελετήσει και να ασχοληθεί μαζί του. Όλα αυτά τα προβλήματα στη διδασκαλία του προγραμματισμού δημιουργούν την ανάγκη δημιουργίας καινοτόμων τρόπων διδασκαλίας και καινούργιων προγραμματιστικών περιβαλλόντων (Sentance & Csizmadia, 2016).

Σύμφωνα με τα παραπάνω, στο μάθημα «Εφαρμογές Πληροφορικής» που διδάσκεται στην Α’ τάξη του 2ου Πειραματικoύ Λυκείου Αθηνών, στην περιοχή των Αμπελοκήπων, με υπεύθυνη καθηγήτρια του μαθήματος Δρ. Αλεξάνδρα Γασπαρινάτου, χρησιμοποιείται το περιβάλλον App Inventor. Το μάθημα πραγματοποιήθηκε μια φορά τη βδομάδα, κάθε Τρίτη, την 6η και 7η διδακτική ώρα, στο πρώτο τετράμηνο του σχολικού έτους 2016 – 2017.

Ο ρόλος μου στην υποστήριξη του μαθήματος ήταν :

• Παρουσίαση του περιβάλλοντος App Inventor.

• Παρουσίαση θεμάτων γενικότερης θεωρίας προγραμματισμού

• Ανάπτυξη και επιλογή δραστηριοτήτων, καθώς και κατάλληλη τροποποίηση τους.

• Εβδομαδιαία υποστήριξη του μαθήματος.

• Επίλυση αποριών των μαθητών.

(11)

1. ΕΙΣΑΓΩΓΗ

1.1Σκοπόςεργασίας

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

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

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

Για κάθε δραστηριότητα αναφέρουμε:

• το στόχο που έχει στο πλαίσιο της διδασκαλίας.

• τα προσδοκώμενα αποτελέσματα

• την περιγραφή

• το βαθμό δυσκολίας σε κλίμακα 1 (πολύ εύκολη) έως 10 (πολύ δύσκολη)

• το βαθμό καθοδήγησης

• το τμήμα της σχεδίασης (Designer μέρος )

• το τμήμα του Προγραμματισμού (blocks)

Στο κεφάλαιο 4, θα παρουσιάσουμε αναλυτικά το εκπαιδευτικό υλικό που αναπτύχθηκε.

Καταληκτικά, διερευνούμε τόσο την ευκολία χρήσης του App Inventor, όσο και το πως μπορεί να αξιοποιηθεί πρακτικά στην διδασκαλία του προγραμματισμού στη Δευτεροβάθμια Εκπαίδευση.

1.2 Δομή

Η δομή της παρούσας εργασίας είναι η παρακάτω :

Στο δεύτερο κεφάλαιο, παρουσιάζουμε βιβλιογραφική ανασκόπηση άρθρων με θέμα την κατανόηση στον Προγραμματισμό (Program Comprehension).

Στο τρίτο κεφάλαιο, κάνουμε μια σύντομη εισαγωγή στις γλώσσες προγραμματισμού μπλοκ, και στη συνέχεια παρουσιάζουμε το προγραμματιστικό περιβάλλον App Inventor,

(12)

την αξιοποίησή του στη διδασκαλία του προγραμματισμού και τέλος τους περιορισμούς του.

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

Τέλος, παραθέτουμε τα συμπεράσματα και τις βιβλιογραφικές αναφορές.

1.3 Γνωριμία και επικοινωνία

1.3.1 Πρώτη γνωριμία και εντυπώσεις

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

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

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

1.3.2 Επικοινωνία με τους μαθητές

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

(13)

Μεγάλο ενδιαφέρον από πλευράς τους υπήρξε και κατά τη διάρκεια των μαθημάτων.

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

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

(14)

2. ΒΙΒΛΙΟΓΡΑΦΙΚΗ ΑΝΑΣΚΟΠΗΣΗ

Η έρευνα των Koenemann και Robertson, (1991) ασχολείται με την κατανόηση κατά τη διαδικασία του Προγραμματισμού (Program Comprehension). Αναφέρει ένα πείραμα που μελετά την κατανόηση των προγραμματιστών στο πλαίσιο της τροποποίησης ενός σύνθετου προγράμματος PASCAL.

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

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

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

Η έρευνα καταλήγει στα παρακάτω συμπεράσματα :

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

Δεν αφιέρωσαν καθόλου χρόνο στη μελέτη κομματιών κώδικα που φαίνονταν άσχετα με την επικείμενη τροποποίησή του.

Τα άτομα ανέφεραν ότι περιορίστηκαν από το γεγονός ότι μπορούσαν να δουν μόνο μια πληροφορία σε οποιαδήποτε δεδομένη στιγμή. Αυτό υποδηλώνει ότι περιβάλλοντα πολλαπλών παραθύρων (multi–window environments) που επιτρέπουν στους προγραμματιστές να βλέπουν πληροφορίες από διαφορετικές πηγές ταυτόχρονα είναι απαραίτητα.

Ένα ακόμα σημείο με μεγάλες δυνατότητες υποστήριξης είναι η διαδικασία της επαναχρησιμοποίησης του υπάρχοντος κώδικα (copy-edited). Για παράδειγμα, ένα σύστημα θα πρέπει να υποστηρίζει τη δήλωση και την αρχικοποίηση μεταβλητών και ένα εργαλείο που θα επιτρέπει στον χρήστη να δημιουργήσει μια αντιστοιχία μεταξύ νέου και παλιού κώδικα. Η υποστήριξη της επαναχρησιμοποίησης κώδικα μπορεί να μειώσει τον

(15)

αριθμό των σφαλμάτων που έγιναν.

Εάν η κατανόηση του προγράμματος γίνεται αντιληπτή ως ανασυγκρότηση του σχεδιασμού, η τεκμηρίωση θα πρέπει να διευκολύνει τη διαδικασία αυτή αποκαλύπτοντας τμήματα της αρχικής διαδικασίας σχεδιασμού που δεν μπορούν να ανασκευαστούν εύκολα από τον προκύπτοντα κώδικα. Για παράδειγμα, μπορεί να τεκμηριωθεί γιατί υπήρξε κάποια συγκεκριμένη κωδικοποίηση που επιλέγεται από μια σειρά εναλλακτικών λύσεων (Koenemann & Robertson, 1991).

H έρευνα των Mayrhauser και Vans, (1997), ασχολείται με την κατανόηση του προγραμματισμού και αναφέρεται σε ένα πείραμα κατανόησης λογισμικού. κατά τη διάρκεια της διόρθωσης και συντήρησης λογισμικού μεγάλης κλίμακας. Οι συμμετέχοντες ήταν επαγγελματίες μηχανικοί λογισμικού (software engineers) με ειδικότητα στη συντήρηση λογισμικού. Βγήκαν συμπεράσματα σχετικά με τη διαδικασία γενικής κατανόησης, τους τύπους ενεργειών των προγραμματιστών, τον εντοπισμό σφαλμάτων και το αφαιρετικό επίπεδο στο οποίο δουλεύουν.

Οι ερωτήσεις που επιχείρησαν να απαντήσουν ήταν:

1. Τι είδους ενέργειες εκτελούν οι προγραμματιστές κατά τη διάρκεια της εκσφαλμάτωσης (debugging) ;

2. Οι προγραμματιστές ακολουθούν το μοντέλο ολοκληρωμένης κατανόησης; Τα τρία εξαρτήματα του μοντέλου, τα οποία είναι το μοντέλο προγράμματος (program model), το μοντέλο από πάνω προς τα κάτω (top-down model) και το μοντέλο κατάστασης (situation model) αλλάζουν ; Υπάρχει προτίμηση για κάποιο συγκεκριμένο στοιχείο μοντέλου;

3. Είναι δυνατόν να προσδιοριστεί μια συγκεκριμένη διαδικασία κατανόησης η οποία είναι ενδεικτική των εργασιών εκσφαλμάτωσης;

4. Υπάρχουν ορισμένοι τύποι πληροφοριών που οι προγραμματιστές τείνουν να αναζητούν κατά τη διάρκεια της συντήρησης;

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

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

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

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

1. Ενέργειες.

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

(16)

2. Διαδικασία.

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

3. Ανάγκες πληροφόρησης.

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

Το άρθρο των Wong και Sun, (2006), αναφέρει πως τα διαγράμματα κατηγορίας UML είναι χρήσιμα για την κατανόηση της δομής ενός συστήματος λογισμικού. UML είναι τα αρχικά για το Unified Modeling Language, στα ελληνικά Eνοποιημένη Γλώσσα Σχεδιασμού. Είναι μια γραφική γλώσσα για την οπτική παράσταση, τη διαμόρφωση προδιαγραφών και την τεκμηρίωση συστημάτων που βασίζονται σε λογισμικό. Οι αλγόριθμοι και τα εργαλεία αυτά έχουν αναπτυχθεί για να δημιουργούν αυτόματα διαγράμματα τάξης UML για σκοπούς κατανόησης του προγράμματος. Ωστόσο, πολλά εργαλεία συχνά αγνοούν τους αντιληπτικούς παράγοντες στη διάταξη αυτών των διαγραμμάτων. Ως εκ τούτου, οι χρήστες πρέπει ακόμα να δαπανήσουν πολύ χρόνο και προσπάθεια για την δημιουργία του διαγράμματος κατανόησης. Η έρευνα αυτή παρουσίασε τα βασικά κριτήρια και τις κατευθυντήριες γραμμές για την αποτελεσματική διάταξη των διαγραμμάτων κατηγορίας UML από την οπτική των αντιληπτικών θεωριών.

Τα εργαλεία UML έχουν αναλυθεί και αξιολογηθεί με σκοπό να απεικονίσουν τα κριτήρια για τη βελτίωση της αναγνωσιμότητας των διαγραμμάτων.

Η Ενοποιημένη Γλώσσα Μοντελοποίησης (UML) παρέχει μια γραφική παράσταση ενός συστήματος λογισμικού που μπορεί να χρησιμοποιηθεί για την μηχανική πρόοδο. Τα διαγράμματα κατηγορίας UML περιγράφουν τις κατηγορίες και τις διάφορες σχέσεις τους.

Ένα ταξικό διάγραμμα απεικονίζει την στατική δομή ενός συστήματος λογισμικού. Ως εκ τούτου, είναι χρήσιμο τόσο για τη μοντελοποίηση όσο και για την κατανόηση ενός συστήματος.

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

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

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

Τα διαγράμματα κατηγορίας UML είναι χρήσιμα καθώς περιγράφουν τη στατική δομή ενός συστήματος λογισμικού. Ωστόσο, για τον τρόπο αξιολόγησης της

(17)

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

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

Τα συγκεκριμένα επιλεγμένα κριτήρια είναι τόσο κοντά στις ανθρώπινες αντιληπτές αρχές, ώστε να μην μπορούν να αγνοηθούν (Wong & Sun, 2006).

H έρευνα των Eisenbarth, Koschke and Simon, (2001), εξετάζει την κατανόηση της εφαρμογής ενός συστήματος χωρίς να υπάρχουν πρότερες γνώσεις. Στην συγκεκριμένη έρευνα σκοπός είναι η παρουσίαση μιας τεχνικής που χτίζει μια χαρτογράφηση μεταξύ της εξωτερικά ορατής συμπεριφοράς του συστήματος και των σχετικών τμημάτων του πηγαίου κώδικα. Η τεχνική συνδυάζει δυναμικές και στατικές αναλύσεις ώστε να επικεντρωθούν γρήγορα στα τμήματα του συστήματος και έτσι απαιτείται μια διαδικασία που στοχεύει στην κατανόηση του προγράμματος. Αυτή η έρευνα περιγράφει μια διαδικασία και τις τεχνικές υποστήριξής της για τον εντοπισμό στοιχείων που υλοποιούν ένα συγκεκριμένο σύνολο σχετικών χαρακτηριστικών. Η διαδικασία είναι αυτοματοποιημένη σε μεγάλη έκταση.

Η τεχνική που παρουσιάζεται προσδιορίζει όλα τα συγκεκριμένα εξαρτήματα σε ένα σύνολο παρόμοιων χαρακτηριστικών. Η πληροφορία μειώνει δραστικά το χώρο αναζήτησης. Εκτελέστηκαν δύο πειράματα, ονόματι History και Bookmark, στα οποία προσπαθήσαμε να κατανοήσουμε πώς δύο συγκεκριμένα σύνολα συναφών χαρακτηριστικών μπορούν να εφαρμοστούν σε δύο προγράμματα περιήγησης (web browsers). Οι web browsers ονομάζονταν Μοsaic και Chimera. Στην περίπτωση του History, στο σενάριο περιλαμβανόταν διαφορετικός τρόπος πρόσβασης στο ιστορικό (στον Chimera δεν υπήρχε κουμπί forward – προς τα μπροστά), και στην περίπτωση του Bookmark διαφορετικές πολιτικές που αφορούσαν τους σελιδοδείκτες των περιηγητών.

Στη μελέτη περίπτωσης (case study), η ανάλυση των δύο περιηγητών ιστοσελίδων (web browsers), θα μπορούσε να ανακτήσει μια μερική περιγραφή της αρχιτεκτονικής του λογισμικού σε σχέση με ένα συγκεκριμένο σύνολο χαρακτηριστικών. Συνολικά, βρέθηκαν 16 και 6, αντιστοίχως, ειδικά υποπρογράμματα από τα 701 για τον Mosaic, και 3 και 24 αντίστοιχα από τα 928 για τον Chimera.Η παραγωγή μερικών αρχιτεκτονικών μπορεί να υποστηρίξει μια πιο προσανατολισμένη στο στόχο και οικονομικά αποδοτική κατανόηση του προγράμματος διευκολύνοντας την επαναχρησιμοποίηση και την αναδιοργάνωση συγκεκριμένων χαρακτηριστικών. Η προσέγγιση ισχύει μόνο για εξωτερικά ορατά και εκτελέσιμα χαρακτηριστικά, κατάλληλα και για λειτουργικά χαρακτηριστικά. (Eisenbarth, Koschke, & Simon, 2001).

Μετά την ανάλυση και παρουσίαση των παραπάνω ερευνών, καταλήγουμε στο συμπέρασμα πως υπάρχουν τρόποι να γίνει πιο εύκολη και αποδοτική η κατανόηση ενός προγράμματος, αν χρησιμοποιηθούν σωστά τα δεδομένα που δίνονται. Παρατηρούμε για παράδειγμα στις έρευνες των Koenemann και Robertson και των Mayrhauser και Vans, ότι οι έμπειροι προγραμματιστές επικεντρώνονται σε συγκεκριμένα κομμάτια του κώδικα που θεωρούν ότι είναι σημαντικά, έτσι ώστε να μπορέσουν να κατανοήσουν το πρόγραμμα στο σύνολό του. Αντιθέτως, η έρευνα των Eisenbarth, Koschke και Simon, εξετάζει την περίπτωση που οι ερωτηθέντες δεν έχουν πρότερη εμπειρία, αλλά και σε αυτή την περίπτωση ο σκοπός είναι να επικεντρωθούν στα κατάλληλα σημεία – κλειδιά.

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

(18)

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

(19)

3. ΤΟ ΠΕΡΙΒΑΛΛΟΝ APP INVENTOR

3.1 Γλώσσες προγραμματισμού μπλοκ

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

Δυο εμπόδια στη μάθηση που μπορούν να ξεπεραστούν μαθαίνοντας μια γλώσσα μπλοκ:

1. Η εκμάθηση ενός λεξιλογίου προγραμματισμού είναι δύσκολη. Η επιλογή των μπλοκ απλοποιούν αυτό το πρόβλημα.

2. Ο κώδικας είναι δύσκολος στη χρήση επειδή παρουσιάζει μια υψηλή γνωστική ικανότητα φόρτωσης για νέους προγραμματιστές. Τα μπλοκ μειώνουν το φορτίο της κωδικοποίηση σε μικρότερο αριθμό σημαντικών στοιχείων (Bau, Gray, Kelleher, Sheldon, & Turbak, 2017).

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

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

Για όλους αυτούς και για ακόμα περισσότερους λόγους, οι μπλοκ γλώσσες προγραμματισμού αποτελούν ένα ισχυρό εργαλείο για τη μείωση των δυσκολιών και των εμποδίων στη εκμάθηση του προγραμματισμού. «Η χρήση ενός μπλοκ ως εγχείρημα περιορίζει το εύρος της εισόδου, γεγονός που μειώνει την ποσότητα δακτυλογράφησης και έτσι αποφεύγεται ένα σφάλμα» (Kurihara, Sasaki, Wakita, & Hosobe, 2015).

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

Οι μπλοκ γλώσσες προγραμματισμού έχουν γίνει αρκετά δημοφιλείς τα τελευταία χρόνια.

Πολλές τέτοιες γλώσσες έχουν προκύψει όπως:

• Scratch, ένα online περιβάλλον για να δημιουργήσετε παιχνίδια και animations.

• PicoBlocks, ένα περιβάλλον για προγραμματισμό μίνι υπολογιστών για χρήση με LEGO blocks.

• Blockly, ένα πλαίσιο γλωσσών που έχει χρησιμοποιηθεί για τη δημιουργία μικρόκοσμων βασισμένων σε μπλοκ

(20)

συμπεριλαμβανομένου και του πολύ δημοφιλούς Hour of Code.

• MIT App Inventor, ένα online περιβάλλον για την ανάπτυξη εφαρμογών κινητής τηλεφωνίας για συσκευές Android.

Άλλες μπλοκ γλώσσες που αξίζει να αναφερθούν είναι το StarLogo TNG, το StarLogo Nova, το Tynker, και το Hopscotch (Vasek, 2012).

3.2 App Inventor - Περιγραφή

«Το προγραμματιστικό περιβάλλον του App Inventor είναι μια καινούργια τεχνολογία που ενσωμάτωσε η Google με στόχο το σχεδιασμό και την ανάπτυξη εφαρμογών για κινητές (mobile) συσκευές οι οποίες χρησιμοποιούν λογισμικό Android. Από το έτος 2012 το πανεπιστήμιο MIT στις Η.Π.Α ανέλαβε την διαχείριση του App Inventor. Ο στόχος είναι να δώσει τη δυνατότητα σε χρήστες/μαθητές οι οποίοι δεν έχουν προηγούμενη εμπειρία στον προγραμματισμό να αναπτύξουν εύκολα εφαρμογές για τις κινητές τους συσκευές, μετατρέποντας τους έτσι από απλούς χρήστες σε δημιουργούς εφαρμογών» (Abelson, 2009, παρά. 4).

Το App Inventor προσφέρει τη δυνατότητα αυτή καθώς πρόκειται για περιβάλλον οπτικού προγραμματισμού, ο χρήστης του οποίου δεν χρειάζεται να γράψει κώδικα. «Αντ’ αυτού σχεδιάζεται αρχικά η διεπαφή και τα συστατικά στοιχεία της εφαρμογής και έπειτα καθορίζεται η συμπεριφορά της χρησιμοποιώντας αλληλοσυνδεόμενα γραφικά πλακίδια εντολών (Blocks code)» (Wolber, Abelson, Spertus, & Looney, 2011).

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

Η ιδέα πίσω από το App Inventor είναι πως χρησιμοποιώντας ένα σχεδόν πλήρες οπτικό εργαλείο, μπορούν να διδαχθούν βασικές έννοιες του προγραμματισμού υπολογιστών με τρόπο παρόμοιο με την τοποθέτηση των κομματιών ενός παζλ μαζί. Η διαφορά του App Inventor συγκριτικά με παρόμοια εργαλεία όπως το Scratch και το LEGO MINDSTORMS είναι ότι τρέχει εξ ολοκλήρου online και η προκύπτουσα εφαρμογή μπορεί να μεταφερθεί απευθείας στο κινητό τηλέφωνο του χρήστη ασύρματα μέσω Wi-Fi, κάτι που αποτελεί μεγάλη ευκολία. Τα παιδιά ενθουσιάζονται με την ιδέα να είναι σε θέση να δημιουργήσουν τη δική τους εφαρμογή και να την εκτελέσουν αμέσως με τη δική τους συσκευή Android.

H δημιουργία του App Inventor βασίστηκε σε προηγούμενες προσπάθειες για την ανάπτυξη γραφικών γλωσσών προγραμματισμού όπως για παράδειγμα η StarLogo TNG (McCaffrey, 2006) προκειμένου να δημιουργηθεί ένα πλαίσιο για την ανάπτυξη εφαρμογών που θα προσφέρει την δυνατότητα σε χρήστες δίχως πρότερη προγραμματιστική εμπειρία να δημιουργήσουν εφαρμογές για κινητές συσκευές (Magnuson, 2010).

3.3 Αξιοποίηση του App Inventor στη διδασκαλία του προγραμματισμού

Στο Πανεπιστήμιο Ball στην Ινδιάνα έλαβε χώρα το 2012 έρευνα που απευθύνονταν σε φοιτητές που παρακολουθούσαν εισαγωγικό μάθημα προγραμματισμού και οι οποίοι δεν είχαν καμιά προηγούμενη επαφή με τον προγραμματισμό. Το συμπέρασμα αυτής της έρευνας ήταν πως «η ανάπτυξη εφαρμογών για κινητές συσκευές μέσω του App Inventor, είχε ως αποτέλεσμα την ανάπτυξη κινήτρων και ενδιαφέροντος από τους μαθητές, την αύξηση της δημιουργικότητάς τους και γενικότερα κατέληξε πως η επίδραση ήταν κάτι

(21)

παραπάνω από θετική» (Ahmad, 2012).

Η δράση HFOSS (Humanitarian Free and Open Source Software) μελέτησε κατά πόσο το App Inventor είναι κατάλληλο και εύκολα εφαρμόσιμο στην δευτεροβάθμια εκπαίδευση. Σκοπός του σεμιναρίου αυτού ήταν να διερευνήσει κατά πόσο η χρήση του App Inventor έχει τη δυνατότητα να συμβάλλει στην δημιουργία αλγοριθμικής σκέψης στους μαθητές της δευτεροβάθμιας εκπαίδευσης. Τα συμπεράσματα που προέκυψαν από τη συγκεκριμένη έρευνα από τους Morelli κ.συν. (2011) μας δίνουν μια λίστα με κάποια από τα σημαντικότερα πλεονεκτήματα του περιβάλλοντος App Inventor , τα οποία είναι τα παρακάτω :

• Είναι ένα περιβάλλον εύκολο στην χρήση που παράλληλα προσφέρει πολλές δυνατότητες.

• Παρέχει ένα αποτελεσματικό πλαίσιο αντικειμενοστραφούς προγραμματισμού με δομές ελέγχου που οδηγούνται από τα γεγονότα.

• Είναι ένα περιβάλλον που ενισχύει την μάθηση μέσω επίλυσης προβλημάτων.

• Παρέχει στους μαθητές ισχυρά κίνητρα για να προγραμματίσουν και να

• δημιουργήσουν πραγματικές εφαρμογές στις κινητές συσκευές τους.

• Προσφέρει τη δυνατότητα χρήσης προσομοιωτή και δεν είναι απαραίτητη η χρήση κινητών συσκευών.

• Υποστηρίζεται από την Google και το MIT.

Ποια όμως η διαφορά του App Inventor από άλλα προγράμματα παρόμοιας φιλοσοφίας ; Για παράδειγμα τα προγραμματιστικά περιβάλλοντα Alice και Scratch υποκινούν τον προγραμματισμό και επιτρέπουν στους μαθητές να δημιουργήσουν εφαρμογές μέσα σε ένα οπτικό περιβάλλον. Όμως, το App Inventor τους επιτρέπει να δημιουργήσουν εφαρμογές και εξατομικευμένο λογισμικό για την πιο πολύτιμη συσκευή τους, το κινητό τηλέφωνο, κάτι που αλλάζει δραστικά τη δική τους πραγματικότητα.

Ο κόσμος των κινητών συσκευών έχει παρουσιάσει τεράστια έκρηξη τα τελευταία χρόνια και τώρα οι αρχάριοι μαθητές έχουν τη δυνατότητα να είναι δημιουργικοί σε αυτόν τον κόσμο (Wolber, 2011).

Τέλος, αξίζει να αναφέρουμε πως τα κίνητρα που έχουν οι μαθητές να ασχοληθούν με τον προγραμματισμό εφαρμογών χάρη στο App Inventor πηγάζουν και από το γεγονός πως μπορούν να αλληλεπιδράσουν άμεσα με την εφαρμογή που «χτίζουν» στο κινητό τους τηλέφωνο. Έτσι, για παράδειγμα, εσείς προγραμματίζετε αλλά στέλνετε και μηνύματα e-mail στον φίλο σας για να σας στείλει ένα μήνυμα προκειμένου να δοκιμάσετε την εφαρμογή σας (Wolber et al. , 2011).

3.4 Περιορισμοί του App Inventor

Παραπάνω αναφέραμε πολλά από τα πλεονεκτήματα του App Inventor. Ωστόσο, το App Inventor έχει κάποιους βασικούς περιορισμούς.

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

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

(22)

διόρθωση του σφάλματος. Δεύτερον, η πρόσβαση μιας εφαρμογής App Inventor στο κινητό είναι πολύ περιορισμένη. Δεν υπάρχουν ακόμα εξαρτήματα για όλα τα δεδομένα του τηλεφώνου. Για παράδειγμα, δεν μπορείτε να αποθηκεύσετε και να ανακτήσετε αρχεία από το σύστημα αρχείων της συσκευής (File System). Ακόμα, η δημιουργία διεπαφής χρήστη έχει βελτιωθεί αλλά είναι ακόμα αρκετά περιορισμένη, με αποτέλεσμα να μην μπορείτε να δημιουργήσετε κάποια δική σας διεπαφή χρήστη (User Interface).

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

Τέλος, τα μπλοκ των Functions (συναρτήσεων) συνδέονται με συγκεκριμένα στοιχεία, οπότε δεν υπάρχει τρόπος να καλέσετε λειτουργίες σε ένα γενικότερο συστατικό. Για παράδειγμα, εάν δημιουργήσετε μια διαδικασία MoveXY, πρέπει να συνδεθεί με ένα συγκεκριμένο Image Sprite (στα επόμενα κεφάλαια θα εξηγήσουμε τι τύπου είναι το συγκεκριμένο συστατικό), και όχι κάποιο γενικό Image Sprite. (Wolber, n.d.).

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

(23)

4. ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ

4.1 Περιγραφή

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

Στο πλαίσιο του πρώτου μαθήματος, έγινε μια παρουσίαση του περιβάλλοντος του App Inventor, προκείμενου οι μαθητές να εισαχθούν στη λογική και στις βασικές λειτουργίες του προγραμματιστικού περιβάλλοντος. Εξηγήσαμε απλά και κατανοητά τον τρόπο που θα συνδεθούν στο προγραμματιστικό περιβάλλον, τα διαφορετικά μέρη από τα οποία αποτελείται (τμήμα Design και τμήμα Block εντολών), καθώς και τα συστατικά του καθενός από αυτά. Χρησιμοποιούμε έναν υπάρχοντα λογαριασμό Gmail ή σχολικό λογαριασμό Google για την σύνδεση στο ai2.appinventor.mit.edu. Για την ρύθμιση ενός ολοκαίνουργιου λογαριασμού Gmail, μεταβαίνουμε στη διεύθυνση accounts.google.com/SignUp. Στη συνέχεια θα μεταφερθούμε σε μια νέα σελίδα που θα περιέχει μια λίστα με όλα τα project μας (αν εισερχόμαστε πρώτη φορά η λίστα θα ναι κενή). Για να ξεκινήσουμε ένα καινούργιο project το μόνο που έχουμε να κάνουμε είναι να πατήσουμε "New Project" και να δώσουμε ένα όνομα στην εφαρμογή μας (εικόνα 1).

Referências

Documentos relacionados

v Περίληψη Σκοπός της Διπλωματικής Εργασίας είναι η προσπάθεια διερεύνησης των χαρακτηριστικών του δημόσιου τομέα στην ΕΕ και τον ΕΟΧ γενικότερα και του τρόπου αποτίμησης τους με