You are on page 1of 23

ΕΠΙΣΤΗΜΗ Η/Υ

(Μέρος 2ο)

Νικόλαος Παπαδάκης

1o Έτος Έτος Έτος


Εαρινό Έτος εξάμηνο
2018-2019
Έτος Έτος Έτος Έτος Έτος Έτος
np@sse.gr

Στρατιωτική Σχολή Ευελπίδων


Προσωρινός Κωδικός Moodle


http://moodle.sse.gr

Username: evelpis1101

Password: Sse1101!

2ο εξάμηνο -> ΕΠΙΣΤΗΜΗ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΙΣ
ΕΝΟΠΛΕΣ ΔΥΝΑΜΕΙΣ

Στρατιωτική Σχολή Ευελπίδων 2


Ώρες γραφείου


Γραφείο:

στον πρώτο όροφο, το πρώτο Γραφέιο από την Ανατολική πλευρά

Δευτέρες και Τρίτες

Οποιαδήποτε άλλη μέρα κατόπιν συνεννοήσεως

Εναλλακτικά με email

ΜΗΝ αφήνετε απορίες αναπάντητες

Στρατιωτική Σχολή Ευελπίδων 3


Αξιολόγηση


Εξετάσεις

Διαγωνίσματα προόδου

Εργασίες

Συμμετοχή

Στρατιωτική Σχολή Ευελπίδων 4


Αλγόριθμοι και γλώσσες
προγραμματισμού, βασικές έννοιες

5
Ορισμός Αλγορίθμου


Τι είναι αλγόριθμος;

Γιατί χρειαζόμαστε αλγορίθμους;

Πως “γράφουμε” έναν αλγόριθμο;

Παραδείγματα

Ρίζες παράστασης: αχ² + β χ + γ = 0

Βήμα 1: Λάβε τους συντελεστές

Βήμα 2: Υπολόγισε διακρίνουσα

Βήμα 3: Αν η διακρίνουσα < 0 τότε μιγαδικές ρίζες λύσεις
● Βήμα 4: Αλλιώς υπολόγισε χ1,2 = (- β ± √ Δ )/2α

Βήμα 5: Εκτύπωσε ρίζες

Στρατιωτική Σχολή Ευελπίδων 6


Ορισμός Αλγορίθμου


Ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος επίλυσης
ενός προβλήματος.

Χρησιμοποιείται συνήθως για την επεξεργασία δεδομένων, τον
υπολογισμό και άλλες σχετικές υπολογιστικές και μαθηματικές
διαδικασίες.

Ένας αλγόριθμος χρησιμοποιείται επίσης για τον χειρισμό
δεδομένων με διάφορους τρόπους,

όπως η εισαγωγή ενός νέου στοιχείου δεδομένων,

η αναζήτηση ενός συγκεκριμένου στοιχείου ή

η ταξινόμηση ενός στοιχείου.

Στρατιωτική Σχολή Ευελπίδων 7


Που χρησιμέυουν οι αγόριθμοι


Αλγόριθμοι παντού

Sorting

Λύτης Sudoku

Λύτης Rubik’s cube

Εύρεση Μέγιστου κοινού διαιρέτη

Φωτογραφική μηχανή σας εντοπίζει το πρόσωπο

Page Rank: Ο αλγόριθμος της αναζήτησης της Google

Stable Marriage Algorithm → Kidney exchange Matching Algorithm Kidney exchange Matching Algorithm

Στρατιωτική Σχολή Ευελπίδων 8


Το Υλικό
CPU
• Ο "εγκέφαλος" του
computer • Keyboard
• Disk drive
• Scanner
• Mouse

• Screen
• Hard drive Main Memory
• Printer
• Zip-Disk • Δεδομένα

• CD-Rom αποθηκεύονται καιPlotter
ανακτώνται
• Tape Backup

Στρατιωτική Σχολή Ευελπίδων 9


Άυλα στοιχεία ΥΣ

Software (Λογισμικό)

Προγράμματα Ελέγχου

Ελέγχουν τη λειτουργία του Συστήματος

Περιλαμβάνουν το λειτουργικό σύστημα (ΛΣ)


Προγράμματα Εφαρμογών

Word processors

Compilers

Spreadsheets

Data Bases

Στρατιωτική Σχολή Ευελπίδων 10


Η γλώσσα του υπολογιστή


Χρησιμοποιεί ψηφιακά σήματα

ΜΟΝΟ “0” και “1” (binary)

bits (BInary digiTs)

Τα δεδομένα και οι εντολές αποθηκεύονται σε binary

8 bits σε ένα byte

ASCII χαρακτήρας σε ένα byte

Integers αποθηκεύονται σε 2 ή 4 bytes

Στρατιωτική Σχολή Ευελπίδων 11


Γλώσσες προγραμματισμού

Στρατιωτική Σχολή Ευελπίδων


Γλώσσες προγραμματισμού


Γιατί τόσες πολλές;

Διαφορές με τις φυσικές γλώσσες

Λιγότερες ασάφειες (και βαθμοί ελευθερίας)

Όχι εξαιρέσεις και γλωσσικά φαινόμενα

Αυστηρή, χωρίς εξαιρέσεις, σύνταξη και γραμματική

Ποια η σημερινή τάση;

Καλές πρακτικές προγραμματισμού

...Εν αρχή ην ο αλγόριθμος

Πως επιλέγουμε γλώσσα προγραμματισμού

Ανάλογα με τους περιορισμούς και τη φύση του προβλήματος

Ανάλογα με τις τεχνικές μας γνώσεις

Ανάλογα με τους περιορισμούς του Υλικού και του Λογισμικού μας

Στρατιωτική Σχολή Ευελπίδων


Εξέλιξη των γλωσσών προγραμματισμού


Οι πρώτοι υπολογιστές προγραμματίζονταν σε γλώσσες μηχανής

binary κώδικας

Η γλώσσα Assembly χρησιμοποιούσε μνημονικούς κώδικες (καθόλου φιλική προς τον
προγραμματιστή)

Οι κωδικοί μεταφράζονται σε γλώσσα μηχανής από ένα πρόγραμμα που ονομάζεται
"συναρμολογητής" (assembler)

Στρατιωτική Σχολή Ευελπίδων 14


Εξέλιξη των γλωσσών προγραμματισμού


Οι γλώσσες υψηλού επιπέδου (High level languages-HLL) =
κοντά στην Αγγλική και στην Άλγεβρα

write_string (outfile,cust_name,'l',23);
first_line = 1;
ord.read_order(infile);
while (!ord.done())
{

if ( !first_line) write_string (outfile," ",'l',23);
ord.print_order (outfile,part_list);
first_line = 0;
ord.read_order(infile);
}

Στρατιωτική Σχολή Ευελπίδων 15


Διερμήνευση vs μεταγλώττιση


Η “μεταφορά” του κώδικα σε υψηλού επιπέδου γλώσσα σε γλώσσα
μηχανής, κατανοητή από τον υπολογιστή, γίνεται:

Με τη διερμήνευση (διαμέσου του διερμηνέας ή διερμηνευτής - interpreter) και

τη μεταγλώττιση (διαμέσου του μεταγλωττιστή – compiler).

Η διερμήνευση και η μεταγλώττιση είναι τα δύο βασικά μέσα με τα οποία
υλοποιούνται οι γλώσσες προγραμματισμού, αν και δεν αποτελούν εντελώς
διακριτές κατηγορίες, καθώς οι λειτουργίες τους επικαλύπτονται σε κάποιον
βαθμό

Στρατιωτική Σχολή Ευελπίδων 16


High-Level γλώσσα προγραμματισμού


Τυπική ροή μεταγλώττισης

Στρατιωτική Σχολή Ευελπίδων 17


Ανάλυση-Κωδικοποίηση-Εκτέλεση

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

Στρατιωτική Σχολή Ευελπίδων 18


Δομημένος προγραμματισμός (Structured
Programming)


Κατανοήστε πλήρως το πρόβλημα

Καθορίστε την επιθυμητή απόδοση, την απαιτούμενη είσοδο, την
επεξεργασία που θα χρειαστεί

Διαχωρίστε το πρόβλημα σε μικρότερα προβλήματα

Η διαδικασία στα Αγγλικά:

structured design

top-down design

stepwise refinement

modular programming

Στρατιωτική Σχολή Ευελπίδων 19


Αντικειμενοστρεφής Προγραμματισμός - ΑΠ


Το Object-Oriented Programming (ΑΠ) αντιμετωπίζει
διαφορετικά, σε σχέση με τον Δομημένο Προγραμματισμό, το
σχεδιασμό και τον προγραμματισμό των εφαρμογών.

Βασική αρχή στον Αντικειμενοστρεφή Προγραμματισμό είναι ότι
δεν προγραμματίζονται διαδικασίες ή λειτουργίες. Όλα
αντιμετωπίζονται σαν αντικείμενα τα οποία έχουν χαρακτηριστικές
ιδιότητες και λειτουργίες, μέσω των οποίων αντιδρούν σε
μηνύματα του περιβάλλοντος.

Βασική αρχή του Αντικειμενοστραφή Προγραμματισμού: ο
πραγματικός κόσμος αποτελείται από αντικείμενα.

Τα αντικείμενα αυτά παίρνουν μορφή και η συμπεριφορά τους
εξαρτάται από τα ερεθίσματα που λαμβάνουν από το περιβάλλον
στο οποίο βρίσκονται.

Στρατιωτική Σχολή Ευελπίδων 20


Open Source (Ανοικτός κώδικας)Ανοικτός κώδικας)

21
Open Source (Ανοικτός κώδικας)


Ο ανοιχτός κώδικας είναι ένα μοντέλο ανάπτυξης που προωθεί την καθολική πρόσβαση μέσω
της ελεύθερης άδειας για το σχεδιασμό ενός προϊόντος (Open Source Software -OSS, στην
περίπτωση του λογισμικού πρόκειται για την πρόσβαση στον πηγαίο κώδικα)

Η καθολική αναδιανομή του εν λόγω σχεδίου συμπεριλαμβάνει και τις περαιτέρω βελτιώσεις του από οποιονδήποτε

Όχι μόνο σε Λογισμικό αλλά και σε Υλικό

Πρόκειται για “επανάσταση” που έχει βρει μεγάλη ανταπόκριση στις κοινότητες των
προγραμματιστών

Και ο ανοικτός κώδικας διέπεται από άδειες, οι κυριότερες:

Apache License 2.0

BSD 3-Clause "New" or "Revised" license

BSD 2-Clause "Simplified" or "FreeBSD" license

GNU General Public License (GPL)

GNU Library or "Lesser" General Public License (LGPL)

MIT license

Mozilla Public License 2.0

Eclipse Public License


Πλεονεκτήματα – μειονεκτήματα

Στρατιωτική Σχολή Ευελπίδων 22


Open Source


Μια μη εξαντλητική λίστα με εφαρμογές, ανά κατηγορία, ανοικτού
κώδικα:

https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_packages

Και αντίστοιχη λίστα για το Υλικό:

https://en.wikipedia.org/wiki/List_of_open-source_hardware_projects

Στρατιωτική Σχολή Ευελπίδων 23

You might also like