Οντοκεντρικός Προγραμματισμός ΙΙ (C++)

(πρώην ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ)
Ακαδημαϊκό έτος 2014-2015
 

ΔΙΔΑΣΚΟΝΤΕΣ (2014-2015)
Επίκ. καθ. Χρήστος Μακρής (makri@ceid.upatras.gr),  Επικ. καθ. Ιωάννης Χατζηλυγερούδης (ihatz@ceid.upatras.gr)


 Επικουρικό:
Γ. Πισπιρίγκος  (email: pispirig@ceid.upatras.gr)
 

K. Κόβας  (email: kobas@ceid.upatras.gr)
 


Ανακοινώσεις
17-2-2016 Βαθμολογία εξέτασης Φεβρουαρίου 2016, μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Παρασκευή 17.2.2016, 10.00-11:00 στο γραφείο του κ. Μακρή, μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
22-10-2015 Για όσους είναι 3ο έτος και άνω ισχύουν τα διαδικαστικά (όσον αφορά ποσοστά % project και γραπτών) του παλιού μαθήματος. Απλώς μέχρι το Φλεβάρη 2016 (αν πραγματοποιηθεί άτυπη) θα έχετε το project του 2015, ενώ από το νέο εξάμηνο (και κάθε νέο εξάμηνο) θα έχετε το αντίστοιχο project c++ του μαθήματος Οντοκεντρικού - ενώ η ύλη θα καθορίζεται από τη θεωρία C++ του νέου μαθήματος του 2ου εξαμήνου. Οι γραπτές εξετάσεις κάθε εξεταστικής θα δίνονται μαζί με το μάθημα Οντοκεντρικός απλώς για τους παλιούς φοιτητές θα υπάρχουν ξέχωρα θέματα ΑΠΟΚΛΕΙΣΤΙΚΑ ΓΙΑ C++.
22-9-2015 Βαθμολογία εξέτασης Σεπτεμβρίου 2015, μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Δευτέρα 28.9.2015, 18.00-19:00 στο γραφείο του κ. Χατζηυγερούδη και του κ. Μακρή, μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
2-9-2015 Το project Οντοκεντρικού ΙΙ θα εξεταστεί τελικά την Δευτέρα 7.9, 11:00-13:00, στην μικρή αίθουσα του Υ/Κ (στην ημερομηνία παράδοσης έχει δοθεί μία μικρή παράταση μέχρι 5.9). Παρακαλείστε ΟΛΕΣ ΟΙ ΟΜΑΔΕΣ ΝΑ ΕΙΝΑΙ ΕΚΕΙ ΑΠΌ ΤΙΣ 11:00,
5-7-2015 Βαθμολογία εξέτασης Ιουλίου 2015, μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Τρίτη 7.7.2015, 14.00-15:00 στο γραφείο του κ. Μακρή μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
1-6-2015 Η ημερομηνία εξέτασης του project θα είναι η 30.6, 09:00, θα βγει πρόγραμμα με βάση ποιοι έχουν στείλει εργασία και με βάση αν η εξέταση είναι για τους επι διπλώματι ή πλήρης (θα ενημερωθείτε γι αυτο μετά την σύγκλητο της Πέμπτης 4.6),
17-5-2015 Ενόψει της πλήρης εξεταστική Ιουνίου (αυτή είναι σίγουρη για τους επί πτυχίω, με ένα ερωτηματικό για το αν ισχύει για όλους που θα επιλυθεί άμεσα) όοοι φοιτητές (δεύτερου έτους και άνω) θέλουν να παραδώσουν το project c++ του χειμερινού εξαμήνου μπορούν να το κάνουν μέχρι 8.6.2015 (έχει ανοίξει ήδη σχετικός φάκελος στο e_class). H ημερομηνία εξέτασης του project θα οριστεί σε νέα ημερομηνία μετά την εξέταση του μαθήματος (ΘΑ ΕΝΗΜΕΡΩΘΕΊΤΕ ΓΙΑ ΤΗΝ ΗΜΕΡΟΜΗΝΙΑ ΜΕΤΑ ΤΗΝ ΑΝΑΚΟΙΝΩΣΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΤΗΣ ΠΛΗΡΗΣ ΕΞΕΤΑΣΤΙΚΗΣ),
20-2-2015 Βαθμολογία εξέτασης Φεβρουαρίου 2015, μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Τετάρτη 25.2.2015, 11.00-12:00 στο γραφείο του κ. Μακρή και του κ. Χατζηλυγερούδη, μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
27-1-2015 Ανακοινώθηκε το πρόγραμμα εξέτασης (pdf)για το project C++ (2.2.2015, 09:00-13:00).
7-1-2015 H ημερομηνία παράδοσης του project c++ παρατείνεται μέχρι 17.1.2015. Το project θα εξεταστεί στις 2.2.2015, στο Υ/Κ 09:00-13:00 (15-20 λεπτά η κάθε ομάδα, θα ενημερωθείτε μετά την παράδοση ολων των projects).
30-10-2014 Κάθε Τετάρτη 17:00-19:00 όποιος φοιτητής θέλει μπορεί να έρχεται στο γραφείο του κ. Κόβα (απέναντι απο το γραφείο του κ. Χατζηλυγερούδη) για απορίες σχετικές με το project. Aν ο κ. Κόβας λείπει μπορούν να έρχονται από το γραφείο του κ. Μακρή, Τετάρτη 18:10-19:10.
13-10-2014 Ανακοίνωση project Χειμερινου Εξαμήνου 2014-2015
23-9-2014 Το πρώτο μάθημα θεωρίας Οντοκεντρικού Προγραμματισμού ΙΙ, για το ακαδημαικό έτος 2014/2015 ξεκινά την Τρίτη 30.9, 09:00-11:00 στην αίθουσα Β4. Το φροντιστήριο/εργαστήριο του μαθήματος πραγματοποιείται κάθε Tετάρτη 19:00-21:00, στην Β4 και ξεκινά στις 8.10.
7-1-2015 H ημερομηνία παράδοσης του project c++ παρατείνεται μέχρι 17.1.2015. Το project θα εξεταστεί στις 2.2.2015, στο Υ/Κ 09:00-13:00 (15-20 λεπτά η κάθε ομάδα, θα ενημερωθείτε μετά την παράδοση ολων των projects).
11-9-2014 Βαθμολογία εξέτασης Σεπτεμβρίου 2014, μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Δευτέρα 15.9.2014, 09.00-10:00 στο γραφείο του κ. Μακρή μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
20-8-2014 (υπενθύμιση project σεπτεμβρίου 2014) Όσοι φοιτητές θέλουν να συμμετέχουν στην εξετάσεις Σεπτεμβρίου και δεν έχουν φέρει project φέτος , μπορούν να μας το στείλουν μέχρι μία μέρα (28.8) πριν την εξέταση του μαθήματος στο e_class (έχει αναρτηθεί φάκελος υποβολής με τίτλο Σεπτέμβριος 2014 Project c++ (διαφορετικός από τον αντίστοιχο φάκελο του Φεβρουαρίου και Ιουνίου)) και θα εξεταστούν σε ημερομηνία που θα ανακοινωθεί αμέσως μετά την παράδοση του (στις 29.8). H συμμετοχή του project για όσους το φέρουν στις εξετάσεις Σεπτεμβρίου θα είναι 15% (χωρις γραφική διεπαφή) - 20% (με γραφική διεπαφή).
3-7-2014 Βαθμολογία εξέτασης Iουλίου 2014, μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Δευτέρα 7.7 10.00-11:00 στο γραφείο του κ. Μακρή μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
1-3-2014 Βαθμολογία εξέτασης Φεβρουαρίου 2014, μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Tρίτη 4.3 19.00-20:00 στο γραφείο του κ. Κόβα (δίπλα από το γραφείο του κ. Χατζηλυγερούδη) μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
16-10-2013 Ανακοίνωση project Χειμερινου Εξαμήνου 2013-2014
2-10-2013 Το πρώτο μάθημα θεωρίας Οντοκεντρικού Προγραμματισμού ΙΙ, για το ακαδημαικό έτος 2013/2014 ξεκινά την ΤΡΙΤΗ 8.10, 09:00-11:00 στην αίθουσα Β4. Το φροντιστήριο/εργαστήριο του μαθήματος πραγματοποιείται κάθε Δευτερα 17:00-19:00 και ξεκινά στις 14.10 (από 5.12 θα γίνεται Πέμπτη 19:00-21:00 στην Β4),
30-09-2013 Βαθμολογία μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (pdf)
Την Παρασκευή 04/10 ώρα 12.30 μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους στο γραφείο του κ. Χατζηλυγερούδη στα προκάτ.
1-07-2013 Βαθμολογία επί διπλώματι εξέτασης μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Tετάρτη 3/7 10.00-11:00 στο γραφείο της κ. Φωκά (δίπλα από το γραφείο του κ. Χατζηλυγερούδη) μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
15-02-2013 Βαθμολογία μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (pdf)
Την Δευτέρα 18/02 ώρα 18.00 μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους στο γραφείο του κ. Χατζηλυγερούδη στα προκάτ.
1-2-2013 Ανακοινώθηκε το πρόγραμμα της προφορικής εξέτασης που θα διεξαχθεί την Τετάρτη 6/2 στο Υπολογιστικό Κέντρο (πρόγραμμα)
17-1-2013 H προφορική εξέταση του project c++ θα πραγματοποιηθεί την Τετάρτη, 6.2.2013, 09:00-15:00, στο χώρο του Υπολογιστικού Κέντρου. Θα ενημερωθείτε για τις ώρες εξέτασής σας, όταν ολοκληρωθεί η παράδοση των projects (η οποία έχει πάρει παράταση για 18.1.2013).
16-10-2012 Ανακοίνωση project Χειμερινου Εξαμήνου 2012-2013
16-10-2012 Το φροντιστήριο στο μάθημα Οντοκεντρικός Προγραμματισμός ΙΙ, θα πραγματοποιείται καθε Δευτέρα, 19:00-21:00 στην αίθουσα Β4,
29-09-2012 Βαθμολογία μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (pdf)
Την Tρίτη 2/10 12.00-13.00 στο γραφείο του κ. Χατζηλυγερούδη στα προκάτ μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
1-07-2012 Βαθμολογία μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (xls)
Την Tρίτη 3/7 στις 09.00 στο γραφείο του κ. Μακρή στα προκάτ μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
16-02-2012 Βαθμολογία μαθήματος Οντοκεντρικός ΙΙ (το τελικό 4.5 θα στρογγυλοποιηθεί σε 5) (pdf)
Την Δευτέρα 20/02 στις 10.00 στο γραφείο της κ. Φωκά στα προκάτ μπορούν να έρθουν όσοι επιθυμούν να δουν το γραπτό τους.
Όσοι δίπλα από τον βαθμό τους δουν επισήμανση με * πρέπει να προσέλθουν την Δευτέρα στο γραφείο της κ. Φωκά με την όλη την ομάδα τους που είχαν για την εργασία του μαθήματος.
26-01-2012 Πρόγραμμα Εξέτασης Εργαστηριακής Άσκησης Χειμερινού Εξαμήνου 2011-2012. (pdf) Δευτέρα 06/02/2012 - Υπολογιστικό Κέντρο
16-11-2011 Οι φοιτητές μπορούν να έρχονται για ενημερωση/απορίες για το project στο γραφείο των κ.κ. Φωκά, Νταλιακούρα (δίπλα από το γραφείο του κ. Χατζηλυγερούδη) κάθε Τρίτη 13:00-14:00.
07-11-2011 Ανακοίνωση εξέτασης επι πτυχίω. Όποιος επιθυμεί να δει το γραπτό του μπορεί να έρθει την Τετάρτη 9/11 στις 11.00 στα προκατ.
31-10-2011 Ανακοίνωση project Χειμερινου Εξαμήνου 2011-2012 (επίλυση αποριών φοιτητών για project: κάθε Τρίτη 13:00-14:00, στο γραφείο των κ.κ. Φωκά, Νταλιακούρα).
28-9-2011 Οι παραδόσεις του μαθήματος για το ακαδημαϊκό έτος 2011-2012 θα ξεκινήσουν κανονικά την επόμενη Τρίτη  4/10, σύμφωνα με το ανακοινωθέν πρόγραμμα.



Κανόνες διεξαγωγής μαθήματος (ισχύουν για τους δευτεροετείς και μεγαλυτερων ετών φοιτητές - για τους φετινους πρωτοετείς ισχύει Ο,ΤΙ ΑΝΑΦΕΡΕΤΑΙ ΣΤΗΝ ΒΑΣΙΚΗ ΙΣΤΟΣΕΛΙΔΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ -http://disabled.ceid.upatras.gr/index.php/ontoinfo )
Η τελική βαθμολογία προκύπτει από τo project και τις εξετάσεις. Το βάρος τους στην τελική βαθμολόγηση έχει ως εξής:

Project (Yποχρεωτικό): 30%
Γραπτή Εξέταση: 70%

Για να υπάρξει προσμέτρηση της προγραμματιστικής εργασίας στον τελικό βαθμό, ο βαθμός της γραπτής εξέτασης θα πρέπει να είναι μεγαλύτερος ή ίσος του 5. Η ύλη της γραπτής εξέτασης είναι το περιεχόμενο του επιλεγόμενου (από τον φοιτητή) διδακτικού βιβλίου, με ιδιαίτερη έμφαση στα θέματα που πραγματευονται οι διαλέξεις (με βάση τους τίτλους διαλέξεων στο πρόγραμμα μαθήματος που ακολουθεί). Η εξέταση πραγματοποιείται με τα βιβλία κλειστά.

Το project μπορεί να υποβληθεί μόνο μέσα στις καθορισμένες ημερομηνίες του χειμερινού εξαμήνου ή τον Σεπτέμβριο με ποσοστό 15%. Το νέο project κάθε χρονιάς είναι υποχρεωτικό για όλους τους φοιτητές όλων των εξαμήνων ανεξαρτήτως αν έχουν παρακολουθήσει ή έχουν κάνει project κάποια προηγούμενη χρονιά. Εξαίρεση αποτελούν οι επί διπλωματι φοιτητές (έχουν συμπληρώσει 5 έτη σπουδών), οι οποίοι μπορουν να παραδώσουν και να εξεταστούν σε project που είχαν αναλάβει στο παρελθόν.




ΔΙΑΦΑΝΕΙΕΣ - Αναλυτικό διάγραμμα μελέτης - διάρθρωση ύλης
1. Σύγκριση C++ με C και Java
2. Βασικά στοιχεία C++, Δομές Ελέγχου Φροντιστήριο1
3. Συναρτήσεις Φροντιστηριο2
  4.  Πίνακες, Δείκτες, Συμβολοσειρές Φροντιστήριο_3
 5. Δομές και Τάξεις Ι Φροντιστήριο 4
6. Δομές και Τάξεις II Φροντιστήριο 5
7. Κληρονομικότητα Φροντιστήριο 6
8. Case Study I Φροντιστήριο 7
9. Case Study II Φροντιστήριο 8
10. Πολυμορφισμός Φροντιστήριο 9
11 . Τemplates Φροντιστήριο 10
12 . Exception Φροντιστήριο 11
13. SΤL
14. Case Study III
15. An Interactive Introduction To OpenGL Programming SIGGRAPH2001 by Dave Shreiner et al. PPT Course
demo.cpp
16. Case Study IV
17. Operator Overloading
18. Case Study V
19. File Processing
19. Διαφάνειες, για stl, strings, streams, multiple inheritance

ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ:
Διαθέσιμες εδώ (αρχείο .pdf)

ΧΡΗΣΙΜΕΣ ΙΣΤΟΣΕΛΙΔΕΣ:
Διαθέσιμες εδώ (αρχείο .docx)

 

ΠΡΟΤΕΙΝΟΜΕΝΑ ΒΙΒΛΙΑ:

  • The C++ Programming Language, Bjarne Stroustrup
  • "Η Βίβλος της C++", Stevens Al, Walnum Clayton, 2000, Α. Γκιούρδα & ΣΙΑ ΟΕ, ISBN: 960-512-243-Χ
  • C++ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ, H.M. Deitel, P.J. Deitel
  • ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ: Διαθέσιμες εδώ (αρχείο .pdf)
  • C++ Primer, S. Lippman, J. Lajoie αναγνώσιμο εδώ
  • C++ Primer, Plus. Stephan Strata, αναγνώσιμο (μερικώς) εδώ
  • C++ language tutorial, αναγνώσιμο εδώ
  • Thinking in C++, Bruce Eckel (διαθέσιμο δωρεάν από διαθεσιμο εδώ και τόμος 1 , τόμος 2 - The C++ Tutorial διαθέσιμο εδώ
  • - Practical C++ Programming διαθέσιμο εδώ
  • Developer’s Guide διαθέσιμο εδώ
  • Στο εργαστήριο χρησιμοποιείτε είτε g++ (πρέπει να συνδεθείτε με diogenis.ceid.upatras.gr) είτε code::blocks (είναι εγκατεστημένο στα windows συστήματα). όσοι δουλεύουν σπίτι τους μπορούν να χρησιμοποιήσουν και άλλους compilers όπως Dev-C++.

    C++ Compiler: g++ - GNU project C++ Compiler: Xρήση στο λογαριασμό σας στον διογένη και δουλεύετε όπως δουλεύετε και με τον gcc (οι περισσότεροι παράμετροι είναι οι ίδιοι, κοιτάξτε με man g++ στο λογαριασμό σας στον διογένη ή το αρχείο http://www.skrenta.com/rt/man/g++.1.html.

    Ο g++ είναι ουσιαστικά η εκδοχή του gcc compiler για c++ προγράμματα (καλείται: g++ [option | filename ]).

    (http://www.skrenta.com/rt/man/g++.1.html, http://www.cprogramming.com/g++.html, http://www.vietspring.org/cpp_linux/gpp.html, http://pages.cs.wisc.edu/~beechung/ref/gcc-intro.html, http://www.cs.fsu.edu/~jestes/howto/g++compiling.txt, https://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_3.html#SEC6, https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html)

    C++ Compiler: code::blocks

    To code::blocks είναι εγκατεστημένο στα PC του ΥΚ (κεντρική αίθουσα και μικρή) στα Windows συστήματα. Δεν εγκαταστάθηκαν σε συστήματα Linux καθώς η έκδοσή του είναι πολύ παλιά και δεν υποστηρίζεται.

    Ένα πολύ καλό εγχειρίδιο για code::blocks: http://www.sci.brooklyn.cuny.edu/~goetz/codeblocks/codeblocks-instructions.pdf

    Εγχειρίδιο για ένωση πολλαπλών αρχείων σε project στο code::blocks και Dev-C++: https://www.ceid.upatras.gr/webpages/courses/cplusplus/CodeBlocks_DevCpp_Tutorial.pdf

    Παρουσιάσεις για χρήση code::blocks:

    https://www.youtube.com/channel/UCxUf2MtXGChw7GfldcxRw8g

    https://www.youtube.com/watch?v=i1kubuz1loI

    C++ Compiler: BloodShed Dev-C++ (v. 4.9.9.2) (www.bloodshed.net) και C++ Compiler για Windows 8: BloodShed Dev-C++ (v. 5.5.1)

    Ένα κοινό πρόβλημα που αντιμετωπίζουν πολλοί με το περιβάλλον Dev-C++ είναι ότι όταν τρέχουν ένα πρόγραμμα τρέχει και κλείνει προτού προλάβει ο χρήστης να εξετάσει την έξοδο. Για να παρακαμφθεί αυτό υπάρχουν οι εξής τρόποι:

    * Στο τέλος της main() και πριν από return εισάγετε μια εντολή όπως η cin.get() ώστε το πρόγραμμα να περιμένει μια είσοδο από το πληκτρολόγιο πριν τερματίσει.

    * Μία παρόμοια μέθοδος (αν χρησιμοποιείτε Windows) είναι να εισάγετε στο τέλος της main () και πριν από return την εντολή system(“PAUSE”)

    * Μπορείτε επίσης να βάλετε στην τελευταία εντολή της main ένα breakpoint, και αντί να κάνετε το πρόγραμμα Run, να το κάνετε Debug. Το output θα μείνει ανοιχτό και θα μπορείτε να το κλείσετε εσείς με την επιλογή Continue στο Debug tab στο κάτω μέρος της οθόνης.