Παρουσίαση/Προβολή
Ανάπτυξη Λογισμικού για Πληροφοριακά Συστήματα
(Κ23α) - Γιάννης Ιωαννίδης
Περιγραφή Μαθήματος
Το μάθημα Κ23α "Ανάπτυξη Λογισμικού για Πληροφοριακά Συστήματα" αποτελεί ένα από τα μαθήματα για την κατοχύρωση του μαθήματος κορμού Κ23.
Στόχος του μαθήματος είναι η ανάπτυξη εκτεταμένου και πολυεπίπεδου λογισμικού με σκοπό την αποτελεσματική διαχείριση μεγάλου όγκου δεδομένων.
Ημερομηνία δημιουργίας
Πέμπτη 10 Οκτωβρίου 2019
-
Συμπληρωματικά Στοιχεία:
Συνεργάτες Μαθήματος Ανάπτυξης Λογισμικού Πληροφορικής 2022-2023
Σαράντης Πασκαλής <paskalis@di.uoa.gr>
Περιεχόμενο Μαθήματος
ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ Κ23α : Ανάπτυξη Λογισμικού Πληροφορικής
Το μάθημα Κ23α Ανάπτυξη Λογισμικού Πληροφορικής συνίσταται σε μια εκτεταμένη υλοποίηση συστημάτων λογισμικού. Συγκεκριμένα το μάθημα συνήθως περιλαμβάνει την υλοποίηση μιας απλοποιημένης μορφής διαφόρων εσωτερικών επιπέδων ενός Συστήματος Βάσεων Δεδομένων: οργάνωση μπλοκ και εγγραφών στον δίσκο, στατική δομή δεδομένων σε αρχείο δίσκου (π.χ., πίνακας κατακερματισμού), δυναμική δομή δεδομένων σε αρχείο δίσκου (π.χ., Β+ δένδρο), κατάλογοι συστήματος, επεξεργασία και βελτιστοποίηση επερωτήσεων μιας απλοϊκής γλώσσας βάσεων, ορισμό και διαχείριση όψεων και περιορισμών, κτλ. Το μάθημα απαιτεί γνώση της ύλης (έστω και αν κάποιος δεν το έχει περάσει) του μαθήματος K18 Υλοποίηση Συστημάτων Βάσεων Δεδομένων και της γλώσσας C ή C++. Υποχρεωτικό προαπαιτούμενο είναι το μάθημα 'Υλοποίηση Συστημάτων Βάσεων Δεδομένων' και συνιστώμενο προαπαιτούμενο είναι το μάθημα 'Σχεδίαση και Χρήση Βάσεων Δεδομένων'.
Το μάθημα δεν θα διδάξει καινούργια ύλη. Εκτός από έναν ελάχιστο αριθμό από γενικές διαλέξεις στην αρχή, οι φοιτητές θα χωριστούν σε τμήματα των 10 ομάδων περίπου, με κάθε ομάδα να αποτελείται από 2-3 άτομα. Κάθε τμήμα θα ανατεθεί σε έναν συνεργάτη του μαθήματος, με τον οποίο και θα έχουν 2ωρη εβδομαδιαία επαφή. Κατά τη διάρκεια αυτών των συναντήσων, ο υπεύθυνος του τμήματος θα επεξηγεί το τρέχον τμήμα της εργασίας, θα καθοδηγεί στη συνέχειά του, θα ελέγχει την πρόοδο της κάθε ομάδας φοιτητών, και περιστασιακά θα εξετάζει κάθε ομάδα.
Το αντικείμενο το μαθήματος είναι ο εκτεταμένος προγραμματισμός, η εφαρμογή των βασικών θεμάτων των Βάσεων Δεδομένων, και η απόκτηση εμπειρίας σε συνεργασίες σε κάπως μεγαλύτερα προγραμματιστικά έργα.
ΔΙΑΛΕΞΕΙΣ - ΠΑΡΟΥΣΙΕΣ
Θα υπάρχουν φροντιστηριακά τμήματα τόσο με φυσική παρουσία, όσο και διαδικτυακά. Η συμμετοχή στις διαλέξεις στα τμήματα είναι απαραίτητη (στα διαδικτυακά τμήματα με ανοικτή κάμερα). Θα τηρείται απουσιολόγιο. Η συμπλήρωση 3 απουσιών σημαίνει ότι δεν θα μπορέσετε να αξιολογηθείτε στο μάθημα για την τρέχουσα περίοδο.
ΒΙΒΛΙΟ
Το μάθημα αυτό καθ' εαυτό δεν έχει βιβλίο. Τα απαιτούμενα στοιχεία γύρω από τις βάσεις δεδομένων, βρίσκονται στα βιβλία που πρέπει ήδη να έχετε από τα μαθημάτα των προηγουμένων εξαμήνων: Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων - 5η έκδοση (κυρίως ο 1ος τόμος, περιστασιακά ο 2ος), γραμμένο από τους Ramez Elmasri και Sham B. Navathe, και μεταφρασμένο από τον Ομότιμο Καθηγητή του Τμήματός μας Μιχάλη Χατζόπουλο. Άλλη ύλη που πιθανόν χρειάζεται θα διανεμηθεί ηλεκτρονικά.
ΕΡΓΑΣΙΕΣ
Όλα τα στάδια της εργασίας, είναι ομαδικά (δύο ή τριών ατόμων). Έχετε ελεύθερη επιλογή στην ομάδα που θα ενταχθείτε, αλλά κάντε την επιλογή σας προσεκτικά, γιατί αυτή θα είναι η ομάδα σας για όλο το εξάμηνο. Κάθε μέλος της ομάδας θα πάρει ξεχωριστό βαθμό ανάλογα με την συνεισφορά του στο όλο έργο. Στόχος είναι όλα τα μέλη της ομάδας να έχουν παρόμοια συνεισφορά ώστε να παίρνουν και τον ίδιο βαθμό εργασίας.
Κάτι προφανές: Οποιαδήποτε συζήτηση μεταξύ σας για τα θέματα μιας άσκησης, την θεωρία πάνω στην οποία αυτή βασίζεται, ή και ιδέες για το πώς μπορεί αυτή να προσεγγιστεί είναι θεμιτές και επιθυμητές, γιατί βοηθάνε στην καλύτερη κατανόηση της όλης ύλης. Το τελικό προϊόν μιάς άσκησης όμως (κώδικας ή γραπτό) πρέπει να είναι έργο αποκλειστικά της ομάδας που το υπογράφει. Οποιαδήποτε άλλη δυσάρεστη κατάσταση σε οποιαδήποτε άσκηση θα σημαίνει μηδενισμό στο μάθημα.
ΔΙΑΓΩΝΙΣΜΑ
Δεν υπάρχει γραπτό διαγώνισμα. Θα υπάρχει όμως ένας έλεγχος της δουλειάς που έκανε ο καθένας σας με τη μορφή μιας απλής υλοποίησης στο εργαστήριο κατά τη διάρκεια της εξεταστικής περιόδου. Ο έλεγχος θα είναι ατομικός, υποχρεωτικός, και θα γίνει μια φορά για κάθε φοιτητή. Κατά τη διάρκεια του ελέγχου στο εργαστήριο δεν θα έχετε πρόσβαση σε βιβλία ή προσωπικές σας σημειώσεις. Θα έχετε όμως πρόσβαση σε man pages, οι οποίες παρέχουν βοήθεια για όλες τις συναρτήσεις της C που θα χρειαστείτε (ορίσματα, επιστρεφόμενες τιμές, σύντομη περιγραφή λειτουργικότητας).
ΒΑΘΜΟΛΟΓΙΑ
Ο τελικός βαθμός του μαθήματος θα υπολογισθεί από την απόδοση στα διάφορα τμήματα του προγραμματιστικού έργου. Τα ποσοστά θα καθοριστούν όταν αποφασιστούν ακριβώς και τα τμήματα που τελικά θα υλοποιείσετε στη διάρκεια του εξαμήνου. Για να περάσει κανείς θα πρέπει να έχει συνολικό βαθμό τουλάχιστον 5, σε κάθε επιμέρους εργασία (παραδοτέο) τουλάχιστον 5, και να έχει επιτυχή απόδοση στον προγραμματιστικό έλεγχο (pass).