Πλησιάζοντας το κλείσιμο της τυπικής 4ετούς προπτυχιακής παραμονής μου στο πανεπιστήμιο, οφείλω να κάνω μια προσπάθεια να κινητοποιηθεί η κοινότητα του Forum και οι φοιτητές του τμήματος ώστε με προτάσεις να γίνει εκείνο ακόμα καλύτερο. Πιστεύω οτί πέρα από τα υπόλοιπα καλά που πιθανώς προσφέρει το Venus στο τμήμα Πληροφορικής είναι και το Feedback από τους ίδιους φοιτητές του. Ο τρόπος περιγραφής θα είναι απλός, και θα σέβεται όλα τα πρόσωπα που εμπλέκονται στην εκπαιδευτική δραστηριότητα, ενώ θα αρκεστούμε με τί μπορεί να γίνει με αυτά που έχουμε δίχως να περιμένουμε επιχορηγήσεις, περισσότερα κτήρια, εργαστήρια, βιβλιοθήκες, καθηγητές κτλ... Μπορούμε να πιέσουμε να γίνουν πολλά αρκεί να υπάρξει όρεξη και ενδιαφέρον από τους ανώτερους. Θα εκθέσω την προσωπική άποψη που έχω σχηματήσει μέσω συγκρίσεων με ξένα πανεπιστήμια αλλά και την καθημερινή ενασχόληση με το πανεπιστήμιο και παρακαλώ να κάνετε και εσείς κάτι αντίστοιχο. Ζητώ συγγνώμη εκ των προτέρων για πιθανά ορθογραφικά και συντακτικά λάθη αλλά είναι αναμενόμενο της έκτασης του κειμένου και του περιορισμένου χρόνου μου. Ελπίζω ότι σύντομα το κείμενο θα δομηθεί καλύτερα και θα "κτενιστεί".
Μαθήματα σαν αντικείμενα
Το τμήμα πληροφορικής έχει ένα αρκετά ευέλικτο πρόγραμμα τουλάχιστον στα χαρτιά, δηλαδή όσον αφορά τα αντικείμενα των μαθημάτων που προσφέρει. Προσφέρει μαθήματα για κάθε προτίμηση ως προς την κατεύθυνση. Δυστυχώς οι τίτλοι είτε παραπληροφορούν, είτε οι περιγραφές δεν είναι επραρκείς, είτε οι ουσία στα μαθήματα είναι μάλλον ανούσια.
Η σχολή πρακτικά προσφέρει κύκλους για:
Θεωρητικά Θέματα Πληροφορικής
Υπολογιστικά Μαθηματικά και Επιστημονικοί Υπολογισμοί
Επιχειρησιακά και Οικονομικά Θέματα σχετιζόμενα με Πληροφορική
Δίκτυακά Θέματα
Βάσεις Δεδομένων
Πληροφοριακά Συστήματα και Ασφάλεια*
Δεν θα αναφερθώ σε όλα καθώς δεν γνωρίζω κάθε ένα μάθημα σε όλα τα πεδιά, ωστόσο θα προσπαθήσω να αναδείξω την γενικότερη θεώρηση μου.
Σκοπός του πανεπιστημίου
Σκοπός του πανεπιστημίου αν και παρεξηγημένα είναι να προσφέρει θεωρητικές γνώσεις και πρακτικές που θα επιτελέσουν τα εργαλεία, τα οποία με την κριτική, την συνδιαστική και την αφαιρετική ικανότητα θα επιτρέψουν την μετεξέλιξη των ίδιων των πτυχιούχων σε ότι εκείνοι επιθυμούν να κάνουν. Πέρα από το γεγονός ότι το πανεπιστήμιο δεν μπορεί να σου μάθει τα πάντα, οφείλει να σου δώσει παραδοσιακές αρχικά και μοντέρνες στη συνέχεια προσεγγίσεις για τα ζητήματα που αφορούν το αντικείμενο σου. Το πανεπιστήμιο σου δίνει ενάυσματα για να ανακαλύψεις τί μπορείς να μάθεις για το κάθε μάθημα και αν θέλεις μπορείς να ψάξεις σε 2-3 ακόμα βιβλία ή σε papers. Δεν αποτελεί αιτία αντιγραφής εργασιών, αλλαγής παλιότερων και επαναποστολής τους. Ούτε όμως αποτελέι και πηγή ανούσιων projects, όπως γίνεται σε αρκετά μαθήματα στο τμήμα μας τώρα.
Φιλοσοφίες Φοιτητών
Οπότε ένας φοιτητής που μπαίνει για παράδειγμα στο τμήμα Πληροφορικής και τελικά καταλήγει να παίρνει μαθήματα εύκολα για βαθμό, ή αποφεύγει τα projects (που πραγματικά δεν έχουν όλα αξία όπως πιστεύω), μετατρέπει τον εαυτό του σε έναν απόφοιτο ΤΕΙ, αν όχι ΙΕΚ (προς θεού δεν είναι κατώτεροι εκεινοι - είναι για άλλη δουλεία πιστεύω). Τελικά, είναι πτυχιούχος μεν αλλά δεν μπορεί να κάνει τίποτα δε, ούτε καν αυτά που μπορεί ένας απόφοιτος του ΙΕΚ.
Στην αντιπέρα όχθη βρίσκεται ο φοιτητής που δεν του φτάνει ότι του προσφέρει το πανεπιστημίο και κάνει πράγματα που τον ευχαριστούν και έχουν σχέση με το αντικείμενο τους, αλλά δεν έχουν χρόνο να ασχοληθούν με τα μαθήματα της σχολής γιατί συνήθως τα θεωρούν τετριμμένα.
Υπάρχει και η τρίτη βασική κατηγορία φοιτητών που ασχολούνται μόνο με την πολιτική καθώς είναι 5ο έτος και χρωστάνε ακόμα java2, αλλά δεν θα επεκταθώ παραπέρα καθώς δεν είναι μέσα στο σκεπτικό του Feedback, απλά τους αγνοώ προσωπικά.
Οι υπόλοιποι από εμάς βρίσκονται σε κάποιο βαθμό ανάμεσα στις δύο βασικές κατηγορίες.
Φιλοσοφία Πληροφορικής ΟΠΑ σε σχέση με άλλες πληροφορικές
Η δική μας σχολή αν και αρκετά ευπροσάρμοστη στις προσδοκίες των φοιτητών της, έχει μια σαφή κλίση προς την μελέτη από τη σκοπιά των πληροφοριακών συστημάτων σαν να είναι black boxes που μας ενδιαφέρει λίγο ή καθόλου η εσωτερική υλοποίηση. Για αυτό έχουμε τόσα μαθήματα Πληροφοριακών Συστημάτων και Τεχνολογίας Λογισμικού και γενικά χρησιμοποιούμε Java και όχι C/C++. Απο την σκοπιά των Δικτύων για παράδειγμα στη σχολή μας ενδιαφέρει το Application Level παρά ότιδήποτε βρίσκεται από κάτω. Από τη σκοπιά των βάσεων δεν μας αποσχολεί πως αποθηκεύονται τα πράγματα στο δίσκο, και δεν μας αποσχολεί να κάνουμε query optimization. Από την πλευρά των ψηφιακών δεν μας αποσχολεί τί γίνεται κάτω από τις πύλες. Γενικά στη σχολή μας λοιπόν μας ενδιαφέρουν οι εφαρμογές και όχι πως υλοποιούνται σε βάθος, κάτι που είναι αρκετά περιοριστικό - τουλάχιστον δεν δίνεται η επιλογή σε αυτούς που θέλουν. Ένα τμήμα που είναι στο άλλο άκρο είναι του Καποδιστριακού.
Αξία των Πτυχίων-συνταγών
Δίχως όμως αξιολόγηση του τί επιλέγει ο καθένας πραγματικά το πτυχίο δεν θα έπρεπε να έχει την ίδια αξία βαθμολογικά. Αλλά κυρίως να παίζουν ρόλο τα projects που έχει συμμετάσχει, τα μαθήματα που έχει επιλέξει, δημοσιεύσεις στην σπάνια περίπτωση που έχει κτλ...Τώρα είναι ενιαίο αλλά το credits system ίσως έδινε μια καλύτερη λύση και άπειρες διαμαρτυρίες από αυτούς που δεν θέλουν να ασχοληθουν. Συν τοις άλλοις τα τελευταία χρόνια οι βαθμοί σε κάποια μαθήματα μπαίνουν με μεγάλη ευκολία κάτι που δεν ίσχυε πριν, με αποτέλεσμα οι παλαιότεροι φοιτητές κατα κοινή ομολογία να αδικούνται σε κάποιο βαθμό - αλλά κυρίως να εφησυχάζονται οι νεότεροι, ότι έχουν επαρκείς γνώσεις.
Στο θέμα όμως...Μαθήματα
Από εδώ βασικά αρχίζει το προσωπικό μου feedback. Όλα αυτά που θα αναφέρω υπάρχουν ή δεν υπάρχουν σε όλες τις χρονίες της Πληροφορικής ΟΠΑ.
Εισαγωγή στον Προγραμματισμό:
Με java? Οκ πολλοί διαφωνούν αλλά καλώς ή κακώς με αυτήν ξεκινάμε. Αλλού είναι το θέμα.
Στο μάθημα έπρεπε να γίνεται χρήση της java με σοβάρη δομή και αντικείμενα και οι εργασίες να γίνουν αρκετά πιο δύσκολες. Αν το μάθημα υπάρχει επικουρικά τότε να το πούν ότι δεν μας αποσχολεί το αντικειμενοστρεφές κομμάτι της java. Μήπως μια άλλη γλώσσα θα ήταν πιο κατάλληλη για αυτό? Αφού δεν δίνει σημασία σε intrfaces, abstract classes, access previliges κτλ. τότε δεν έχει νόημα γιατί δίνει και λάθος εντύπωση στα άτομα που ούτως ή άλλως δεν μπήκαν στη σχολή για να λερώσουν τα χέρια τους με κώδικα.
Κατα τη γνώμη μου θα έπρεπε να διδάσκονται 4-5 είδη γλώσσας (σε διαφορετικά programming paradigms-Python,C/C++,Assembly,Concurrent Programming Languages, Scheme/Lisp). Παράδειγμα Stanford CS107 : http://www.youtube.com/watch?v=Ps8jOj7diA0. Έτσι ο φοιτητής αποκτά καλύτερη και ευρύτερη άποψη για τα είδη των γλωσσών, ενώ στη σχολή μας πρακτικά μαθαίνουμε μία και μόνο γλώσσα την Java...
Το μάθημα ως γνωστόν στηρίζεται στον Ivor Horton - Beginning Java από την Wrox, ενώ τα θέματα περιέχουν επαναλαμβανόμενες απαιτήσεις από το προαναφερθέν βιβλίο και το πλέον ξεπερασμένο βιβλίο του κύριου Κάβουρα, που όπως έχω μάθει,δεν ξέρω αν αληθεύει, αποτελέι μετατροπή βιβλίου του ίδιου συγγραφέα για Pascal, πράγμα που φαίνεται στον τρόπο που είναι δομημένο.
Αν και σε αυτό το εισαγωγικό επίπεδο ο τρόπος παράδοσης των εργασιών απαιτεί, ανάλυση κειμένου,ψευδοκώδικα δύο επιπέδων, κώδικα με πλήρη σχόλια και screenshots από την εκτέλεση και είναι αρκετά σημαντικός - είναι άχρηστος για τα μαθήματα Οργάνωση και Λειτουργικά Συστήματα που ζητούν ακριβώς το ίδιο στύλ.
Κύριοι υπαίτιοι είναι οι αποδέκτες των εργασιών, οι οποίοι είναι οι γνωστοί κ.Καλέργης και κ.Τογατζή.
Το εργαλείο που χρησιμοποιούν πολλοί στο πρώτο έτος για την δημιουργία των εργασιών τους είναι το JCreator και ευλόγως καθώς δεν είναι καλό να μπούν από τόσο νωρίς στην χρήση ενός καλού IDE με autocomplete για τα πάντα. Είναι βασικό να θυμούνται οι πρωτοετείς τα σημαντικά πακέτα βιβλιοθήκης και να κάνουν χρήση Java Doc. Δεν πρέπει να ενθαρρύνεται η παραγωγή αυτόματου κώδικα και η χρήση copy-paste ή ακόμα και clopy-paste...
Προγραμματισμός με Java:
Πέρα από τα φετινά προβλήματα με τους βοηθούς και τον καθηγητή κ. Σύρη που είναι από τελείως ξένο αντικείμενο από τον προγραμματισμό - πάλι καλά που δέκτηκε βέβαια - οι φουρνιά p3080xxx θα πάρει πιθανώς ανεπαρκείς βάσεις, όσον αφορά την Java. Στο μάθημα λοιπόν που κλείνει τις τρύπες του προηγούμενου μαθήματος, και προσθέτει και λίγα παραθυρικά γραφικά, πολλοί φοιτητές τα κάνουν με NetBeans και ξεμπερδεύουν.Στο μάθημα αυτό πρέπει να μαθαίνονται και τα στερεότυπα της Java για όσους θέλουν να τα ακολουθήσουν (π.χ κεφαλαίο το πρώτο γράμμα των τάξεων)
Το διάβασμα του αρχείου με κάποιο συγκεκριμένο format τους βοηθάει να καταλάβουν περίπου πως δουλεύει ένας φτωχός parser, αλλά μέχρι εκεί. Τα δέ αντικείμενα στο project το φετινό είναι υπερβολικά πολλά και ο φοιτητής δεν νομίζω ότι λαμβάνει μια πρώτη άποψη του τί πρέπει να είναι αντικείμενο και τό τί όχι και επίσης δεν μπαίνει καθόλου μέσα στο παιχνίδι η έννοια των interfaces, των ανώνυμων τάξεων και των generics. Μέσα στο μάθημα θα ήταν σημαντικό οι φοιτητές να μπορούν να μελετήσουν και τεχνοτροπίες για το πως διαβάζουμε πίνακες με περίεργο τρόπο. Πχ να διαβάσουμε τα στοιχεία του άνω/κάτω τριγωνικού ενός πίνακα. Να διαβάσουμε ελικοειδώς από το κέντρο προς τα έξω κτλ. Να διαβάσουν έναν n-διαγώνιο πίνακα. Πράγματα που δεν αφορούν τις δομές. Αλλά ταιριάζουν σε ένα μάθημα που δεν είναι απλά ενα Java Application που φρουφρου και αρώματα που είναι τελείως ανούσια τελικά. Το μάθημα αυτό θεωρώ ότι ή πρέπει να γίνει πιο δύσκολο ή να μείνει το ίδιο αλλά να συγχωνευτεί με την Εισαγωγή Προγραμματισμού. Ούτως η άλλως η ενασχόληση με Java στο τμήμα μας είναι δεδομένη οπότε ακόμα ένα project για να υπάρχει δεν έχει νόημα. Καλή θα ήταν και μια απλή αναφορά στα Regular Expressions και μια εκτενέστερη κατά το μάθημα των Αυτομάτων.
Εισαγωγή στην επιστήμη υπολογιστών: Ανανεώθηκε 2/6/09 15:37
Ένα καλά δομημένο μάθημα που πραγματικά κάνει μια καλή προσπάθεια να εισάγει τον πρωτοετή στην φιλοσοφία αρκετών κλάδων της πληροφορικής, μέσα από primitive έννοιες. Δυστυχώς έχει ανατεθεί στο μάθημα αυτό να γίνεται εκμάθηση HTML και Unix commands με τη μορφή παπαγαλίας και υπάρχει και project HTML. Πράγματα που έπρεπε να γίνονται σε ξεχωριστό μάθημα. Αλλά ας δούμε στη συνέχεια. Σαν να μην έφτανε αυτό τα δικαιώματα των φακέλων στο dias δεν γίνονται σωστά εφόσον "είμαστε οκ γιατί παίζει το site στο public_html" και δυστυχώς μετά οι φοιτητές βάζουν τις εργασίες c για να τις τρέξουν στον dias, και είναι θεόρατες από οποιονδήποτε κάνει ένα grep με τα προβληματικά δικαιώματα. Πέρυσι εντόπισα περίπου 200 φοιτητές με λάθος δικαιώματα που θα μπορούσα να τσιμπήσω εργασία...
Το ίδιο βέβαια μπορεί να ισχύσει και στις Βάσεις στον νέο server (βλ παρακάτω)
Yπολογιστικά Μαθηματικά: Ανανεώθηκε 2/6/09 14:13
Ένα από τα πιο δύσκολα Υποχρεωτικά Μαθηματικά μαθήματα του τμήματος χάρη στην άριστη συμβολή του κ.Π.Βασσάλου. Το μάθημα χρειάζεται λίγη ακόμα οργάνωση αλλά ήδη τα λόγια είναι περιττά. Το μάθημα αυτό είναι συνδεδεμένο όσο κανένα άλλο υποχρεωτικό μαθηματικό μάθημα με την πληροφορική, με εφαρμογές σε Scilab ή Fortran.Ωστόσο έχει και μερικά προβλήματα. Καταρχάς στα τελευταία κεφάλαια του διαχειρίζεται εξειδικευμένη γνώση πάνω σε πίνακες και γραμμικά συστήματα, ενώ παράλληλα αυτά διδάσκονται στο ίδιο εξάμηνο από την Γραμμική Άλγεβρα. Κατά συνέπεια οι φοιτητές δεν έχουν 'χωνέψει' τις βασικές έννοιες για να πάνε σε κάτι πιο εξειδικευμένο. Μία πρόταση θα ήταν να γίνει switch μεταξύ Πιθανοτήτων (που είναι και πιο κοντά στο Λύκειο σαν αντικείμενο) και Υπολογιστικών Μαθηματικών. Έτσι λύνεται εν μέρει και το δεύτερο πρόβλημα. Στο μάθημα γίνεται αναφορά σε έννοιες O() και πολυπλοκότητες. Όχι κάτι τραγικό αλλά σίγουρα οι πρωτοετείς έστω και μετά την 'Εισαγωγή στην Επιστήμη Η/Υ' δεν έχουν την άνεση σε τέτοιες έννοιες - (όχι πως θα έχουν και όταν τελειώσουν Αλγορίθμους). Οπότε βάζοντας το μάθημα σε μεγαλύτερο έτος, οι φοιτητές είναι πιο ώριμοι καθώς στις Δομές από το πρώτο κιολας μάθημα θα έρθουν σε επαφή με τους ασυμπτωτικούς συμβολισμούς (O(),Ω(),θ()). Ακόμα θα έχουν χωνέψει τις πιθανότητες από νωρίς και αν θέλουν πιο γρήγορα θα κατευθυνθούν στις Εφαρμοσμένες Πιθανότητες και Στατιστική - μαθήμα ιδιαίτερα σημαντικό για την επιστήμη μας όπως μου τόνισε πολλαπλώς η κ.Παπαδοπούλου για την έρευνα
O τρόπος τυχαίου μοιράσματος των ασκήσεων ανά κεφάλαιο σε κάθε ομάδα, από τον κ.Βασσάλο περιορίζει κατα πολύ την συμβολή των παρατάξεων με την τεράστια βάση δεδομένων έτοιμων λύσεων. Παρόμοιο pattern μπορεί να ακολουθηθεί και σε άλλα μαθηματικά μαθήματα.
Επίσης ο κ.Βασσάλος στην αίθουσα αναφέρθηκε στο μάθημα ότι σκεφτόταν τις 2 ώρες της εξέτασης ώστε να αποτρέψει το φαινόμενο τις τουαλέτας και των εμπλακόμενων σε αυτές.Όπως το κατανοώ εγώ τα θέματα αν είναι πολλά και πολλαπλής, δεν μπορούν να δρομολογηθούν στην επίλυση τους από άτομα στα υπόγεια, όπως γίνεται σε άλλα μαθηματικά και άλλα μαθήματα.
Προγραμματισμός με C++:
Ευτυχώς που υπάρχει και αυτό το μάθημα...Αλλά μάλλον μόνο για ξεκάρφωμα υπάρχει. Δυστυχώς το μάθημα προσφέρει ελάχιστες πραγματικές γνώσεις και πρακτικά μαθαίνει το συνατακτικό της C++, μέχρι το σημείο να κάνουμε ότι περίπου κάνουνε με την Java. Δεν τονίζεται η διαφορετικότητα και το διαφορετικό Programming Paradigm που ανήκει η γλώσσα.Γίνεται βέβαια μελέτη στους destructors,στο operator overloading. Αλλά δεν διδάσκεται η ύπαρξη ή/και γιατί επιτρέπονται globals, static μεταβλητές μέσα σε μεθόδους και επίσης γιατί μπορούμε να έχουμε pointers σε μεθόδους. Το μάθημα αναλώνεται σε αρκετό βαθμό στην ενασχόληση με primitive κομμάτια της Τεχνητής Νοημοσύνης, εξαιτίας του κατα τα άλλα αξιοσέβαστου κ.Ανδρουτσόπουλου. Δυστυχώς και εκείνος δεν είναι ο πλέον κατάλληλος για να διδάξει C++ γενικότερου περιεχομένου, ωστόσο κάνει μια έντιμη και πολύ καλή προσπάθεια - οι σημειώσεις του σωτήριες και άψογα οργανωμένες. Αλλά το νόημα έχει χαθεί... Στις τελευταίες διαφάνειες υπάρχουν υλοποιήσεις βασικών δομών δεδομένων που και σπάνια πέφτουν και εξαιρετικά σημαντικές είναι.
Οπότε το μάθημα πρέπει να αποδεσμευτεί κατά τη γνώμη μου από την Τεχνητή Νοημοσύνη και τις Δομές Δεδομένων. Σε αυτό το μάθημα πρέπει να συγχωνευτεί ότι μαθαίνουμε για C στα λειτουργικά σαν εισαγωγικό Tutorial. Πρέπει να τονιστεί και να μελετηθεί η διαφορετικότητα της γλώσσας. Το θετικό στοιχείο είναι ότι ο κ. Ανδρουτσόπουλος δίνει έτοιμο το signature των μεθόδων που πρέπει να υλοποιηθούν. Τα θέματα ανακυκλώνονται οπότε δυστυχώς η ευτυχώς ακόμα και ο ομιλών οδηγήθηκε σε υψηλό βαθμό χάρη στη μνήμη του, μετά την μελέτη παρόμοιων θεμάτων. Ο τρόπος βαθμολόγησης παρ' όλα αυτά είναι πλήρως αντικειμενικός μιας και προέρχεται από τον ίδιο τον κ.Ανδρουτσόπουλο.
Οργάνωση Συστημάτων Η/Υ:
Σαφώς βελτιωμένο μάθημα σε σχέση με τότε που το έκανε ο κ.Κάβουρας, αλλά χαμηλότερο επίπεδο γνωσιακό παρέχεται σε σχέση με τότε που το έκανε ο κ.Ξυλωμένος. Ωστόσο επιτέλους στο μάθημα γίνεται η χρήση της διαδεδομένης γλώσσας μηχανής MIPS για SPIM-32 και όχι μιάς γλώσσας που αποτελεί πτυχιακή κάποιου φοιτητή. Το βιβλίο του κ.Κάβουρα δεν είναι το κατάλληλο για να σου μάθει την γλώσσα του MIPS, όπως καταφέρνει το βιβλίο των Hennessy & Patterson που πέρνουμε στην Αρχιτεκτονική Υπολογιστών. Το βιβλίο του κ.Κάβουρα αναλώνεται σε παλιό ιστορικό και γενικά πλατιάζει τις περισσότερες φορές χάνοντας την ουσία. Η σύνδεση με τα άλλα 3-4 βιβλία του κ.Κάβουρα καταντάει κουραστική και οι παραπομπές αποσπούν τον φοιτητή. Τα λάθη στα σχήματα είναι αρκετά και το βιβλίο παύει να είναι μια ευχάριστη συντροφιά και αποτελεί έναν μικρό λεκτικό γολγωθά για τους περισσότερους. Περιέχει και για την αρχιτεκτονική x86 η οποία είναι εκτός ύλης αλλά δεν ξέρω κατα πόσο θα μεταφερόταν στον φοιτητή με τον σωστό τρόπο. Οι διαφάνειες του κ.Μαριά στηρίζονται στο βιβλίο του κ.Κάβουρα κάτι που αποτελεί από μόνο του μειονέκτημα καθώς το βιβλίο σαν δομή αποτελεί πολύ ξεπερασμένο. Ο φοιτητής τελικά με τις δεκάδες αρχιτεκτονικές που το βιβλίο πιάνει πάνω πάνω και τα δεκάδες είδη μνήμης, "χάνει την μπάλα" και δεν του μένουν τα απολύτως σημαντικά πχ τι πάει να πει access-time, seek-time στους δίσκους, πως λειτουργούν οι cache 1-2-3 επιπέδων στον επεξεργαστή και πως αποθηκεύονται τα δεδομένα στην μνήμη με απλό και σαφή τρόπο. Αναλώνεται με περιέργους τρόπους πολλαπλασιασμού και διαίρεσης δύο αριθμών, τρόποι που δεν γίνονται σε καμία αρχιτεκτονική. Περιέχονται και όλοι οι όροι εξελληνισμένοι κάτι που είναι απλά απαράδεκτο.
Κοινώς το μάθημα έπρεπε να αποτελεί την γέφυρα ανάμεσα στα ψηφιακά Σύστηματα ή την Αρχιτεκτονική Υπολογιστών και άλλων μαθημάτων όπως Λειτουργικά Συστήματα και συγκεκριμένα κομμάτια των Βάσεων Δεδομένων και των Υπολογιστικά Μαθηματικών. Μάλλον δεν τα καταφέρνει. Το κλασσικό στυλ κ.Καλατζη & κ.Τογατζή όταν υπάρχουν projects ή εξετάσεις επιτάσσει την ανάγκη για άπειρα σχόλια στον κώδικα μηχανής.
Δομές Δεδομένων:
Αν και έπεσε ιδιαίτερα το επίπεδο του μαθήματος από θέμα δυσκολίας και απαιτήσεων σε σχέση με την κ.Παπαδοπούλου, πιστεύω ότι είναι ένα μάθημα που έπρεπε να γίνεται σε C++ γιατί εκεί είναι η ουσία των διασυνδέσεων των pointers και τί ακριβώς γίνεται στη μνήμη. Μην ξεχνάμε ότι το αρκετά καλό βιβλίο που δίνεται (του Sedgewick) ανάμεσα στα άλλα, αποτέλεσε βιβλίο δομών με την χρήση της C++,που μετατράπηκε σε Java και εμπεριέχει αρκετά λαθάκια. Ήδη το μάθημα μας εισάγει σε ανάλυση πολυπλοκοτήτων των πράξεων σε διάφορες δομές, αλλά δυστυχώς δεν αποδεικνύει κανέναν από αυτούς. Δεν γίνεται ας πούμε αρκετή ανάλυση τί είναι ο amortized ανάλυση χρόνου που σε ξένα πανεπιστήμια θα έκαναν μια ολόκληρη διάλεξη (Berkeley CS 61B - Data Structures - http://www.youtube.com/watch?v=UYcWpldlX-o ). Γενικότερα λείπει το υπόβαθρο που όντως θα θέσει το φοιτητή ικανό να κάνει μια custom δομή αν δεν υπάρχει κάτι ήδη έτοιμο που να ανταποκρίνεται στις απαιτήσεις του. ΑΚόμα δεν γίνεται εκτενής ανάλυση και χρήση στα σημαντικότατα για τις Βάσεις Δεδομένων B Δέντρα και στα B+ Δέντρα και ακόμα περισσότερο πως αυτά δομούνται σε επίπεδο σκληρού δίσκου. Το μάθημα αναφέρει μονάχα 2-3-4 δέντρα και Red-black που σίγουρα αποτελούν ειδική περίπτωση των B δέντρων, αλλά γενικά και αυτά ελάχιστα εξετάζονται. Η μελέτη του κώδικα για Red-black δέντρα είναι απλά ανούσια ειδικά την χρονιά που διδάχτηκε από τους κ. Ξυλωμένο και κ. Συντιχάκη. H εργασίες δεν θα έπρεπε να υλοποιούν απλά πράγματα όπως διπλά συνδεδεμένες λίστες ή heaps μόνο. Θα έπρεπε να γίνεται υλοποίηση και στρεβλών δέντρων και hashmaps/hashsets και γενικά πράγματα που δεν περιέχουν τον παρεξηγημένο κατακερματισμό.
Μαζί με το μάθημα έπεσαν και οι απαιτήσεις και στις εργασίες αλλά και στις εξετάσεις.
Ψηφιακά Συστήματα:
Σαφέστατα βελτιωμένο μάθημα σε σχέση με πριν 4-5 χρόνια. Πλέον υποστηρίζεται η μάθηση της ευρέως διαδεδομένης γλώσσας VHDL. Ο κ. Βενέρης είναι αρκετά αποδοτικός σε αυτό το μάθημα αλλά δυστυχώς οι απαιτήσεις είναι αρκετά χαμηλές και το μάθημα αποτελεί αντικειμενικά "μάθημα για βαθμό". Εύλογα λίγοι ή ελάχιστοι θα θελήσουν να ασχοληθούν με το hardware, οπότε ας πάρουν την αρχιτεκτονική υπολογιστών αν το επιθυμούν. Γενικά ένα ενδιαφέρον μάθημα δίχως τις τεχνικές λεπτομέριες που θα κουράσουν. Πολύ καλή συνοχή θεωρίας εργασιών. Γενικά όμως κανείς αναρωτάται αν τελικά με τη βοήθεια της οργάνωσης ο φοιτήτης κατανοεί τί γίνεται στο εσωτερικό του υπολογιστή...
Λειτουργικά Συστήματα:
Αν είχαμε τη φιλοσοφία του Καποδιστριακού, θα παίρναμε το βιβλίο του Τannenbaum, θα μελετάγαμε το MINIX λειτουργικό σύστημα και θα γράφαμε scripts σε C. Δεν έχουν ακριβώς έτσι τα πράγματα και στην ΑΣΟΕΕ. Το βιβλίο που συνήθως παίρνουν οι περισσότεροι ειδικά όταν διδάσκει ο κ.Κάβουρας είναι το βιβλίο του. Αποτελεί παράδειγμα βιβλίου με σοβάρα προβλήματα αντίστοιχα με αυτά που αναφέρονται στην Οργάνωση Συστημάτων Η/Υ. Στο φροντιστήριο γίνεται tutorial για C πράγμα που έπρεπε να γίνεται στο μάθημα Προγραμματισμός με C++ με επέκταση του ονόματος σε C. Οι υλοποιήσεις σε C που φέτος είναι και προαιρετικές(!) είναι η δημιουργία μιας απλής εφαρμογής σε csh (c-shell) και στη συνέχεια η ίδια εφαρμογή με κανονική C. Συνήθως γίνεται η υλοποίηση message queues και pipes που όμως μάλλον δεν είναι σημασίας. Ο κ.Κάβουρας κάνει με κάποιος τρόπο τις διαφάνειες του κ.Μήλη που έχει ως αποτέλεσμα να πηγαίνουν ελάχιστοι φοιτητές, αφού το αφήνουν για του χρόνου αρκετοί για να έχουν την κ.Καλογεράκη. Το δίδυμο κ.Μήλη-κ.Καλογεράκη έκανε πραγματικά δουλειά και έστω σε θεωρητικό επίπεδο δόθηκαν σημαντικές γνώσεις για τα βασικά μέρη ενός λειτουργικού συστήματος. Κοινώς το μάθημα θέλει ανανέωση, κυρίως ως προς την υλοποίηση.
Βάσεις Δεδομένων & Σχεδιασμός Βάσεων Δεδομένων:
Ένα πραγματικά δύσκολο μάθημα όταν το κάνει ο κ. Βασσάλος με ευρύτητα θεμάτων και μάθημα που η ύλη του μεγαλώνει κάθε χρόνο. Η δυσκολία του μαθήματος δεν οφείλεται προφανώς στο project, όπως δυστυχώς πολλοί περαστικοί από το τμήμα διατυμπανίζουν. Η δυσκολία έγγυται στην μεγάλη ύλη που καλείται ο φοιτητής να καλύψει. Το μάθημα όπως διδάσκεται είναι σε πάρα πολύ υψηλό επίπεδο που θυμίζει αμερικάνικο πανεπιστήμιο, αλλά ο τρόπος εξέτασης είναι και αυτός πολύ απαιτητικός. Κατά τη γνώμη μου το μάθημα είναι πολύ φορτωμένο καθώς το συμπληρωματικό, θα μου επιτρέψετε διακοσμητικό μάθημα "Σχεδιασμός Βάσεων Δεδομένων" δεν θα έπρεπε να υπάρχει δεδομένης της έκτασης αυτού του μαθήματος. Στην αντίθετη περίπτωση έπρεπε να είναι μοιρασμένο. Δηλαδή έπρεπε να υπάρχει ένα μάθημα υποχρεωτικό που να ασχολείται με τις υλοποιήσεις SQL,TRIGGERS,TRANSACTIONS,ISOLATION LEVELS,GRANT δικαιωμάτων, και να περνάει πάνω πάνω τα υπόλοιπα θεωρητικά. Επιπλέον θα έπρεπε να υπάρχει ένα μάθημα υποχρεωτικό κύκλου που να αναλύει E/R,Κανονικές Μορφές μέχρι 5NF,Key closures, Query Optimizations, Indexing, τί γίνεται στο δίσκο όσον αφορά τους χρόνους I/O ανάλογα με το indexing και άλλα τέτοια θεωρητικά αλλά και εσωτερικά πράγματα του συστήματος (καθόλου SQL δηλαδή). Ο κ.Βαζιργιάννης επέλεξε τα 3 τελευταία να τα κάνει στο υποχρεωτικό, αλλά δυστυχώς έβαλε όλους τους φοιτητές σε ένα καλούπι να κάνουν ένα συγκεκριμένο θέμα, περιορίζοντας σημαντικά τους φοιτητές. Υπάρχουν φήμες ότι το μάθημα θα μεταφερθεί σε μεγαλύτερο έτος και καλά θα κάνει αν γίνει κάτι τέτοιο.
Η υλοποίηση του κ.Βασσάλου απαιτεί MS SQL SERVER και γνώσεις JSP ή Java Servlets, αλλά δεν δίνεται η δυνατότητα στους φοιτητές να κάνουν την εργασία σε άλλες γλώσσες όπως mysql,postgre και asp/asp.net/php αντίστοιχα. H δικαιολογία ήταν ότι δεν υπάρχει υποδομή. Από φέτος υπάρχει αυτός ο Ubuntu Server (195.251.248.154) με Apache,PHP,MySQL και ελπίζουμε να το στηρίξει και ο κύριος Βασσάλος κατάλληλα στο μέλλον, για όσους επιθυμούν μια εναλλακτική προσέγγιση.
Κάτι αντίστοιχο με το project των βάσεων σε διαφορετικές εκδόσεις και νοοτροπίες ζητείται άσκοπα και ανούσια στα μαθήματα Δίκτυα Επικοινωνιών και Δίκτυα Υπολογιστών και με κάποιες περισσότερες μετατροπές ή επιπροσθέσεις στην Τεχνολογία Λογισμικού και στην Ανάπτυξη Εφαρμογών Πληροφοριακών Συστημάτων του κ.Κωτίδη. Κατά τη γνώμη μου ειδικά για τα δύο πρώτα αυτό είναι πολύ κακό για τους φοιτητές του τμήματος μας.
Παρόλα αυτά κάποιοι φοιτητές που τελειώνουν Βάσεις Δεδομένων δεν έχουν χωνέψει πως να κάνουν μια φόρμα σωστά που να κάνει post/get requests με μια απλή βάση από πίσω. Δεν είναι όμως δουλειά των Δικτύων αυτή.
Ο κ.Παναγής (panagis) είναι πολύ σημαντικό ότι δέχεται θετικό και αρνητικό feedback τόσο για τις "Βάσεις Δεδομένων" όσο και για το "Εξόρυξη Γνώσης απο ΒΔ και τον Π.Ιστο", ενώ είναι/ήταν βοηθός. Big Thumbs up!
Τεχνητή Νοημοσύνη:
Αρκετό Feedback υπάρχει εδώ: http://venus.cslab.aueb.gr/forum/viewto ... 06#p153106 και σημαντικό είναι ότι ο κ. Ανδρουτσόπουλος (A.I.) διάβασε με ενδιαφέρον όπως λέει χαρακτηριστικά και θα οδηγήσει το μάθημα προς καλύτερη κατεύθυνση.
Δεν θα επεκταθώ πολύ και θα πω ότι το μάθημα δεν θα πρέπει να το παρακάνει με τις γλώσσες και τα αυτόματα και τις DCG. Ενώ όλες οι εργασίες δεν πρέπει να περιέχουν υλοποίηση User Interface ή καλύτερα να παρέχεται έτοιμο κάποιο που είναι έτοιμο, για εργασίες όπως Wumpus και Othello/Reversi.
Καλό θα ήταν για να έχει πιο ενδιαφέρον το μάθημα η τρίτη εργασία να στηρίζεται στην φωνητική αναγνώριση πάρα στην τετριμμένη κατά τη γνώμη μου σε αυτό το επίπεδο χρήση του Weka για την τελευταία εργασία. Εξάλλου το Weka θα χρησιμοποιηθεί κατά κόρον σε μαθήματα όπως πρωτίστως "Εξόρυξη Γνώσης απο ΒΔ και τον Π.Ιστο" και δευτερευόντως στο μάθημα της "Συστήματα Ανάκτησης Πληροφοριών".
Αλγόριθμοι:
Το μάθημα από θέμα ευρύτητας ύλης είναι καλό αλλά δεν εμβαθύνει όπως θα έπρεπε. Η κ.Σιδέρη κάνει το μάθημα κάπως εκλαικευμένα και χάνεται δυστυχώς και αρκετή ουσία μαζι. Έτσι ο φοιτητής που τελειώνει το μάθημα δεν σαφή εικόνα τί πάει να πεί O(), Ω() Θ() κτλ, δεν ξέρει τις κλάσεις προβλημάτων με την αυστηρή έννοια (N,NP,NP-Complete,NP-Hard κτλ), δεν είναι σε θέση να κατανοήσει και να εφαρμόσει τον Δυναμικό Προγραμματισμό (που είναι στην ύλη) ή να υπολογίσει πολυπλοκότητες κατά το Διαίρει και Βασίλευε. Κοινώς το μάθημα δεν προσφέρει ιδιαίτερη ουσία αφού τα BFS,DFS ο φοιτητής θα τα ξανασυναντήσει και στην Τεχνητή Νοημοσύνη. Ίσως τα ειδικά θέματα αλγορίθμων να είναι η λύση. Αλλά υπάρχει δυστυχώς αρκετά μεγάλη επικάλυψη στα δύο.
Οι διαφάνειες είναι στατικές σε αντίθεση με τα powerpoint κατα τη διάρκεια της διάλεξης που δείχνουν αναλυτικότερα τα βήματα των αλγορίθμων. Ανεπάρκεια διαφανειών συνεπώς. Google is your friend και πάλι...
Τεχνολογία Λογισμικού: Ανανεώθηκε 2/6/09 12:57
Το μάθημα έχει δείξει βίαιες διαθέσεις - υποχρεωτική πλέον και η υλοποίηση, μείωση του υλοποιημένου project από 40% σε 30%, νέο βιβλίο με UML (πράγματι πολύ καλό από τον κ.Γιακουμάκη και τον κ.Διαμαντίδη) μέσα στην ύλη 650+ σελίδες. Οι βοηθοί φέτος είναι ιδιαίτερα πιο αυστηροί σε σχέση με πέρυσι (έδωσα πέρυσι και φέτος project) και οι απαιτήσεις είναι πολύ μεγαλύτερες. Σχετικά θετικά όλα αυτά. Δυστυχώς το μάθημα ακόμα δεν έχει απαγκιστρωθεί από τα ΔΡΔ και την επικουρική Ανάλυση και Σχεδίαση που κάνουμε στο μάθημα του κ.Κωνσταντόπουλου (Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων). Παρέχεται project και με ΔΡΔ, αλλά οι φοιτητές θα εξεταστούν και σε UML (για την ακρίβεια κυρίως σε UML). Αν το project υλοποιηθεί σε "αντικειμενοστεφή" php και mysql προσεγγίζει πάλι να είναι μια δύσκολη μορφή project των βάσεων + τα 50-70 διαγράμματα UML κατά την Ανάλυση και τη Σχεδίαση. Στα παραδείγματα του φροντιστηρίου "ύπουλα" πέρασαν και κάποια Design Patterns (βλ. http://www.amazon.com/First-Design-Patt ... 0596007124, http://www.amazon.com/Design-Patterns-O ... 0201633612), όπως το Data-Access-Object Pattern, το MVC Pattern και το Factory Pattern που όμως έπρεπε να τα διδάξει και ο κ. Γιακουμάκης ξεχωριστά (πλέον περιέχονται και στο βιβλίο του που δεν είναι σκέτο μπλα μπλα όπως τα δύο παλιά του - Συγχαρητήρια!).
Οι διαφάνειες του δεν είναι ιδιαίτερα βοηθητικές, οπότε καλό θα ήταν το μάθημα να κατευθυνθεί με βάση το νέο του βιβλίο και μόνο σε UML πια, και οι διαφάνειες να ξαναγίνουν εξ αρχής...shodanjr_gr wrote: Θεωρώ το να διδάσκεις design patterns με το τσιγγέλι είναι λάθος. Παράγεις προγραμματιστές "βόδια" (συγγνώμη για την έκφραση)". Όπως λένε και κάποιο, τα patterns πρέπει να πηγάζουν από τον κώδικα και όχι να ορίζουν τον κώδικα
Αυτόματα και Πολυπλοκότητα: Ανανεώθηκε 2/6/09 12:57
Ένα μάθημα που φέτος θα είναι κάπως πιο έυκολο μιας και το ανέλαβε σε αντίθεση με την κ.Παπαδοπούλου που είχε κάπως μεγάλες απαιτήσεις. Η κ.Φουστούκου ώς γνήσια μαθηματικός είναι υπέρμαχος του φορμαλισμού, οπότε το κομμάτι των Turing Machines μάλλον θα περιέχει μεγαλύτερη δυσκολία. Αρκετά σημαντικό μάθημα αλλά δυστυχώς σε εργαστήρια έπρεπε να διδάσκονται Regular Expressions π.χ. για την Java. Με κάποια applets θα μπορούσε να δεθεί καλύτερα με την υπόλοιπη πληροφορική και να δείξει εφαρμογές που πραγματικά χρειάζονται αυτόματα... Τα δε Turing Machines αν δεν παραγίνει το θέμα της θεωρίας (που είναι αρμοδιότητα του μαθήματος "Υπολογισιμότητα" κατά κύριο λόγο), κλείνει κάποιες τρύπες και των αλγορίθμων σε σχέση με την αποφασισημότητα, αλλά και κατ' επέκταση και την κλάση προβλημάτων.
Εξετάσεις Ανανεώθηκε 2/6/09 14:33
Τα παρατράγουδα δυστυχώς συνεχίζονται και στην πολλή σημαντική διαδικασία των Εξετάσεων. Φοιτητές που πηγαίνουν μαζικά στις τουαλέτες ή που ανοίγουν ολόκληρα βιβλία ακόμα και του μεγέθους της Τεχνητής Νοημοσύνης (1200 σελίδες) την ώρας της εξέτασης (το έχω δει). Ακόμα μου έχει τύχει να πάω κάποιες φορές σε τυχαία τουαλέτα στα 20 μαθήματα που έχω δώσει και έχω συναντήσει βιβλίο πληροφορικής μέσα - τουλάχιστον 4 φορές.
Ακόμα τα φαινόμενα - ά δεν μπορώ να περάσω οικονομικά - αλλάζω την φωτό στο πάσο μου και δίνει ένας οικονομικάριος για μένα είναι πολύ συνήθη. Ως ηθικός και τίμιος που είμαι θα μπορούσα να κάνω και εγώ τα ίδια ή να βγω έξω "για τουαλέτα" και να μιλήσω με συναδέλφους μου που έχουν τελειώσει, ή να μάθω τις έτοιμες λύσεις από το υπόγειο, ή να πάρω με το κινητό μου ένα τηλέφωνο στον φίλο μου τον master-guru στο μάθημα..
Μερικές απλές λύσεις:
Να απαγορεύεται (με εξαίρεση προβλήματα υγείας) η τουαλέτα και η έξοδος από την αίθουσα κατα τη διάρκεια της εξέτασης, και οι φοιτητές πάνε ακριβώς πριν την εξέταση αν έχουν τέτοια ανάγκη. Το ίδιο ισχύει και για το τσιγάρο (στον κλειστό χώρο χεχε

Η εξέταση να γίνεται αποδεκτή με την παρουσία αστυνομικής ταυτότητας και μόνο. Ώστε η παραποίηση του δημόσιου έγγραφου της ταυτότητας να μη γίνεται με 2 απλά συρραπτικά.
Άλλη μια εναλλακτική λύση είναι το πάσο και η φοιτητική ταυτότητα να πλαστικοποιούνται ώστε να μην δίνεται η δυνατότητα αλλαγής φωτογραφίας ή άλλων στοιχείων.
Ακόμα και με αυτά τα μέτρα τα απολύτως όμοια αδέλφια δεν μπορούν να εντοπιστούν



...more coming soon... Περιμένω δικές σας απόψεις όπως είπα και στην αρχή γιατί θέλουμε την Πληροφορική που μας αξίζει!

Zifnab