ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Β΄ ΤΑΞΗ ΕΠΑ.Λ.
Πληροφορική & Επιστήμη των Υπολογιστών Πληροφορική & Επιστήμη των Υπολογιστών Πληροφορική είναι η επιστήμη που ασχολείται με την αναπαράσταση, αποθήκευση και επεξεργασία της πληροφορίας. Επιστήμη των Υπολογιστών είναι η επιστήμη που ασχολείται με τους υπολογιστές και τους υπολογισμούς. Πληροφορική = Επιστήμη των Υπολογιστών Θεμελιώδεις έννοιες Ο ίδιος, ο υπολογιστής Η υπολογιστική διαδικασία που μπορεί να επιτελέσει η μηχανή, το πρόγραμμα.
Επιστήμη των Υπολογιστών Θεωρητική Επίλυση Προβλημάτων Αλγόριθμοι Ανάλυση Αλγορίθμων Δομές Δεδομένων Μέθοδοι Προγραμματισμού Γλώσσες Προγραμματισμού Μεταγλωττιστές Θεωρία Αυτομάτων Θεωρία Υπολογισμών Θεωρία Πολυπλοκότητας Τεχνολογία Λογισμικού Εφαρμοσμένη Υλικό Υπολογιστή Ολοκληρωμένα κυκλώματα Μικροεπεξεργαστές Οργάνωση και αρχιτεκτονική υπολογιστών Δίκτυα Υπολογιστών Λειτουργικά Συστήματα Επικοινωνία Ανθρώπου – Μηχανής Πληροφοριακά Συστήματα Διαχείρισης ΒΔ Τεχνητή Νοημοσύνη Εφαρμογές σε άλλες Επιστήμες
Θεωρητική Επιστήμη των Υπολογιστών Θεωρητική Επιστήμη των Υπολογιστών Θεμελιώδεις έννοιες της Θεωρητικής Επιστήμης των Υπολογιστών είναι ο αλγόριθμος και το πρόγραμμα. Ορισμός 1ος: Αλγόριθμος είναι ένα σύνολο πεπερασμένων βημάτων (ενεργειών) τα οποία αν τα εκτελέσω με τη σειρά, σε πεπερασμένο χρόνο θα φτάσω στη λύση του προβλήματος που με απασχολεί. Ορισμός 2ος: Αλγόριθμος είναι η ακριβής περιγραφή μιας σειράς βημάτων τα οποία οδηγούν που χρειάζονται για την επίλυση ενός προβλήματος. Ο αλγόριθμος με τη βοήθεια μιας γλώσσας προγραμματισμού γίνεται πρόγραμμα και εκτελείται από τον υπολογιστή.
Εφαρμοσμένη Επιστήμη των Υπολογιστών Η εφαρμοσμένη πληροφορική ασχολείται με το υλικό, καθώς επίσης και με την οργάνωση και αρχιτεκτονική των υπολογιστών. Άλλο αντικείμενο της εφαρμοσμένης πληροφορικής είναι τα λειτουργικά συστήματα, τα πληροφοριακά συστήματα και ο τομέας της τεχνητής νοημοσύνης. Τέλος επειδή η πληροφορική «αγγίζει» όλες τις επιστήμες αναπτύσσονται εφαρμογές που τις βοηθούν τόσο στη λειτουργία όσο και στην εξέλιξη τους.
Πρόβλημα Ορισμός: Πρόβλημα είναι μία δυσάρεστη κατάσταση που πρέπει να αντιμετωπιστεί αλλά η λύση δεν είναι γνωστή ή προφανής. Κατηγορίες Προβλημάτων Επιλύσιμα Αυτά που έχουν αποδεδειγμένα λύση. Μη Επιλύσιμα Εκείνα που αποδεδειγμένα δεν έχουν λύση. Ανοικτά Τα προβλήματα που δεν έχουμε ακόμα τα μέσα, τις γνώσεις ή την τεχνολογία για να καταλήξουμε αν είναι επιλύσιμα ή μη επιλύσιμα. Τα προβλήματα τα οποία χρειάζονται υπολογισμούς και πράξεις μπορούμε να τα επιλύσουμε με τη βοήθεια των υπολογιστών τα ονομάζουμε υπολογιστικά. Άλλου είδους προβλήματα είναι τα απόφασης, όπου πρέπει να ληφθεί μία απόφαση και τα βελτιστοποίησης όπου πρέπει να ληφθεί η καλύτερη επιλογή.
Διαδικασία Επίλυσης Προβλήματος κατανόηση Ένα πρόβλημα πρέπει πρώτα να κατανοηθεί σωστά, να εντοπιστούν τα δεδομένα του και να προσδιοριστούν τα ζητούμενα. Έπειτα προχωράμε στον υπολογισμό ή στην απόδοση της λύση. Όποια λύση δοθεί πρέπει να αξιολογηθεί για να δούμε εάν είναι ικανοποιητική. Στην περίπτωση που δε βρεθεί ικανοποιητική λύση ξαναγυρνάμε στα πρώτα στάδια για επανεξέταση του προβλήματος και επίλυση. επίλυση Αξιολόγηση λύσης
Δεδομένα & Ζητούμενα Δεδομένα: είναι τα γνωστά ή αποδεκτά στοιχεία τα οποία χρησιμο-ποιούνται για την επίλυση ενός προβλήματος. Ζητούμενα: είναι αυτά τα στοιχεία που ψάχνουμε για να βγούμε από τη δύσκολή κατάσταση στην οποία βρισκόμαστε. Τα δεδομένα και τα ζητούμενα πρέπει να χαρακτηρίζονται από τα εξής παρακάτω: Ορθότητα Σαφήνεια Πληρότητα
Αλγόριθμος Ορισμός: Ως αλγόριθμος ορίζεται μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Πιο απλά αλγόριθμος είναι ονομάζουμε μία σειρά από εντολές που αν εκτελεστούν θα μου δώσουν λύση σε κάποιο πρόβλημα. Αλγόριθμος είναι η ακριβής περιγραφή μιας σειράς βημάτων που απαιτούνται για την επίλυση ενός προβλήματος. Ο αλγόριθμος πάντα ικανοποιεί πέντε κριτήρια: Καθοριστικότητα (κάθε βήμα είναι ξεχωριστό και σαφές ως προς τον τρόπο εκτέλεσης) Περατότητα Αποτελεσματικότητα Είσοδος Έξοδος
Πιο συγκεκριμένα: Καθοριστικότητα κάθε βήμα είναι ξεχωριστό και σαφές ως προς τον τρόπο εκτέλεσης) Περατότητα Κάθε αλγόριθμος τελειώνει μετά από κάποιον αριθμό βημάτων. Αποτελεσματικότητα Κάθε εντολή του αλγόριθμου είναι διατυπωμένη και εκτελείται με σαφήνεια και απλό τρόπο σε πεπερασμένο χρόνο. Είσοδο Κάθε αλγόριθμος δέχεται ένα σύνολο μεταβλητών εισόδου. Έξοδο Κάθε αλγόριθμος οδηγεί σε ένα αποτέλεσμα.
Παράδειγμα Μια συνταγή μαγειρικής είναι ένα χαρακτηριστικότατο παράδειγμα αλγορίθμου. Αλγόριθμος για φραπέ χωρίς γάλα Παίρνουμε ένα ψηλό ποτήρι. Προσθέτουμε τρεις κουταλιές του γλυκού νερό. Προσθέτουμε στο ποτήρι 1,5 κουταλιά του γλυκού στιγμιαίο καφέ. Χτυπάμε με το μιξεράκι για 10 δευτερόλεπτα. Προσθέτουμε 3 παγάκια Συμπληρώνουμε με κρύο νερό το ποτήρι Σερβίρουμε με ψηλό καλαμάκι. Εξετάζοντας το σύνολο των βημάτων της συνταγής θα δούμε ότι ισχύουν όλα τα χαρακτηριστικά των αλγορίθμων.
Αποδοτικότητα αλγορίθμου Ποιος αλγόριθμος είναι καλύτερος αλήθεια; Οι περισσότεροι μαθητές απαντούν ο πιο γρήγορος και έχουν δίκαιο. Οι παράγοντες που αναλύονται είναι ο χρόνος εκτέλεσης και ο χώρος. Στην περίπτωση του χρόνου εκτέλεσης τον μετράμε και όσο συντομότερος είναι, είναι και καλύτερος. Στην άλλη περίπτωση του χώρου όσο λιγότερο χώρος στο δίσκο και στη μνήμη δεσμεύεται από τον αλγόριθμο τόσο καλύτερος είναι και πάλι. Πιο σημαντική παράμετρος είναι ο χρόνος εκτέλεσης διότι το κόστος των κυκλωμάτων μνήμης των υπολογιστών μειώνεται συνεχώς με την εξέλιξη της τεχνολογίας κι έτσι το πρόβλημα του χώρου δε μας απασχολεί τόσο.
Σειριακοί & Παράλληλοι Αλγόριθμοι Σειριακοί λέγονται οι αλγόριθμοι που χρησιμοποιούν μία κεντρική μονάδα επεξεργασίας και οι εντολές τους εκτελούνται σε σειρά η μία μετά την άλλη. Παράλληλοι χαρακτηρίζονται οι αλγόριθμοι που χρησιμοποιούν πολλαπλές κεντρικές μονάδες επεξεργασίας όπου ορισμένες ή μία σειρά από εντολές εκτελούνται παράλληλα (ταυτόχρονα).
Σειριακός τρόπος εκτέλεσης εντολών Σειριακός τρόπος εκτέλεσης εντολών Έχουμε 4 καουμπόης που πρέπει να σκάψουν ένα χαντάκι 100μ. Επειδή έχουν όμως ένα φτυάρι μόνο είναι υποχρεωμένοι να δουλέψουν ένας, ένας. Στην αρχή ο πρώτος καουμπόη θα σκάψει τα πρώτα 25 μ, μετά ο δεύτερος τα επόμενα 25, ο τρίτος τα προτελευταία 25 και στο τέλο ο τέταρτος τα τελευταία 25μ. 100m
Παράλληλος τρόπος εκτέλεσης εντολών Παράλληλος τρόπος εκτέλεσης εντολών Οι 4 καουμπόης που πρέπει να σκάψουν το χαντάκι 100μ έχουν τώρα 4 φτυάρια. Αυτό σημαίνει ότι αντί να περιμένει ο καθένας τη σειρά του μπορούν να δουλέψουν ταυτόχρονα και άρα γρηγορότερα. Έτσι ο καθένας σκάβει το κομμάτι του και τελειώνουν γρηγορότερα. 100m
Ταξινόμηση λίστας αριθμών Σειριακός Παράλληλος
Παράδειγμα 1 σελ 32. Περιγράψτε με φυσική γλώσσα αλγόριθμο υπολογισμού της περιφέρειας του εμβαδού ενός κύκλου.
Η αναπαράσταση των αλγορίθμων Για την αναπαράσταση αλγορίθμων υπάρχουν οι παρακάτω τρόποι : Φυσική γλώσσα Ψευδοκώδικα ή ψευδογλώσσα Γλώσσα προγραμματισμού Μεθοδολογίες διαγραμματικής αναπαράστασης αλγορίθμων Μέθοδος περιγραφής Βαθμός δόμησης Φυσική γλώσσα Αδόμητος Διάγραμμα ροής Ψευδογλώσσα Γλώσσες προγρ/σμού Δομημένος
Και με τους άλλους τρεις τρόπους… Γλώσσα προγραμματισμού Python
Η αναπαράσταση των αλγορίθμων Φυσική γλώσσα όπου η αναπαράσταση γίνεται με την ομιλούμενη γλώσσα, μέσω της οποίας περιγράφονται τα βήματα επίλυσης του προβλήματος. Ωστόσο, με τη φυσική γλώσσα μπορούν να παρατηρηθούν ασάφειες στις οδηγίες. Είναι ο λιγότερο δομημένος τρόπος απεικόνισης ενός αλγόριθμου. Ψευδοκώδικα ή ψευδογλώσσα η οποία είναι μια υποθετική γλώσσα για την αναπαράσταση αλγορίθμων με στοιχεία από κάποιες γλώσσες προγραμματισμού, παραλείποντας λεπτομέρειες που δεν είναι ουσιαστικές για την ανθρώπινη κατανόηση του αλγορίθμου. Γλώσσα προγραμματισμού η οποία είναι μια τεχνητή γλώσσα, που έχει αναπτυχθεί για να δημιουργεί ή να εκφράζει προγράμματα για τον υπολογιστή. Η αναπαράσταση των αλγορίθμων με γλώσσα προγραμματισμού μπορεί να γίνει είτε με οπτικές είτε με κειμενικές γλώσσες προγραμματισμού. Είναι ο λιγότερο δομημένος τρόπος απεικόνισης ενός αλγόριθμου. Μεθοδολογίες διαγραμματικής αναπαράστασης αλγορίθμων όπως είναι το διάγραμμα ροής, όπου η περιγραφή και η αναπαράσταση των αλγορίθμων γίνεται με τη χρήση γεωμετρικών σχημάτων - συμβόλων, όπου το καθένα δηλώνει μια συγκεκριμένη ενέργεια ή λειτουργία. Είναι ο πιο εποπτικός τρόπος απεικόνισης ενός αλγόριθμου.
Εισαγωγή στην Ψευδογλώσσα Όπως προαναφέραμε Ψευδοκώδικας ή ψευδογλώσσα είναι μια υποθετική γλώσσα με στοιχεία από κάποιες γλώσσες προγραμματισμού για την αναπαράσταση αλγορίθμων. Αυτό που γίνεται δηλαδή είναι ότι ενώ έχει τη δομή (στήσιμο) μιας κανονικής γλώσσας προγραμματισμού, οι εντολές είναι σε φυσική γλώσσα. Έτσι είναι πολύ απλό να φτιαχτούν ή να απεικονιστούν αλγόριθμοι και ταυτόχρονα να είναι εύκολα κατανοητοί. Εμείς στο σχολείο χρησιμοποιούμε το εργαλείο Διερμηνευτής Γλώσσας.
Εντολές ψευδοκώδικα Εντολή Αλγόριθμος Είναι η πρώτη εντολή σε έναν αλγόριθμο. Ο,τιδήποτε είναι γραμμένο πριν την εντολή αυτή είναι εκτός αλγορίθμου. Συνοδεύεται από τον τίτλο του αλγορίθμου ο οποίος καλό θα είναι να μας δείχνει το τι κάνει ο αλγόριθμο. Παράδειγμα: Αλγόριθμος Μισθοδοσία Τέλος Είναι η τελευταία εντολή σε έναν αλγόριθμο. Ο,τιδήποτε είναι γραμμένο μετά την εντολή αυτή είναι εκτός αλγορίθμου. Συνοδεύεται από τον τίτλο του αλγορίθμου ο οποίος είναι και στην εντολή αλγόριθμος. Παράδειγμα: Τέλος Μισθοδοσία
Τύποι δεδομένων Όλοι οι αλγόριθμοι όπως και τα προγράμματα επεξεργάζονται δεδομένα τα οποία σύμφωνα με το γνωστό μοντέλο μας δίνουν στο τέλος ως αποτελέσματα, τις ζητούμενες πληροφορίες. Τα δεδομένα και οι πληροφορίες χαρακτηρίζονται από τον τύπο τους, δηλαδή το είδος τους. Ο τύπος αυτός μπορεί να είναι: ΤΥΠΟΣ ΔΕΔΟΜΕΝΟΥ Παραδείγματα τιμών Αριθμητικός Ακέραιος π.χ.: 10 -4 0 -128 1024 Αριθμητικός Πραγματικός π.χ.: 95.6 137.20 0.00 Αλφαριθμητικός “GEI1742” “S34-1G” 235177160” “Komotini” “greatuser@mail.gr” Λογικός “Αληθής” “Ψευδής”
Σταθερές Μεταβλητές Πράξεις Σταθερά ονομάζεται μία ποσότητα που η τιμή της δεν αλλάζει κατά τη διάρκεια εκτέλεσης του αλγορίθμου. Μεταβλητή είναι μια ποσότητα που αναπαριστά ένα στοιχείο που έχει νόημα στον πραγματικό κόσμο και η τιμή του μπορεί να αλλάζει καθώς τρέχει ο αλγόριθμος. Ο τύπος των σταθερών και των μεταβλητών είναι καθοριστικός για τις τιμές που μπορούν να παίρνουν και φυσικά για τον τρόπο επεξεργασίας τους. (πράξεις) Οι πράξεις είναι τριών ειδών: Αριθμητικές Σχεσιακές και Λογικές Κάθε πράξη έχει και τον αντίστοιχο τελεστή της. Ένα σύμβολο δηλαδή για να υποδεικνύει την πράξη που γίνεται μεταξύ των μεταβλητών που λέγονται τελεσταίοι.
Τελεστές Αριθμητικοί +, -, *, /, ^, div, mod Συγκριτικοί >, <, >=,<=,==,<> Λογικοί ΌΧΙ, ΚΑΙ, Ή Έκφραση είναι ο συνδιασμός σταθερών και μεταβλητών με τελεστές. Πχ: α*χ^2+β*χ+γ , βάση * ύψος , (χ*ψ)/ζ Η προτεραιότητα των πράξεων ισχύει κανονικά όπως την ξέρουμε.
Ονόματα Μεταβλητών Προσοχή! Φροντίζουμε πάντα τα ονόματα των μεταβλητών και των σταθερών να ξεκινάνε με γράμμα. Να μην είναι δεσμευμένες λέξεις δηλαδή ονόματα εντολών και να μην έχουν σύμβολα που χρησιμοποιούνται για κάποια πράξη ή λειτουργία. Έτσι στα ονόματα των μεταβλητών μπορούν να χρησιμοποιηθούν γράμματα, αριθμοί και η κάτω παύλα “_” αλλά όχι στην αρχή τα δύο τελευταία. ΑΠΟΔΕΚΤΑ ΟΝΟΜΑΤΑ ΓΙΑ ΜΕΤΑΒΛΗΤΗ ΜΗ ΑΠΟΔΕΚΤΑ Βαθμος1 1βαθμός Μισθός Χ Εμβ_σπιτιού ΦΠΑ Μ!$θό$ 2ΒΑ Εμβ-σπιτιού Εμβ οικοπέδου “ΟΔΟΣ” ΕΜΦΑΝΙΣΕ
Δομή ακολουθίας Οι εντολές διαδέχονται η μία την άλλη. Εκτελούνται ακολουθιακά, με τη σειρά δηλαδή και στο τέλος παίρνουμε το αποτέλεσμα. Χρησιμοποιείται κυρίως σε απλά προβλήματα. Π.χ. υπολογισμός μέσου όρου δύο αριθμών. ΑΛΓΟΡΙΘΜΟΣ ΜΟ2Α ΕΜΦΑΝΙΣΕ (“ΓΡΑΨΕ 2 ΑΡΙΘΜΟΥΣ”) ΔΙΑΒΑΣΕ Χ,Υ ΑΘ Χ+Υ ΜΟ ΑΘ/2 ΕΜΦΑΝΙΣΕ (“ΜΕΣΟΣ ΟΡΟΣ=”),MO ΤΕΛΟΣ ΜΟ2Α
Εντολή Διάβασε Διάβασε λίστα_μεταβλητών Εντολή εισόδου. Με την εντολή αυτή εισάγονται τιμές από το χρήστη. Οι τιμές αυτές εκχωρούνται (ανατίθενται) σε μεταβλητές και με τον αλγόριθμο θα γίνουν οι απαραίτητες πράξεις. Όταν δοθούν τόσες τιμές όσες και οι μεταβλητές ολοκληρώνεται η είσοδος των δεδομένων. Παράδειγμα: Διάβασε τιμή1, τιμή2 Η εκχώρηση τιμής γίνεται με την εντολή: Μεταβλητή έκφραση
Εντολή Εμφάνισε Εμφάνισε λίστα_αποτελεσμάτων Εντολή εξόδου. Με την εντολή αυτή εμφανίζονται τα αποτελέσματα του αλγόριθμου στην οθόνη του υπολογιστή. Επίσης με την εντολή αυτή εμφανίζονται και συνοδευτικά μηνύματα με τα αποτελέσματα ή και μεμονωμένα. Παραδείγματα: Εμφάνισε (“Καλό μάθημα!”) Εμφάνισε (“Ο μέσος όρος είναι:”), μέσος_όρος Εμφάνισε χ
Παράδειγμα αλγόριθμου: Θέλουμε να κατεβάσουμε στο κινητό μας τηλέφωνο μια εφαρμογή. Η ταχύτητα σύνδεσής μας στο διαδίκτυο είναι 1,6 ΜΒ/δευτερόλεπτο. Γράψτε αλγόριθμο που δέχεται ως είσοδο το μέγεθος της εφαρμογής σε MB και υπολογίζει σε πόσο χρόνο θα κατέβει η εφαρμογή. Αλγόριθμος Download Εμφάνισε (“Δώστε το μέγεθος της εφαρμογής”) Διάβασε μέγεθος Χρόνος μέγεθος / 1.6 Εμφάνισε (“Ο χρόνος είναι:”) Εμφάνισε Χρόνος Τέλος Download