Προγραμματισμος Ι (ΗΥ120) - Χειμερινο εξαμηνο 2017
|
Pair Programming
Τι ειναι
Pair Programming (Προγραμματισμός σε ζεύγη) είναι μια μέθοδος ανάπτυξης λογισμικού κατά την οποία δύο προγραμματιστές δουλεύουν μαζί σε ένα υπολογιστή. Το ζεύγος αποτελείται από τον οδηγό (driver) ο οποίος έχει τον έλεγχο του πληκτρολογίου και και τον πλοηγό (navigator) ο οποίος εντοπίζει λάθη και προτείνει λύσεις και αλλαγές. Το χαρακτηριστικό στοιχείο της μεθόδου είναι ότι οι δύο προγραμματιστές αλλάζουν τακτικά ρόλους - κάθε 15 έως 30 λεπτά.
Το pair programming είναι μια πρακτική που υπάγεται στις μεθοδολογίες του Extreme Programming (Ακραίου Προγραμματισμού) και τα τελευταία χρόνια χρησιμοποιείται σε όλο και περισσότερα πανεπιστήμια. Έρευνες έχουν δείξει πως είναι πολύ αποτελεσματική μέθοδος για την εκμάθηση προγραμματισμού σε σχέση με το κλασσικό μοντέλο ατομικής εργασίας: οι φοιτητές ενός ζεύγους ανταλλάσσουν γνώσεις, μαθαίνουν μαζί, εντοπίζουν πιο γρήγορα λάθη, παράγουν
καλύτερης ποιότητας κώδικα και έχουν καλύτερη απόδοση σε τελικές εξετάσεις.
Πως θα εφαρμοστει στο εργαστηριο
- Αρχικά η ανάθεση ζευγαριών θα γίνει τυχαία. Κατά τη διάρκεια του εξαμήνου,
κάποια ζεύγη πιθανώς να αλλάξουν είτε λόγω επιλογής των μελών τους είτε μετά
από παρέμβαση των διδασκόντων. Σύμφωνα με έρευνες, τα ζεύγη
είναι πιο αποτελεσματικά όταν δεν υπάρχει μεγάλη απόκλιση στην εμπειρία και γνώση
των δύο μελών.
- Σε κάθε εργαστήριο (εκτός της πρώτης εβδομάδας) οι φοιτητές κάθε ζεύγους θα έχουν αποφασίσει εκ των προτέρων τους ρόλους τους. Όποιος ξεκινά ως οδηγός σε
ένα εργαστήριο, θα πρέπει να ξεκινά ως πλοηγός στο επόμενο. Η άσκηση αποθηκεύεται
στον υπολογιστή του φοιτητή που ξεκινά ως οδηγός στο κάθε εργαστήριο και
στο τέλος αποστέλεται και στο άλλο μέλος.
- Πριν ξεκινήσετε να γράφετε κώδικα, συζητήστε μεταξύ σας πώς θα λύσετε το
πρόβλημα, χωρίστε το σε "κομμάτια" και αν είναι απαραίτητο σκιαγραφήστε τη λύση σε χαρτί. Τα δύο μέλη
του ζεύγους πρέπει να δουλεύουν ισότιμα.
- Ο οδηγός γράφει κώδικα για ένα-ένα κομμάτι με βάση την αρχική
συζήτηση που έγινε. Προσπαθεί να γράψει σωστά, αλλά εμπιστεύεται τον
πλοηγό του να επισημάνει λάθη. Δε διστάζει να κάνει ερωτήσεις "Σου
φαίνεται σωστό αυτό?", "Μήπως σε αυτό το σημείο πρέπει να ελέγξουμε και... ", "Ποιο είναι το επόμενο κομμάτι?" ή και να επιμείνει σε κάτι "Περίμενε να ολοκληρώσω αυτό το κομμάτι και θα δεις τι εννοώ".
- Ο πλοηγός ΔΕ χαζεύει. Κοιτά προσεκτικά τον κώδικα που γράφει ο
οδηγός, προσπαθεί να επισημάνει λάθη, συμβουλεύεται τις σημειώσεις και σκέφτεται συνέχεια πώς μπορεί
να βελτιωθεί η λύση. Προσοχή: Η δουλειά του πλοηγού δεν είναι να υπαγορεύει κώδικα! Αν δει κάποιο σημαντικό λάθος, το επισημαίνει αμέσως "Ξέχασες να βάλεις παρένθεση σε αυτό το σημείο", "Αυτή η πράξη
θα βγάλει λάθος αποτέλεσμα". Αλλά κυρίως σκέφτεται πώς μπορεί να
βελτιωθεί η λύση και κάνει προτάσεις "Μήπως εδώ πρέπει να ελέγξουμε
αν αυτή η τιμή θα είναι μηδέν?" (και όχι "τώρα γράψε if (x==0)").
- Πρέπει να υπάρχει συνεργασία ανάμεσα στα δύο μέλη. Ο οδηγός
δε γράφει αγνοώντας στον πλοηγό αλλά ούτε γράφει
καθ'υπαγόρευση.
Ο πλοηγός δε χαζεύει αλλά ούτε και υπαγορεύει κώδικα. Σκοπός είναι
να μάθουν και οι δύο πώς να λύνουν προβλήματα και να γράφουν κώδικα
καθώς και πώς να συνεργάζονται με άλλους!
- Κατά τη διάρκεια του εργαστηρίου η αλλαγή ρόλων θα γίνεται
περίπου κάθε 20-30 λεπτά με οδηγία του/της υπεύθυνου/ης εργαστηρίου.
Γενικες οδηγιες
- Είναι πολύ σημαντικό να υπάρχει ατμόσφαιρα ηρεμίας στο εργαστήριο για να
μπορούν όλοι οι φοιτητές να συγκεντρώνονται στη δουλειά τους. Τα μέλη κάθε ζεύγους
πρέπει να μιλούν ψιθυριστά μεταξύ τους. Αν έχουν απορία, τότε απλά σηκώνει το
χέρι ο πλοηγός. Έχετε υπόψη πως σε κάθε εργαστήριο θα υπάρχουν μόνο τρία άτομα για
να απαντούν απορίες, οπότε οι απαντήσεις δε θα είναι πάντα άμεσες.
- Σε κάθε εργαστήριο βρίσκονται πολλά άτομα σε μικρό χώρο επομένως δώστε ιδιαίτερη
προσοχή στην προσωπική σας υγιεινή. Να κάνετε ντους κάθε πρωι και να χρησιμοποιείτε αποσμητικό.
Συχνες ερωτησεις
-
Το άλλο μέλος του ζεύγους λείπει σήμερα. Τι να κάνω?
Ενημερώστε τον/την υπεύθυνο/η του τμήματός σας. Αν υπάρχει κι άλλο άτομο μόνο του και θεωρούμε ότι
θα είναι αποτελεσματική η συνεργασία σας, τότε θα δουλέψετε μαζί σε αυτό το εργαστήριο, διαφορετικά θα χρειαστεί να δουλέψετε
μόνος/η.
-
Τα σετ ασκήσεων είναι ομαδικά. Πρέπει για το σετ να συνεργαστώ με το ίδιο
άτομο που συνεργάζομαι στο εργαστήριο?
Όχι απαραίτητα.
-
Ο φοιτητής που συνεργάζομαι στα εργαστήρια ή στα σετ ασκήσεων αποφάσισε να μην ξαναέρθει στο μάθημα ή χρειάστηκε να αλλάξει τμήμα. Τι να κάνω?
Επικοινώνησε με τους υπεύθυνους εργαστηρίου για να σε βοηθήσουν να βρεις άλλο συνεργάτη.
-
Πώς μπορώ να αλλάξω τμήμα?
Αλλαγές τμήματος γίνονται μόνο αμοιβαία και για πολύ σοβαρό λόγο,
λόγω περιορισμένου χώρου και για να κρατηθούν ισοδύναμα τα μεγέθη των τμημάτων. Σε κάθε περίπτωση, πρέπει να
επικοινωνείτε με τον/την υπεύθυνο του εργαστηρίου σας εκ των προτέρων.