ΠΛΣ50: Βασικές εξειδικεύσεις σε θεωρία και λογισμικό

Κωδικός ΘΕ: ΠΛΣ50

Πιστωτικές Μονάδες ECTS: 24

Τύπος ΘΕ: Υποχρεωτική

Έτος που προσφέρεται: 1ο έτος

Συντονιστής ΘΕ: ΒΑΣΙΛΑΚΟΠΟΥΛΟΣ ΜΙΧΑΗΛ

Γλώσσα Διδασκαλίας: Ελληνική

Μαθησιακά αποτελέσματα

Με την επιτυχή ολοκλήρωση της θεματικής ενότητας, οι φοιτητές θα γνωρίζουν, θα καταλαβαίνουν και θα είναι σε θέση να κάνουν τα παρακάτω.

Γνώση:

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

Κατανόηση/Εφαρμογή:

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

Επίλυση προβλημάτων:

  • Να συγκρίνουν τεχνικές προγραμματισμού για υλοποίηση συγκεκριμένων ενεργειών.
  • Να επιλέγουν μεταξύ αλγορίθμων και δομών δεδομένων για την επίλυση συγκεκριμένων προβλημάτων.
  • Να δημιουργούν αποδοτικές λύσεις αναπτύσσοντας αλγόριθμους και δομές δεδομένων ως συνδυασμούς ή/και επεκτάσεις υπαρχόντων για την επίλυση συγκεκριμένων προβλημάτων.
  • Να αναλύουν  την πολυπλοκότητα ενός αλγορίθμου συνδυάζοντας και επεκτείνοντας γνωστές τεχνικές.
  • Να προτείνουν εναλλακτικές επιλογές και να συγκρίνουν τα πλεονεκτήματά τους, κατά τα στάδια ανάπτυξης συστημάτων λογισμικού.

Περιεχόμενο (syllabus)

Γλώσσες προγραμματισμού

Εκμάθηση προγραμματισμού (μέσω γλώσσας προγραμματισμού), με έμφαση σε  τύπους δεδομένων, δομές ελέγχου ροής και επανάληψης προγράμματος, συναρτήσεις/μεθόδους, απλές και σύνθετες δομές δεδομένων, διαχείριση μνήμης, διαχείριση αρχείων, αναδρομικότητα, διαχείριση αλφαριθμητικών, κλάσεις και αντικείμενα, κληρονομικότητα, ενθυλάκωση, αφαίρεση, πολυμορφισμό.

Δομές δεδομένων και Αλγόριθμοι

Μελέτη δομών για την οργάνωση και την αποδοτική επεξεργασία δεδομένων. Γραμμικές (λίστες, ουρές, στοίβες) και μη γραμμικές (δυαδικά δένδρα και σωροί) δομές δεδομένων. Τεχνικέςκατακερματισμού. Αλγόριθμοι αναζήτησης και ταξινόμησης. Αλγόριθμοι γραφημάτων. Αλγόριθμοι  διαίρει-και-βασίλευε. Δυναμικός προγραμματισμός. Ανάλυση πολυπλοκότητας αλγορίθμων.

Τεχνολογία Λογισμικού

Μέθοδοι, εργαλεία και διαδικασίες για την ανάπτυξη και συντήρηση συστημάτων λογισμικού. Μοντέλα κύκλου ζωής λογισμικού. Δομημένη ανάλυση λογισμικού. Δομημένη σχεδίαση λογισμικού. Αντικειμενοστρεφής ανάπτυξη λογισμικού και ενοποιημένη γλώσσα μοντελοποίησης. Μοντελοποίηση λειτουργικών απαιτήσεων με περιπτώσεις χρήσης. Μοντελοποίηση στατικής δομής με διαγράμματα κλάσεων. Εξελίξεις τεχνολογίας λογισμικού.

Γενική Περιγραφή της ΘΕ: Κύριος σκοπός της ΘΕ είναι να κατανοήσουν οι φοιτητές ότι οι γλώσσες προγραμματισμού είναι το τεχνικό υπόβαθρο, πάνω στο οποίο αναπτύσσονται οι απαιτούμενες έννοιες των αλγορίθμων ως μεθοδολογίες επίλυσης προβλημάτων και της τεχνολογίας λογισμικού ως προσέγγισης στο πρόβλημα της ανάπτυξης συστημάτων λογισμικού. Με μία συνδυασμένη κάλυψη των αντικειμένων, «Αλγόριθμοι και Πολυπλοκότητα» «Γλώσσες Προγραμματισμού» και «Τεχνολογία Λογισμικού», σκοπός είναι να αποκτήσει ο φοιτητής βασικές γνώσεις για αλγορίθμους επίλυσης προβλημάτων, τεχνικές, εργαλεία και γλώσσες προγραμματισμού, καθώς και αρχές ανάπτυξης προγραμμάτων, και θεωρητικές και εφαρμοσμένες γνώσεις σχετικά με την εφικτότητα ή την πρακτικότητα των αλγοριθμικών επιλύσεων ορισμένων προβλημάτων. Αυτά θα γίνουν στα πλαίσια της κατανόησης ότι η Πληροφορική είναι μία εφαρμοσμένη επιστήμη της μηχανικής, η οποία παρέχει ένα σύνολο τεκμηριωμένων αρχών, μεθοδολογιών και τεχνικών, με τη βοήθεια των οποίων μπορεί κανείς να αναπτύξει ποιοτικά προϊόντα λογισμικού.

Γνωστικά αντικείμενα της ΘΕ:
1. Αλγόριθμοι και Πολυπλοκότητα
2. Γλώσσες Προγραμματισμού
3. Τεχνολογία Λογισμικού

Διδακτικό υλικό: Οι Εκδόσεις του ΕΑΠ για την ΘΕ είναι διαθέσιμες εδώ!

Προαπαιτούμενα: Στο πρώτο έτος ο φοιτητής πρέπει να παρακολουθήσει υποχρεωτικά πρώτα τη ΘΕ ΠΛΣ50 και έπειτα τη ΘΕ ΠΛΣ51 (ή και τις δύο παράλληλα).

Μέθοδος Διδασκαλίας:
Εξ αποστάσεως εκπαίδευση με διεξαγωγή πέντε Ομαδικών Συμβουλευτικών Συναντήσεων κατά τη διάρκεια του ακαδημαϊκού έτους σε Σαββατοκύριακα.

Αξιολόγηση: Εκπόνηση γραπτών εργασιών κατά τη διάρκεια του ακαδημαϊκού έτους ο μέσος όρος των βαθμών των οποίων συμμετέχει στη διαμόρφωση του τελικού βαθμού της ΘΕ κατά 30%, εφόσον υπάρξει προβιβάσιμος στις τελικές ή επαναληπτικές εξετάσεις. Τελικές γραπτές εξετάσεις ο βαθμός των οποίων συμμετέχει στη διαμόρφωση του τελικού βαθμού της ΘΕ κατά 70%. Για περισσότερες πληροφορίες πιέστε εδώ!

Main Menu