Το Πρόγραμμα Σπουδών του Τμήματος

Οι μηχανικοί λογισμικού...

Η Τεχνολογία Λογισμικού (Software Engineering) είναι ένα ευρύ πεδίο έρευνας, εφαρμογών, τεχνολογιών, μεθόδων και εργαλείων, με μεγάλη ζήτηση στην αγορά εργασίας. Ενδεικτικό είναι ότι περισσότερα από 10 πανεπιστήμια στις ΗΠΑ έχουν αυτόνομο προπτυχιακό πρόγραμμα σε Software Engineering.

Στόχοι Κατεύθυνσης

Η κατεύθυνση Λογισμικού αποσκοπεί να εκπαιδεύσει, να εξοικειώσει, και να εξειδικεύσει τους φοιτητές σε:

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

Ο φοιτητής που θα ακολουθήσει την κατεύθυνση, θα πρέπει να γνωρίζει ότι ο Μηχανικός Λογισμικού δεν είναι μόνο Προγραμματιστής, αλλά μπορεί να εξειδικευτεί και να εργαστεί σε μια σειρά από άλλες ειδικότητες. Ενδεικτικά αναφέρουμε κάποιες τέτοιες περιοχές ειδικοτήτων σύμφωνα με το EEE's Software Engineering Body of Knowledge

  • Ανάλυση Απαιτήσεων Λογισμικού (Software requirements analysis)
  • Σχεδιασμός Λογισμικού (Software design)
  • Κατασκευή Λογισμικού (Software Programming)
  • Έλεγχος Λογισμικού (Software testing)
  • Συντήρηση Λογισμικού (Software maintenance)
  • Software configuration management
  • Διαχείριση Τεχνολογίας Λογισμικού (Software Engineering management)
  • Διαδικασία Ανάπτυξης Λογισμικού (Software Engineering process)
  • Εργαλεία και μέθοδοι Τεχνολογίας Λογισμικού (Software Engineering tools and methods)
  • Ποιότητα Λογισμικού (Software Quality)

Σημασία για τους απόφοιτους

Λόγω της μεγάλης ποικιλίας των σημερινών απαιτήσεων σε λογισμικό, το πρόγραμμα της κατεύθυνσης είναι προσεκτικά σχεδιασμένο ώστε να:

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

Στόχοι γνώσης

Οι φοιτητές που θα επιλέξουν και θα ακολουθήσουν την κατεύθυνση Λογισμικού θα αποκομίσουν θεωρητικές γνώσεις και τεχνική κατάρτιση υψηλού επιπέδου σε τεχνολογικά αντικείμενα όπως:

  • Αρχές Τεχνολογίας Λογισμικού – Κύκλος Ζωής Λογισμικού
  • Ολοκληρωμένα Πληροφοριακά Συστήματα και Ασφάλεια Συστημάτων
  • Συστήματα Διαχείρισης Δεδομένων (data analytics, κατανεμημένα συστήματα αποθήκευσης δεδομένων, data mining, κοκ)
  • Ανάπτυξη συστημάτων Παγκοσμίου Ιστού – Σημασιολογικός Ιστός
  • Ανάπτυξη λογισμικού σε φορητές συσκευές
  • 2Δ & 3Δ Γραφικά Υπολογιστών
  • Σχεδιασμός Περιβάλλοντος Αλληλεπίδρασης
  • Παράλληλος και Κατανεμημένος Προγραμματισμός
  • Τεχνικές Υπολογιστικού Νέφους (Cloud Computing)
  • Επιχειρησιακή έρευνα, Βελτιστοποίηση και Αλγόριθμοι
  • Τεχνητή νοημοσύνη & Διάχυτος Υπολογισμός
  • Έλεγχος και ποιότητα λογισμικού

Οι φοιτητές θα εκπαιδευτούν και καταρτιστούν στις παρακάτω ενδεικτικές τεχνολογίες και περιβάλλοντα:

Τεχνολογίες:

  • Development Process: Rational Unified Process
  • Design: MVC, UML
  • Data Formats: XML/JSON
  • Web Client-side Programming: jQuery/jQueryMobile/AJAX
  • Web Server-side Programming: PHP/MySQL, ASP.NET/C#,
  • Semantic Web: OWL/RDF/SPARQL/RuleML, SOAP/WSDL/UDDI
  • Parallel Programming: MPI, Java Threads, OpenMP, OpenCL, CUDA
  • 3D Graphics: VRML

Πλατφόρμες/Εργαλεία:

  • Java EE
  • XAMPP, Content Management Systems
  • Apache Hadoop / Amazon AWS
  • Android Studio
  • Cloudera

Μαθήματα

Εξάμηνο Ε’ (υποχρεωτικά όλα)

  • ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ (Λ 501)
  • ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ (Λ 502)
  • ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΩΝ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ (Λ 503)
  • ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ (Λ 504)
  • ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ (Λ 505)
  • ΠΑΡΑΛΛΗΛΑ ΣΥΣΤΗΜΑΤΑ & ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Λ 506)

Εξάμηνο ΣΤ’ (υποχρεωτικά όλα)

  • ΣΧΕΔΙΑΣΜΟΣ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ (Λ 601)
  • ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (Λ 602)
  • ΚΑΤΑΝΕΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Λ 603)
  • ΔΙΑΧΥΤΟΣ ΥΠΟΛΟΓΙΣΜΟΣ (Λ 604)
  • ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΠΑΓΚΟΣΜΙΟΣ ΙΣΤΟΣ (Λ 605)
  • ΥΠΟΛΟΓΙΣΤΙΚΗ ΝΟΗΜΟΣΥΝΗ (Λ 606)

Εξάμηνο Ζ’ (υποχρεωτικά όλα)

  • ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ (Λ 701)
  • ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ (Λ 702)
  • ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ (Λ 703)
  • ΕΛΕΓΧΟΣ & ΕΞΑΣΦΑΛΙΣΗ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (Λ 704)

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

Ενδεικτικές υποδομές

Εργαστήριο Ηλεκτρονικής Επιχειρηματικότητας και Σχεδιασμού Αλληλεπίδρασης [eBusiness &User Experience Lab]

Distributed/Parallel & Knowledge Management Systems (DISK)

Σύνδεση με μεταπτυχιακά

Η κατεύθυνση Λογισμικού προσφέρει:

  • Ισχυρή διασύνδεση με το Πρόγραμμα Μεταπτυχιακών Σπουδών του Τμήματός μας
  • Πρόσβαση σε ομοειδή ΠΜΣ Πανεπιστημίων της Ελλάδας και του εξωτερικού. Σχεδόν όλα τα τμήματα πληροφορικής στην Ελλάδα και αρκετά στα ΤΕΙ παρέχουν μεταπτυχιακά προγράμματα εξειδίκευσης σε διάφορες περιοχές της Μηχανικής Λογισμικού όπως: Information Systems, Web and Mobile Applications, Data Analytics, Security κά.

Σύνδεση με τις άλλες κατευθύνσεις

Οι Μηχανικοί Λογισμικού μπορούν να εργαστούν σε στενή συνεργασία με μηχανικούς των άλλων κατευθύνσεων στην υλοποίηση του απαραίτητου λογισμικού για ενσωματωμένα συστήματα, διαχείριση συστημάτων υλικού, διαχείριση δικτύων, υλοποίηση δικτυακών πρωτοκόλλων, κά

Σύνδεση με την αγορά εργασίας

Τα μαθήματα της κατεύθυνσης Λογισμικού έχουν σχεδιαστεί να καλύπτουν τις ανάγκες της αγοράς εργασίας και προσφέρει στους αποφοίτους επαγγελματική εξειδίκευση σε διάφορους τομείς με μεγάλη ζήτηση στην αγορά εργασίας, όπως:

  • Προγραμματισμός / Ανάπτυξη εφαρμογών
  • Τεχνολογίες Υπολογιστικού Νέφους
  • Ανάπτυξη συστημάτων παγκοσμίου ιστού
  • Σχεδιασμός, ανάπτυξη και διαχείριση ΒΔ και Data Centers.
  • Σχεδιασμός και ανάπτυξη εφαρμογών για κινητές συσκευές
  • Έλεγχος και εξασφάλιση ποιότητας λογισμικού
  • Τεχνητή Νοημοσύνη και Διάχυτος Υπολογισμός
  • Συστήματα διαχείρισης δεδομένων και εξόρυξης γνώσης