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

Ειδικότερα θεωρώ ως δεδομένη γνώση τα παρακάτω (τα πιο σημαντικά πρώτα)
1. Γνώση της C++.  Αυτό σημαίνει ότι γνωρίζετε βασικά πράγματα όπως:
    α) το νόημα και τη χρήση των static μεταβλητών και συναρτήσεων.
    β) τη χρήση των exceptions
    γ) τον ορισμό και τη χρήση των virtual συναρτήσεων (μεθόδων) καθώς και abstract συναρτήσεων
    δ) Τι είναι ο πολυμορφισμός; Πως εφαρμόζεται στη C++?
    ε) Τι είναι τα streams? πως για παράδειγμα μπορούν να χρησιμοποιηθούν για να μετατρέψουν ένα string  se int και το ανάποδο;
2. Γνώση των C++ STL containers. Αυτό σημαίνει ότι γνωρίζετε βασικά πράγματα όπως:
    α) vectors, list. Πως ορίζονται; Πως χρησιμοποιούνται
3. Γνώση των C++ STL algorithms. Αυτό σημαίνει ότι γνωρίζετε βασικά πράγματα όπως
  α) ιterators. Για παράδειγμα το να γράψετε κώδικα που να χρησιμοποιεί vector και iterator για να διατρέξει ένα σύνολο από αντικείμενα και να υπολογίσει το μέσο όρο π.χ. των ηλικιών 5 ανθρώπων, είναι κάτι που θα πρέπει να μπορείτε να το γράψετε χωρίς ιδιαίτερο κόπο σε κάτω από 5 λεπτά.
  β) αλγορίθμους (για παράδειγμα βρες το πρώτο και τελευταίο σημείο μιας λίστας). Για παράδειγμα θα πρέπει να μπορείτε να γράψετε πρόγραμμα που να μπορεί να αφαιρεί τα πρώτα ν και τα τελευταία κ στοιχεία από ένα string to ίδιο εύκολα όπως και στην περίπτωση α
4. Χρήση και ορισμός C++ templates.
  Έτσι θα πρέπει εύκολα να μπορείτε να υλοποιήσετε μια ουρά χρησιμοποιώντας ένα vector.

Τέλος έχω ζητήσει από όλους να μελετήσουν τη βιβλιοθήκη Log4 (cpp,j,cxx κτλ). Αυτό σημαίνει ότι ξέρετε να απαντήσετε σε ερωτήσεις όπως
1) Τί είναι και πως χρησιμοποιείται
2) Ποιά σχεδιαστικά προβλήματα έπρεπε να λύσει ο σχεδιαστής της βιβλιοθήκης; Πως τα έλυσε; Τι εναλλακτικές λύσεις είχε και γιατί δεν τις προτίμησε


Νίκος Πεταλίδης
 
   
Last modified: Tuesday, 25 February 2014, 10:28 PM