Please ensure Javascript is enabled for purposes of website accessibility

Παρουσίαση/Προβολή

Επιλέχθηκε εικόνα

Ανάπτυξη Λογισμικού για Πληροφοριακά Συστήματα

(Κ23α) -  Γιάννης Ιωαννίδης, Βαγγέλης Ατλιδάκης, Σαράντης Πασκαλής

Περιγραφή Μαθήματος

Το μάθημα Κ23α "Ανάπτυξη Λογισμικού για Πληροφοριακά Συστήματα" αποτελεί ένα από τα μαθήματα για την κατοχύρωση του μαθήματος κορμού Κ23.

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

Ημερομηνία δημιουργίας

Πέμπτη 10 Οκτωβρίου 2019

  • Περίγραμμα

    Συμπληρωματικά Στοιχεία:

    Συνεργάτες Μαθήματος Ανάπτυξης Λογισμικού Πληροφορικής

    Σαράντης Πασκαλής <paskalis@di.uoa.gr>

     

     

    Περιεχόμενο Μαθήματος

    ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ Κ23α : Ανάπτυξη Λογισμικού για Πληροφοριακά Συστήματα

     

    Το μάθημα Κ23α Ανάπτυξη Λογισμικού Πληροφορικής συνίσταται σε μια εκτεταμένη υλοποίηση συστημάτων λογισμικού. Συγκεκριμένα το μάθημα συνήθως περιλαμβάνει την υλοποίηση μιας απλοποιημένης μορφής διαφόρων εσωτερικών επιπέδων ενός Συστήματος Βάσεων Δεδομένων: οργάνωση μπλοκ και εγγραφών στον δίσκο, στατική δομή δεδομένων σε αρχείο δίσκου (π.χ., πίνακας κατακερματισμού), δυναμική δομή δεδομένων σε αρχείο δίσκου (π.χ., Β+ δένδρο), κατάλογοι συστήματος, επεξεργασία και βελτιστοποίηση επερωτήσεων μιας απλοϊκής γλώσσας βάσεων, ορισμό και διαχείριση όψεων και περιορισμών, κτλ. Το μάθημα απαιτεί γνώση της ύλης (έστω και αν κάποιος δεν το έχει περάσει) του μαθήματος K18 Υλοποίηση Συστημάτων Βάσεων Δεδομένων και της γλώσσας C ή C++. Υποχρεωτικό προαπαιτούμενο είναι το μάθημα 'Υλοποίηση Συστημάτων Βάσεων Δεδομένων' και συνιστώμενο προαπαιτούμενο είναι το μάθημα 'Σχεδίαση και Χρήση Βάσεων Δεδομένων'.

     

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

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

     

    ΔΙΑΛΕΞΕΙΣ - ΠΑΡΟΥΣΙΕΣ

     

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

     

    ΒΙΒΛΙΟ

     

    Το μάθημα αυτό καθ' εαυτό δεν έχει βιβλίο. Τα απαιτούμενα στοιχεία γύρω από τις βάσεις δεδομένων, βρίσκονται στα βιβλία που πρέπει ήδη να έχετε από τα μαθημάτα των προηγουμένων εξαμήνων: Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων - 5η έκδοση (κυρίως ο 1ος τόμος, περιστασιακά ο 2ος), γραμμένο από τους Ramez Elmasri και Sham B. Navathe, και μεταφρασμένο από τον Ομότιμο Καθηγητή του Τμήματός μας Μιχάλη Χατζόπουλο. Άλλη ύλη που πιθανόν χρειάζεται θα διανεμηθεί ηλεκτρονικά.

     

    ΕΡΓΑΣΙΕΣ

     

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

     

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

     

    ΔΙΑΓΩΝΙΣΜΑ

     

    Δεν υπάρχει γραπτό διαγώνισμα. Θα υπάρχει όμως ένας έλεγχος της δουλειάς που έκανε ο καθένας σας με τη μορφή του ελέγχου λαθών κώδικα για ένα κομμάτι κώδικα με συγκεκριμένες προδιαγραφές. Ο έλεγχος θα είναι ατομικός, υποχρεωτικός, και θα γίνει μια φορά για κάθε φοιτητή. Κατά τη διάρκεια του ελέγχου στο εργαστήριο δεν θα έχετε πρόσβαση σε Internet, βιβλία ή προσωπικές σας σημειώσεις. Θα έχετε όμως πρόσβαση σε man pages, οι οποίες παρέχουν βοήθεια για όλες τις συναρτήσεις της C που θα χρειαστείτε (ορίσματα, επιστρεφόμενες τιμές, σύντομη περιγραφή λειτουργικότητας).

     

    ΒΑΘΜΟΛΟΓΙΑ

     

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