Τμήμα Μηχανολόγων Μηχανικών

Ελληνικό Μεσογειακό Πανεπιστήμιο

Προχωρημένος Προγραμματισμός

    
Το μάθημα έχει ως στόχο:

  1. να εισάγει τους φοιτητές στην C (μια γλώσσα χαμηλού επιπέδου)
  2. να παρουσιάσει έννοιες αντικειμενοστραφούς προγραμματισμού στην C++, και τέλος
  3. να παρουσιάσει προχωρημένες έννοιες προγραμματισμού.

Το μάθημα χωρίζεται σε τρεις ενότητες:

  1. Προγραμματισμός σε C,
  2. Αντικειμενοστραφής προγραμματισμός
  3. Προχωρημένες έννοιες.

Η ενότητα  Προγραμματισμός σε C, περιλαμβάνει τα ακόλουθα θέματα:

  • Αναπαράσταση αριθμών στο δυαδικό/οκταδικό/δεκαεξαδικό σύστημα
  • Τελεστές: αριθμητικοί, λογικοί, σχεσιακοί, bitwise
  • Δομές δεδομένων 
  • Συναρτήσεις και μεταβλητές
  • Τελεστές
  • Έλεγχος ροής
  • Πίνακες
  • Δείκτες (Pointers), αριθμητικές διευθύνσεις, πίνακας δεικτών
  • Interrupts (ρουτίνες διακοπής προγράμματος).

Η ενότητα  Aντικειμενοστραφής προγραμματισμός, περιλαμβάνει έννοιες όπως:

  • Τι είναι ο αντικειμενοστραφής προγραμματισμός στην C++
  • Κλάσσεις και αντικείμενα
  • Constructor και ~
  • Αντικείμενα σαν ορίσματα συναρτήσεων
  • Κληρονομικότητα (Inheritance),
  • Yπερφορτωση (Overloading)
  • Ενθυλάκωση (Encapsulation),  Πρόσβαση στις συναρτήσεις
  • Αφαίρεση (Abstraction),
  • Πολύμορφισμός (Polymorphism),
  • Διασυνδέσεις (Interfaces)
  • Σύγκριση με άλλες αντικειμενοστρεφείς γλώσσες.

Η ενότητα Προχωρημένες έννοιες C παρουσιάζει τις ακόλουθες έννοιες:

  • Αρχεία (Files and streams)
  • Διαχείριση Σφαλμάτων/Εξαιρέσεων
  • Δυναμική Παραχώρηση μνήμης
  • Ονοματοχώροι (Namespaces)
  • Πρότυπα (templates) και Γενικός Προγραμματισμός (Generic Programming)
  • Διαχείριση Σημάτων (Signal Handling)/Interrupts
  • Design Patterns

Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές / τριες θα είναι σε θέση να:

  • Γράψουν, να μεταγλωττίσουν και να εκτελέσουν ένα πρόγραμμα σε γλώσσα C
  • επιλέξουν τους τύπους δεδομένων και τους αλγόριθμους που είναι κατάλληλοι για την αρχιτεκτονική,
  • να κατανοήσουν έννοιες αντικειμενοστραφούς προγραμματισμού και να αντιληφθούν διαφορές με τις άλλες προσεγγίσεις (διαδικασιακός, συναρτησιακός).
  • Είναι ικανοί να χρησιμοποιήσουν πιο προχωρημένες λειτουργίες της C++.
  • Υλοποιήσουν μια κλάση με τις απαραίτητες σχεδιαστικές αρχές, για την επίλυση ενός προβλήματος
  • Βελτιώσουν την ικανότητα τους να λύσουν προβλήματα

Απαιτούμενες γνώσεις: Πληροφορική, Πληροφορική για Μηχανικούς.