Τι πρέπει να γνωρίζουμε για την θεωρία του ΑΕΠΠ.
Κεφάλαιο 1
- Τι είναι πρόβλημα; (σελ.3) (Μια κατάσταση που απαιτεί λύση...)
- Τι είναι το πρόβλημα του 2000; (σελ.4) (Το έτος αποθηκεύονταν με 2 ψηφία αντί για 4 και βγαίνουν λάθος οι πράξεις με τα έτη π.χ. 2002-1998=4, ενώ 02-98=-96)
- Τι χρειάζεται για την κατανόηση ενός προβλήματος; (σελ.5-7)( σωστή διατύπωση και με σαφήνεια από τον ένα και σωστή ερμηνεία από τον άλλο)
- Τι ονομάζουμε δεδομένο; (σελ.8,53) (ότι γίνεται αντιληπτό, γεγονότα...)
- Τι ονομάζουμε πληροφορία; (σελ.8,53) (ότι παράγεται από τη συλλογή, επεξεργασία και το συσχετισμό δεδομένων...)
- Τι είναι η επεξεργασία δεδομένων; (σελ. 8,53)
- Τι είναι δομή προβλήματος; (σελ. 8) (Τα επιμέρους τμήματα και ο τρόπος που συνδέονται)
- Ποιοι οι τρόποι περιγραφής και αναπαράστασης της δομής ενός προβλήματος; (σελ.10) (φραστική, γραφική-διαγραμματική)
- Τι είναι διαγραμματική αναπαράσταση της ανάλυσης του προβλήματος; (σελ.10,11) (το αρχικό πρόβλημα αναπαρίσταται με ένα ορθογώνιο...)
- Τι είναι ο καθορισμός απαιτήσεων; (σελ.11) (προσδιορισμός δεδομένων και ζητούμενων)
- Περιγράψτε τα στάδια αντιμετώπισης ενός προβλήματος; (σελ.16) (κατανόηση, ανάλυση, επίλυση)
- Αναφέρετε και δώστε παραδείγματα για τις κατηγορίες προβλημάτων με κριτήριο: α) δυνατότητα επίλυσης (επιλύσιμα, ανοικτά, άλυτα) , β) βαθμό δόμησης (δομημένα, ημιδομημένα, αδόμητα), γ) το είδος της επίλυσης-του ζητούμενου(απόφασης, υπολογιστικά, βελτιστοποίησης) (σελ.16-18)
- Ποια η διαφορά υπολογιστή και ανθρώπινου μυαλού; (σελ.19) (χειρίζεται ποσότητες στοιχείων και κάνει γρήγορα πράξεις, ενώ ο άνθρωπος σκέφτεται ποιοτικά και παράγει νέες ιδέες)
- Για ποιους λόγους αναθέτουμε τη λύση σε ΗΥ; (σελ.19) (πολυπλοκότητα, επαναληπτικότητα, ταχύτητα, πλήθος δεδομένων)
- Ποιες λειτουργίες εκτελεί ένας ΗΥ; (σελ.19) (πρόσθεση, σύγκριση, μεταφορά δεδομένων)
Κεφάλαια 2, 7, 8
- Τι είναι αλγόριθμος; (σελ.25)
- Ποια κριτήρια πρέπει να ικανοποιεί ο αλγόριθμος; (σελ. 25,26, σ32) (α. είσοδος, β. έξοδος, γ. καθοριστικότητα (απόλυτα καθορισμένες εντολές, όλες οι πιθανές περιπτώσεις), δ. περατότητα (πεπερασμένα βήματα, να τελειώνουν σε πεπερασμένο χρόνο), ε. αποτελεσματικότητα (κάθε εντολή απλή και εκτελέσιμη) )
- Από ποιες σκοπιές μελετά η πληροφορική τους αλγορίθμους; (σελ.27) (δες και σελ.53) (α. υλικού (συστατικά και αρχιτεκτονική του ΗΥ), β. γλωσσών (χαμηλού ή υψηλού επιπέδου, πολύπλοκες ή εύκολες, γρήγορες ή αργές, παλιές ή νέες, στοιχειώδεις ή πλήρεις σε δομές), γ. θεωρητική (προσδιορίζει θεωρητικά αν υπάρχει λύση και τα όρια της), δ. αναλυτική (πόσοι πόροι αναλυτικά απαιτούνται, δηλαδή πόση μνήμη χρησιμοποιούμε, πόσο χώρο στο δίσκο, πόσο χρόνο στον επεξεργαστή και τις άλλες συσκευές)
- Τρόποι αναπαράστασης αλγορίθμων (σελ.28)
- Τι είναι το διάγραμμα ροής (σελ.29) (σύνολο γεωμετρικών σχημάτων που το καθένα δηλώνει μια ενέργεια και βέλη που δηλώνουν τη σειρά εκτέλεσης)
- Ποια σύμβολα χρησιμοποιούν τα διαγράμματος ροής (σελ.29)
- Τι είναι σταθερές; (σελ.31,149) (είναι προκαθορισμένες αμετάβλητες τιμές που αντιστοιχούνται με ένα όνομα (π.χ Π=3.14) και έπειτα να χρησιμοποιούνται με το όνομά τους. π.χ. E <- Π*R^2 (Σταθερές ονομάζονται και οι αμετάβλητες τιμές που χρησιμοποιούνται μέσα σε μια έκφραση (π.χ. E <- 3.14*R^2)
- Τι χρησιμεύουν οι σταθερές; (αυτές που έχουν αντιστοιχηθεί με ονόματα) (σελ.150) (πιο κατανοητό πρόγραμμα, πιο εύκολο να συντηρηθεί (γιατί αλλάζω την τιμή μιας σταθεράς εύκολα σε ένα σημείο και δεν ψάχνω παντού μέσα στο πρόγραμμα))
- Τι είναι οι μεταβλητές (σελ.31,151) (ένα δεδομένο-μια ποσότητα που συμβολίζεται με ένα όνομα και περιέχει μια τιμή. Η τιμή του μπορεί να αλλάξει)
- Τι είναι οι δεσμευμένες λέξεις; (οι εντολές και οι άλλες λέξεις που χρησιμοποιεί μια γλώσσα προγραμματισμού) (π.χ. ΔΙΑΒΑΣΕ, ΓΡΑΨΕ, ΑΝ, ΓΙΑ...)
- Ποιους κανόνες πρέπει να πληροί ένα όνομα (σελ.150)(Αποτελείται από γράμματα, αριθμούς και την κάτω παύλα ( _ ), αρχίζουν με γράμμα, δεν συμπίπτουν με το όνομα μιας δεσμευμένης λέξης. Επίσης καλό το όνομα να ταιριάζει με το περιεχόμενό του)
- Ποιοι είναι οι τύποι των δεδομένων-μεταβλητών; Τι τιμές παίρνουν; Δώστε παραδείγματα.(σελ.31, 148,149,) (Ακέραιες, πραγματικές, χαρακτήρες, λογικές)
- Τι είναι οι τελεστές; (σελ.31) (είναι τα σύμβολα των πράξεων)
- Τι είναι οι τελεσταίοι; (σελ.31) (οι σταθερές και οι μεταβλητές που μαζί με τους τελεστές δημιουργούν μια έκφραση)
- Ποιες κατηγορίες τελεστών γνωρίζετε και ποιους τελεστές περιέχουν; (σελ.31,153) (α. αριθμητικοί: +, -, *, /, ^, DIV, MOD, β. λογικοί: ΚΑΙ, Η, ΟΧΙ, γ. συγκριτικοί: <, >, <=, >=, =, <>
- Με ποια σειρά - προτεραιότητα γίνονται οι πράξεις (ή ποια η ιεραρχία των τελεστών) (σελ. 154) (α. Για τους αριθμητικούς έχουμε: 1.^, 2. *,/, DIV, MOD, 3. +,- Αν έχουν ίδια προτεραιότητα γίνονται από αριστερά προς τα δεξιά. Οι πράξεις μέσα στις παρενθέσεις προηγούνται β. Για τους λογικούς: 1.ΟΧΙ, 2.ΚΑΙ, 3.Η ) Ανάλογα με τη γλώσσα υπάρχουν και διαφορές
- Τι είναι τα σχόλια; (επεξηγήσεις και διευκρινήσεις που γράφονται μέσα στο πρόγραμμα για την καλύτερη κατανόηση και τεκμηρίωσή του...)
- Ποιες είναι οι στοιχειώδεις λογικές δομές εντολών που χρησιμοποιούμε στο δομημένο προγραμματισμό και τι εντολές περιλαμβάνουν; (σελ..30-32-35-39, 135) (α. δομή ακολουθίας (διάβασε, γράψε, υπολόγισε), β. δομή επιλογής-πολλαπλής επιλογής (αν...αλλιώς_αν, επίλεξε), γ. δομή επανάληψης (για, όσο, μέχρι) )
- Τι είναι εμφωλευμένες δομές; (σελ. 37) (ο συνδυασμός δύο ή περισσοτέρων δομών επιλογής ή / και επανάληψης, όπου η μία περιέχεται μέσα στην άλλη)
- Τι είναι λογικές πράξεις; (σελ. 39) (οι πράξεις που γίνονται σε μια σύνθετη λογική έκφραση όπου γίνεται συνδυασμός κριτηρίων με τους λογικούς τελεστές Η (διάζευξη), ΚΑΙ (σύζευξη), ΟΧΙ (άρνηση))
- Τι αποτέλεσμα έχουν οι λογικές πράξεις Η (διάζευξη), ΚΑΙ (σύζευξη), ΟΧΙ (άρνηση) σε όλους τους συνδυασμούς τους; (σελ.39 - πινακάκι)
- Ποιες είναι οι εντολές που χρησιμοποιούμε στη δομή επιλογής; (ΑΝ (σ33,36, 167,168,170)
- Τι είναι βρόχος; (σελ. 173) (η δομή επανάληψης - μέσα στο βρόχο είναι οι εντολές που επαναλαμβάνονται)
- Ποιες είναι οι τρεις δομές επανάληψης; (σελ. 40-42-43, 173-176-178) (όσο, μέχρις, για). Γράψτε τη γενική μορφή τους. Τι διαφορές έχουν; (ΟΣΟ: σύνθετη συνθήκη, πρώτα ελέγχει και μετά εκτελεί, ελέγχει αν θα συνεχίσει, δεν ξέρουμε από την αρχή το πλήθος των επαναλήψεων, ΜΕΧΡΙΣ: σύνθετη συνθήκη, πρώτα εκτελεί και μετά ελέγχει γι' αυτό κάνει τουλάχιστον μια επανάληψη, ελέγχει αν θα σταματήσει, δεν ξέρουμε από την αρχή το πλήθος των επαναλήψεων, ΓΙΑ: απλή συνθήκη, πρώτα ελέγχει και μετά εκτελεί, γνωστό εξ' αρχής πλήθος επαναλήψεων)
- Μετατρέψτε την εντολή ΓΙΑ σε εντολές ΟΣΟ και ΜΕΧΡΙΣ_ΟΤΟΥ και σχεδιάστε τα διαγράμματα ροής τους. (σελ. 43, σελ. 40, σελ. 42)
- Ποιοι κανόνες ισχύουν στους εμφωλευμένους βρόχους; (σελ. 180)
Κεφάλαια 3, 9
- Τι ονομάζουμε δεδομένο, τι πληροφορία και ποιος ο συσχετισμός τους; (σελ. 8,53)
- Από ποιες σκοπιές μελετά η πληροφορική τα δεδομένα; (σελ. 53) (δες και σελ. .27) (α. υλικού (με ποια αναπαράσταση αποθηκεύονται), β. γλωσσών (ποιοι τύποι μεταβλητών υπάρχουν, γ. δομών δεδομένων (ποια θα χρησιμοποιήσουμε, π.χ. πίνακας, στοίβα, ουρά...) δ. ανάλυσης δεδομένων (καταγραφή και αλληλοσυσχέτιση δεδομένων)
- Τι είναι δομή δεδομένων; (σελ. 53, 54) (ένα σύνολο από δεδομένα μέσα σε κόμβους-κουτάκια τα οποία έχουν μια συγκεκριμένη οργάνωση και ένα σύνολο επιτρεπτών λειτουργιών-ενεργειών επί αυτών, δηλ. ο τρόπος χειρισμού τους)
- Ποιες είναι οι βασικές λειτουργίες πάνω σε μια δομή δεδομένων; (σελ. 54,55)
- Γιατί υπάρχουν διάφορες δομές δεδομένων; (σελ. 55) (ανάλογα με την λειτουργία που θέλουμε να κάνουμε, επιλέγουμε την αποδοτικότερη για την περίπτωσή μας)
- Υπάρχει εξάρτηση δομών δεδομένων και αλγορίθμων που τις χρησιμοποιούν; (σελ. 55) (ναι) Πως συσχετίζονται σύμφωνα με τον Wirth; (Αλγόριθμοι + Δομές δεδομένων = Προγράμματα)
- Ποιες κατηγορίες δομών δεδομένων υπάρχουν (σελ. 56) (στατικές, δυναμικές)
- Τι είναι στατικές δομές δεδομένων; (σελ. 56) (έχουν σταθερό μέγεθος εξ' αρχής, πιάνουν συγκεκριμένο και συνεχόμενο χώρο μνήμης που δεν μπορεί να αλλάζει δυναμικά)
- Τι είναι δυναμικές δομές δεδομένων; (σελ. 56) (έχουν δυναμικά μεταβαλλόμενο μέγεθος που μπορεί να μεγαλώνει και να μικραίνει ανάλογα με τις ανάγκες μας, δεν αποθηκεύονται σε υποχρεωτικά συνεχόμενες θέσεις)
- Τι είναι δυναμική παραχώρηση μνήμης; (σελ. 56) (Η παραχώρηση μνήμης από το λειτουργικό σύστημα του υπολογιστή στο πρόγραμμα, για αποθήκευση των δεδομένων του, κατά τη διάρκεια της εκτέλεσής του και ανάλογα με τις απαιτήσεις της κάθε φοράς)
- Ένας πίνακας μπορεί να περιέχει διαφορετικού τύπου δεδομένα; (σελ. 56) (όχι)
- Ποια μειονεκτήματα έχει η αλόγιστη χρήση πινάκων; (σελ. 191) (πιάνουν πολύ χώρο στη μνήμη που ίσως να μην αξιοποιηθεί αλλά που ίσως και να μη φτάσει, θέτουν ανώτατο όριο στο πλήθος των δεδομένων που μπορούμε να επεξεργαστούμε)
- Πότε χρησιμοποιούμε πίνακα; (σελ. 191) (όταν τα δεδομένα που διαβάσαμε θα χρειαστεί να τα ξαναχρησιμοποιήσουμε αργότερα και πρέπει να διατηρηθούν στη μνήμη μέχρι τέλος)
- Πώς αναφερόμαστε στο στοιχείο της Ι θέσης ενός πίνακα Α; (σελ. 56,σ186) ( Α[ Ι ] )
- Τι σημαίνει Α[ I, J ];(σελ. 192) (το περιεχόμενο της I γραμμής και της J στήλης)
- Υπάρχει πίνακας με πάνω από 2 δείκτες; (σελ. 57,194) (ναί, πολυδιάστατος)
- Περιγράψτε τις δομές της στοίβας και της ουράς (σελ. 59-61). Ποιες είναι οι κύριες λειτουργίες που εκτελούνται στην καθεμία και ποια διαφορά έχουν; (push-pop, enqueue-dequeue. Διαφορά: LIFO, FIFO).
- Τι σημαίνει LIFO και τι FIFO; (σελ. 59, 60)
- Πώς υλοποιείται με πίνακα η δομή της στοίβας; (σελ. 60) και πώς της ουράς; (σελ. 61)
- Διάβασμα, Μ.Ο., μέτρημα στοιχείων, min, max... μονοδιάσταστου πίνακα (σελ. 187)
- Αναζήτηση σειριακή (σελ. 64)
- Τι ονομάζουμε αρχείο, εγγραφή, πεδίο, πρωτεύον κλειδί, δευτερεύον κλειδί; (σελ. 67), Αναζήτηση δυαδική (σ86,σ38 τετραδίου)
- Ταξινόμηση φυσαλίδας (σελ. 68, 189)
- Διάβασμα, αθροίσματα, min, max, … ανά γραμμή και ανά στήλη διδιάσταστου πίνακα (σελ 197).
- Υλοποίηση συγχώνευσης ταξινομημένων πινάκων (σελ. 91 παραδειγμα 3 στο τετράδιο μαθητή)
Κεφάλαιο 6
- Τι είναι προγραμματισμός; (σελ. 116)
- Τι είναι πρόγραμμα; (σελ. 117) (σύνολο εντολών που υλοποιούν αλγόριθμο)
- Ποιοι επικοινωνούν με μια γλώσσα προγραμματισμού; (σελ. 117)
- Αναφέρετε τα 3 στάδια επίλυσης ενός προβλήματος (σελ.117, 16)
- Αναφέρετε τις γενιές των γλωσσών προγραμματισμού και τα βασικά χαρακτηριστικά τους (4 γενιές στις παραγράφους 6.2.1 έως 6.2.4) (1η γενιά: εντολές στοιχειώδεις σε 0 και 1, 2η γενιά: εντολές εξίσου στοιχειώδεις αλλά με μνημονικά ονόματα, 3η γενιά:γλώσσες υψηλού επιπέδου: διαδικασιακές (Fortran, cobol, basic, pascal …), δηλωτικές (prolog), συναρτησιακές (lisp), 4η γενιά: γλώσσες ερωταποκρίσεων και διαχείρισης βάσεων δεδομένων (SQL)
- Ποια τα μειονεκτήματα της γλώσσας μηχανής (σελ. 118,119) (δύσκολη κατανόηση, επίπονος τρόπος, ελάχιστοι προγραμματιστές, απαιτεί γνώση του υλικού και της αρχιτεκτονικής του κάθε ΗΥ, τα προγράμματα δεν μεταφέρονται σε άλλο ΗΥ, είναι μακροσκελή, δύσκολα γράφονται, δυσκολότερα συνηρούνται και διορθώνονται)
- Ποια τα μειονεκτήματα της συμβολικής γλώσσας (assembly) (σελ. 119) (τα ίδια με πριν, μόνο που οι εντολές είναι κάπως πιο κατανοητές και ευκολομνημόνευτες)
- Τι είναι ο συμβολομεταφραστής (assembler); (σελ. 118)(Ένα ειδικό πρόγραμμα που μεταφράζει τις μνημονικές εντολές της συμβολικής γλώσσας, σε γλώσσα μηχανής (π.χ. το ADD σε 01010001)
- Ποια τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου; (σελ.127) (τα αντίθετα από τα προηγούμενα, δηλαδή: εύκολη εκμάθηση της γλώσσας, εύκολη ανάπτυξη-κατανόηση-διόρθωση-συντήρηση του προγράμματος, προγράμματα ανεξάρτητα του υλικού του ΗΥ, μεταφερσιμότητα, πιο μικρά και κομψά, αναπτύσονται γρήγορα, κοστίζουν λιγότερο)
- Γράψτε τα χαρακτηριστικά κάθε γλώσσας προγραμματισμού (σελ. 118-127)
- Τι είναι οπτικός (visual) προγραμματισμός; (σελ. 126)
- Τι είναι ο οδηγούμενος από το γεγονός (event driven) προγραμματισμός; (σελ. 126)
- Ταξινομήστε τις παραπάνω γλώσσες σε κατηγορίες (σελ. 128) (Διαδικασιακές, αντικειμενοστραφείς, συναρτησιακές, μη διαδικασιακές, ερωταπαντήσεων)
- Ταξινομήστε τις παραπάνω γλώσσες με βάση την περιοχή χρήσης τους. (σελ.128)
- Ποια η καλύτερη γλώσσα προγραμματισμού; (σελ. 129) (εξαρτάται 1ον από το είδος της εφαρμογής που θα φτιάξω, 2ον από το υπολογιστικό περιβάλλον και 3ον από τις γνώσεις και προτιμήσεις του προγραμματιστή)
- Τι είναι το αλφάβητο, το λεξιλόγιο, η γραμματική και η σημασιολογία μιας γλώσσας προγραμματισμού; (σελ. 130)
- Τι είναι ιεραρχική σχεδίαση; (σελ. 132,133) (σχεδίαση από επάνω προς τα κάτω, top-down, λύνουμε το γενικό πρόβλημα με συνεχή διάσπαση σε κατώτερα επίπεδα)
- 18. Τι είναι τμηματικός προγραμματισμός; (σελ. 132, 205,208) (σχεδιασμός και ανάπτυξη λύσης με διάσπαση σε υποπροβλήματα, όπου το κάθε πρόβλημα αποτελεί ξεχωριστή ενότητα-τμήμα(module) )
- Τι είναι δομημένος προγραμματισμός; (Ποιες είναι οι αρχές του;)(σελ. 135,208) (μεθοδολογία σύνταξης και ανάπτυξης προγραμμάτων που περιέχει την ιεραρχική σχεδίαση και τον τμηματικό προγραμματισμό, χρησιμοποιεί τις δομές ακολουθίας , επιλογής και επανάληψης αλλά όχι το go to. Έχει μια είσοδο, στην αρχή και ένα σημείο τερματισμού, στο τέλος
- Ποια τα πλεονεκτήματα του δομημένου προγραμματισμού; (σελ. 136, 208,209)
- Τι κάνουν οι μεταγλωττιστές και οι διερμηνευτές; (σελ. 137) Ποιές οι διαφορές τους (σελ. 138) Ποιά τα πλεονεκτήματα-μειονεκτήματα του καθενός; (σελ. 139)
- Αναλύστε τα στάδια για τη δημιουργία ενός εκτελέσιμου προγράμματος; (σελ. 138, σχήμα6.5)
Κεφάλαιο 10
- Τι είναι υποπρόγραμμα; (σελ. 206)
- Ποες οι ιδιότητες-χαρακτηριστικά των υποπρογραμμάτων; (σελ. 208)
- Ποια τα πλεονεκτήματα του τμηματικού προγραμμαισμού;
- Τι ονομάζονται παράμετροι ενός υποπρογράμματος; (μιας διαδικασίας ή μιας συνάρτησης) (σελ. 210) (Είναι οι μεταβλητές που μπαίνουν σε παρένθεση δίπλα στο όνομα του υποπρογράμματος και επιτρέπουν την επικοινωνία, το πέρασμα τιμών, από και προς το κυρίως πρόγραμμα ή από και προς τα άλλα υποπρογράμματα τα οποία καλεί ένα υποπρόγραμμα)
- Ποιες οι διαφορές διαδικασίας συνάρτησης (σελ. 210,211)
- Τι είναι οι πραγματικές και τι οι τυπικές παράμετροι; (σελ. 217)
- Ποιους κανόνες ακολουθούν οι λίστες των παραμέτρων στα υποπρογράμματα; (σελ. 220) (ίδιος αριθμός-πλήθος, οι τυπικές παράμετροι αντιστοιχούν στις πραγματικές αντιστοιχούν ανάλογα με τη θέση που βρίσκονται , ίδιος τύπος)
- Τι ονομάζουμε τοπικές μεταβλητές και ποια είναι η εμβέλεια τους (σελ. 220)
- Τι ονομάζουμε καθολικές μεταβλητές και ποια είναι η εμβέλεια τους (σελ. 221)
- Τι ονομάζουμε μερικώς περιορισμένη εμβέλεια (σελ. 222).