Σπουδαίες ιδέες στην Επιστήµη των Υπολογιστών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σπουδαίες ιδέες στην Επιστήµη των Υπολογιστών"

Transcript

1

2 Alan W. Biermann Σπουδαίες ιδέες στην Επιστήµη των Υπολογιστών Μια προσιτή εισαγωγή Μετάφραση - Επιστηµονική επιµέλεια: Στ. Νικολόπουλος Λ. Παληός Πανεπιστηµιακές Εκδόσεις Κρήτης Ιδρυτική δωρεά Παγκρητικής Ενώσεως Αµερικής Ηράκλειο 2008

3 ΠΑΝΕΠΙΣΤΗΜΙΑΚΕΣ ΕΚ ΟΣΕΙΣ ΚΡΗΤΗΣ Ι ΡΥΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΡΕΥΝΑΣ Ηράκλειο Κρήτης: Τ.Θ. 1527, Τηλ , , Fax: Αθήνα: Μάνης 5, Τηλ Fax: ΣΕΙΡΑ: ΠΑΝΕΠΙΣΤΗΜΙΑΚΗ ΒΙΒΛΙΟΘΗΚΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ Διευθυντές Σειράς: Γεώργιος Φρ. Γεωργακόπουλος, Ιωάννης Παπαδόγγονας Τίτλος πρωτοτύπου: c 1990, 1997: c για την ελληνική γλώσσα: Μετάφραση - Επιστηµονική επιµέλεια: Επιµέλεια κειµένου, σελιδοποίηση, επιµέλεια έκδοσης: Στοιχειοθεσία: Εφαρµογή L A TEX: Σχεδίαση σχηµάτων: Σχεδίαση εξωφύλλου: Great Ideas in Computer Science. A Gentle Introduction, 2nd edition Massachusetts Institute of Technology MIT Press 1997, Πανεπιστηµιακές Εκδόσεις Κρήτης Σταύρος Νικολόπουλος, Λεωνίδας Παληός Ιωάννης Παπαδόγγονας (ΠΕΚ) Σοφία Βλάχου David James McClurkin Νίκος αλαµάγκας Θεόδωρος Μίχος Βάσω Αβραµοπούλου ISBN

4 Στους γονείς µου, David και Ruth Biermann

5 Περιεχόµενα Πρόλογος µεταφραστών - επιµελητών Πρόλογος δεύτερης έκδοσης Πρόλογος xi xiii xv Πανεπιστηµιακές σπουδές στην ΕπιστήµηΥπολογιστών: Μια εισαγωγή xix Φήµες... xix ΣπουδέςστηνΕπιστήµη Υπολογιστών... xx Ειδικό λογισµικό για τη διευκόλυνση της µελέτης... xxi Μια προσέγγιση για αναγνώστες µε περιορισµένο µαθηµατικό υπόβαθρο... xxii 1 Εισαγωγήστον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης Καλάνέα (A) ένδρα απόφασης(b) Ταπρώτα βήµατα στον προγραµµατισµό (B) Ανάγνωση και αποθήκευσηδεδοµένων(b) Προγραµµατισµός δένδρων απόφασης(b) Ο συµβολισµός βέλουςκαι οι χρήσειςτου (C) Σύνοψη(B) ιαχ είρισηκειµένου και σχεδίαση αλγορίθµων Τιείναι ηδιαχείριση κειµένου; (A) Σχεδίαση αλγορίθµων και προγραµµάτων για διαχείριση κειµένου (B) Τύποι δεδοµένων: συµβολοσειρές και ακέραιοι (B) Περισσότερα γιατηδιαχείριση κειµένου (B) Προγραµµατισµός λειτουργιών επεξεργασίας κειµένου (B) Πρώτες προσπάθειες χρήσης βρόχων (B) Κατασκευή του επεξεργαστή κειµένου (B) Σχεδίασηενόςπρογράµµατοςσυνοµιλίας (C) Σύνοψητης TurboPascal (C) Σύνοψη (B) Αριθµητικοίυπολογισµοί και µελέτη συναρτήσεων Υπολογισµός αριθµητικών ποσοτήτων(a) Απλοί υπολογισµοί(b) Συναρτήσεις (B) Επαναληπτικοί βρόχοι και µελέτησυναρτήσεων(b) Εύρεση βέλτιστης τιµής(b) Καταχώριση πληροφοριών σε πίνακες(b)... 85

6 viii Περιεχόµενα 3.7 Υπολογισµός αθροισµάτων, ελαχίστων και µεγίστων (B) Πρότυπα κώδικα (B) Τοποθέτηση πραγµάτων σε σειρά και ένα ιδιαίτερο χαρακτηριστικό των συναρτήσεων (B) Τοποθέτηση των συναρτήσεωνσεσειρά (C) Σύνοψη (B) Καθοδικός προγραµµατισµός, υποπρογράµµατα, εφαρµογή βάσης δεδοµένων Ένα αστυνοµικό πρόβληµα (A) Καθοδικός προγραµµατισµός και ένα πρόγραµµα βάσης δεδοµένων (B) Υποπρογράµµατα (B) Υποπρογράµµατα µε εσωτερικές µεταβλητές (B) Υποπρογράµµατα µε πίνακες ως παραµέτρους (B) Παραδείγµατα επικοινωνίας υποπρογραµµάτων (B) Αποθήκευση και εκτύπωση των γεγονότων µιας βάσης δεδοµένων (B) Αναπαράσταση ερωτήσεων και εύρεση των απαντήσεών τους (B) Σύνθεση του προγράµµατος βάσης δεδοµένων και προσθήκη σχολίων (B) Μια άλλη εφαρµογή: σχεδίαση εικόνας µε την Pascal (C) Αναδροµή (C) Αντικειµενοστρεφής προγραµµατισµός (C) Σύνοψη (B) Προσοµοίωση Προβλέποντας τοµέλλον(a) Κερδίζοντας έναν αγώνα ταχύτητας αυτοκινήτων (B) Αποφεύγονταςένανλοιµό (C) Παρατηρώντας την εξέλιξηενόςείδους(c) Τιµορφή θα έχει;(c) Σύνοψη(A) Τεχ νολογία λογισµικού Ο πραγµατικόςκόσµος(a) ιδάγµατα από προγραµµατιστικά έργα µεγάλης κλίµακας (B) Μεθοδολογίεςτεχνολογίας λογισµικού (B) Ο κύκλος ζωής ενός προγράµµατος(b) Σύνοψη(B) Ηλεκτρικά κυκλώµατα Πώς λειτουργούνοιυπολογιστές;(a) Η δοµή του υπολογιστή(b) Κυκλώµατα υπολογισµού απλών συναρτήσεων (B) Κυκλώµατα υπολογισµού σύνθετων συναρτήσεων (B) Ηλεκτρονόµοι(B) Τοδυαδικό σύστηµααρίθµησης (B) Τα κυκλώµατα για την πρόσθεση δύο ψηφίων (B) Τοκύκλωµα πρόσθεσης(b) Αποθήκευση αλφαριθµητικών χαρακτήρων στη µνήµη (C) Τρανζίστορ και ολοκλήρωση πολύ µεγάλης κλίµακας (B) Σύνοψη (B)...212

7 Περιεχόµενα ix 8 Αρχ ιτεκτονική υπολογιστών Η δοµή ενός υπολογιστή (A) Παράδειγµα αρχιτεκτονικής: ο υπολογιστής P88 (B) Προγραµµατίζοντας τονυπολογιστήp88 (B) Σύνοψη(B) Μεταγλώττιση «Μεταφράζοντας» την Pascal στη γλώσσα του υπολογιστή (A) Συντακτικοί κανόνεςπαραγωγής(b) Απόδοση σηµασιολογικού περιεχοµένου στους κανόνες παραγωγής (B) Η σηµαντική της Pascal (B) Η µεταγλώττιση προγραµµάτων που περιέχουν βρόχους (C) Γλώσσες προγραµµατισµού (B) Σύνοψη(B) Εικονικά υπολογιστικά περιβάλλοντα Χρησιµοποιήστε τηφαντασία σας (A) Ένα εικονικό υπολογιστικό περιβάλλον (B) Τουλισµικό (A) Τολειτουργικό σύστηµα(b) Ο χρονοµερισµός ενδράσει (B) Αρχεία (B) Εξερευνώντας τοσύστηµα αρχείων (B) Ο διερµηνέας εντολών (B) ιεκδίκηση µνήµηςκαι σελιδοποίηση (C) Σύνοψη (B) Επικοινωνία υπολογιστών Οι δυνατότητεςπου παρέχειτο ιαδίκτυο (A) Στρώµατα καιτοπικάδίκτυα (B) ίκτυα ευρείας περιοχής(b) Το στρώµα του διαδικτυακού πρωτοκόλλου(b) Περισσότερα γιατηδιευθυνσιοδότηση(c) Άλλες εφαρµογές (A) Εξερευνώντας το ιαδίκτυο (A) Προβλήµατα (C) Σύνοψη (B) Χρόνος εκτέλεσης προγράµµατος Περιορισµοί στην επιστήµη των υπολογιστών (A) Χρόνος εκτέλεσης προγράµµατος(a) Ευχερείς υπολογισµοί (B) υσχερείς υπολογισµοί(b) Μερικά πρακτικά προβλήµατα µε πολύ δαπανηρές λύσεις (B) Αναγνώριση ευεπίλυτων και δυσεπίλυτων προβληµάτων (B) Προσεγγιστικές λύσεις σε δυσεπίλυτα προβλήµατα (C) Σύνοψη(B) Παράλληλοι υπολογισµοί Χρησιµοποιώντας πολλούς επεξεργαστές µαζί (A) Παράλληλοιυπολογισµοί (B) Επικοινωνία µεταξύεπεξεργαστών(b) Παράλληλοι υπολογισµοί σε κορεσµένο υπολογιστή(b) Παραλλαγές στην αρχιτεκτονική του παράλληλου υπολογιστή (B)

8 x Περιεχόµενα 13.6 Πολυσυνδετική αρχιτεκτονική(c) Εκµάθηση βαρών σε πολυσυνδετικές µηχανές (C) Σύνοψη(B) Μη επιλυσιµότητα εν αρκείηταχύτητα (A) Ύπαρξη µηυπολογίσιµων συναρτήσεων (B) Προγράµµατα που διαβάζουν προγράµµατα (B) Επίλυση του προβλήµατος τερµατισµού (B) Παραδείγµατα µη επιλύσιµων προβληµάτων (B) Απόδειξηµηεπιλυσιµότητας (C) Σύνοψη(B) Τεχνητή νοηµοσύνη Τοόραµα (A) Αναπαράστασητης γνώσης (B) Κατανόηση(B) Εκµάθηση(B) Πλαίσια (B) Μια εφαρµογή: επεξεργασία φυσικής γλώσσας (B) Συλλογισµός (B) Παίγνια (B) Παίγνια: Παρατηρήσεις ιστορικού χαρακτήρα (C) Έµπειρα συστήµατα (B) Σηµερινή κατάσταση Προοπτικές(B) Σύνοψη (A) Παράρτηµα Α 427 Παράρτηµα Β 431 Βιβλιογραφία 437 Ευρετήριο 439

9 Πρόλογος µεταφραστών - επιµελητών Με χαρά παρουσιάζουµε, µέσω των Πανεπιστηµιακών Εκδόσεων Κρήτης, το βιβλίο µε τίτλο Σπουδαίεςιδέες στην Επιστήµη των Υπολογιστών: Μια προσιτή εισαγωγή,πουαποτελεί την ελληνική µετάφραση του βιβλίου Great Ideas in Computer Science: A Gentle Introduction,τουAlanW.Biermann. Το βιβλίο καλύπτει µε απλό, κατανοητό, αλλά ταυτόχρονα και επιστηµονικό τρόπο τους κυριότερους τοµείς µελέτης της επιστήµης των υπολογιστών, οι οποίοι έχουν συµβάλει στην έως τώρα εξελικτική της πορεία και αποτελούν τη βάση για την περαιτέρω ανάπτυξη και παρουσία της στον χώρο των επιστηµών του µέλλοντος. Παρουσιάζονται οι θεµελιώδεις ιδέες της επιστήµης και καλύπτονται τοµείς όπως οι γλώσσες προγραµ- µατισµού και η δηµιουργία µεταγλωττιστών, η αρχιτεκτονική υπολογιστών, η θεωρία αλγορίθµων και οι επεκτάσεις της σε όλο το υπολογιστικό φάσµα, τα δίκτυα υπολογιστών, τα κατανεµηµένα συστήµατα πληροφοριών και βάσεων δεδοµένων, οι παράλληλοι υπολογισµοί και η λειτουργία των παραλλήλων υπολογιστών, η αυτοµατοποίηση του τυπικού συλλογισµού και της λογικής, η τεχνητή νοηµοσύνη. Το βιβλίο απευθύνεται σε διδάσκοντες και φοιτητές πανεπιστηµιακών και πολυτεχνικών τµηµάτων πληροφορικής και σε φοιτητές τµηµάτων θετικών και οικονοµικών σχολών. Επιπρόσθετα, λόγωτου ιδιαίτερου τρόπου αντιµετώπισης των επιστηµονικών θεµάτων που πραγµατεύεται, µπορεί κάλλιστα να αποτελέσει βασικό εγχειρίδιο για φοιτητές θεωρητικών επιστηµών, αλλά και χρήσιµο οδηγό για οποιονδήποτε επιθυµεί να προσεγγίσει µε απλό τρόπο την επιστήµη των υπολογιστών. Το εγχείρηµα της µετάφρασης και της επιστηµονικής επιµέλειας ενός τεχνικού εγχειριδίου δεν είναι εύκολο έργο.το έργο αυτό γίνεται ακόµη πιο δύσκολο όταν τεχνικές έννοιες περιγράφονται και επεξηγούνται σε ένα απλουστευµένο πλαίσιο µάθησης και µεταφοράς της γνώσης. Ένα τέτοιοέργο είχαµε να φέρουµε εις πέρας και εµείς. Εργαστήκαµε µε γνώµονα να µεταφέρουµε πιστά το πνεύµα του συγγραφέα, και να αποδώσουµε µε δόκιµους αλλά και εύχρηστους όρους την ορολογία του πρωτοτύπου θα έχουµε επιτύχει εάν η προσπάθειά µας συµβάλει στην ευρύτερη και καλύτερη κατανόηση των πεδίων της επιστήµης των υπολογιστών. Θα θέλαµε να ευχαριστήσουµε θερµά τον ιευθυντή των Πανεπιστηµιακών Εκδόσεων Κρήτης, κ. Στέφανο Τραχανά, για την ανάθεση του έργου, καθώς και όλους όσους εργάστηκαν για την έκδοση αυτή. Σταύρος. Νικολόπουλος Λεωνίδας Παληός Ιωάννινα, Μάιος 2007

10 Πρόλογος δεύτερης έκδοσης Ηδεύτερηαυτή έκδοση του βιβλίου περιλαµβάνει νέα κεφάλαια σχετικά µε την προσο- µοίωση, τα λειτουργικά συστήµατα και τα δίκτυα. ύο κεφάλαια της αρχικής έκδοσης, τα οποία αφορούσαν τη θεωρία τρανζίστορ και την ολοκλήρωση πολύ µεγάλης κλίµακας, έχουν παραληφθεί, ενώ πολλά από τα αρχικά κεφάλαια έχουν αναθεωρηθεί. Το έργο αυτό είναι προϊόν συλλογικής και πολυετούς προσπάθειας, στην οποία έχουν συµβάλει αρκετοί συντελεστές. Πολλές διευκρινήσεις προτάθηκαν από φίλους, διδάσκοντες, και µεταπτυχιακούς φοιτητές που συµµετείχαν στη διδασκαλία του µαθήµατος. Θα ήθελα να ευχαριστήσωιδιαίτερα τον Dietolf Ramm, ο οποίος συνέταξε το κεφάλαιο σχετικά µε τα δίκτυα. Σηµαντική ήτανεπίσης η συµβολή των Eric Anderson,Curry Guinn, Mark Holliday, Sally Mason, Peter Wu, Mimi Lee, Benjamin Hardekopf, καθώς και των ανώνυµων κριτών που επιλέχθηκαν από τον εκδοτικό οίκο. Το συνοδευτικό λογισµικό αναπτύχθηκε από τους Josh Carter, Chris Connelly, Amr Fahmy, Curry Guinn, D.J. Miller, David Pennock, Steve Wolfman, και Peter Wu. Η ανάπτυξη του λογισµικού υποστηρίχθηκε οικονοµικά από το Πανεπιστήµιο Duke και το Εθνικό Ίδρυµα Επιστη- µώντωνηπα (NSF), µέσω των επιχορηγήσεων USE , DUE και DUE Θα ήθελα επίσης να ευχαριστήσωθερµά για τη συµβολή τους σε αυτήν την έκδοση την Anna Drozdowski, διαχειρίστρια των υπολογιστικών συστηµάτων του Τµήµατός µας επί σειρά ετών, και την πάντα ενθουσιώδη βοηθό µου Denita Thomas, η οποία σχεδίασε πολλά από τα σχήµατα και στοιχειοθέτησε πολλά από τα κεφάλαια του βιβλίου.

11 Πρόλογος Το βιβλίο αυτό αφορά τους υπολογιστές τι είναι, πώς λειτουργούν, τι µπορούν και τι δεν µπορούν να κάνουν. Απευθύνεται σε αναγνώστες που θέλουν να είναι σε θέση να κατανοούν θέµατα που αφορούν, π.χ., τα δίκτυα υπολογιστών ή την τεχνητή νοηµοσύνη, σε αναγνώστες των οποίων η εργασία απαιτεί επεξεργασία δεδοµένων και θέλουν να γνωρίζουν τις σχετικές δυνατότητες των υπολογιστών,καθώς και σεαναγνώστες πουπαρατηρούν την ευρύτατη διείσδυση των υπολογιστών σε όλες τις πτυχές της κοινωνικής ζωής και αναρωτιούνται για τις ενδεχόµενες επιπτώσεις της. Απευθύνεται σε γιατρούς, δικηγόρους, κληρικούς, εκπαιδευτικούς, στελέχη επιχειρήσεων, σπουδαστές, και όλους όσους έχουν την περιέργεια να γνωρίσουν τους υπολογιστές. Απευθύνεται επίσης σε φοιτητές της επιστήµης υπολογιστών, αλλά και σε επαγγελµατίες του κλάδου αυτού των οποίων ηβασικήεκπαίδευσηπιθανόν να µην έχει καλύψειόλους τους σηµαντικούς τοµείς του αντικειµένου, και οι οποίοι θα ήθελαν να διευρύνουν τις γνώσεις τους. Όταν το 1985 µου ζητήθηκε να καταστρώσωένα µάθηµα επιστήµης υπολογιστών για φοιτητές ανθρωπιστικών επιστηµών, έκρινα ότι όφειλα να παρουσιάσω όσο καλύτερα µπορούσα τα µεγάλα διανοητικά επιτεύγµατα του συγκεκριµένου κλάδου. Πρόκειται για τις «σπουδαίες ιδέες»πουπροσελκύουντοενδιαφέρονόλωνόσωνπροσεγγίζουν το γνωστικό αυτό αντικείµενο, και που συναποτελούν τον πυρήνα τηςεπιστήµηςυπολογιστών. Ηπρώτηκαιπιοσηµαντική από αυτές τις ιδέες είναι η έννοια του αλγορίθµου µια διαδικασία ή «συνταγή» η οποία µπορεί να δοθεί σε έναν άνθρωπο ή σε µια µηχανή µε σκοπό την εκτέλεση κάποιας εργασίας. Οι υπόλοιπες σπουδαίες ιδέες περιστρέφονται γύρωαπό αυτήν τη θεµελιώδη έννοια παρέχουν µεθόδους για την κωδικοποίηση αλγορίθµων σε µορφή αναγνωρίσιµη από τους υπολογιστές, και περιγράφουν τι µπορεί και τι δεν µπορεί να κωδικοποιηθεί σε µορφή κατάλληλη για να εκτελεστεί από αυτούς. Υποδεικνύουν µε ποιον τρόπο έννοιες της καθηµερινής ζωής µπορούν να αναπαρασταθούν από την ηλεκτρική τάση και το ρεύµα µέσα σε έναν υπολογιστή, και µε ποιον τρόπο µπορούν να κατασκευαστούν µηχανισµοί που να εκτελούν αυτούς τους υπολογισµούς. Επιπλέον, καταδεικνύουν µε ποιον τρόπο µπορούν να µεταφραστούν γλώσσες προσιτές στον άνθρωπο στις γλώσσες πουχρησιµοποιούν οι µηχανές, προκειµένου να αξιοποιηθούν οι δυνατότητες των µηχανών αυτών. Αποκαλύπτουν ακόµη µε ποιον τρόπο «ανθρώπινου» τύπου συλλογιστικές διεργασίες µπορούν να προγραµµατιστούν ώστε να εκτελεστούν από έναν υπολογιστή, και µας βοηθούν να κατανοήσουµε ποιες µπορεί να είναι οι έσχατες δυνατότητες των µηχανών. Πιθανόν αυτές οι σπουδαίες ιδέες να φαίνονται υπερβολικά περίπλοκες και εξειδικευ- µένες για να τις κατανοήσει κάποιος µη ειδικός. Κατάκανόνα, ένας φοιτητής της επιστή- µης υπολογιστών θα πρέπει να µελετήσει επί αρκετά χρόνια µαθηµατικά και µαθήµατα υπολογιστών για να τις εµπεδώσει, και δεν θα έπρεπε να περιµένει κανείς από τον µέσο αναγνώστη να µπορεί να τις κατανοήσει διαβάζοντας ένα και µόνο βιβλίο. Προκειµένου να συµπτυχθεί ένα τέτοιο «πρόγραµµα σπουδών» σε έναν τόµο κατανοητό από κάποιο ευρύτερο αναγνωστικό κοινό, οι βασικές έννοιες έχουν αναδιατυπωθεί σηµαντικά από

12 xvi Πρόλογος αρκετές πλευρές οι επουσιώδεις λεπτοµέρειες έχουν παραλειφθεί, ενώ και η ορολογία που χρησιµοποιείται έχει επιλεγεί προσεκτικά. Ας εξετάσουµε, παραδείγµατος χάριν, την τυπική ύλη που καλύπτει το µάθηµα του προγραµµατισµού σε ένα πρόγραµµα σπουδών της επιστήµης υπολογιστών. Οι φοιτητές διδάσκονται όλα τα χαρακτηριστικά του συντακτικού κάποιας γλώσσας προγραµµατισµού, πολλές λεπτοµέρειες υλοποίησης και µια πλειάδα εφαρµογών. Καθώς ο διαθέσι- µος χρόνος του µαθήµατος δεν αφήνει περιθώρια για τίποτε άλλο, αυτοί που θα ήθελαν να αποκτήσουν µια ευρύτερη θεώρηση του γνωστικού αντικειµένου, πέραν του αµιγούς προγραµµατισµού, δενέχουναυτήντηδυνατότητα. Στο βιβλίο αυτό, αντίθετα, εισάγονται λίγα µόνο στοιχεία της Pascal, και όλα τα προγράµµατα περιορίζονται σε αυτές τις λίγες δοµές. Καθώς οι περισσότερες και οι σηµαντικότερες έννοιες του προγραµµατισµού µπορούν να διδαχθούν σε αυτό το περιορισµένο πλαίσιο, η σύγχυση που µπορεί να προκαλέσει στον αναγνώστη η µεγάλη ποικιλία στο συντακτικό των γλωσσών προγραµµατισµού µειώνεται. Ένα δεύτερο παράδειγµα αφορά τη σχεδίασηµεταγωγικών κυκλωµάτων, η διδασκαλία της οποίας περιλαµβάνει συνήθως διεξοδική µελέτη της άλγεβρας Boole εξισώσεις, ελαχιστοποίηση και σύνθεση κυκλωµάτων. Εντούτοις, ακόµη και χωρίς καµία αναφορά στην άλγεβρα Boole, ο ενδιαφερόµενος αναγνώστης µπορεί να διδαχθεί τις βασικές αρχές, οι οποίες θα του επιτρέψουν να καταπιαστεί µε ένα πρόβληµα σχεδιασµού, να συντάξει έναν πίνακα αληθείας για την επιθυµητή συµπεριφορά, και να δηµιουργήσει ένα κύκλωµα το οποίο, χωρίς να είναι το ελάχιστο δυνατό, θα εκτελεί τον ζητούµενο υπολογισµό. Το όλο ζήτηµα της ελαχιστοποίησης κυκλώµατων στο οποίο δίνουν τόση έµφαση οι ηλεκτρολόγοι µηχανικοί δεν χρειάζεται να απασχολεί καθόλου τον αναγνώστη που επιθυµεί απλώς να αποκτήσει κάποιες γνώσεις για τους υπολογιστές. Η ίδια προσέγγιση έχει εφαρµοστεί σε όλα τα θέµατα της επιστήµης των υπολογιστών. Έτσι, η γλώσσα προγραµµατισµού Pascalπαρουσιάζεται χω ρίς δείκτες, η µεταγλώττιση κώδικα χωρίς τη βελτιστοποίησή του, η θεωρία υπολογισιµότητας χωρίς τις µηχανές Turing, η τεχνητή νοηµοσύνη χωρίς τη LISP, κ.ο.κ. Ηπροσέγγιση αυτή έχει επιλεγεί ούτως ώστε ο αναγνώστης να µπορέσει, µέσω ενός µόνο βιβλίου, να έλθει σε επαφή µε τον πυρήνα των σπουδαίων ιδεών της επιστήµης υπολογιστών: να µάθει να συντάσσει διάφορα προγράµµατα σε Pascal, να σχεδιάσει µεταγωγικά κυκλώµατα, να µελετήσει αρχιτεκτονικές Von Neumann και παράλληλες αρχιτεκτονικές, να προσοµοιώσει έναν µεταγλωττιστή για να δει πώς λειτουργεί, να εξετάσει τους µηχανισµούς ενός λειτουργικού συστήµατος, να µάθει να χαρακτηρίζει τους διάφορους υπολογισµούς ως ευχερείς και δυσχερείς, να κατανοήσει την έννοια της µη υπολογισιµότητας, και να γνωρίσει πολλές από τις βασικές έννοιες της τεχνητής νοηµοσύνης. Τα πρώτα κεφάλαια πραγµατεύονταιθέµαταπουέχουνστόχονα διεγείρουντο ενδιαφέρον του αναγνώστη, ενώ κάθε κεφάλαιο που αφορά τον προγραµµατισµό ξεκινάει µε ένα υπολογιστικό πρόβληµα, και παρουσιάζει τα θέµατα µελέτης µέσωµιας µεθόδου επίλυσης αυτού του προβλήµατος. Η ορολογία έχειεπίσηςεπιλεγεί ώστε να απευθύνεται στον µέσο αναγνώστη. Παραδείγµατος χάριν, οι επιστήµονες υπολογιστών συνηθίζουν να χρησιµοποιούν στη θέση του όρου «αντιγραφή» («copy») της καθοµιλούµενης τον όρο «µετακίνηση» («move»), ο οποίος ως εκ τούτου είναι πιθανό να προκαλέσει σύγχυση. Για τον λόγο αυτό, η χρήση του συγκεκριµένου όρου έχει αποφευχθεί, εκτός φυσικά από τις περιπτώσεις όπου είναι η µόνη κατάλληλη λέξη. εκάδες άλλοι τέτοιοι συνήθεις όροι που θα µπορούσαν να προκαλέσουν σύγχυση έχουν επίσης αποκλειστεί, ήέχουνοριστείπροσεκτικά στα σηµεία όπου είναι απολύτως αναγκαίοι. Ο µαθηµατικός συµβολισµός δεν θα µπορούσε να αποφευχθεί, αφού είναι τελείως απαραίτητος για τη µελέτη της επιστήµης υπολογιστών. Ωστόσο, τα σχετικά ολιγάριθµα σύµβολα πουεισάγονται εξηγούνται λεπτοµερώς και χρησιµοποιούνται επανειληµµένα, ώστε ακόµη και ο αναγνώστης χωρίς µαθηµατική εµπειρία να µπορέσει να εξοικειωθεί µε αυτά. Τέλος, ο αναγνώστης ίσως να αναρωτηθεί κατά πόσο οι σπουδαίες ιδέες που παρου-

13 Πρόλογος xvii σιάζονται σε αυτό τοβιβλίοσυµπίπτουνµεεκείνεςπου θα επέλεγαν άλλοι συγγραφείς. Ουσιαστικά, ενώ θα περίµενε κανείς µια κάποια διάσταση απόψεων, υπάρχει αξιοση- µείωτη οµοθυµία όσον αφορά τα «συστατικά στοιχεία» της επιστήµης υπολογιστών. Οι περισσότεροι ειδικοί του κλάδου θα είχαν πιθανότατα συµφωνήσει µε την επιλογή των κεντρικών εννοιών σε αυτό το βιβλίο. Ας εξετάσουµε ενδεικτικά το «γνωστικό πλαίσιο της επιστήµης υπολογιστών», όπως περιγράφεται στην αναφορά της Οµάδας Εργασίας για τον Πυρήνα της Επιστήµης Υπολογιστών (Task Force on the Core of Computer Science) 1 µε τίτλο «Computing as a Discipline» («η υπολογιστική ως επιστηµονικός κλάδος»). Η αναφορά αυτή παρουσιάζει µια γενική εικόνα του κλάδου και περιλαµβάνει υποδείξεις σχετικά µε την εκπαίδευση στην επιστήµη υπολογιστών. Μεταξύ άλλων, η αναφορά περιγράφει τα εξήςεννέα επιµέρους γνωστικά αντικείµενα, τα οποία κατά τους συγγραφείς καλύπτουν τον πυρήνα της επιστήµης: 1. Αλγόριθµοι και δοµές δεδοµένων 2. Γλώσσες προγραµµατισµού 3. Αρχιτεκτονική 4. Αριθµητικοί και συµβολικοί υπολογισµοί 5. Λειτουργικά συστήµατα 6. Τεχνολογία λογισµικού 7. Βάσεις δεδοµένων και συστήµατα ανάκτησης πληροφοριών 8. Τεχνητή νοηµοσύνη και ροµποτική 9. Επικοινωνία ανθρώπου-µηχανής Το βιβλίο πραγµατεύεται σε εισαγωγικό επίπεδο τα περισσότερα από τα γνωστικά αυτά αντικείµενα. Αν και δεν ισχυρίζοµαι ότι τα καλύπτει όλα ισοµερώς και πλήρως, ωστόσο προσεγγίζει την ουσία των περισσότερων από αυτά και παρουσιάζει κάποιες από τις σηµαντικότερες έννοιές τους. Κάποιοι διδάσκοντες ίσως κρίνουν ότι η ύλη του συγγράµατος υπερβαίνει αυτήν που µπορεί να διδαχθεί σε ένα εξαµηνιαίο µάθηµα. Σε αυτήν την περίπτωση, η διδασκαλία µπορεί να περιοριστεί, π.χ. στα πρώτα 2/3 του βιβλίου, και να ολοκληρωθεί µε µία ή δύο διαλέξεις αφιερωµένες σε προχωρηµένα θέµατα στο τέλος του εξαµήνου, ώστε να διαµορφωθεί ένα µάθηµα επικεντρωµένο στον προγραµµατισµό και στον µηχανισµό λειτουργίας του υπολογιστή. Ένας άλλος τρόπος σύµπτυξης της ύλης είναι να παρουσιαστούν τα κυκλώµατα, η αρχιτεκτονική και οι µεταγλωττιστές σε µία ενιαία διάλεξη, και να διατεθούν οι µισές περίπου διαλέξεις για τη µελέτη των κεφαλαίων 10 έως 15. Υπάρχει και ένας τρίτος εναλλακτικός τρόπος διδασκαλίας του βιβλίου, ο οποίος αφορά φοιτητές που έχουν ήδηδιδαχθεί προγραµµατισµό. Σε αυτήν την περίπτωση, η διδασκαλία µπορεί να ξεκινήσει από τοκεφάλαιο 7 και να συνεχιστεί µέχρι το τέλος. Προσωπικά, έχωχρησιµοποιήσειπολλέςπαραλλαγέςαυτών των εναλλακτικών τρόπων διδασκαλίας. Συνήθως παραλείπω την αναδροµή ή τις ενότητες µε την ένδειξη «C» από τα κεφάλαια που αναφέρονται στη µεταγλώττιση και τη µη υπολογισιµότητα, καθώς παρουσιάζουν υψηλότερο βαθµό δυσκολίας για τους φοιτητές µου. Θα ήθελα να εκφράσωτις θερµές µου ευχαριστίες σε όσους συνέβαλαν στην ολοκλήρωση αυτού του βιβλίου. Θέλω πρωτίστως να ευχαριστήσω το Τµήµα Επιστήµης Υπολογιστών του Πανεπιστηµίου Duke, το οποίο µου προσέφερε ένα εξαιρετικό περιβάλλον εργασίας και απεριόριστη υποστήριξη στις ακαδηµαϊκές µου αναζητήσεις κατά τη διάρκεια των τελευταίων είκοσι ετών. Θα ήθελα επίσης να ευχαριστήσω τους εκατοντάδες φοιτητές µου σε αυτό το µάθηµα, οι οποίοι δίδαξαν στον καθηγητή τους ότι δεν ήταν δυνατόν να συµπεριλάβει στο βιβλίο αυτό όλα όσα θα ήθελε. Με έπεισαν ότι, εάν ήθελα το τελικό αποτέλεσµα να είναι κατανοητό, θα έπρεπε να αφαιρέσωµεγάλο µέρος της ύλης που τόσο αγαπούσα, και µε έκαναν να καταλάβωτη σηµασία του λεξιλογίου: 1 Peter J. Denning (Chairman), Douglas E. Comer, David Gries, Michael C. Mulder, Allen Tucher, A. Joe Turner, Paul R. Young, «Computing as a Discipline», Communications of the ACM,τόµος 32, τεύχος 1, Ιανουάριος 1989 επίσης, στο Computer, τόµος 22, τεύχος 2, Φεβρουάριος 1989.

14 xviii Πρόλογος αν και θεωρούσα ότι οι όροι που χρησιµοποιούσα ήταν απλοί και µη τεχνικοί, ωστόσο αυτοί δεν είχαν το ίδιο νόηµα για τους φοιτητές µου. Όλοι αυτοί οι υποµονετικοί νέοι άνθρωποι έχουν συνεισφέρει στη διαµόρφωση αυτού του βιβλίου όσο και εγώ. Ιδιαίτερα εκτιµώ τις προσπάθειες του Craig Singer, ο οποίος υπήρξε ένας εξαίρετος βοηθός καθηγητού στο µάθηµά µου για δύο χρόνια, και των Michael Hines και Jothy Rosenberg, οι οποίοι δίδαξαν επίσης το µάθηµα. Όλοι τους προσέγγισαν µε ευαισθησία τις δυσκολίες των φοιτητών, και διατύπωσαν εξαιρετικές υποδείξεις για τη βελτίω ση της παρουσίασης της ύλης. Μια προκαταρκτική έκδοση του βιβλίου εστάλη για κριτική ανάγνωση σε καθηγητές άλλων ιδρυµάτων κατά το ακαδηµαϊκό έτος Θα ήθελα να ευχαριστήσω, για τα πολλά χρήσιµα σχόλιά τους, τους Shan Chi (Πανεπιστήµιο Northwestern), David Frisque (Πανεπιστήµιο του Michigan), Rhys Price Jones (Κολέγιο Oberlin), Emily Moore (Κολέγιο Grinnel), Richard E. Pattis (Πανεπιστήµιο της Washington), Harvey Lee Shapiro (Κολέγιο Lewis and Clark), Jill Smudski (τότε στο Πανεπιστήµιο της Pennsylvania), και οκτώ ανώνυµους κριτές. Με βάση αυτές τις κρίσεις και την εµπειρία από τη διδασκαλία στην τάξη, το βιβλίο αναδιοργανώθηκε και γράφηκε εκ νέου. Η νέα µορφή του βιβλίου χρησιµοποιήθηκε για πρώτη φορά στην τάξη το χειµερινό εξάµηνο του ακαδηµαϊκού έτους , και θα ήθελα και πάλι να εκφράσωτις ευχαριστίες µου στους φοιτητές µου, οι οποίοι συµπλήρωσαν ερωτηµατολόγια που µε βοήθησαν να εντοπίσω αδύνατα σηµεία στην παρουσίαση των θεµάτων, καθώς και στον βοηθό καθηγητού Albert Nigrin, για τη βοήθειά του. Θα ήθελα επίσης να ευχαριστήσω ιδιαίτερα την Elina Kaplan, η οποία εργάστηκε αµέτρητες ώρες σε κάποια από τα πρώτα κεφάλαια προκειµένου να βρειτρόπουςβελτίωσηςτηςπαρουσίασης.ηόποιααπλότητα και σαφήνεια αυτών των κεφαλαίων οφείλεται εν πολλοίς στην Elina. Πολλοί άλλοι έχουν συµβάλει στο τελικό αποτέλεσµα διαβάζοντας κεφάλαια και προτείνοντας βελτιώσεις. Μεταξύ αυτών συγκαταλέγονται οι Heidi Brubaker, Dania Egedi, Linda Fineman, Chris Gandy, Curry Guinn, Tim Gegg-Harrison, Barry Koster, Anselmo Lastra, Ken Lang, Albert Nigrin, Lorrie Tomek, Tom Truscott και Doreen Yen. Ιδιαίτερα σηµαντικές ήταν οι διορθώσεις και οι υποδείξεις των David M. Gordon, Henry Greenside, Donald Loveland, και Charlie Martin. Πολλοί άλλοι φίλοι διατύπωσαν παρατηρήσεις και σχόλια σε διάφορα κεφάλαια. Το βιβλίο οφείλει κατά µεγάλο µέρος την «προσωπικότητά» του στον Matt Evans, ο οποίος σχεδίασε τα σκίτσα που εµφανίζονται στην αρχή κάθε κεφαλαίου. Εκτιµώ απεριόριστα την προσπάθειά του. Είµαι επίσης υπόχρεος στην Ann Davis, η οποία στοιχειοθέτησε το κείµενο από το χειρόγραφό µου. Η επιµέλεια και η προσοχή που επέδειξε συνέβαλαν σηµαντικά στο έργο της παραγωγής του βιβλίου. Θα ήθελα επίσης να ευχαριστήσω την Marie Cunninghan για τη στοιχειοθέτηση κάποιων κεφαλαίων, και την Denita Thomas για τη σύνταξη του ευρετηρίου. Ο Barry Koster σχεδίασε πρόθυµα πολλά από τα σχήµατα, και ο Eric Smith µε βοήθησε σε πολλές περιπτώσεις στη βιβλιογραφική εργασία. Οφείλωεπίσης εγκάρδιες ευχαριστίες στους Robert Prior, Harry Stanton και τα άλλα στελέχη του εκδοτικού οίκου The MIT Press, που κατανόησαν από την πρώτη στιγµή το όραµα του βιβλίου µου και υποστήριξαν µε θέρµη τις προσπάθειές µου. Τέλος, θα ήθελα να ευχαριστήσωτη σύζυγό µου Alice, την κόρηµουjennifer, και τον γιο µου David, για την ενθουσιώδη ενθάρρυνσή τους σε αυτή µου την προσπάθεια.

15 Πανεπιστηµιακές σπουδές στην Επιστήµη Υπολογιστών: Μια εισαγωγή Φήµες Γύρωαπό τους υπολογιστές κυκλοφορούν πολλές φήµες, και αναρωτιέται κανείς τι θα πρέπει να πιστέψει απ όλα αυτά. Λέγεται ότι στο µέλλον οι υπολογιστές θα διεκπεραιώνουν όλες τις γραφειοκρατικές εργασίες, και µάλιστα ότι θα µπορούν να αντικαταστήσουν ορισµένους άρτια εκπαιδευµένους επαγγελµατίες. Λέγεται ότι οι υπολογιστές έχουν αρχίσει να προσοµοιώνουν τη λειτουργία του ανθρώπινου εγκεφάλου, να δηµιουργούν έργα τέχνης, να αποδεικνύουν θεωρήµατα, να µαθαίνουν, και να εκφέρουν αξιολογικές κρίσεις. Λέγεται ότι οι υπολογιστές θα διεισδύσουν σε κάθε πτυχή της ζωής µας, ρυθµίζοντας τις επικοινωνίες, διαχειριζόµενοι πληροφορίες,και παρέχοντας ψυχαγωγία.λέγεται ότι ακόµη και τα πολιτικά µας συστήµατα θα αλλάξουν: σε µέχρι πρότινος κλειστές κοινωνίες, οι υπολογιστές θα απειλήσουν την υπάρχουσα τάξη πραγµάτων,επιτρέποντας την παγκόσµια επικοινωνία, ενώ στις ελεύθερες κοινωνίες θα φέρουν αύξηση της παρακολούθησης και του ελέγχου των πολιτών. Από την άλλη πλευρά, υπάρχουν δύσπιστοι οι οποίοι επισηµαίνουν ότι η επιστήµη των υπολογιστών έχει πολλούς περιορισµούς και ότι η σηµασία των µηχανών έχει υπερεκτιµηθεί. Κάποιεςαπόαυτές τις φήµες ευσταθούν, και µας δίνουν µια σωστή ένδειξη των επερχόµενων εξελίξεων. Κάποιες άλλες είναι εκτός πραγµατικότητας, και προκαλούν αβάσι- µες ανησυχίες για το µέλλον. Άλλες πάλι εγείρουν ερωτήµατα για τα οποία ενδέχεται να συζητάµε επί χρόνια χωρίς να καταλήξουµε σε καµία απάντηση. Σε κάθε περίπτωση, το σίγουρο είναι ότι πολλά από τα ζητήµατα που αφορούν τους υπολογιστές είναι ιδιαίτερα σηµαντικά, και αξίζει τον κόπο να προσπαθήσουµε να τα κατανοήσουµε. Στόχος αυτού του βιβλίου είναι να βοηθήσει τον αναγνώστη να κατανοήσει τους υπολογιστές και την επιστήµη των υπολογιστών. Ξεκινά από τη µελέτη του προγραµµατισµού, διότι ο έλεγχοςκαιο χειρισµός των υπολογιστών είναι απαραίτητα στοιχεία για την κατανόησή τους. Στη συνέχεια, ξεναγεί τον αναγνώστη στο εσωτερικό του υπολογιστή, εξερευνώντας τις στοιχειώδεις λειτουργίες του, από τη µετάδοση των ηλεκτρικών σηµάτων µέσω των κυκλωµάτων έως την αρχιτεκτονική και το λογισµικό που τον καθοδηγεί. Τέλος, το βιβλίο διερευνά τους περιορισµούς που διέπουν την εκτέλεση υπολογισµών, και τα όρια τηςεπιστήµηςσύµφωνα µε τις τρέχουσες απόψεις. Συνοπτικά, το βιβλίο προσπαθεί να προσφέρει µια πλήρη εισαγωγή στο γνωστικό αυτό αντικείµενο, µε έµφαση στους θεµελιώδεις µηχανισµούς στους οποίους βασίζεται η λειτουργία τω ν υπολογιστών. Στο πλαίσιο αυτό, παρουσιάζει πολλές από τις «σπουδαίες ιδέες» της επιστήµης υπολογιστών, δηλαδή τα διανοητικά πρότυπα που χρησιµοποιούν οι επιστήµονες στην εργασία τους, τα οποία θα επιτρέψουν και στον αναγνώστη να κατανοήσει τους υπολογιστές.

16 xx Πανεπιστηµιακές σπουδές στην Επιστήµη Υπολογιστών: Μια εισαγωγή Σπουδές στην Επιστήµη Υπολογιστών ΗΕπιστήµηΥπολογιστών συνίσταται στη µελέτη κάποιων συνταγών και των τρόπων εφαρµογής τους. Ο όρος «συνταγή» αναφέρεται σε κάποια διαδικασία ή µέθοδο για την εκτέλεση µιας εργασίας. Η επιστήµη µελετά τα διάφορα είδη συνταγών, τις ιδιότητές τους, τις γλώσσες καταγραφής τους, τις µεθόδους δηµιουργίας τους, και τον σχεδιασµό µηχανών για την αποτελεσµατική διεκπεραίωσή τους. Βέβαια, οι επιστήµονες των υπολογιστών δεν θέλουν να συγχέονταιµετουςσεφ µαγειρικής, και για τον λόγοαυτόέχουν ένα δικό τους όνοµα για τις συνταγές τις ονοµάζουν αλγορίθµους. Για να κατανοήσει κανείς την επιστήµη υπολογιστών, θα πρέπει να µελετήσει συνταγές (ή, αλλιώς, αλγορίθµους). Το πρώτο θέµα µελέτης είναι το πώς επινοούµε και καταγράφουµε αυτές τις συνταγές. Παραδείγµατος χάριν, πιθανόν να θέλουµε να καταστρώσουµε µια συνταγή για τη θεραπεία κάποιας ασθένειας, ή για την ταξινόµηση κάποιων πουλιών µε βάση τα µορφολογικά χαρακτηριστικά τους, ή για τη διαµόρφωση ενός προγράµµατος αποταµίευσης. Θα χρειαστεί, κατ αρχάς, να µελετήσουµε κάποιες ενδεικτικές συνταγές, ώστε να δούµε πώς είναι δοµηµένες, και στη συνέχεια να εξασκηθούµε στη σύνταξη δικών µας συνταγών. Η προσπάθεια αυτή απαιτεί κάποια εµπειρία στον εντοπισµό των ουσιωδών στοιχείων των καταστάσεων του πραγµατικού κόσµου, και στην οργάνωση της γνώσης αυτής σε µια ακολουθία βηµάτων που οδηγούν στην επίτευξη του στόχου µας. Από τη στιγµή που θα έχουµε επινοήσει µια µέθοδο για την επίλυση κάποιου προβλή- µατος, θα πρέπει να την κωδικοποιήσουµε σε µια υπολογιστική γλώσσα προκειµένου να διαβιβάσουµε τις «επιθυµίες» µας στον υπολογιστή. Εποµένως, είναι απαραίτητο να µάθουµε να χειριζόµαστε µια υπολογιστική γλώσσα και να µετατρέπουµε τα βήµατα µιας συνταγής σε εντολές που µπορούν να εκτελεστούν από έναν υπολογιστή. Το βιβλίο αυτό εισάγει τον αναγνώστη στη γλώσσα προγραµµατισµού Pascal, η οποία είναι αφ ενός εύκολη στην εκµάθησή της και αφ ετέρου επαρκής για την περιγραφή των ενδεικτικών προγραµµάτων του βιβλίου. Οσυνδυασµόςτηςδηµιουργίαςµιαςσυνταγήςκαιτηςκωδικοποίησήςτηςσεκάποια υπολογιστική γλώσσα ονοµάζεται προγραµµατισµός, καιαποτελεί το αντικείµενο µελέτης του πρώτου τµήµατος του βιβλίου, των κεφαλαίων 1 έως 6. Στα κεφάλαια αυτά παρουσιάζονται διάφοροι τύποι προβληµάτων, οι αντίστοιχες µέθοδοι επίλυσής τους, και ο κώδικας Pascal, δηλαδή το πρόγραµµα, που απαιτείται για την επίλυσή τους. Το τελευταίο από αυτά τα κεφάλαια πραγµατεύεται τα προβλήµατα που ανακύπτουν όταν οι τεχνικές που παρουσιάζονται στα πρώτα πέντε κεφάλαια εφαρµόζονται στην ανάπτυξη προγραµµάτων εµπορικής κλίµακας. Αν και µετά τη µελέτη των κεφαλαίων του προγραµµατισµού ο αναγνώστης θα είναι σε θέση να δηµιουργεί χρήσιµα προγράµµατα, πιθανόν να εξακολουθεί να αντιµετωπίζει τον υπολογιστή σαν ένα µαγικό κουτί που εκτελεί αποτελεσµατικά εντολές. Για να γίνει κατανοητό γιατί οι υπολογιστές λειτουργούν όπως λειτουργούν, ποιοι είναι οι περιορισµοί τους, και ποιες βελτιώσεις µπορούν να αναµένονται στο µέλλον, το δεύτερο τµήµα του βιβλίου πραγµατεύεται το πώς και γιατί οι υπολογιστές είναι σε θέση να εκτελούν υπολογισµούς. Στο κεφαλαίο 7 παρουσιάζονται µεθόδοι σχεδίασης ηλεκτρικών κυκλωµάτων και εξετάζεται η εφαρµογή των µεθόδων αυτών στη σχεδίαση υπολογιστικών µηχανισµών. Παραδείγµατος χάριν, περιγράφεται ο τρόπος κατασκευής ενός κυκλώµατος για πρόσθεση αριθµών. Στο κεφάλαιο 8 περιγράφεται ηαρχιτεκτονικήτωνυπολογιστώνκαιη δοµή ενός τυπικού υπολογιστή. Το κεφάλαιο 9 πραγµατεύεται τη µετάφραση µιας γλώσσας προγραµµατισµού υψηλού επιπέδου, όπως είναι η Pascal, σε γλώσσα µηχανής, έτσι ώστε οι εντολές της να µπορούν να εκτελεστούν από έναν υπολογιστή κάποιας δεδοµένης αρχιτεκτονικής. Το παράδειγµα που παρατίθεται στο τέλος του κεφαλαίου9 διατρέχει τα κύρια βήµατα επεξεργασίας µιας εντολής της Pascal, από τη µετάφρασή της σε

17 Σπουδές στην Επιστήµη Υπολογιστών xxi γλώσσα µηχανής µέχρι τη λεπτοµερή λειτουργία των υπολογιστικών κυκλωµάτων. Στο κεφάλαιο 10 εισάγονται έννοιες σχετικές µε τα λειτουργικά συστήµατα, δηλαδή τα προγράµµατα που γεφυρώνουν το χάσµα µεταξύ του χρήστη και των πολλών υλισµικών και λογισµικών στοιχείων του υπολογιστή. Τα προγράµµατα αυτά επιτρέπουν στον χρήστη να χρησιµοποιεί εύκολα τις υπολογιστικές υπηρεσίες που ο ίδιος επιθυµεί. Το κεφάλαιο 11 αποτελεί µια εισαγωγή στα δίκτυα υπολογιστών και τις έννοιες που σχετίζονται µε την επικοινωνία µεταξύ υπολογιστικών συστηµάτων. Τα τελευταία κεφάλαια του βιβλίου ασχολούνταιµε τους περιορισµούς των υπολογιστών και τα όρια της επιστήµης. Το κεφάλαιο 12 πραγµατεύεται προβλήµατα που αφορούν τον χρόνο εκτέλεσης των προγραµµάτων, και υπολογισµούς µε µεγάλες χρονικές απαιτήσεις. Στο κεφάλαιο 13 περιγράφεται ένας τρόπος επίσπευσης της επίλυσης υπολογιστικών προβληµάτων, µέσωτης χρήσης παράλληλων αρχιτεκτονικών. Το κεφάλαιο 14 µελετά την ύπαρξη των λεγόµενων µη υπολογίσιµων συναρτήσεων, και τέλος το κεφάλαιο 15 αποτελεί µια εισαγωγή στο πεδίο της τεχνητής νοηµοσύνης. Ειδικό λογισµικό για τη διευκόλυνση της µελέτης Για την καλύτερη εµπέδωση των εννοιών που παρουσιάζονται στο βιβλίο, έχουν αναπτυχθεί ειδικά προγράµµατα τα οποία µπορείτε να αποκτήσετε µέσωτου ιαδικτύου. Τα προγράµµατα αυτά είναι αναρτηµένα στον δικτυότοπο του εκδοτικού οργανισµού The MIT Press και στην ιστοσελίδα του συγγραφέα στο Τµήµα Επιστήµης Υπολογιστών του Πανεπιστηµίου Duke. 2 Στα προγράµµατα που µπορείτε να αναζητήσετε και να δοκιµάσετε περιλαµβάνονται τα εξής: ύο προγράµµατα που αφορούν το κεφάλαιο περί προσοµοίωσης. Το πρώτο είναι µια προσοµοίωση ενός αγώνα ταχύτητας αυτοκινήτων που σας επιτρέπει να περιγράψετε µια στρατηγική για να διατρέξετε την πίστα και να ελέγξετε την επίδοσή σας. Το δεύτερο είναι µια προσοµοίωση της βιολογικής εξέλιξης, που σας επιτρέπει να µελετήσετε διαδοχικές γενιές κάποιων απλώνόντωνκαθώςαυτά εξελίσσονται σε ένα εικονικό περιβάλλον. Ένα συνοδευτικό πρόγραµµα για τα κεφάλαια που αφορούν το υλισµικό και το λογισµικό του υπολογιστή, το οποίο ονοµάζεται «This-is-how-a-computer-works», και σας δίνει τη δυνατότητα να δείτε τις διεργασίες που πραγµατοποιούνται σε έναν εικονικό υπολογιστή, καθώς αυτός µεταγλωττίζει και εκτελεί ένα µικρό πρόγραµµα. Η απεικόνιση είναι αρκετά λεπτοµερής, δίνοντας στον χρήστη την ευκαιρία να παρακολουθήσει τους µεταγωγείς στον κεντρικό επεξεργαστή να ανοιγοκλείνουν και το ηλεκτρικό ρεύµα να διατρέχει τα καλώδια κατά τη διάρκεια του υπολογισµού. Τέλος, το Κεφάλαιο 10 συνοδεύεται από ένα λειτουργικό σύστηµα γραµµένο σε Pascal, το οποίο µπορείτε να µελετήσετε, να εκτελέσετε και να τροποποιήσετε εάν το επιθυµείτε. Τα περισσότερα από τα υπόλοιπα προγράµµατα που αναφέρονται στο βιβλίο παρατίθενται αυτούσια στο κείµενο. 2 Σ.τ.Ε.: Όπως µας ενηµέρωσε ο συγγραφέας, τα συγκεκριµένα προγράµµατα δεν είναι διαθέσιµα στην παρούσα φάση. Παρ όλα αυτά,κρίναµε ότι θα έπρεπε να διατηρήσουµε τις αναφορέςτου συγγραφέα σε αυτά, για το ενδεχόµενο να αναρτηθούν στο ιαδίκτυο στο µέλλον.

18 xxii Πανεπιστηµιακές σπουδές στην Επιστήµη Υπολογιστών: Μια εισαγωγή Μια προσέγγιση για αναγνώστες µε περιορισµένο µαθηµατικό υπόβαθρο Καθώς οι γνώστες της επιστήµης υπολογιστών χρησιµοποιούν συνήθως τη δική τους ορολογία και ειδικό µαθηµατικό συµβολισµό, οι δυσκολίες στην επικοινωνία οδηγούν τους διδάσκοντες στο συµπέρασµα ότι ο µέσος άνθρωπος δεν είναι σε θέση να κατανοήσει αυτό το αντικείµενο. Για τον λόγο αυτό, τα σχετικά βιβλία και µαθήµατα πανεπιστη- µιακών τµηµάτων συχνά παρακάµπτουν τα θεµελιώδη ζητήµατα, και επικεντρώνονται αντ αυτών στη διδασκαλία της χρήσης προγραµµάτων λογισµικού, και στην ιστορική και κοινωνιολογική διάσταση της υπολογιστικής επιστήµης. Το βιβλίο αυτό έχει γραφτεί µε την πεποίθηση ότι οποιοσδήποτε νοήµων άνθρωπος µπορεί να κατανοήσει όλες τις θεµελιώδεις έννοιες της επιστήµης υπολογιστών, εάν αυτές εισαχθούν και εξηγηθούν µε τον κατάλληλο τρόπο. εν έχει παραλειφθεί κανένα σηµαντικό θέµα, όσο «δύσκολο» και αν θεωρείται. Ωστόσο, έχει καταβληθεί σηµαντική προσπάθεια να αποφευχθούν οι επουσιώδεις λεπτοµέρειες και η εξειδικευµένη ορολογία, εκτός από τις περιπτώσεις που ήταν δυνατόν να δοθούν σαφείς καιπλήρειςορισµοί. Επειδή κάποιοι αναγνώστες ίσως να µην επιθυµούν να µελετήσουνόλατα κεφάλαια, το βιβλίο έχει σχεδιαστεί έτσι ώστε να ευνοεί την επιλεκτική µελέτη. Οι αναγνώστες ενθαρρύνονται να επιλέξουν όποιο κεφάλαιο επιθυµούν κάθε φορά, και να το µελετήσουν για όσο τους κινεί το ενδιαφέρον. Φυσικά, τα περισσότερα κεφάλαια χρησιµοποιούν έννοιες από τα προηγούµενα και, όπως είναι ευνόητο, όπου συµβαίνει αυτό η κατανόηση θα είναι ελλιπέστερη. Τα κεφάλαια του προγραµµατισµού (1 έως 5) αλληλοεξαρτώνται σε σηµαντικό βαθµό, ενώ το κεφάλαιο περί αρχιτεκτονικής (8) θα πρέπει να µελετηθεί πριν από το κεφάλαιο για τη µεταγλώττιση (9). Επίσης, κάποια από τα απαιτητικότερα κεφάλαια (12 έως 15) χρησιµοποιούν στοιχεία προγραµµατισµού από τα πρώτα κεφάλαια (1 έως 5). Αν εξαιρέσουµε αυτούς τους περιορισµούς, όλα τα άλλα θέµαταπιθανόταταµπορούννα µελετηθούνµεοποιαδήποτεσειρά χωρίς ιδιαίτερες γνωστικές απώλειες. Οι ενότητες των κεφαλαίων έχουν ταξινοµηθεί σε τρεις κατηγορίες, που δηλώνονται µε τα λατινικά γράµµατα A, B και C, έτσι ώστε οι αναγνώστες να µπορούν να πάρουν µια «γεύση» για πολλά ζητήµατα, και να εντρυφήσουν µόνο σε ό,τι επιλέξουν. Οι ενότητες µε την ένδειξη A περιλαµβάνουν µόνο εισαγωγικές έννοιες και απαιτούν µικρή προσπάθεια από τον αναγνώστη. Μελετώντας κανείς µόνο τις ενότητες αυτές, µπορεί να αποκτήσει µια γενική εικόνα του βιβλίου µέσα σε λίγες ώρες. Οι ενότητες µε την ένδειξη Bπεριλαµβάνουντηνκύρια ύλη του βιβλίου, και ίσως απαιτούν σηµαντική προσπάθεια και χρόνο ο αναγνώστης, όµως, που θα µελετήσει µια τέτοια ενότητα θα κατανοήσει σε βάθος την ουσία του αντικειµένου που αυτή πραγµατεύεται. Τέλος, οι ενότητες µε την ένδειξη C απαντούν σε ερωτήµατα που µπορεί ναγεννηθούν σε προσεκτικούς αναγνώστες και συµπληρώνουν την ύλη των κύριων τµηµάτων του βιβλίου.

19

20

21 1 Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης 1.1 Καλά νέα (A) Παλαιότερα, πριν από την εµφάνιση των υπολογιστών,η διεκπεραίωση κάθε εργασίας απαιτούσε την εκτέλεσή της από εµάς τους ίδιους. Σήµερα, όµως, µε τους υπολογιστές, µπορούµε πλέον να εκτελούµε πολλές εργασίες απλώς καταγράφοντας τις ενέργειες που πρέπει να γίνουν. Την υλοποίηση των ενεργειών αναλαµβάνει να την φέρει σε πέρας ένας υπολογιστής. Για παράδειγµα, εάν θέλουµε να προσθέσουµε αριθµούς, να αναζητήσουµε κάποια δεδοµένα, να συντάξουµε και να εκτυπώσουµε ένα έγγραφο, να στείλουµε µηνύµατα σε συναδέλφους, να ελέγξουµε µια βιοµηχανική διεργασία, ή να φέρουµε σε πέρας άλλες εργασίες, µπορούµε να συντάξουµε ένα σύνολο οδηγιών, δηλαδή µια ακολουθία από ενέργειες που πρέπει να γίνουν, και να αναθέσουµε την εκτέλεσή τους σε έναν υπάκουο και ακούραστο υπολογιστή. Μπορούµε επίσης να µοιράσουµε αυτό το σύνολο οδηγιών σε πολλούς υπολογιστές, οι οποίοι θα συνεργαστούν για την υλοποίησή τους. Ακόµη και όταν χρειαστεί οι υπολογιστές να εργαστούν χωρίς την επίβλεψή µας, θα συνεχίσουν να εκτελούν τις ίδιες εργασίες,ακολουθώνταςπιστάτις εντολές που τους έχουµε δώσει. Ηπροετοιµασίακαιησύνταξη ενός τέτοιου συνόλου οδηγιών ονοµάζεται προγραµ- µατισµός (programming), και οδηγεί σε «πολλαπλασιασµό εργασίας» ο οποίος αλλάζει ριζικά τις δοµές της ανθρώπινης κοινωνίας. ίνει τη δυνατότητα σε ένα µόνο άτοµο να παραγάγει µε τη βοήθεια των υπολογιστών απεριόριστο πλήθος αποτελεσµάτων καταβάλλοντας πεπερασµένη προσπάθεια (για τη δηµιουργία του σχετικού υπολογιστικού προγράµµατος). Γίνεται λοιπόν φανερό ότι η παραγωγικότητά µας δεν είναι πλέον συνάρτηση µόνον του πλήθους των απασχολούµενων προσώπων είναι συνάρτηση και του πλήθους των διαθέσιµων υπολογιστών. Τα καλά νέα, όµως, δεντελειώνουν εδώ: οι υπολογιστές είναι πλέον σχετικά φθηνοί και επιπλέον το κόστος τους συνεχώς µειώνεται. Πριν από τρεις δεκαετίες, υπολογιστές µε µνήµη λέξεις και χρόνο εκτέλεσης εντολών 1 µικροδευτερόλεπτο (µsec) κόστιζαν 1 εκατοµµύριο δολάρια. Σήµερα µπορούµε να αγοράσουµε έναν υπολογιστή µε εκατονταπλάσια µνήµη και ταχύτητα, µε λίγες χιλιάδες δολάρια. Πληρώνοντας ποσό ίσο µε τον µισθό ενός ανειδίκευτου εργάτη, µπορούµε να αποκτήσουµε έναν υπολογιστή που έχει τη δυνατότητα να διεκπεραιώνει ορισµένες εργασίες ταχύτερα από χίλιους ανθρώπους µαζί. Με τη µελέτη του προγραµµατισµού µέσα από τις σελίδες αυτού του βιβλίου θα κατανοήσουµε πώς µπορεί να επιτευχθεί αυτός ο πολλαπλασιασµός της εργασίας µέσω των υπολογιστών. Θα µελετήσουµε θεµελιώδεις δοµές πληροφοριών και τεχνικές επε-

22 2 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης ξεργασίας µε στόχο να αναπτύξουµε την ικανότητά µας να επισηµαίνουµε και να απο- µονώνουµε την ουσία των προβληµάτων, και να µεταγράφουµετα προβλήµατα αυτάσε κώδικα µηχανής ώστε οι εργασίεςµαςναγίνονται αυτόµατα. εν θα µελετήσουµε τον προγραµµατισµό µε τον συνήθη τρόπο, δηλαδή µέσωτης εκµάθησης όλων των λεπτοµερειών µιας συγκεκριµένης γλώσσας προγραµµατισµού. εν θα αναφερθούµε, για παράδειγµα, στο σύνολο των κανόνων για την τοποθέτηση των σηµείων στίξης, ή στη γενικότερη µορφή κάθε γλωσσικής δοµής, ούτε θα εξετάσουµε το µέγιστο πλήθος χαρακτήρων που επιτρέπονται στα ονόµατα µεταβλητών, ή τα µέγιστα επιτρεπόµενα µεγέθη αριθµών και συµβολοσειρών. Αντίθετα, θα προσπαθήσουµε να αποκοµίσουµε όλη την απόλαυση που πηγάζει από τη µελέτη και τη δηµιουργία απλών προγραµµάτων, παρακάµπτοντας κατά το δυνατόν την κουραστική εµµονή στη συντακτική ακρίβεια και την εξαντλητική περιγραφή. Στα παραδείγµατακαι στις ασκήσειςχρησιµοποιούµε τη γλώσσα προγραµµατισµού Pascal. Ωστόσο, θα περιοριστούµε σε ένα υποσύνολο των στοιχείων της γλώσσας αυτής, ώστε ο φόρτος της εκµάθησής της από τον αναγνώστη να παραµείνει σε λογικά πλαίσια. Εάν καλύπταµε το σύνολο των δυνατοτήτων της Pascal, δεν θα µας έµενε καθόλου χρόνος να αναφερθούµε στο κεντρικό θέµα αυτού του βιβλίου, τις σπουδαίες ιδέες στην επιστήµη των υπολογιστών. Μιας και στο βιβλίο αυτό δίνονται µόνον οι έννοιες που είναι απαραίτητες για την κατανόηση των παρατιθέµενων προγραµµάτων και για τη δηµιουργία προγραµµάτων ανάλογηςδυσκολίας, συνιστάται σε όσους σκοπεύουν να δηµιουργήσουν πιο πολύπλοκα προγράµµατα να προµηθευτούν ένα εγχειρίδιο της Pascal ως βιβλίο µελέτης και αναφοράς. Αφού πρόκειται να µελετήσουµε προγραµµατισµό, θα πρέπει προφανώς να προγραµ- µατίσουµε κάτι. Θα ήταν καλό να γράψουµε προγράµµατα που να περιλαµβάνουν κάποιες χρήσιµες δοµές επεξεργασίας πληροφοριών. Θα ήταν επίσης σκόπιµο και χρήσιµο να γράψουµε πολλά είδη προγραµµάτων, φροντίζοντας όµως να έχουν αρκετά απλή δοµή ώστε να µπορεί να τα κατανοήσει και να τα συντάξει εύκολα ένας αρχάριος. Θα θέλαµε ακόµη να εξοικειωθούµε µε ορισµένες θεµελιώδεις έννοιες που είναι απαραίτητες για µια πιο προχωρηµένη µελέτη. Με βάση αυτά, επιλέγουµε ως πρώτο πεδίο της µελέτης µας τα δένδρα απόφασης (decision trees). Τα δένδρα αυτά µπορούν να χρησιµοποιηθούν για ταξινόµηση αντικειµένων σε κατηγορίες, για τυπική αξιολόγηση προσώπων υπό τη µορφή συνέντευξης και για πολλά άλλα πράγµατα. Αρχικά θα µελετήσουµε τα δένδρα απόφασης, και στη συνέχεια θα µάθουµε πώς να συντάσσουµε προγράµµατα γι αυτά. 1.2 ένδρα απόφασης (B) Ας υποθέσουµε ότι θέλουµε να αποφασίσουµε ποιο βιβλίο να υποδείξουµε σε κάποιον που ενδιαφέρεται να αρχίσει σπουδές στην επιστήµη των υπολογιστών. Ένας καλός τρόπος να καταλήξουµε σε µια απόφαση είναι να απευθύνουµε στον ενδιαφερόµενο µια σειρά από ερωτήσεις µέσω των οποίων θα καταλήξουµε στο κατάλληλο βιβλίο. Η πρώτη ερώτηση θα µπορούσε να αφορά τον προτιµώµενο τρόπο προσέγγισης των θεµάτων της επιστήµης των υπολογιστών, π.χ. αν θα ήθελε να ακολουθήσει µια µαθηµατική προσέγγιση. ιατυπώνουµε, λοιπόν, τη σχετική ερώτηση και στη συνέχεια δηλώνουµε µε βέλη την κατεύθυνση που θα ακολουθήσουµε για την επόµενη ερώτηση: Δένδρο απόφασης για υπόδειξη βιβλίου:

23 1.2. ένδρα απόφασης 3 Στη συνέχεια, ανάλογα µε την πρώτη απάντηση, αποφασίζουµε τι ερωτήσεις θα πρέπει να τεθούν αµέσως µετά: Δένδρο απόφασης για υπόδειξη βιβλίου: Ας υποθέσουµε ότι µετά από δύο ερωτήσεις είµαστε σε θέση να υποδείξουµε το κατάλληλο βιβλίο. Στην περίπτωση αυτή, το δένδρο απόφασης µπορεί να συµπληρωθεί ως εξής: Δένδρο απόφασης για υπόδειξη βιβλίου: Ακολουθώντας µια διαδροµή στο δένδρο απόφασης, µπορούµε να καταστρώσουµε έναν ενδεικτικό «διάλογο». Εάν το συγκεκριµένο πρόσωπο έχει µαθηµατικό προσανατολισµό µε ενδιαφέρον στα θεωρητικά θέµατα, η διαδροµή διά µέσου του δένδρου έχει ως εξής: Επιλογή βιβλίου µε θέµα την επιστήµη των υπολογιστών: Ερώτηση του δένδρου απόφασης: Απάντηση: Ερώτηση του δένδρου απόφασης: Απάντηση: Υπόδειξη του δένδρου απόφασης: Επιθυµείτε µια µαθηµατική προσέγγιση; Ναι Σας ενδιαφέρει ο προγραµµατισµός ή τα θεωρητικά θέµατα; Θεωρητικά θέµατα Μια καλή επισκόπηση δίδεται στο βιβλίο Algorithmics του D. Harel. Το παραπάνωδένδρο µάς οδηγεί στην τελική απόφαση µετά από δύο µόνο διαδοχικές ερωτήσεις. Εύκολα όµως µπορεί να φανταστεί κανείς ένα µεγάλο δένδρο µε πολλές ερωτήσεις και µεγάληποικιλία συνιστώµενων βιβλίω ν στο τέλος των διαφόρων διαδρο- µών. Είναι επίσης προφανές ότι δένδρα αυτού τουτύπουµπορούν να χρησιµοποιηθούν

24 4 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης για παροχή συµβουλών σχεδόν για οποιοδήποτε ζήτηµα, από την υπόδειξη µιας θεραπευτικής αγωγής µέχρι την πρόβλεψη του µέλλοντος. Ιδού µερικά παραδείγµατα: Δένδρο απόφασης για την παροχή ιατρικής συµβουλής: Δένδρο απόφασης για πρόβλεψη του µέλλοντος: Τα δένδρα απόφασης µπορούν επίσης να χρησιµοποιηθούν για την ταξινόµηση διαφόρων πραγµάτων σε κατηγορίες. Ας υποθέσουµε ότι γνωρίζουµε τα ταξινοµικά χαρα-

25 1.2. ένδρα απόφασης 5 κτηριστικά των διαφόρων ειδών γλάρων και επιθυµούµε να προσδιορίσουµε µε ακρίβεια το είδος οποιουδήποτε ατόµου µε βάση τα χαρακτηριστικά του. Θα µπορούσαµε να κατασκευάσουµε ένα δένδρο της παρακάτωµορφής: Δένδρο απόφασης για ταξινόµηση γλάρων: Μπορούµε ακόµη να κατασκευάσουµε έναν οδηγό για τη συµπλήρωση της φορολογικής µας δήλωσης, µε τη µορφή δένδρου απόφασης. Ας δούµε τι µορφή θα είχε ένα µικρό τµήµα του: Οδηγός για τη συµπλήρωση φορολογικής δήλωσης: Τι θα λέγατε να κατασκευάσουµε ένα δένδρο απόφασης για ένα παιγνίδι; Ένα καλό παράδειγµα είναι το απλό παιγνίδι Nim, το οποίο έχει τους εξής κανόνες: Το παιγνίδι παίζεται από δύο παίκτες. Ο πρώτος παίκτης µπορεί να τοποθετήσει από ένα έως τρία Χστοαριστερό άκρο µιας οριζόντιας σειράς από τετράγωνα, την οποία θα ονοµάζουµε πίνακα. Ο αντίπαλος µπορεί να τοποθετήσει από ένα έως τρία Ο στα αµέσως επόµενα τετράγωνα του πίνακα. Αυτή η διαδοχή κινήσεων επαναλαµβάνεται συνεχώς, µέχρι να συµπληρωθεί ο πίνακας από αριστερά προς τα δεξιά µε Χ και Ο. Νικητής είναι ο παίκτης που θα καταφέρει να τοποθετήσει το δικό του σύµβολο στο τελευταίο τετράγωνο

26 6 1. Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης του πίνακα. Για παράδειγµα, ας θεωρήσουµε ένα παιγνίδι Nim µε πίνακα µήκους επτά τετραγώνων: Έστωότι ο πρώτος παίκτης παίζει τρία Χ: Ας υποθέσουµε ότι ο δεύτερος παίκτης παίζει δύο Ο: Τότε ο πρώτος παίκτης µπορεί να κερδίσει το παιγνίδι τοποθετώντας δύο Χ στα δύο τελευταία τετράγωνα: Ας δούµε τώρα ένα δένδρο απόφασης που θα παίξει τον ρόλο του δεύτερου παίκτη για ένα παιγνίδι Nim µε επτά τετράγωνα: Δένδρο απόφασης για το παιγνίδι Nim:

27 1.3. Τα πρώτα βήµατα στον προγραµµατισµό 7 Στη φύση, τα δένδρα φυτρώνουν από το έδαφος και αναπτύσσονται απλώνοντας τα κλαδιά τους προς τον ουρανό. Τα δένδρα αυτού του κεφαλαίου, για λόγους καλύτερης εποπτείας, αναπτύσσονται από τα αριστερά προς τα δεξιά. Οι διαδροµές που θα εξετάσουµε σε αυτά τα δένδρα ξεκινούν από το ακραίο αριστερό παραλληλόγραµµο, τη ρίζα (root node), και συνεχίζονται προς τα δεξιά. Σε κάθε κόµβο (node) του δένδρου υποβάλλεται µια ερώτηση στον χρήστη, και µε βάση την απάντηση που δίνεται επιλέγεται οεπόµενοςκλάδοςπουθα ακολουθηθεί. Η διαδροµή συνεχίζεται προς τα δεξιά µέχρι την άφιξη σε κάποιον τερµατικό κόµβο ή φύλλο (leaf node), δηλαδή έναν κόµβο που δεν έχει διακλαδώσεις προςταδεξιά.αυτόςοκόµβοςπεριέχει ένα µήνυµα το οποίο δίνει το αποτέλεσµα της ακολουθίας των ερωταποκρίσεων και σηµατοδοτεί το τέλος της διαδικασίας. Τέτοια δένδρα απόφασης έχουν πληθώρα εφαρµογών σε δραστηριότητες που απαιτούν επεξεργασία πληροφοριών, όπως είναι η παροχή συµβουλών, η ταξινόµηση αντικειµένων, η διδασκαλία, ακόµη και η ψυχαγωγία (παιχνίδια). Ο στόχος µας στο κεφάλαιο αυτό είναι η σύνταξη προγραµµάτων τα οποία θα καταγράφουν τη δοµή κάποιου δένδρου απόφασης, θα κατευθύνουν τον χρήστη στις σωστές διαδροµές και θα εκτυπώνουν τα αποτελέσµατα. Η ικανότητα σχεδιασµού και προγραµµατισµού τέτοιων δένδρων είναι ένα σηµαντικό προσόν για ένα µεγάλο πλήθος εφαρµογών. Ασκήσεις 1. Συµπληρώστε ένα από τα ηµιτελή δένδρα απόφασης αυτής της ενότητας. 2. Σχεδιάστε ένα πλήρες δένδρο απόφασης που να υποδύεται τον δεύτερο παίκτη σε ένα παιγνίδι Nim µε εννέα τετράγωνα. 3. Εντοπίστε ένα πρόβληµα σε κάποιον τοµέα των προσωπικών σας ενδιαφερόντων και σχεδιάστε ένα δένδρο απόφασης που να επιλύει το πρόβληµα αυτό. 1.3 Τα πρώτα βήµατα στον προγραµµατισµό (B) Ένα πρόγραµµα (computer program) είναι µια ακολουθία εντολών που µπορεί να εκτελέσει ένας υπολογιστής. Πρόκειται για µια αλληλουχία ενεργειών τις οποίες θα φέρει σε πέρας ο υπολογιστής και, εποµένως, θα πρέπει να είναι γραµµένες σε γλώσσα κατανοητή από τον υπολογιστή. Τα περισσότερα προγράµµατα αυτού του βιβλίου είναι γραµ- µένα στην Pascal, µια γλώσσα αρκετά διαδεδοµένη και εύχρηστη. Ένα πρόγραµµα ή ένα τµήµα προγράµµατος ονοµάζεται επίσης κώδικας (code). Στο βιβλίο αυτό χρησιµοποιούµε και τους δύο όρους. Ας δούµε ένα παράδειγµα προγράµµατος γραµµένου σε Pascal. program FirstCode; writeln(' Σπουδαίες ιδέες '); writeln(' στην '); writeln('επιστήµη των υπολογιστών'); readln; end. Εάν θέλουµε να πραγµατοποιηθούν οι ενέργειες που περιγράφονται στο παραπάνω πρόγραµµα, εκτελούµε (ή τρέχουµε, όπω ς επίσης λέγεται) το πρόγραµµα στον υπολογιστή. Για την εκτέλεση του προγράµµατος απαιτούνται τα εξής: ένας υπολογιστής, λογισµικό (software) που επιτρέπει στον υπολογιστήµαςνα«καταλαβαίνει» και να επεξεργάζεται προγράµµατα Pascal,

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Διδακτική της Πληροφορικής ΙΙ

Διδακτική της Πληροφορικής ΙΙ Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

Διαβάστε περισσότερα

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση Πρόλογος του επιµελητή xiii Πρόλογος στην πρώτη έκδοση xv Προς τους ϕοιτητές.......................... xv Προς τους διδάσκοντες........................ xvii Ηπρώτηέκδοση........................... xviii

Διαβάστε περισσότερα

Προγραµµατισµός Ι (ΗΥ120)

Προγραµµατισµός Ι (ΗΥ120) Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή ΑΝΑΚΟΙΝΩΣΗ 2 Το αυριανό µάθηµα θα πραγµατοποιηθεί στο αµφιθέατρο Σαράτση Ποιος είµαι εγώ! 3 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA,

Διαβάστε περισσότερα

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού. Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου

Διαβάστε περισσότερα

Οδηγίες για τη διδασκαλία µαθηµάτων Πληροφορικής του Ενιαίου Λυκείου

Οδηγίες για τη διδασκαλία µαθηµάτων Πληροφορικής του Ενιαίου Λυκείου Οδηγίες για τη διδασκαλία µαθηµάτων Πληροφορικής του Ενιαίου Λυκείου Εγγραφο Γ2/4769/4-9-1998 ΣΧΕΤ. 2794/23-6-98 έγγραφο του Παιδαγωγικού Ινστιτούτου Σας αποστέλλουµε οδηγίες για τη διδασκαλία των µαθηµάτων

Διαβάστε περισσότερα

http://kesyp.didefth.gr/ 1

http://kesyp.didefth.gr/ 1 248_Τµήµα Εφαρµοσµένων Μαθηµατικών Πανεπιστήµιο Κρήτης, Ηράκλειο Προπτυχιακό Πρόγραµµα Σκοπός του Τµήµατος Εφαρµοσµένων Μαθηµατικών είναι η εκαπαίδευση επιστηµόνων ικανών όχι µόνο να υπηρετήσουν και να

Διαβάστε περισσότερα

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

Διαβάστε περισσότερα

Μητρώο Τεκµηρίων Εκπαιδευτή ΕΝΟΤΗΤΑ/ΣΤΟΙΧΕΙΟ E/15 ΑΝΑΦΟΡΑ ΧΑΡΤΟΦΥΛΑΚΙΟΥ 15 ΕΚΠΑΙ ΕΥΤΗΣ Χρίστου Χρίστος

Μητρώο Τεκµηρίων Εκπαιδευτή ΕΝΟΤΗΤΑ/ΣΤΟΙΧΕΙΟ E/15 ΑΝΑΦΟΡΑ ΧΑΡΤΟΦΥΛΑΚΙΟΥ 15 ΕΚΠΑΙ ΕΥΤΗΣ Χρίστου Χρίστος 1. Προσδιορισµός κατάλληλων µέτρων αξιολόγησης για το πρόγραµµα ECDL α. Εφαρµογή διαφορετικών επιπέδων αξιολόγησης στο πρόγραµµα ECDL. Η αξιολόγηση του προγράµµατος ECDL πρέπει να διενεργείται σε 4 επίπεδα

Διαβάστε περισσότερα

Κωδικοποίηση δένδρων απόφασης

Κωδικοποίηση δένδρων απόφασης 1 Εισαγωγή στον προγραµµατισµό: Κωδικοποίηση δένδρων απόφασης 1.1 Καλά νέα (A) Παλαιότερα, πριν από την εµφάνιση των υπολογιστών,η διεκπεραίωση κάθε εργασίας απαιτούσε την εκτέλεσή της από εµάς τους ίδιους.

Διαβάστε περισσότερα

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Η έννοια πρόβληµα Ανάλυση προβλήµατος Με τον όρο πρόβληµα εννοούµε µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή ούτε προφανής. Μερικά προβλήµατα είναι τα εξής:

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

Διαβάστε περισσότερα

Άξονας ανάπτυξης του µαθήµατος 3. Γενικός σκοπός του µαθήµατος. Το µάθηµα της Πληροφορικής στο Γυµνάσιο

Άξονας ανάπτυξης του µαθήµατος 3. Γενικός σκοπός του µαθήµατος. Το µάθηµα της Πληροφορικής στο Γυµνάσιο Το µάθηµα της Πληροφορικής στο Γυµνάσιο Χρήση του ελεύθερου λογισµικού "Γλωσσοµάθεια" για την διδασκαλία εννοιών αλγοριθµικής - προγραµµατισµού στη Γ' Φουστέρης Νικόλαος Μηχανικός Πληροφορικής Τ.Ε. Καθηγητής

Διαβάστε περισσότερα

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος http://www.di.uoa.

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος http://www.di.uoa. Πληροφορική 1 Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος http://www.di.uoa.gr/~organosi/ 2 Η δομή του μαθήματος Εισαγωγή στην

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

Διαβάστε περισσότερα

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων... Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54

Διαβάστε περισσότερα

Αγαπητές/οί συνάδελφοι, σε αυτό το τεύχος σας προτείνουµε µερικά ενδιαφέροντα βιβλία που αφορούν βασικές αρχές της Συµβουλευτικής.

Αγαπητές/οί συνάδελφοι, σε αυτό το τεύχος σας προτείνουµε µερικά ενδιαφέροντα βιβλία που αφορούν βασικές αρχές της Συµβουλευτικής. Αγαπητές/οί συνάδελφοι, σε αυτό το τεύχος σας προτείνουµε µερικά ενδιαφέροντα βιβλία που αφορούν βασικές αρχές της Συµβουλευτικής. Arist Von Schlippe, Jochen Schweitzer επιµέλεια: Βιργινία Ιωαννίδου µετάφραση:

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Μάθηµα Κατεύθυνσης Πληροφορική Επιστήµη Η.Υ. Γ Ενιαίου Λυκείου ΟΚΤΩΒΡΙΟΣ 2005 1 Αναλυτικό Πρόγραµµα Μάθηµα Κατεύθυνσης:

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

Διαβάστε περισσότερα

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Σ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 3 ΙΟΥΝΙΟΥ 2003 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Διαβάστε περισσότερα

Γνωστική Ψυχολογία: Οι ανώτερες γνωστικές διεργασίες

Γνωστική Ψυχολογία: Οι ανώτερες γνωστικές διεργασίες Γνωστική Ψυχολογία: Οι ανώτερες γνωστικές διεργασίες ΤΟΠΟΣ Επιστημονικές Εκδόσεις Επιμέλεια-Διόρθωση: Μαρία Αποστολοπούλου Εξώφυλλο: ΜΟΤΙΒΟ Α.Ε. 2014 Εκδόσεις Τόπος & Νίκος Μακρής, Μπετίνα Ντάβου, Θανάσης

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α ΛΥΚΕΙΟΥ ΟΚΤΏΒΡΙΟΣ 2005 ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ - Α ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ Το µάθηµα της Πληροφορικής στην Α Λυκείου έχει ως γενικό

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΑΝΘΡΩΠΙΣΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΙ ΑΓΩΓΙΚΟ ΤΜΗΜΑ ΗΜΟΤΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΦΑΚΕΛΟΣ ΜΑΘΗΜΑΤΟΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΑΝΘΡΩΠΙΣΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΙ ΑΓΩΓΙΚΟ ΤΜΗΜΑ ΗΜΟΤΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΦΑΚΕΛΟΣ ΜΑΘΗΜΑΤΟΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΑΝΘΡΩΠΙΣΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΙ ΑΓΩΓΙΚΟ ΤΜΗΜΑ ΗΜΟΤΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΦΑΚΕΛΟΣ ΜΑΘΗΜΑΤΟΣ Μάθηµα: Εφαρµοσµένη ιδακτική των Φυσικών Επιστηµών (Πρακτικές Ασκήσεις Γ Φάσης) ΜΙΧΑΗΛ ΣΚΟΥΜΙΟΣ

Διαβάστε περισσότερα

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

Διαβάστε περισσότερα

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό, 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή 1. εδοµένα, Πληροφορίες και Υπολογιστές 2. Πώς φτάσαµε στους σηµερινούς υπολογιστές 3. Το υλικό ενός υπολογιστικού συστήµατος 4. Το λογισµικό ενός υπολογιστικού συστήµατος

Διαβάστε περισσότερα

ΕΙΣΗΓΗΣΗ ΕΠΙΤΡΟΠΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΓΙΑ ΤΑ ΜΑΘΗΜΑΤΑ ΚΟΡΜΟΥ

ΕΙΣΗΓΗΣΗ ΕΠΙΤΡΟΠΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΓΙΑ ΤΑ ΜΑΘΗΜΑΤΑ ΚΟΡΜΟΥ ΕΙΣΗΓΗΣΗ ΕΠΙΤΡΟΠΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΓΙΑ ΤΑ ΜΑΘΗΜΑΤΑ ΚΟΡΜΟΥ Η Εισηγητική Επιτροπή για το Πρόγραµµα Σπουδών, που ορίστηκε στην υπ αριθ. 7/18-1-2005 ΓΣ του Τµήµατος, πραγµατοποίησε πολλές πολύωρες συνεδριάσεις

Διαβάστε περισσότερα

Θέµατα της παρουσίασης. Βάσεις σχεδιασµού αναλυτικών προγραµµάτων φυσικής αγωγής. Τι είναι το αναλυτικό

Θέµατα της παρουσίασης. Βάσεις σχεδιασµού αναλυτικών προγραµµάτων φυσικής αγωγής. Τι είναι το αναλυτικό ΕΠΕΑΕΚ: ΑΝΑΜΟΡΦΩΣΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΤΟΥ ΤΕΦΑΑ, ΠΘ - ΑΥΤΕΠΙΣΤΑΣΙΑ Βάσεις σχεδιασµού αναλυτικών προγραµµάτων φυσικής αγωγής ιγγελίδης Νικόλαος Πανεπιστήµιο Θεσσαλίας ΤΕΦΑΑ, Τρίκαλα Θέµατα της παρουσίασης

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

Τμήμα Μηχανικών Πληροφορικής & Υπολογιστών

Τμήμα Μηχανικών Πληροφορικής & Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ Τμήμα Μηχανικών Πληροφορικής & Υπολογιστών ΑΝΤΙΣΤΟΙΧΙΣΕΙΣ ΜΑΘΗΜΑΤΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΠΟΥΔΩΝ & ΜΕΤΑΒΑΤΙΚΕΣ ΔΙΑΤΑΞΕΙΣ 2 Πίνακας περιεχομένων 1. Νομοθετικό Πλαίσιο και Υφιστάμενα

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών κεφάλαιο 1 Βασικές Έννοιες Επιστήμη 9 1Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ Στόχοι Στόχος του κεφαλαίου είναι οι μαθητές: να γνωρίσουν βασικές έννοιες και τομείς της Επιστήμης. Λέξεις κλειδιά Επιστήμη

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ 1.1 Να δοθεί ο ορισμός του προβλήματος καθώς και τρία παραδείγματα

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ

Διαβάστε περισσότερα

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9 ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ (1) ΓΕΝΙΚΑ ΣΧΟΛΗ ΤΜΗΜΑ ΠΟΛΥΤΕΧΝΙΚΗ Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9 ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Επιστημονικός Προγραμματισμός

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

Πρόλογος των Συγγραφέων

Πρόλογος των Συγγραφέων Πρόλογος των Συγγραφέων Τεχνητή Νοηµοσύνη (ΤΝ) είναι ο τοµέας της επιστήµης των υπολογιστών, που ασχολείται µε τη σχεδίαση ευφυών (νοηµόνων) υπολογιστικών συστηµάτων, δηλαδή συστηµάτων που επιδεικνύουν

Διαβάστε περισσότερα

Βοηθήστε τη ΕΗ. Ένα µικρό νησί απέχει 4 χιλιόµετρα από την ακτή και πρόκειται να συνδεθεί µε τον υποσταθµό της ΕΗ που βλέπετε στην παρακάτω εικόνα.

Βοηθήστε τη ΕΗ. Ένα µικρό νησί απέχει 4 χιλιόµετρα από την ακτή και πρόκειται να συνδεθεί µε τον υποσταθµό της ΕΗ που βλέπετε στην παρακάτω εικόνα. Γιώργος Μαντζώλας ΠΕ03 Βοηθήστε τη ΕΗ Η προβληµατική της Εκπαιδευτικής ραστηριότητας Η επίλυση προβλήµατος δεν είναι η άµεση απόκριση σε ένα ερέθισµα, αλλά ένας πολύπλοκος µηχανισµός στον οποίο εµπλέκονται

Διαβάστε περισσότερα

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΠΕΡΣΕΦΟΝΗ ΠΟΛΥΧΡΟΝΙΔΟΥ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕ

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΠΕΡΣΕΦΟΝΗ ΠΟΛΥΧΡΟΝΙΔΟΥ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΠΕΡΣΕΦΟΝΗ ΠΟΛΥΧΡΟΝΙΔΟΥ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Κεφάλαιο 6 Εισαγωγή στον προγραμματισμό 6.1 Γενικός διδακτικός σκοπός Ο γενικός σκοπός του κεφαλαίου είναι να καταστούν ικανοί ο μαθητές να αναγνωρίζουν τις βασικές τεχνικές προγραμματισμού και να χειρίζονται

Διαβάστε περισσότερα

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος Η έννοια του προβλήματος 1. Αναφέρετε μερικά από τα προβλήματα που συναντάτε στην καθημερινότητά σας. Απλά προβλήματα Ποιο δρόμο θα ακολουθήσω για να πάω στο σχολείο; Πως θα οργανώσω μια εκδρομή; Πως θα

Διαβάστε περισσότερα

Εισαγωγή στην έννοια του Αλγορίθμου

Εισαγωγή στην έννοια του Αλγορίθμου Εισαγωγή στην έννοια του Αλγορίθμου ΟΜΑΔΑ ΑΝΑΠΤΥΞΗΣ Νίκος Μιχαηλίδης, Πληροφορικός ΠΕ19 ΣΧΟΛΕΙΟ 2 ο Πρότυπο Πειραματικό Γυμνάσιο Θεσσαλονίκης Θεσσαλονίκη, 24 Φεβρουαρίου 2015 1. Συνοπτική περιγραφή της

Διαβάστε περισσότερα

ΕΙΣΗΓΗΣΗ ΕΠΙΤΡΟΠΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΓΙΑ ΤΑ ΜΑΘΗΜΑΤΑ ΚΟΡΜΟΥ

ΕΙΣΗΓΗΣΗ ΕΠΙΤΡΟΠΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΓΙΑ ΤΑ ΜΑΘΗΜΑΤΑ ΚΟΡΜΟΥ ΕΙΣΗΓΗΣΗ ΕΠΙΤΡΟΠΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΓΙΑ ΤΑ ΜΑΘΗΜΑΤΑ ΚΟΡΜΟΥ Η Εισηγητική Επιτροπή για το Πρόγραµµα Σπουδών, που ορίστηκε στην υπ αριθ. 7/18-1-2005 ΓΣ του Τµήµατος, πραγµατοποίησε πολλές πολύωρες συνεδριάσεις

Διαβάστε περισσότερα

Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012

Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012 Διδακτική Προγραμματισμού Χαρίκλεια Τσαλαπάτα 20/2/2012 Διδακτική προγραμματισμού Παλαιότερα, η διδασκαλία του προγραμματισμού ταυτιζόταν με τη διδακτική της πληροφορικής Πλέον Η διδακτική της πληροφορικής

Διαβάστε περισσότερα

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

Διαβάστε περισσότερα

Εφαρμογές Προσομοίωσης

Εφαρμογές Προσομοίωσης Εφαρμογές Προσομοίωσης H προσομοίωση (simulation) ως τεχνική μίμησης της συμπεριφοράς ενός συστήματος από ένα άλλο σύστημα, καταλαμβάνει περίοπτη θέση στα πλαίσια των εκπαιδευτικών εφαρμογών των ΤΠΕ. Μπορούμε

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ 2014 2015

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ 2014 2015 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ 2014 2015 Επιτροπή προπτυχιακών σπουδών: Κ. Βασιλάκης Κ. Γιαννόπουλος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

Διαβάστε περισσότερα

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες ΣΧΟΛΕΙΟ Η εκπαιδευτική πρακτική αφορούσε τη διδασκαλία των μεταβλητών στον προγραμματισμό και εφαρμόστηκε σε μαθητές της τελευταίας τάξης ΕΠΑΛ του τομέα Πληροφορικής στα πλαίσια του μαθήματος του Δομημένου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΞΑΜΗΝΟ Η ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΦΟΙΤΗΤΗ : ΜΟΣΧΟΥΛΑ ΟΛΓΑ ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ : 30/02 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΙΑΧΕΙΡΙΣΗΣ ΣΥΝΕ ΡΙΩΝ ΜΕ ΧΡΗΣΗ

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

Διαβάστε περισσότερα

Σχόλια και υποδείξεις για το Σχέδιο Μαθήματος

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

Διαβάστε περισσότερα

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ (1) ΓΕΝΙΚΑ ΣΧΟΛΗ ΠΟΛΥΤΕΧΝΙΚΗ ΤΜΗΜΑ Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0145 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 4ο ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Εργαστήριο Προγράμματος

Διαβάστε περισσότερα

6 Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας

6 Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας Πρόλογος Σ το βιβλίο αυτό περιλαμβάνεται η ύλη του μαθήματος «Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας» που διδάσκεται στους φοιτητές του Γ έτους σπουδών του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας

Διαβάστε περισσότερα

Γεωµετρία Β' Λυκείου. Συµµεταβολή µεγεθών. Εµβαδόν ισοσκελούς τριγώνου. Σύστηµα. συντεταγµένων. Γραφική παράσταση συνάρτησης. Μέγιστη - ελάχιστη τιµή.

Γεωµετρία Β' Λυκείου. Συµµεταβολή µεγεθών. Εµβαδόν ισοσκελούς τριγώνου. Σύστηµα. συντεταγµένων. Γραφική παράσταση συνάρτησης. Μέγιστη - ελάχιστη τιµή. Σενάριο 6. Συµµεταβολές στο ισοσκελές τρίγωνο Γνωστική περιοχή: Γεωµετρία Β' Λυκείου. Συµµεταβολή µεγεθών. Εµβαδόν ισοσκελούς τριγώνου. Σύστηµα συντεταγµένων. Γραφική παράσταση συνάρτησης. Μέγιστη - ελάχιστη

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ»

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» - Κρυπτογραφία είναι - Κρυπτανάλυση είναι - Με τον όρο κλειδί. - Κρυπτολογία = Κρυπτογραφία + Κρυπτανάλυση - Οι επιστήµες αυτές είχαν

Διαβάστε περισσότερα

Θεωρητικές αρχές σχεδιασµού µιας ενότητας στα Μαθηµατικά. Ε. Κολέζα

Θεωρητικές αρχές σχεδιασµού µιας ενότητας στα Μαθηµατικά. Ε. Κολέζα Θεωρητικές αρχές σχεδιασµού µιας ενότητας στα Μαθηµατικά Ε. Κολέζα Α. Θεωρητικές αρχές σχεδιασµού µιας µαθηµατικής ενότητας: Βήµατα για τη συγγραφή του σχεδίου Β. Θεωρητικό υπόβαθρο της διδακτικής πρότασης

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α ΛΥΚΕΙΟΥ Σεπτέμβριος 2007 ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ - Α ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ Το μάθημα της Πληροφορικής στην Α Λυκείου έχει ως

Διαβάστε περισσότερα

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

Ασαφής Λογική Παράδειγµα. Νίκος Καραδήµας

Ασαφής Λογική Παράδειγµα. Νίκος Καραδήµας Ασαφής Λογική Παράδειγµα Νίκος Καραδήµας Παράδειγµα Θα εξεταστεί το πρόβληµα του φιλοδωρήµατος: «Ποιο είναι το "σωστό" φιλοδώρηµα γιατονσερβιτόροµας;» Λαµβάνοντας υπόψη έναν αριθµό µεταξύ 0 και 10 που

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

Συγγραφή Τεχνικών Κειμένων

Συγγραφή Τεχνικών Κειμένων Συγγραφή Τεχνικών Κειμένων Η Ανάπτυξη του κειμένου Από τις διαλέξεις του μαθήματος του Α εξαμήνου σπουδών του Τμήματος Πολιτικών Μηχανικών και Μηχανικών Τοπογραφίας & Γεωπληροφορικής Κ. Παπαθεοδώρου, Αναπληρωτής

Διαβάστε περισσότερα

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

Διαβάστε περισσότερα

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

Διαβάστε περισσότερα

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Δυνατότητα ανάπτυξης, μεταγλώττισης και εκτέλεσης προγραμμάτων στη PASCAL. Κατανόηση της σύνταξης των προτάσεων της PASCAL. Κατανόηση της εντολής εξόδου για

Διαβάστε περισσότερα

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι)

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι) Εισαγωγή Το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Πανεπιστημίου Κύπρου προσφέρει ολοκληρωμένα προπτυχιακά και μεταπτυχιακά προγράμματα σπουδών στους κλάδους του Ηλεκτρολόγου Μηχανικού

Διαβάστε περισσότερα

Εκτίμηση Αξιολόγηση της Μάθησης

Εκτίμηση Αξιολόγηση της Μάθησης Εκτίμηση Αξιολόγηση της Μάθησης Ορισμοί Ο διδάσκων δεν αρκεί να κάνει μάθημα, αλλά και να διασφαλίζει ότι πετυχαίνει το επιθυμητό αποτέλεσμα της μάθησης Η εκτίμηση της μάθησης αναφέρεται στην ανατροφοδότηση

Διαβάστε περισσότερα

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας)

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Εισαγωγή 1. Τι είναι αυτό που κρατάς στα χέρια σου. Αυτό το κείµενο είναι µια προσπάθεια να αποτυπωθεί όλη η θεωρία του σχολικού µε

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 1 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 1 ο Να δοθεί ο ορισμός του προβλήματος καθώς και τρία παραδείγματα σημαντικών ιστορικών ή επιστημονικών προβλημάτων. Με τον όρο Πρόβλημα, εννοείται μια κατάσταση η οποία χρήζει αντιμετώπισης,και απαιτεί λύση

Διαβάστε περισσότερα

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Εισαγωγή στις έννοιες Αλγόριθµοι και Πολυπλοκότητα, Οργάνωση Δεδοµένων και Δοµές Δεδοµένων Χρήσιµοι µαθηµατικοί

Διαβάστε περισσότερα

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήµη των Η/Υ

Εισαγωγή στην Επιστήµη των Η/Υ Εισαγωγή στην Επιστήµη των Η/Υ Εισαγωγή στην Επιστήµη των Η/Υ Εισαγωγή Καθ. Κ. Κουρκουµπέτης Σηµείωση: Οι διαφάνειες βασίζονται σε µεγάλο βαθµό σε αυτές που συνοδεύονται µε το προτεινόµενο σύγγραµµα. 1

Διαβάστε περισσότερα

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

Διαβάστε περισσότερα

Πληροφορική (BSc & MSc)

Πληροφορική (BSc & MSc) ς Πληροφορική (BSc & MSc) www.nup.ac.cy ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ Πτυχίο στην Εφαρμοσμένη Πληροφορική BSc in Applied Informatics Περιγραφή Προγράμματος Στόχος του Προπτυχιακού Προγράμματος στην Εφαρμοσμένη

Διαβάστε περισσότερα

Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις

Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου (νέο βιβλίο Πληροφορικής Γυµνασίου Αράπογλου, Μαβόγλου, Οικονοµάκου, Φύτρου) Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις 1. Τι είναι ο Αλγόριθµος;

Διαβάστε περισσότερα

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

Διαβάστε περισσότερα