Αν η ΤΝ γράφει τον κώδικα, γιατί να μάθουμε προγραμματισμό;
ΑΦΙΕΡΩΜΑ - Εκπαίδευση και Τεχνητή Νοημοσύνη

Του THOMAS OVERKLIFT,
Λέκτορα στο Τεχνολογικό Πανεπιστήμιο του Ντελφτ, στην Ολλανδία
και

Του ANDY ZAIDMAN,
Καθηγητή Μηχανικής Λογισμικού στο Τεχνολογικό Πανεπιστήμιο του Ντελφτ, στην Ολλανδία

Σύνοψη και ελληνική απόδοση: ΔΙΟΜΗΔΗΣ ΣΠΙΝΕΛΛΗΣ
Κάθε χρόνο, πρωτοετείς φοιτητές και φοιτήτριες Πληροφορικής φτάνουν στο Πανεπιστήμιο με ένα εύλογο ερώτημα: αφού η Τεχνητή Νοημοσύνη μπορεί ήδη να γράφει προγράμματα, γιατί να αφιερώσουν μήνες για να μάθουν να το κάνουν οι ίδιοι; Παρόμοιες απορίες ακούμε και από γονείς. Οι μεγάλες εταιρείες τεχνολογίας αναφέρουν ότι ολοένα μεγαλύτερο μέρος του λογισμικού τους παράγεται με τη βοήθεια της ΤΝ. Οι φοιτητές μπορούν να περιγράψουν με απλά λόγια τι θέλουν και, μέσα σε δευτερόλεπτα, να πάρουν κάτι που μοιάζει με έτοιμο πρόγραμμα. Γιατί λοιπόν να μάθουν τις λεπτομέρειες; Αποφασίσαμε ότι δεν θα ήταν πειστικό να τους λέμε απλώς πως ο προγραμματισμός εξακολουθεί να έχει σημασία. Έτσι, στο εισαγωγικό μάθημα προγραμματισμού στο Τεχνολογικό Πανεπιστήμιο του Ντελφτ, αφήσαμε την ίδια την ΤΝ να το αποδείξει.
Το μάθημά μας διαρκεί 10 εβδομάδες και το παρακολουθούν περίπου 500 πρωτοετείς. Μερικοί προγραμματίζουν εδώ και χρόνια· άλλοι έχουν γράψει ελάχιστες γραμμές κώδικα. Σε τρία διαφορετικά σημεία του μαθήματος, τους δείξαμε τι μπορούν και (κυρίως) τι δεν μπορούν να κάνουν τα σημερινά συστήματα Τεχνητής Νοημοσύνης. Ξεκινήσαμε με κάτι που δεν απαιτεί γνώσεις προγραμματισμού: τους πρώτους αριθμούς. (Πρώτος είναι ένας ακέραιος μεγαλύτερος του ένα που διαιρείται ακριβώς μόνο με το ένα και με τον εαυτό του.) Ζητήσαμε από το ChatGPT να τους ορίσει. Η απάντησή του ήταν σωστή. Στη συνέχεια το ρωτήσαμε αν συγκεκριμένοι αριθμοί ήταν πρώτοι. Απαντούσε σωστά ξανά και ξανά. Μέχρι που έκανε λάθος. Για έναν αριθμό έδωσε με βεβαιότητα λανθασμένη απάντηση. Όταν το αμφισβητήσαμε, επανεξέτασε το αποτέλεσμα και παραδέχθηκε το λάθος του.
Αυτό το μικρό περιστατικό συνοψίζει το πρόβλημα. Μια απάντηση της ΤΝ μπορεί να ακούγεται εξίσου πειστική, όταν είναι λανθασμένη, όσο και όταν είναι σωστή. Εμείς εντοπίσαμε το λάθος επειδή γνωρίζαμε αρκετά μαθηματικά, ώστε να την αμφισβητήσουμε. Χωρίς αυτή τη γνώση, δεν θα είχαμε ιδιαίτερο λόγο να μην την αποδεχθούμε. Αργότερα επαναλάβαμε το πείραμα με προγραμματισμό. Ζητήσαμε από το ChatGPT να γράψει ένα φαινομενικά απλό πρόγραμμα. Η λύση έμοιαζε σωστή και θα περνούσε έναν πρώτο έλεγχο. Περιείχε όμως ένα λεπτό σφάλμα που οι φοιτητές είχαν μόλις διδαχθεί να αναγνωρίζουν. Μόνο κάποιος που κατανοούσε σε βάθος τους σχετικούς κανόνες θα αντιλαμβανόταν ότι, υπό ορισμένες συνθήκες, το πρόγραμμα μπορούσε να συμπεριφερθεί λανθασμένα.
Τέλος, προς το τέλος του μαθήματος, δώσαμε στο ChatGPT ένα παλαιότερο θέμα εξέτασης. Το αποτέλεσμα ήταν αρχικά εντυπωσιακό. Παρήγαγε ένα ολοκληρωμένο πρόγραμμα που λειτουργούσε. Στη συνέχεια όμως το βαθμολογήσαμε με τα ίδια κριτήρια που εφαρμόζουμε στους φοιτητές.
Ο βαθμός του ήταν περίπου 6,7 στα 10.
Η λύση είχε παραλείψει απαιτήσεις, περιείχε λάθη, είχε ελέγξει ανεπαρκώς τη λειτουργία της, επαναλάμβανε άσκοπα τμήματα και δεν περιλάμβανε τις απαιτούμενες εξηγήσεις. Δεν ήταν άχρηστη. Αντιθέτως, συμφωνήσαμε με τους φοιτητές ότι αποτελούσε ένα πολύ καλό σημείο εκκίνησης. Άλλο όμως η αφετηρία και άλλο το ολοκληρωμένο αποτέλεσμα. Η διάκριση αυτή έχει σημασία πολύ πέρα από τον προγραμματισμό. Η παραγωγική Τεχνητή Νοημοσύνη είναι εξαιρετικά χρήσιμη για να ξεκινήσουμε ένα έργο, να εξερευνήσουμε ιδέες ή να ξεπεράσουμε το αδιέξοδο της λευκής σελίδας. Ενθαρρύνουμε μάλιστα τους φοιτητές να της ζητούν εξηγήσεις όταν δυσκολεύονται. Δεν πιστεύουμε ότι τα Πανεπιστήμια πρέπει να προσποιούνται πως αυτά τα εργαλεία δεν υπάρχουν ούτε να τα απαγορεύουν.
Για να χρησιμοποιήσουμε όμως αποτελεσματικά την Τεχνητή Νοημοσύνη, χρειαζόμαστε κάτι που εύκολα παραβλέπεται: την ικανότητα να κρίνουμε τις απαντήσεις της.
Ένας αρχάριος μπορεί πλέον να παράγει έργο που δείχνει εντυπωσιακά ώριμο. Εδώ κρύβεται ένας νέος εκπαιδευτικός κίνδυνος: οι φοιτητές μπορεί να φαίνονται (και να πιστεύουν και οι ίδιοι) ότι γνωρίζουν περισσότερα απ’ όσα πραγματικά γνωρίζουν. Η παραγωγή μιας απάντησης έγινε ευκολότερη, αλλά όχι και η κρίση για το αν αυτή η απάντηση αξίζει την εμπιστοσύνη μας. Γι’ αυτό διαφωνούμε με την ιδέα να αντικατασταθούν τα εισαγωγικά μαθήματα προγραμματισμού με μαθήματα που διδάσκουν απλώς πώς να ζητάμε από την Τεχνητή Νοημοσύνη να κατασκευάσει κάτι. Οι φοιτητές εξακολουθούν να χρειάζεται να κατανοούν τι συμβαίνει στο υπόβαθρο. Διαφορετικά, κινδυνεύουν να γίνουν απλοί επιβάτες σε συστήματα των οποίων τα λάθη δεν μπορούν να αναγνωρίσουν. Ο προγραμματιστής του μέλλοντος σχεδόν βέβαια θα εργάζεται μαζί με την Τεχνητή Νοημοσύνη. Δική μας ευθύνη είναι να φροντίσουμε ώστε όταν η μηχανή κάνει με βεβαιότητα λάθος, να υπάρχει δίπλα της ένας άνθρωπος που μπορεί να το καταλάβει.



