1. Εισαγωγή στον Υπολογισμό
Μια ιστορική αναδρομή
Τσαγκατάκης Γιάννης
Msc in Informatics & Multimedia
Department of Informatics Engineering TEI of Crete
3. 3
Τι είναι επιστήμη των υπολογιστών ?
Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
SICP Videos
Δεν έχει να κάνει με υπολογιστές
It’s not about the computers
Δεν έχει να κάνει με επιστήμη
It’s not about Science
Δεν έχει να κάνει με υπολογιστές με την
ίδια έννοια που η Γεωμετρία δεν έχει
σχέση με τοπογραφικά όργανα.
And it's not about computers in the same sense that
geometry is not really about using surveying
instruments.
Η λέξη γεωμετρία σημαίνει ακριβώς
αυτό μέτρηση της γης με τοπογραφικά
όργανα, δηλαδή τοπογραφία .
In fact, there's a lot of commonality between
computer science and geometry. Geometry, first of
all, is another subject with a lousy name. The name
comes from Gaia, meaning the Earth, and metron,
meaning to measure. Geometry originally meant
measuring the Earth or surveying.
4. 4
What is Computer Science ?
Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
SICP Videos
Τώρα ο λόγος που πιστεύουμε ότι η
επιστήμη των υπολογιστών έχει να
κάνει με υπολογιστές, είναι ο ίδιος
λόγος για τον οποίο οι αρχαίοι
Αιγύπτιοι πίστευαν ότι η γεωμετρία
έχει να κάνει με τοπογραφικά όργανα.
Now, the reason that we think
computer science is about computers
is pretty much the same reason that
the Egyptians thought geometry was
about surveying instruments.
Δείτε το video
Δεν έχει να κάνει με υπολογιστές
It’s not about the computers
Δεν έχει να κάνει με επιστήμη
It’s not about Science
6. 6
Ο μηχανισμός των Αντικυθύρων
Antikythera mechanism
Είμαι ένας υπολογιστής;
7. 7
Υπολογιστές με νερό
Water Computation
Bill Phillips Moniac Economic Analog Computer
Making Money Flow: The MONIAC
Bill Phillips Moniac Economic Analog Computer
Created in 1949
Ο MONIAC
(Monetary National
Income Analogue
Computer) ήταν
ένας αναλογικός
υπολογιστής που
χρησιμοποιούσε
fluidic logic για
προσομοίωση
οικονομικών
μοντέλων.
Δείτε το video
16. 16
Οι γλώσσες προγραμματισμού
Programming Languages
Fortran
● 1953
● John W. Backus
●
Αριθμητικοί Υπολογισμοί
Numerical Computation
● Linear Algebra
Γραμμική Άλγεβρα
●
Απλό μοντέλο μνήμης
Simple memory model
Lisp
● 1955
● John McCarthy
●
Συμβολικος Υπολογισμός
Symbolic Computation
● If/then/else, closures (κλειστότητες)
, functional programming
(συναρτησιακός προγραμματισμός)
, garbage collection
(σκουπιδοσυλογή)
17. 17
Η “τελευταία” τάση
Συναρτησιακός Προγραμματισμός
O Συναρτησιακός
προγραμματισμός είναι ένα
προγραμματιστικό παράδειγμα
που αντιμετωπίζει τον
υπολογισμό ως την αποτίμηση
μαθηματικών συναρτήσεων και
αποφεύγει την κατάσταση
προγράμματος και τα
μεταβλητά δεδομένα.
●
Lisp, Scheme, Logo, Racket
●
Ocaml, ML, Alice
●
Erlang, Elixir (2011), LFE
●
Haskel (1990), Elm (2012)
●
R, Mathematica
●
Julia (2012)
●
Kotlin (2011), Groovy (2003)
●
Scala (2004), Clojure (2007)
●
F# (2005)
●
Javascript
●
Java 8, C++ 11, Python 3, Ruby, Rust, ….
●
...
https://en.wikipedia.org/wiki/Category:Functional_languages
25. 25
Octave vs Matlab
● Εμπορικό προϊόν
Ελεύθερο λογισμικό
● Συμβατά ως προς την γλώσσα
προγραμματισμού
● Λιγότερες δυνατότητες,
άρα ευκολότερο στην εκμάθηση
● Ευκαιρία για πτυχιακές εργασίες !
● Παιδαγωγικά ορθότερο
● Εργαλείο κατάλληλο για το μάστορα
● Το εργαλείο δεν κάνει τον μάστορα
● Κουλτούρα διαμοιρασμού
Κουλτούρα αντιγραφής
Είμαστε επαγγελματίες της πληροφορικής!
26. 26
Install Octave
Installers for Linux, Mac OS,
Windows, BSD, Android
Free (as in beer)
Open Source (as in freedom)
● Install Octave
●
Find the docs
●
Visit Octave Forge
Debian, Linux Mint, Ubuntu:
$ apt search octave
$ apt install octave
https://www.gnu.org/software/octave/