(i) Σθνπόο ηνπ καζήκαηνο Δηζαγσγή ζηελ πιεξνθνξηθή (computer science) Δηζαγσγή ζηνλ πξνγξακκαηηζκό ειεθηξνληθώλ ππνινγηζηώλ (Η/Υ) Μεζνδνινγία αιγνξηζκηθήο επίιπζεο πξνβιεκάησλ 1
(ii) Αιγόξηζκνο Πεπεξαζκέλε αθνινπζία ελεξγεηώλ πνπ πεξηγξάθεη ηνλ ηξόπν επίιπζεο ελόο πξνβιήκαηνο Δθαξκόδεηαη ζε δεδνκέλα (data) Πξόγξακκα Αθξηβήο πεξηγξαθή ελόο αιγνξίζκνπ ζε κηα ηππηθή γιώζζα πνπ νλνκάδεηαη γιώζζα πξνγξακκαηηζκνύ 2
(iii) Φπζηθή γιώζζα Φσξίο ηόζν απζηεξνύο ζπληαθηηθνύο πεξηνξηζκνύο Μεγάιε ππθλόηεηα θαη ζεκαζηνινγηθή ηθαλόηεηα Τππηθή γιώζζα Απζηεξόηαηε ζύληαμε θαη ζεκαζηνινγία Γιώζζα πξνγξακκαηηζκνύ Τππηθή γιώζζα ζηελ νπνία κπνξνύλ λα πεξηγξαθνύλ ππνινγηζκνί Δθηειέζηκε από έλαλ ειεθηξνληθό ππνινγηζηή 3
(iv) Πιεξνθνξηθή Ηιεθηξνληθνί ππνινγηζηέο (engineering) Σρεδίαζε θαη θαηαζθεπή Μαζεκαηηθά Θεσξία θαη αλαιπηηθή κέζνδνο Κεληξηθή έλλνηα: ππνινγηζκόο (computation) 4
(v) Πιεξνθνξηθή: καζεκαηηθνπνίεζε ηεο κεζνδνινγίαο ησλ κεραληθώλ Απαηηήζεηο Πξόβιεκα Πξνδηαγξαθέο Σρεδίαζε Υινπνίεζε Δκπεηξηθόο έιεγρνο Θεσξεηηθή επαιήζεπζε Βειηηζηνπνίεζε Πνιππινθόηεηα (θόζηνο πόξσλ-αγαζώλ) Τεθκεξίσζε Σπληήξεζε Έλλνηεο πνπ ππήξραλ γηα ηνπο κεραληθνύο, ζηελ πιεξνθνξηθή ηππνπνηήζεθαλ, πήξαλ καζεκαηηθή κνξθή, άξα κπνξεί θαλείο λα επηρεηξεκαηνινγήζεη κε απηέο ηηο έλλνηεο ρξεζηκνπνηώληαο απνδείμεηο. 5
(vi) Γεπηεξνβάζκηα εθπαίδεπζε Σθνπόο: λα κάζεηο λα ζθέθηεζαη Η Δπθιείδεηα Γεσκεηξία (κε ηε βαζηθή δηδαθηηθή ηεο αμία) απνπζηάδεη από ην πξόγξακκα ζπνπδώλ εδώ θαη ρξόληα. Απνηέιεζκα: όπσο είδακε θαη ζηηο παλειιήληεο εμεηάζεηο δίλεηαη έκθαζε ζηελ απνζηήζηζε αλνπζίσλ ζεσξεκάησλ θαη γλώζεσλ δηαθνξηθνύ θαη απεηξνζηηθνύ ινγηζκνύ. Η ηθαλόηεηα καζεκαηηθήο επίιπζεο απιώλ αιιά πξσηόηππσλ πξνβιεκάησλ δελ παίδεη ξόιν. Απνπζία γλώζεσλ ζπλδπαζηηθήο (κέηξεζε πεξηπηώζεσλ, ηξίγσλν Pascal). Δθαξκνγή ησλ απνζηεζηζκέλσλ θαλόλσλ; Άιγεβξα: αλ ξσηήζσ έλαλ ηειεηόθνηην Λπθείνπ πόζν θάλεη 107 93 ζα δπζθνιεπηεί πνιύ λα απαληήζεη, ελώ θπζηθά γλσξίδεη όηη (α+β)(α β) = α 2 β 2 6
(vii) Οη καζεηέο αγλννύλ ηελ έλλνηα ηνπ απνδνηηθνύ αιγόξηζκνπ π.ρ. καζαίλνπλ έλα κε-απνδνηηθό αιγόξηζκν γηα ηελ εύξεζε ηνπ Μ.Κ.Γ. ελώ ν αιγόξηζκνο ηνπ Δπθιείδε απνπζηάδεη από ηελ ύιε Πξόηαζε Δηζαγσγή ηεο Θεσξεηηθήο Πιεξνθνξηθήο ζηε δεπηεξνβάζκηα εθπαίδεπζε γηα όινπο ηνπο καζεηέο Μεζνδνινγία επίιπζεο πξνβιεκάησλ κε ζρεδίαζε θαη πινπνίεζε αιγνξίζκσλ 7
(viii) Τξηηνβάζκηα εθπαίδεπζε Η ηερλνινγία αιιάδεη αέλαα θαη γξήγνξα ηα ζεκέιηα κέλνπλ Απηά ηα ζεκέιηα πξέπεη λα είλαη ε ξαρνθνθαιηά ζηελ ηξηηνβάζκηα εθπαίδεπζε: έκθαζε ζηελ αιγνξηζκηθή ζθέςε ζε αληηδηαζηνιή κε ηηο ηερλνινγηθέο δεμηόηεηεο (computer literacy) Computer science, computing science, informatics Dijkstra: ε Δπηζηήκε ησλ Υπνινγηζηώλ έρεη ηόζε ζρέζε κε ηνπο ππνινγηζηέο όζε θαη ε Αζηξνλνκία κε ηα ηειεζθόπηα Primality: ζεκαληηθό επίηεπγκα ζε κία ρώξα ρσξίο ππνδνκέο 8
(ix) Να κελ μερλάκε όηη Τν λα θάλεηο ιάζε είλαη αλζξώπηλν. Γηα λα ηα θάλεηο ζάιαζζα ρξεηάδεζαη ππνινγηζηή! 9
(x) Καηαζθεπή ππνινγηζηηθώλ κεραλώλ Αξραηόηεηα: ππνινγηζηηθέο κεραλέο, κεραληζκόο ησλ Αληηθπζήξσλ, θ.ιπ. 17νο αηώλαο, Pascal θαη Leibniz, κεραληθέο ππνινγηζηηθέο αξηζκνκεραλέο ζηνηρεηώδεηο αξηζκεηηθέο πξάμεηο 1830 1840, Babbage, αλαιπηηθή κεραλή ινγάξηζκνη, ηξηγσλνκεηξηθέο ζπλαξηήζεηο 1880 1890, Hollerith, κεραλή κε δηάηξεηεο θάξηεο γηα ηελ απηνκαηνπνίεζε ησλ εθινγώλ 10
(xi) Καηαζθεπή ππνινγηζηώλ 1920 1930, Bush, ειεθηξηθή (αλαινγηθή) ππνινγηζηηθή κεραλή δηαθνξηθέο εμηζώζεηο ~1940, Zuse, ειεθηξνληθή (ςεθηαθή) ππνινγηζηηθή κεραλή πξόγξακκα θαη δεδνκέλα, ρσξηζηά 1945 1950, κνληέιν von Neumann πξόγξακκα θαη δεδνκέλα, από θνηλνύ 1950 ζήκεξα, ξαγδαία αλάπηπμε ηεο ηερλνινγίαο ησλ ειεθηξνληθώλ ππνινγηζηώλ 11
(xii) Καηαζθεπή ππνινγηζηώλ 1952 main frames IBM 650, 7000, 360 1965 mini computers DEC PDP-8 1977 personal computers Apple II 1981 IBM PC 1983, 1984 Apple: Lisa, Macintosh 1985 internet 1990 world wide web 2000 PDA, smartphones, θ.ιπ. 12
(xiii) Μεραληθνί ππνινγηζηώλ Tom Watson, IBM, 1945 Ο κόζμος τρειάζεηαι περίποσ 5 σπολογιζηές Gordon Moore, Intel, 1965 Η πσκνόηηηα ηοσ hardware ζηα ολοκληρωμένα κσκλώμαηα διπλαζιάζεηαι κάθε 18 μήνες http://www.intel.com/research/silicon/mooreslaw.htm 13
(xiv) Θεκέιηα ηεο πιεξνθνξηθήο Μαζεκαηηθή ινγηθή Αξηζηνηέιεο: ζπιινγηζκνί A A B B (modus ponens) Δπθιείδεο: αμησκαηηθή ζεσξία Αξρέο 20νπ αηώλα, Hilbert αμίσκα, ζεώξεκα, ηππηθή απόδεημε 14
(xv) Πξόγξακκα ηνπ Leibniz: ζεκειίσζε ησλ καζεκαηηθώλ γιώζζα για όλα ηα μαθημαηικά ζεσξία ζπλεπήο (consistent) θαη πιήξεο (complete) Γιώζζα A A ανηίθαζη (Boole, De Morgan, Frege, Russel) πξνηαζηαθόο ινγηζκόο,,,, θαηεγνξεκαηηθόο ινγηζκόο, 15
(xvi) Θεσξία Σπλνινζεσξία, Cantor, Frege Παξάδνμν ηνπ Russel A A A = { x x x } A A A A A A Άιιεο ζεσξίεο ζπλόισλ (ZF, θ.ιπ.) Άιιεο ζεσξίεο γηα ηε ζεκειίσζε ησλ καζεκαηηθώλ (ζεσξία ζπλαξηήζεσλ, θαηεγνξηώλ, θ.ιπ.) 1920 1930, πξνζπάζεηεο γηα απόδεημε ζπλέπεηαο 16
(xvii) Σπλέπεηα θαη πιεξόηεηα 1931, Gödel, ζεώξεκα κε πιεξόηεηαο δελ είλαη δπλαηόλ λα θαηαζθεπαζηεί ζπλεπήο θαη πιήξεο ζεσξία ηεο αξηζκεηηθήο 1936, Turing, κε απνθξίζηκεο (undecidable) πξνηάζεηο κεραλή Turing, ππνινγηζηκόηεηα... 0 1 1 0 σύστημα ελέγχου (εσωτερική κατάσταση) άπειρη ταινία κευαλή... 17
(xviii) Με πιεξόηεηα (incompleteness) David Hilbert, 1862-1943 Kurt Gödel, 1906-1978 (αζηηία) Γνμηάδεο Incompleteness: a play and a theorem Ο ζείνο Πέηξνο θαη ε εηθαζία ηνπ Goldbach Παπαδεκεηξίνπ Τν ρακόγειν ηνπ Turing Hoffstader Gödel, Escher, and Bach 18
(xix) Κιάδνη ηεο πιεξνθνξηθήο Αιγόξηζκνη θαη δνκέο δεδνκέλσλ Γιώζζεο πξνγξακκαηηζκνύ Αξρηηεθηνληθή ππνινγηζηώλ θαη δηθηύσλ Αξηζκεηηθνί θαη ζπκβνιηθνί ππνινγηζκνί Λεηηνπξγηθά ζπζηήκαηα Μεζνδνινγία ηερλνινγία ινγηζκηθνύ Βάζεηο δεδνκέλσλ θαη δηαρείξηζε πιεξνθνξηώλ Τερλεηή λνεκνζύλε θαη ξνκπνηηθή Δπηθνηλσλία αλζξώπνπ ππνινγηζηή 19
(xx) Υπνινγηζηήο επεμεξγαζηήο κλήκε ζπζθεπέο εηζόδνπ/εμόδνπ Ιδηόηεηεο απηόκαην ρσξίο εμππλάδα κεγάιε ηαρύηεηα αθξίβεηα ζηηο πξάμεηο 20
Γιώζζεο πξνγξακκαηηζκνύ (i) Γιώζζα κεραλήο 0110110 11011011 δηεύζπλζε εληνιή Σπκβνιηθή γιώζζα (assembly) label: add ax, bx δηεύζπλζε πξάμε δεδνκέλα Γιώζζεο ρακεινύ θαη πςεινύ επηπέδνπ Υινπνίεζε γισζζώλ πξνγξακκαηηζκνύ κεηαγισηηηζηήο (compiler) δηεξκελέαο (interpreter) 21
Γιώζζεο πξνγξακκαηηζκνύ (ii) Κπξηόηεξεο γιώζζεο, ηζηνξηθά 1950 1960 FORTRAN, LISP, COBOL, Algol, BASIC, PL/I 1970 Pascal, C, Smalltalk, Prolog, ML, Logo 1980 C++, Modula-2, Ada, Perl 1990 Java, Python, Ruby, Haskell, PHP 2000 C#,... 22
Γιώζζεο πξνγξακκαηηζκνύ (iii) Pascal Niklaus Wirth (1971) Γιώζζα γεληθνύ ζθνπνύ (general purpose) Δπλνεί ην ζπζηεκαηηθό θαη δνκεκέλν πξνγξακκαηηζκό Παξαιιαγέο Standard, ISO Pascal UCSD Pascal ANSI Pascal Turbo Pascal 23