Sunday, December 30, 2007

Εισαγωγή στην Java - Η πρόταση του BlueJ - για αρχάριους


Είναι ωραίο συναίσθημα να κοιτάς ένα βιβλίο και καθώς παρατηρείς τους συγγραφείς να λές - ' Ρε συ αυτούς τους είχα καθηγητές εκεί'.

Γνώρισα τον J.Barnes και τον M.Κolling στο πανεπιστήμιο του Kent όταν έκανα το μεταπτυχιακό μου! Τον πρώτο έτυχε να τον έχω καθηγητή σε 1 μάθημα για μια περίοδο - αλλά όχι full time, μιας και ήταν υπεύθυνος του προγράμματος το οποίο απευθυνόταν σε non ΙΤ μαθητές οι οποίοι έκανα μια βουτιά στην πληροφορική!

Το πρόγραμμα του BlueJ ήταν μια προσπάθεια έτσι ώστε να δημιουργηθεί ένα framework - μηχανισμός ο οποίος θα βοηθούσε τους καθηγητές πληροφορικής να μεταδώσουν και να διδάξουν ΣΩΣΤΑ τον αντικειμενοστρεφή προγραμματισμό σε νέους φοιτητές με βάση την Java!

Εκείνα τα χρόνια δεν είχα την ωριμότητα να δω όλη την προσπάθεια σφαιρικά και να μην επικεντροθώ στο παιδικό (για κάθε developer που γράφει συστηματικά κώδικα) BlueJ. Θυμάμαι στην πρώτη συνάντηση για το δικό μου μεταπτυχιακό πρόγραμμα - μας έβαλαν 10 λεπτά να συμπληρώσουμε κάποιες ασκήσεις για να δουν ποιοι απο τους μαθητές ήξεραν πραγματικά Java και πόσοι νόμιζαν ότι ήξεραν! Όταν κάποιος είπε - ξέρεις μπορείς να χρησιμοποιήσεις το BlueJ, είπα - έλα τωρα πλάκα κάνεις είναι για παιδάκια - και έτσι είναι αλλά ουσιαστικά είναι μια ΠΟΛΥ σοβαρή προσέγγιση!

Εκείνη την εποχή στο τμήμα πληροφορικής του πανεπιστήμιου του Kent , έκαναν μια αρκετά μεγάλη προσπάθεια πάνω στην χρήση του BlueJ στους νέους φοιτητές - και γενικότερα στην σωστή εκμάθηση του object oriented programming!

Καθώς περνάνε τα χρόνια συναντάω πολλές φορές νέους στον χώρο ή ακόμα και νέους φοιτητές - δεν είναι λίγες οι φορές που θα δεχτώ την ίδια και την ίδια ερώτηση ή μάλλον παρατήρηση!

'Ξέρεις η Java ακούγεται ενδιαφέρουσα - αλλά νομίζω ότι είναι πολύ δύσκολη - δεν έχω καταλάβει επίσης και το αυτός πως το λέμε Object Oriented'

Είναι προφανές ότι το να του απαντήσεις ' Νομίζω ότι η Java είναι πραγματικά εξαιρετικά εύκολη γλώσσα για να την μάθεις' , δεν του αλλάζεις άποψη . Όπως και δεν είναι εύκολο το να μάθεις σε κάποιον να προγραμματίζει πόσο μάλλον με μια αντικειμενοστραφή γλώσσα - δεν γίνεται μέσα σε ένα μεσημέρι.Τέλος δεν είναι εύκολο πια στην αγορά εργασία όταν έχεις την ευθύνη να δουλεύεις με μεγάλες ομάδες προγραμματιστών - να φυτρώσεις έμπειρους developers στα project όταν τους έχεις ανάγκη! Το πρόβλημα είναι υπαρκτό!

Παρατηρώ κατά καιρούς σημειώσεις φοιτητών ή και βιβλία Ελληνικά - όλοι τα κουβαλάνε πέρα δώθε - όλα γραμμένα το κλασικό ξύλινο ύφος - κακές αντιγραφές ξένων βιβλίων - υπέρ-μετρη εθνικοφροσύνη και μανία για μετάφραση των πάντων! Είμαι υπέρ της χρήσης ελληνικής γλώσσας αλλά για μένα υπάρχει ένα όριο το οποίο ονομάζω χρηστικό! 9 στις 10 περιπτώσεις στην δουλειά θα ακούσεις να λένε τα object , object, και άλλα! Όσα είναι φυσιολογικά να λες στα ελληνικά έχει καλώς αλλά κακά τα ψέματα - δεν παίζουν όλα!

Όπως και να έχει, αναρωτιέμαι πιστεύουν πραγματικά ότι με αυτό το υλικό θα μεταδώσουν μια τόσο σημαντική γνώση (είναι απλή ΑΛΛΑ σημαντική) . Στο τέλος παρατηρώ κάποια email - 'σε παρακαλώ μπορείς να μου εξηγήσεις τι ειναι το object'!

Αρκετά φυσιολογική ερώτηση - αλλά δεν μπορεί να απαντηθεί με την ξύλινη απάντηση του στιγμιότυπου. Ο λόγος είναι ότι νομίζουν όλοι ότι έτσι την απαντάνε και όταν τους συναντάς στην δουλεία μακριά από το University Bubble και όλοι λένε ότι ξέρουν 1000 γλώσσες- η κλασική ελληνική νοοτροπία - γράφω ένα main στην Java ξέρω Java χα χα χα - αλλά τελικά σου γράφουν κώδικα έξω από brackets μεθόδου!

Στην τελευταία μου επίσκεψη στον Παπασωτηρίου, έκατσα μισή ώρα και διάβασα τα πρώτα κεφάλαια απο το Objects First with Java! Το βιβλίο αυτό σε συνεργασία με το μαθητικό Java IDE BlueJ προσπαθεί να εισάγει τον νέο προγραμματιστή στην έννοια του Object Oriented Programming - στην συνέχεια του programming γενικότερα με έμφαση στην Java!

Είναι λάθος (όπου έκανα και εγώ) να δεις το BlueJ μόνο του ως εργαλείο. Δεν έχει σημασία - πρέπει να το δεις σε συνδυασμό με τα σχετικά βιβλία και την προσπάθεια που κάνουν να σου δώσουν απλά και κατανοητά την έννοια του Object, της κλάσης - το πως μπορείς να το φανταστείς - πως μπορούμε να το περιγράψουμε μια γλώσσα όπως η Java, πως θα μπορούσαμε ίσως να το ζωγραφίσουμε (UML).

Απο αυτά που διάβασα έμεινα αρκετά ικανοποιημένος νομίζω ότι αυτή η έκδοση είναι πιο ώριμη απο ποτέ και σε συνδυασμό μέ έναν 'δάσκαλο΄ο οποίος θα δώσει έμφαση στο object orientation - τα αποτελέσματα στο τέλος μπορεί να ειναι ιδιαίτερα ικανοποιητικά!

Στο τέλος της διαδικασία δεν είναι το θέμα μας αν ο μαθητής θα έχει μάθει πως να παίζει με το BlueJ, αλλά αν έχει καταλάβει τι είναι μια κλάση και ένα object. Αν αποκτήσει τέτοιες βάσεις τότε τα υπόλοιπα είναι technicalities.

Το συγκεκριμένο βιβλίο μπαίνει λοιπόν στην λίστα των papo recommended για όλους όσους θέλουν να κάνουν μια σωστή και ουσιαστική εισαγωγή στην Java -μέσα απο μια μεθοδολογία διδασκαλίας η οποία έγραψε όχι μόνο βιβλία - αλλά δημιούργησε και ένα ιδιαίτερο περιβάλλον προγραμματισμού γι' αυτό το σκοπό!

Αναρωτιέμαι αν φοιτητές εδώ στην Ελλάδα έχει τύχει να δουν τα περί BlueJ στα μαθήματα εισαγωγής για Java ή φοιτητές ιδιωτικών σχολών κτλ κτλ! Είμαι περίεργος να μάθω αν υπάρχει κόσμος στην χώρα μας που να χρησιμοποιεί τον δρόμο του BlueJ! Αν ναι αφήστε ένα comment!

Ομολογώ ότι το θέμα της διδασκαλίας της Java, ιδιαίτερα σε νέους και άπειρους, όσο περνάνε τα χρόνια με ενδιαφέρει όλο και πιο πολύ! Από αυτό εδώ το blog περιστασιακά προσπαθώ με ιδιαίτερα newbie post να μεταφέρω με τον δικό μου τρόπο (σωστό ή λάθος) μέρος της (όποιας) γνώσης έχω. Ευελπιστώ τα επόμενα χρόνια να μπορέσω να εκπληρώσω και έναν από τους πόθους μου - να διδάξω συστηματικά με κάποιο τρόπο κάπως..κάπου ..κάποτε! (ΟΧΙ ΔΕΝ ΔΕΝ ΘΕΛΩ ΝΑ ΓΙΝΩ ΔΑΣΚΑΛΟΣ ΔΗΜΟΣΙΟΥ - χα χα χα).

Μερικά link

5 comments:

  1. Προσωπικώς δε μου αρέσει καθόλου το BlueJ, ίσως γιατί το χρησιμοποίησα αφού ήδη γνώριζα Java.

    ReplyDelete
  2. Γεια σου papo,

    Μιας και ρωτάς για το τι γίνεται στα ελληνικά πανεπιστήμια/ΤΕΙ θα σου πω τι γίνεται εδώ στην Κρήτη.

    Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων.
    Μάθημα: Αντικειμενοστραφής Προγραμματισμός Ι
    Καθηγητής: Αιβαλης Κ.

    Κατά την εισαγωγή στα πρώτα μαθήματα κάνουμε χρήση editor (notepad++) και command line για compile και εκτέλεση.

    Έπειτα για αρκετά μαθήματα χρήση του BlueJ και κατασκευή Class/Interface/Abstract κτλ. για να καταλάβουμε τι γίνετε με τα βελάκια πότε κάτι κληρονομεί κάτι άλλο, πότε γίνετε implement κτλ.

    Στο τέλος χρήση του netbeans.

    Εδώ αξίζει να αναφέρω οτι ο καθηγητής είναι Java Maniac. Μην του πεις τίποτα για C/C++ κτλ. σε έχει φάει. Άμα του πεις για .net και Microsoft είσαι “νεκρός”. Φοβερός και Λινουξας!!

    Quote:”Είμαστε τόσο έξυπνοι που πληρώνουμε την Microsoft για την γραμματειακή υποστήριξη αντί να βάλουμε ένα λινουξακι $#%$%@#$^@#$”

    ReplyDelete
  3. συγχαρητήρια στον κύριο Αιβαλή!

    ReplyDelete
  4. Quote:”Είμαστε τόσο έξυπνοι που πληρώνουμε την Microsoft για την γραμματειακή υποστήριξη αντί να βάλουμε ένα λινουξακι $#%$%@#$^@#$”

    Αν δε βάλουμε Microsoft πώς τα φάνε οι ιθύνοντες;

    ReplyDelete
  5. KALA re eimaste sovaroi .. den xerw gia tis alles sxoles alla edw sthn patra stous mhxanikous H/Y mpainoume se bluej apo to prwto kiolas ma8hma.. Ti command line kai lalakies.. Bluej rules reeee
    einai korufh ..
    kala vasika h java einai korufh h idia.. !!!

    ReplyDelete