Γενικές Πληροφορίες

Ώρες Διαλέξεων

Ημέρα Ώρα Αίθουσα
Τετάρτη   9:00-11:00 ΡΑ 101
Πέμπτη   9:00-11:00 ΡΑ 101

Ώρες Εργαστηρίων

Τα εργαστήρια θα γίνονται στην Αίθουσα Η205.

Ημέρα Ώρα Βοηθοί
Δευτέρα 13:00-15:00 Μάνος & Φίλιππος
Πέμπτη 15:00-17:00 Εβίτα & Σίμος
Παρασκευή 13:00-15:00 Μιχάλης & Στέλιος

Εξέταση Εργαστηριακών Ασκήσεων

Τα εργαστήρια θα εξεταστούν Παρασκευές στην Αίθουσα Η205, μεταξύ 13:00 και 17:00, σε ημερομηνίες που θα ανακοινωθούν.

Διδάσκων

Μενέλαος Καραβέλας
Γραφείο: Θ308Γ
Τηλέφωνο: 2810 393 706
email: mkaravel at tem uoc gr
Ώρες Γραφείου: Τετάρτη 11:00-12:00

Βοηθοί

Φίλιππος Καλύβας
Μάνος Καμαριανάκης
Μιχάλης Μπάρκας
Στέλιος Νινιδάκης
Εβίτα Νούνου
Σίμος Παπαδημητρόπουλος

Περιεχόμενο Μαθήματος

Σχεδίαση, υλοποίηση, διόρθωση και τεκμηρίωση προγραμμάτων. Έμφαση στο δομημένο προγραμματισμό. Διδασκαλία της γλώσσας C: πίνακες, δείκτες, δομές (structs), ενώσεις (unions), εντολές εισόδου/εξόδου, δυναμική παραχώρηση μνήμης, η πρότυπη βιβλιοθήκη. Αριθμητική κινητής υποδιαστολής.
Εργαστήρια: ανάλυση και υλοποίηση προβλημάτων σε C.

Mailing list μαθήματος

Η mailing list του μαθήματος είναι η: em102-list@tem.uoc.gr
Στη λίστα θα στέλνονται πληροφορίες και ανακοινώσεις σχετικά με το μάθημα και θα απαντούνται ερωτήσεις σχετικά με δικά σας ερωτήματα.

Προκειμένου να λαμβάνετε τα μηνύματα της λίστας αλλά και να μπορείτε να στείλετε μηνύματα σε αυτή στείλτε email στην διεύθυνση majordomo@tem.uoc.gr στο body του οποίου πρέπει να γράψετε τη φράση

subscribe em102-list

Ανακοινώσεις

Σε αντίστροφη χρονολογική σειρά.

Ημερομηνία Ανακοίνωση
28 Μαΐ 2012 Η 3η Άσκηση του μαθήματος είναι στην ιστοσελίδα του μαθήματος. Οδηγίες για την παράδοση της άσκησης θα βρείτε στο αρχείο με την εκφώνησή της.
19 Μαΐ 2012 Την ερχομένη εβδομάδα θα γίνουν εργαστήρια, χωρίς όμως συγκεκριμένο πρόβλημα. Θα μπορείτε να ρητήσετε ότι ερωτήσεις θέλετε τους βοηθούς.
Επίσης την ερχόμενη εβδομάδα δε θα γίνουν οι διαλέξεις του μαθήματος.
Τέλος, αρχές της ερχόμενης εβδομάδας θα αναρτηθεί τη 3η Εργαστηριακή Άσκηση την οποία θα πρέπει να παραδώσετε την εβδομάδα 25-29 Μαΐου. Θα υπάρξει νέα ανακοίνωση με τις λεπτομέρειες.
10 Μαΐ 2012 Για να παραδώσετε τη 2η Άσκηση του μαθήματος θα πρέπει να στείλετε με email στη διεύθυνση του διδάσκοντος (mkaravel at tem uoc gr) τα τρία .c αρχεία που σας έχουν ζητηθεί στην εκφώνηση της άσκησης. Τα προγράμματά σας θα πρέπει να τα στείλετε ως attachments. Ως subject του μήνυματός θα πρέπει να βάλετε τη φράση "em102 hwk2", ενώ στο κυρίως σώμα του μηνύματός σας θα πρέπει να γράψετε το ονοματεπώνυμό σας, τον αριθμό μητρώου σας και το login σας στα μηχανήματα του τμήματος.
Το μήνυμά σας θα πρέπει να σταλεί μέχρι τις 23:59 της 11ης Μαΐου 2012.
4 Μαΐ 2012 Η 2η Άσκηση του μαθήματος είναι διαθέσιμη.
Ημερομηνία εξέτασης: 11 Μαΐου 2012
21 Απρ 2012 Οι ώρες του εργαστηρίου της Πέμπτης άλλαξαν. Το εργαστήριο θα γίνεται πλέον 15:00-17:00.
28 Μαρ 2012 Η 1η Άσκηση του μαθήματος είναι διαθέσιμη.
Ημερομηνία εξέτασης: 3 Απριλίου 2012, 15:00-17:00, στην H205
Η άσκηση αυτή είναι υποχρεωτική μόνο για τους φοιτητές που έχουν δηλώσει το μάθημα για πρώτη φορά. Όσοι το έχουν δηλώσει ξανά στο παρελθόν δεν θα εξεταστούν.
Η εξέταση θα γίνει στο εργαστήριο H205. Θα πρέπει να έχετε στην περιοχή σας στα συστήματα Linux του τμήματος το αρχείο split_array.h, ώστε να μπορείτε να εξεταστείτε.

Εργαστήρια

Τα εργαστηριακά προβλήματα και οι λύσεις τους θα είναι διαθέσιμα μόνο από την ιστοσελίδα του μαθήματος.

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

Τα εργαστηριακά προβλήματα δεν βαθμολογούνται, και είναι προφανώς προαιρετικά. Η επίλυσή τους όμως θα σας βοηθήσει σημαντικά στην καλύτερη κατανοήση του μαθήματος. Σε αντίθεση με τις ασκήσεις του μαθήματος, τα εργαστηριακά προβλήματα αφορούν όλους του φοιτητές που παρακολουθούν το μάθημα

Εργ. Περιγραφή PDF Αρχεία
1ο Το εργαστήριο αυτό αφορά τη χρήση δεικτών και την εξοικίωση με μονοδιάστατους και διδιάστατους πίνακες της C.
Στην τελευταία στήλη του πίνακα σας δίνονται προγράμματα, βάσει των οποίων μπορείτε να ξεκινήσετε για τα γράψετε τα προγράμματα που σας ζητούνται.
reverse_array.c
make_1D.c
make_2D.c
2ο Το εργαστήριο αυτό αφορά τη χρήση και υλοποίηση δομών.
Στην τελευταία στήλη του πίνακα σας δίνεται πρόγραμμα, βάσει του οποίου μπορείτε να ξεκινήσετε για τα γράψετε τον κώδικα που σας ζητείται.
rational.c
3ο Στο εργαστήριο αυτό θα προσπαθήσετε να προγραμματίσετε το πρόγραμμα της 1ης Εργαστηριακής Άσκησης.
Στην τελευταία στήλη του πίνακα σας δίνονται τα αρχεία που είχαν δοθεί για την 1η Εργαστηριακή Άσκηση, και βάσει των οποίων μπορείτε να ξεκινήσετε για τα γράψετε τον κώδικα που σας ζητείται.
sort_int_array.c
split_array.c
4ο Το εργαστήριο αυτό αφορά τη χρήση των βιβλιοθηκών της βιβλιοθήκης string.h. Σκοπός σας είναι να υπολοποιήσετε εσείς τη συνάρτηση strtok της βιβλιοθήκης.
Στην τελευταία στήλη του πίνακα σας δίνεται πρόγραμμα, βάσει του οποίου μπορείτε να ξεκινήσετε για τα γράψετε τον κώδικα που σας ζητείται.
mystrtok.c

Ασκήσεις

Οι ασκήσεις θα είναι διαθέσιμες μόνο από την ιστοσελίδα του μαθήματος.

Οι ασκήσεις θα φέρουν ημερομηνία παράδοσης που θα αντιστοιχεί πάντα σε ημέρα που υπάρχει διάλεξη του μαθήματος. Θα πρέπει δε να παραδίδονται στην αρχή της διάλεξης αυτής.
Oι λύσεις τους θα γίνονται κατά τη διάρκεια των διαλέξεων.

Άσκηση Περιγραφή PDF Αρχεία
Η άσκηση αυτή αφορά τη δυναμική διαχείρηση μνήμης, της χρήση διδιάστατων πινάκων και το χειρισμό δομών.
Στην τελευταία στήλη του πίνακα σας δίνονται τα αρχεία που αναφέρονται στην εκφώνηση της άσκησης.
Η άσκηση θα εξεταστεί την Τρίτη 3 Απριλίου 2012, μεταξύ 15:00 και 17:00. Δείτε και τη σχετική ανακοίνωση.
sort_int_array.h
split_array.h
Η άσκηση αυτή αφορά τη διαχείρηση αρχείων κειμένου.
Για την άσκηση αυτή δεν σας δίνοται αρχεία.
Η άσκηση θα εξεταστεί την Παρασκευή 11 Μαΐου 2012, σε χώρο και ώρες που θα ανακοινωθούν στις αρχές της επόμενης εβδομάδας.
Η άσκηση αυτή αφορά τη χρήση και χειρισμό δομών της C, αλλά και την ανάπτυξη κώδικα σε διαφορετικά αρχεία.
Στην τελευταία στήλη του πίνακα σας δίνονται τα αρχεία που αναφέρονται στην εκφώνηση της άσκησης.
Η άσκηση θα πρέπει να παραδοθεί με email μέχρι την Κυριακή 3 Ιουνίου 2012, μέχρι τις 23:59. Δείτε και τη σχετική ανακοίνωση.
list.h
list.c
BST.h
BST.c
find_BST_path.h
find_BST_path.c
find_path.c

Αξιολόγηση

Εξετάσεις

Όλες οι εξετάσεις του μαθήματος (συμπεριλαμβανoμένης και της προόδου) θα γίνουν με κλειστά βιβλία. Η χρήση οποιούδηποτε είδους ηλεκτρονικής συσκευής δεν θα επιτραπεί. Παραταύτα μπορείτε να έχετε μαζί σας μέχρι και 2 σελίδες (1 φύλλο) χειρόγραφων σημειώσεων. Σε παρίπτωση που οι σημειώσεις σας δεν είναι χειρόγραφες θα κατάσχονται.

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

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

Στις εξετάσεις να έχετε μαζί σας την φοιτητική σας ταυτότητα.

Βαθμολογίες

Τις σωστές απαντήσεις (εξέταση Ιουνίου), ανά σειριακό αριθμό, μπορείτε να τις βρείτε εδώ.
Για να υπολογίσετε το βαθμό σας πρέπει να ακολουθήσετε τη διαδικασία του παραδείγματος παρακάτω:
Έστω ότι ο σειριακός μου αριθμός είναι 121. Τότε από το αρχείο διαβάζω την παρακάτω γραμμή

121 ACDDA 0.333 0.333 0.333 0.333 0.250

Η παραπάνω γραμμή σημαίνει ότι οι σωστές απαντήσεις είναι ACDDA. Οι επόμενες 5 στήλες αναφέρονται στην αρνητική βαθμολογία: πρέπει να αφαιρέσω

  • 0.333 αν η 1η μου απάντηση είναι λάθος
  • 0.333 αν η 2η μου απάντηση είναι λάθος
  • 0.333 αν η 3η μου απάντηση είναι λάθος
  • 0.333 αν η 4η μου απάντηση είναι λάθος
  • 0.250 αν η 5η μου απάντηση είναι λάθος

Για κάθε σωστή απάντηση προσθέτω 1, ενώ για κάθε απάντηση που δεν έχω απαντήσει εν προσθέτω ούτε αφαιρώ τίποτε.
Έτσι αν οι απαντήσεις μου ήταν A για το πρώτο ερώτημα, δεν απάντησα το δεύτερο, D για το τρίτο, B για το τέταρτο και A για το πέμπτο, ο βαθμός μου (με άριστα το 5) είναι:

1 + 0 + 1 - 0.333 + 1 = 2.667

ο οποίος αντιστοιχεί σε 5.334 με άριστα το 10 (απλά πολλαπλασιάζω επί 2).

Περιγραφή PDF