Γενικά: Στόχοι - Ωρολόγιο - Αξιολόγηση - Ύλη - Υπόβαθρο - Βιβλιογραφία - Πηγές

Στόχοι του μαθήματος

Οι φοιτητές που θα ολοκληρώσουν αυτό το μάθημα:

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

Ωρολόγιο Πρόγραμμα

Οι διαλέξεις του μαθήματος (θεωρία) γίνονται στην αίθουσα Παναγούλη του Πνευματικού Κέντρου κάθε Δευτέρα 18.00-21.00. Διδάσκει ο Γιάννης Γαβιώτης.

Τα εργαστήρια του μαθήματος γίνονται στα εργαστήρια υπολογιστών κάθε Τετάρτη 16.00-18.00. Υπεύθυνοι των εργαστηρίων είναι ο Παναγιώτης Κουτσαμπάσης και ο Γιάννης Γαβιώτης.

Αξιολόγηση

Οι φοιτητές αξιολογούνται με βάση τις εργασίες που θα παραδώσουν κατά τη διάρκεια του εξαμήνου (50%) και την τελική γραπτή εξέταση (50%). Οι εργασίες βαθμολογούνται, εφόσον παραδοθούν εμπρόθεσμα. Οι ασκήσεις εξετάζονται κατά τη διεξαγωγή του εργαστηρίου. Οι βαθμοί των εργασιών δεν μεταφέρονται σε επόμενα εξάμηνα.

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

Ύλη

Φάσεις ανάπτυξης προγραμμάτων - Ενδιάμεση γλώσσα και ιδεατή μηχανή - Περιβάλλοντα ανάπτυξης - Ασφάλεια κώδικα που εκτελείται απομακρυσμένα - Σύγκριση μεταγλωττιστών και διερμηνευτών - Αναγνωσιμότητα, σχόλια, οδόντωση κώδικα - Συντάκτης κατευθυνόμενου συντακτικού
Στρατηγικές επίλυσης προβλημάτων - Ο ρόλος των αλγορίθμων στη διαδικασία επίλυσης προβλημάτων - Στρατηγικές υλοποίησης για αλγόριθμους - Εκσφαλμάτωση - Τεκμηρίωση
Βασικό συντακτικό και σημασιολογία γλωσσών υψηλού επιπέδου - Μεταβλητές, σταθερές, τύποι δεδομένων, παραστάσεις, ανάθεση - Απλή είσοδος / έξοδος - Δομές ελέγχου επιλογής και επανάληψης - Πίνακες - Αντικείμενα - Συμβολοσειρές, επεξεργασία συμβολοσειρών
Μηχανισμοί αφαίρεσης - Βαθμιαία αποδόμηση - Μέθοδοι και πέρασμα παραμέτρων - Αντικειμενοστρεφής σχεδίαση - Κλάσεις, αντικείμενα, ιδιότητες, μέθοδοι - Ενθυλάκωση και απόκρυψη πληροφορίας - Διαχωρισμός συμπεριφοράς και υλοποίησης - Κατασκευαστές, μέθοδοι ανάγνωσης / εγγραφής - Κληρονομικότητα - Πολυμορφισμός
Εκχώρηση μνήμης, συλλογή απορριμμάτων - Διάρκεια ζωής, εμβέλεια ονομάτων - Αναδρομή, αναδρομικές μαθηματικές συναρτήσεις, στρατηγική «διαίρει και βασίλευε»
Εφαρμογίδια - Στοιχεία γραφικής διεπαφής χρήστη - Μέθοδοι χειρισμού συμβάντων - Μετάδοση συμβάντων

Υπόβαθρο

Οι φοιτητές πρέπει να έχουν τις βασικές γνώσεις για υπολογιστές, το Διαδίκτυο και προγραμματισμό. Τα σχετικά μαθήματα είναι «Πληροφορική Ι» (1151), «Πληροφορική ΙΙ» (2152) και «Τεχνολογίες Μεθοδολογίες Προγραμματισμού Ι» (3150). Ειδικότερα, θα πρέπει να γνωρίζουν τις έννοιες μεταβλητών, σταθερών και τύπων δεδομένων, τη σημασιολογία των τυπικών δομών ελέγχου (if-then-else, for, while, select) και τις αρχές του δομημένου προγραμματισμού (ορισμός & κλήση υποπρογραμμάτων, πέρασμα παραμέτρων).

Θα σας βοηθήσει ιδιαίτερα αν κάνετε μια επανάληψη στο συντακτικό και τη σημασιολογία των βασικών εντολών ελέγχου της C που διδαχθήκατε περυσι στο ΤΜΠ 1, διότι είναι πανομοιότυπες στη Java!

Βιβλιογραφία

Στους φοιτητές διανέμεται τα βιβλία [1], [4]. Ωστόσο, οι φοιτητές ενθαρρύνονται να ανατρέχουν κατά περίπτωση και στις άλλες αναφορές που παρατίθενται.
1. David Barnes, Michael Koelling, Αντικειμενοστρεφής Προγραμματισμός σε Java, 3η αμερ. έκδοση, Κλειδάριθμος, 2008, ISBN 9789604611966.
Ακολουθεί την εκπαιδευτική προσέγγιση Objects-First και ακολουθείται σε μεγάλο μέρος των παραδόσεων του μαθήματος. Δείτεπχhttp://www.papasotiriou.gr/product.gbook.asp?pfid=1845299&prid=1099532&deid=0

Η πιο πρόσφατη έκδοση είναι David Barnes, Michael Koelling, Objects First with Java - A practical introduction using BlueJ, 4th ed., Prentice Hall / Pearson Education, 2008, ISBN-10: 0-13-606086-2, ISBN-13: 978-0-13-606086-4. Διαθέσιμο από τη βιβλιοθήκη (σε προηγούμενη έκδοση), συνιστάται ισχυρά να το δείτε άμεσα. Εκπαιδευτικό υλικό στο http://www.bluej.org

2. Deitel, Harvey M, Java προγραμματισμός, 6η έκδοση, Μ. Γκιούρδας, 09/2005, ISBN 9789605123796.
Καλυπτει το πολυ μεγαλο μερος της Java με παραδειγματα και ασκησεις. Συνισταται ως εγχειριδιο αναφορας. Δείτε πχ
http://www.books.gr/ViewShopProduct.aspx?Id=3964828

3. Bruce Eckel, Thinking in Java, 4th ed., 2003. Τα επτά πρώτα κεφάλαια είναι διαθέσιμα για κατέβασμα από http://mindview.net/Books/TIJ4

4. David Harel, Algorithmics: the spirit of computing, 2nd ed., Addison Wesley, 1992, 0-201-50401-4
5 . Douglas Bell, Ian Morey, John Pugh, The essence of program design, Prentice Hall, 1997, 0-13-367806-7
6. Ellis Horowitz, Βασικές αρχές γλωσσών προγραμματισμού, 2η έκδοση, Κλειδάριθμος, 1993, 960-209-190-6
7. J. Glenn Brookshear, Computer Science, an overview, 6th ed., Addison Wesley, 2000, 0-201-35747-X
8. Kernigham, Plauger, The elements of programming style, McGraw-Hill, 2nd ed, 1978
9. M. Bohl, M. Rynn, Tools for structured design: an introduction to programming logic, 5th ed., Prentice-Hall, 2001, 0-13-020037-9
10. Maureen Sprankle, Problem solving and programming concepts, 5th ed., Prentice Hall, 2001, 0-13-022967-9
11. P. H. Winston, S. Narasimhan, On to Java 1.2, 2nd ed., Addison Wesley, 1998, 0-201-38598-8
12. Ravi Sethi, Programming languages, 2nd ed., Addison Wesley, 1996, 0-201-59065-4
13. Ravi Sethi, Programming Languages: Concepts and Constructs, 2nd ed., Addison Wesley, 1996, 0-201-59065-4
14. Robert W. Sebesta, Concepts of Programming Languages, 5th ed., Addison Wesley, 2001, 0-201-75295-6
15. Roger Graham, The synergy of hardware and software, Prentice Hall, 1998, 0-13-145617-2
16. Stefano Ceri, Dino Mandrioli, Licia Sbattella, The art and craft of computing, Addison Wesley, 1998, 0-201-87698-1
17. Terry Winograd, Bringing design to software, ACM Press, 2000, 0-201-85491-0
18. Γιώργος Λιακέας, Εισαγωγή στη Java 2, Κλειδάριθμος, 2003, 960-209-625-X
19. John Hubbard, Schaum's Java Θεωρία και προβλήματα, Κλειδάριθμος, 2005, 960-209-737-Χ
20. Ι. Ανδρεάδης, Μια σύντομη αναδρομή στην τεχνολογία των ηλεκτρονικών υπολογιστών, Δελτίο ΠΣΔΜ-Η, σελ. 48-52, Ιούλιος - Αύγουστος 2001
21. Ι. Κάβουρα, Δομημένος προγραμματισμός με Pascal, Κλειδάριθμος, 1997, 960-209-308-0
22. ΥΠΕΠΘ, Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον, 1999, 960-7251-23-7
23. Sartaj Sahni, Data Structures, algorithms and applications in Java, McGraw-Hill, 2000, 0-07-109217-X
24. John Lewis, William Loftus, Java software solutions: Foundations of program design, Addison-Wesley, 1998, 0-201-57164-1
25. John Hunt, Java and object-orientation, Springer-Verlag, 1997, 3-540-76201-9
26. Steven Haines, Οδηγός της Java2, Β. Γκιούρδας, 960-387-041-2
27. Greg Perry, Εισαγωγή στον προγραμματισμό, Μ. Γκιούρδας, 960-512-33-9
28. John Satzinger, Tore Orvik, The object-oriented approach, 2nd ed., Course Technology, 2001, 0-619-03390-8

Πηγές στο Διαδίκτυο

1. http://www.it.uom.gr/project/java/tutorial.htm Διδακτικό βοήθημα στα ελληνικά (Πανεπιστήμιο Μακεδονίας)
2. http://chortle.ccsu.ctstateu.edu/CS151/cs151java.html Άφθονο διδακτικό υλικό, κουίζ και ασκήσεις. Ευρύτητα κά-λυψης.
3. http://www.faqs.org/docs/javap/index.html Ηλεκτρονικό βιβλίο για προγραμματισμό σε Java με κουιζ και ασκήσεις.
4. http://www.tipsmart.com/javacert/ptp/basics.htm Κουιζ για τα βασικά της Java
5. http://alpha.physics.uoi.gr/web_kokkas_java/java_lang.htm Εκπαιδευτικό υλικό για Java (Πανεπιστήμιο Ιωαννίνων)
6. http://users.ntua.gr/ge04060/java.htm Ιστοσελίδα μαθήματος από το Μετσόβιο Πολυτεχνείο που χρησιμοποιεί το BlueJ
7. http://www.cs.teilar.gr/gkakaron/java/Index.html Μαθήματα Java από το ΤΕΙ Λάρισας
8. http://www.idevelopment.info/data/Programming/java/PROGRAMMING_Java_Programming.shtml Παραδείγματα προγραμμάτων ομαδοποιημένα ανά δραστηριότητα


Free counter and web stats