ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

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

Download "ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)"

Transcript

1 ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming) Διδάσκων: Μάριος Δικαιάκος Εργαστήρια: Χριστόφορος Παναγιώτου Περίγραμμα ΕΠΛ233 - Πρακτικά θέματα και Στόχοι μαθήματος Αντικειμενοστρεφείς Γλώσσες Προγραμματισμού και JAVA Η πλατφόρμα της JAVA Θεμελίωση Προβλημάτων Αφαιρετικότητα Επίλυση Προβλημάτων Διαδικασία Επίλυσης Υπολογιστικών Προβλημάτων 2 Πληροφορίες Μαθήματος Διαλέξεις Τρίτη, Παρασκευή 12:00-13:30 Αίθουσα 014, Κτήριο ΧΩΔ02 Εργαστήριο Πέμπτη 16:30-18:30, Β121, ΘΕΕ01 Παρασκευή 18:30-20:30, Β121, ΘΕΕ01 Ιστοσελίδα: Ανακοίνωση και παράδοση εργασιών μέσω Moodle: Πληροφορίες Μαθήματος Προαπαιτούμενα: ΕΠΛ132(Αρχές Προγραμματισμού ΙΙ) ΕΠΛ231(Δομές δεδομένων και αλγόριθμοι) Επικοινωνία με διδάσκοντα: Γραφείο: 012, κτήριο ΘΕΕ01 Ώρες γραφείου: Παρασκευή 10:30-11:30 ή κατόπιν συννενοήσεως Επικοινωνία: mdd at cs dot ucy dot ac dot cy Φόρουμ μέσω piazza: 3 4

2 Αξιολόγηση Εβδομαδιαίες Εργασίες: 20% Συμμετοχή στην Τάξη κ. Φόρουμ: 5% Ενδιάμεση Εξέταση: 25% Γραπτή Τελική Εξέταση: 50% Προβιβάσιμος βαθμός: (Ενδιάµεση εξέταση * 0.33) + (Τελική εξέταση * 0.67) > 5 Ψηφοφορίες στην τάξη Ερωτήσεις πολλαπλών (4) επιλογών. Κάθε επιλογή αντιστοιχεί σε ένα χρώμα: Μπλε, Πράσινο, Κόκκινο, Πορτοκαλί Κάθε φοιτητής ψηφίζει μόνος του (χωρίς συνεργασία) με τη λήξη του χρόνου, υψώνοντας την κάρτα αντίστοιχου χρώματος. Μπορεί να σας ζητηθεί να εξηγήσετε την απάντησή σας Δεν είναι λοταρία Αν χρειαστεί, δίνεται χρόνος για να συζητήσετε την απάντηση με τους διπλανούς σας, να φθάσετε σε συμφωνία και να ξαναψηφίσετε. Μπορεί να σας ζητηθεί να εξηγήσετε την απάντησή σας 6 5 Στις ερωτήσεις πολλαπλής επιλογής πότε επιτρέπεται να συζητήσουμε με τους διπλανούς μας για να φθάσουμε σε συμφωνία; Ποτέ Πριν την πρώτη ψηφοφορία Πριν τη δεύτερη ψηφοφορία Μετά τη δεύτερη ψηφοφορία Εγχειρίδια Βασικά εγχειρίδια Thinking in Java by Bruce Eckel, 4th edition. (Prentice Hall, 2006) Java Tutorials: Χρήσιμα εγχειρίδια Object-oriented Design and Patterns by Cay Horstmann, 2nd edition. (Wiley, 2006) Eclipse in action. A guide for Java developers by David Gallardo, Ed Burnette and Robert McGovern. (Manning, 2003) Java in a Nutshell by David Flanagan, 5th edition. (O'Reilly, 2005) EΠΛ

3 Βιβλιογραφία Πληροφορίες για το μάθηα Ιστοσελίδα: courses/epl233 Ανακοινώσεις / Piazza: Μοοdle: Aπώτεροι Στόχοι Βαθύτερη γνώση του αντικειμένου «Πολυμαθίη νόον έχειν ού διδάσκει» (Ηρακλείτου, απόσπασμα Β40 - Διογένης Λαέρτιος ΙΧ 1) Η πολυμάθεια δεν μας βάζει νού Γνώση που να οδηγεί σε δυνατότητα δημιουργικής σκέψης «τας ανανεώσεις των ευρέσεων και των τεχνών και των μαθήσεων, και τα λοιπά τα στεφανούντα το σώμα εν τω κόσμω τούτω τω ορατώ» (Ισαάκ Σύρου, Λόγος ΞΓ, «Περί τάξεως πρώτης της γνώσεως», Τα Ευρεθέντα Ασκητικά] 11 12

4 Θεματολογία Αρχές επίλυσης Υπολογιστικών Προβλημάτων μέσω προγραμματισμού Η/Υ. Eις βάθος εισαγωγή στις Aρχές Αντικειμενοστρεφούς Προγραμματισμού (object-oriented programming - OOP) μέσω της γλώσσας JAVA. Aρχές Αντικειμενοστρεφούς Σχεδίασης για την διατύπωση και επίλυση υπολογιστικών προβλημάτων. Αφαιρετικότητα Δεδομένων στον Α/Σ Προγραμματισμό. Προχωρημένες Προγραμματιστικές Τεχνικές JAVA. Προγραμματισμός σε Ολοκληρωμένα Περιβάλλοντα Ανάπτυξης (Integrated Development Environments) Μαθησιακοί Στόχοι Ευχέρεια καθορισμού της κατάλληλης θεμελίωσης - αφαιρετικής διατύπωσης ενός προς επίλυση πολύπλοκου προβλήματος. Η αφαιρετική διατύπωση είναι απαραίτητο βήμα για τη λύση του προβλήματος Ευχέρεια επινόησης τυπικών (formal) λύσεων σε «καλώς ορισμένα» προβλήματα, με χρήση αντικειμενοστρεφούς σχεδιασμού. Ευχέρεια υλοποίησης, ελέγχου, αποσφαλμάτωσης αντικειμενοστρεφών προγραμμάτων Java σε περιβάλλον ολοκληρωμένης ανάπτυξης όπως το Eclipse για την αποδοτική υλοποίηση αλγορίθμων. Ευχέρεια επικοινωνίας των πορισμάτων της εργασίας σας (αντικειμενοστρεφή σχέδια, προγράμματα JAVA) σε άλλους προγραμματιστές Η επίτευξη των μαθησιακών στόχων θα αξιολογείται διαρκώς στη διάρκεια του μαθήματος μέσω κουίζ, γραπτών εξετάσεων, εργασιών, προφορικής αξιολόγησης και θα κρίνει την επιτυχία/ αποτυχία σας στο μάθημα Περίγραμμα ΕΠΛ233 - Πρακτικά θέματα και Στόχοι μαθήματος Αντικειμενοστρεφείς Γλώσσες Προγραμματισμούς και JAVA Η πλατφόρμα της JAVA Θεμελίωση Προβλημάτων Αφαιρετικότητα Επίλυση Προβλημάτων Διαδικασία Επίλυσης Υπολογιστικών Προβλημάτων 15 16

5 Αντικειμενοστρεφής Προγραμματισμός και JAVA. Γιατί; Αντικειμενοστρεφής Προγραμματισμός Μεθοδολογία που χρησιμοποιεί την έννοια («αφαίρεση» «αντικειμένων» (objects) και των μεταξύ τους «αλληλεπιδράσεων» (interactions) τους για την επίλυση υπολογιστικών προβλημάτων και την δημιουργία λογισμικών προγραμμάτων. Θα διερευνήσουμε τις έννοιες που σχετίζονται με τη μεθοδολογία αυτή χρησιμοποιώντας την γλώσσα προγραμματισμού JAVA Γλώσσα Προγραμματισμού JAVA Δημιουργήθηκε το 1991 απο την Green team της Sun Microsystems. Επίσημη ανακοίνωση της Γ.Π. το «Πατέρας» της Java θεωρείται ο James Gosling Ο στόχος ήταν ο εύκολος προγραμματισμός ηλεκτρονικών συσκευών και συστημάτων για ευρεία κατανάλωση. Η Sun Microsystems εξαγοράστηκε το 2010 από την Oracle. Κύρια χαρακτηριστικά JAVA Απλή (Simple) Αντιθέτως με την C++ η JAVA δεν έχει header files, pointer arithmetic, pointer syntax, structures, unions, operator overloading, virtual base classes, κ.α.) Αντικειμενοστρεφής (Object-oriented) Παρόμοια με την C++ με την μόνη διαφορά στη πολλαπλή κληρονομικότητα (multiple inheritance). Βασισμένη στη C και C++ αλλά με σημαντικές αλλαγές και βελτιώσεις

6 Κύρια χαρακτηριστικά JAVA (cont'd) Αξιόπιστη (Robust) Έλεγχος για προβλήματα κατά την διάρκεια της μεταγλώττισης(compile-time) παρά της εκτέλεσης(runtime). Ανεξαρτησία Αρχιτεχτονικής (Architecture Neutral) Cross-platform. Write once, run everywhere. Linux, Sun Solaris, Apple, Windows Φορητή (Portable) Απαλλαγή από τις συγχύσεις με big-endian/little-endian Όλοι οι αρχέγονοι τύποι (primitive data types) είναι προσδιορισμένοι με ακρίβεια. Κύρια χαρακτηριστικά JAVA (cont'd) Πολυνηματική (Multi-threaded) Δυναμική (Dynamic) Ευκολία προσδιορισμού τύπου κατά την διάρκεια της εκτέλεσης (Run-time information) Κατανεμημένη (Distributed) Βιβλιοθήκες για προγραμματισμό δικτύων με TCP/IP κ.τ.λ Mονο-νηματική εκτέλεση Πολυ-νηματική εκτέλεση Singlethreaded execution public class Charge { private double rx, ry; private double q; Πρόγραµµα // position // charge public Charge(double x0, double y0, double q0) { rx = x0; ry = y0; q = q0; } public double potentialat(double x, double y) { double k = 8.99e09; double dx = x - rx; double dy = y - ry; return k * q / Math.sqrt(dx*dx + dy*dy); } public String tostring() { return q + " at " + "(" + rx + ", " + ry + ")"; } } «Νήµα» εκτέλεσης (ροή εντολών διεργασίας) Multi-threaded execution public class Charge { private double rx, ry; private double q; Πρόγραµµα // position // charge public Charge(double x0, double y0, double q0) { rx = x0; ry = y0; q = q0; } public double potentialat(double x, double y) { double k = 8.99e09; double dx = x - rx; double dy = y - ry; return k * q / Math.sqrt(dx*dx + dy*dy); } public String tostring() { return q + " at " + "(" + rx + ", " + ry + ")"; } } Core Core Core Core Single-core CPU Core Core Core Core Core Core Core Core Multi-core CPU 23 24

7 H πολυνηματική εκτέλεση προγραμμάτων JAVA γίνεται μόνο σε πολυπύρηνους επεξεργαστές; Α/Σ Γλώσσες Προγραμματισμού Ναι. Δεν μπορούν να συνυπάρξουν πολλαπλά νήματα στον ίδιο πυρήνα. Όχι - ο μεταγλωττιστής ανιχνεύει το είδος του επεξεργαστή και αναλόγως προσαρμόζει τον τελικό κώδικα για τον αριθμό των διαθέσιμων πυρήνων. Όχι - πολλαπλά νήματα μπορούν να τρέξουν και σε μονοπύρηνο επεξεργαστή. Το λειτουργικό σύστημα ρυθμίζει την πολυπλεξία των νημάτων σε μια διεργασία και έναν πυρήνα. Ναι. Οι εκδόσεις της JAVA που υποστηρίζουν πολυνηματικότητα, δεν υποστηρίζονται σε πολυπύρυνες αρχιτεκτονικές. 25 EΠΛ233 Simula 67 Smalltalk Python Ruby Scala C++ C# Objective C JavaScript (?) PhP (?) Α/Σ Προγραμματισμός: Ιστορικό Xerox Parc Ο όρος Α/Σ ΓΠ εισήχθη με τη γλώσσα Smalltalk, η οποία αναπτύχθηκε στο Xerox PARC από τον Alan Kay και άλλους στη δεκαετία του Xerox PARC has been the inventor and incubator of many elements of modern computing in the contemporary office work place: Οι επινοητές της Smalltalk εμπνεύστηκαν από τη γλώσσα Simula 67, αλλά η Smalltalk περιείχε ένα πλήρως δυναμικό σύστημα για την δημουργία και δυναμική αλλαγή κλάσεων. Η Smalltalk και ο Α/Σ.Π. παρουσιάστηκαν στο ευρύ κοινό με άρθρο στο περιοδικό BYTΕ τον Αύγουστο του Laser printers, Computer-generated bitmap graphics The graphical user interface, featuring windows and icons, operated with a mouse The WYSIWYG text editor Interpress, a resolution-independent graphical page-description language and the precursor to PostScript Ethernet as a local-area computer network Fully formed object-oriented programming in the Smalltalk programming language and integrated development environment. Model view controller software architecture 28

8 Γιατί η JAVA; Γιατί την JAVA; According to the code committed by 10m users of GitHub, Java is the programming language that grew more than any other between /8/ SCALA SmallTalk Prolog JAVA Ποιές από τις παρακάτω ΔΕΝ είναι αντικειμενοστρεφής γλώσσα προγραμματισμού; Περίγραμμα ΕΠΛ233 - Πρακτικά θέματα και Στόχοι μαθήματος Αντικειμενοστρεφείς Γλώσσες Προγραμματισμούς και JAVA Η πλατφόρμα της JAVA Θεμελίωση Προβλημάτων Αφαιρετικότητα Επίλυση Προβλημάτων Διαδικασία Επίλυσης Υπολογιστικών Προβλημάτων EΠΛ

9 Μεταγλωττιστές, Διερμηνείς Μεταγλωττιστές (compilers): προγράμματα που μετασχηματίζουν εντολές μιας γλώσσας προγραμματισμού σε οδηγίες (εντολές) στη γλώσσα μηχανής μιας συγκεκριμένης αρχιτεκτονικής. Απαιτείται μεγαλύτερη προσπάθεια κατά τον μετασχηματισμό Μεγαλύτερες δυνατότητες για βελτιστοποιήσεις του τελικού κώδικα, ανάλογα και με τις ιδιαιτερότητες της κάθε μηχανής Διερμηνείς (interpreters): συνδυάζουν τον μετασχηματισμό με την εκτέλεση των εντολών μιας γλώσσας προγραμματισμού σε ένα πρόγραμμα, το οποίο διαβάζει τον πηγαίο κώδικα (source code), τον μετατρέπει και τον εκτελεί απευθείας. Πλατφόρμες Περιβάλλοντα λογισμικού και υλικού στα οποία εκτελούνται προγράμματα. Συνήθως είναι συνδυασμός Λειτουργικού Συστήματος και του Υλικού Υποστρώματος του ΛΣ. Δημοφιλείς πλατφόρμες: Microsoft Windows, Linux, Solaris OS, Mac OS. Πλατφόρμα Java Standard Edition (JAVA SE): Σύστημα λογισμικού που τρέχει πάνω σε διάφορες πλατφόρμες υλικού. Bασικά συστατικά: Java Development Kit (JDK) and Java SE Runtime Environment (JRE) Η Πλατφόρμα της JAVA SE Βασικά Εργαλεία της Πλατφόρμας Java Το Java Runtime Environment (JRE) παρέχει: βιβλιοθήκες (libraries) την Εικονική Μηχανή JAVA (Java Virtual Machine) δομοστοιχεία λογισμικού που χρειάζονται για την εκτέλεση applets και εφαρμογών γραμμένων σε Java Το Java Development Kit είναι υπερσύνολο του JRE και περιέχει: ό,τι υπάρχει στο JRE εργαλεία όπως μεταγλωττιστές (compilers), αποσφαλματωτές (debuggers) που χρειάζονται για την ανάπτυξη λογισμικού Εργαλεία Ανάπτυξης Λογισμικού: μεταγλώττιση (compiling), εκτέλεση (running), παρακολούθηση (monitoring), αποσφαλμάτωση (debugging),τεκμηρίωση (documentation): javac, java launcher, javadoc. Java API (Application Programming Interface) Τεχνολογίες Εγκατάστασης Λογισμικού (Deployment Technologies): Java Web Start, Java Plug-In. Εργαλειοσύνολα Γραφικών Διαπροσωπειών (GUI Toolkits): Swing. Τεχνολογίες Ολοκλήρωσης:JDBC API, JNDI API, Java RMI 35 36

10 Η Πλατφόρμα της JAVA Εικονικές Μηχανές (virtual machines) Εικονική Μηχανή: λογισμικό προσομοίωσης υπολογιστικού συστήματος, το οποίο τρέχει προγράμματα σαν πραγματικό Υ/Σ. JAVA Virtual Machine (JVM): μια εικονική μηχανή που υλοποιεί το σύνολο εντολών ενός Η/Υ με αρχιτεκτονική στοίβας (stack-oriented architecture) και δέχεται προς εκτέλεση μια μορφή ενδιάμεσου κώδικα, των δυφιοσυλλαβών Java (Java bytecode). 1.1 δισ. επιτραπέζιοι Η/Υ τρέχουν JAVA (2013) 930 εκατομύρια JRE καταφορτώσεις / έτος (2013) 3 δισ. κινητά τηλέφωνα τρέχουν JAVA (2013) όψεις του JVM Προδιαγραφή (specification): Α document that formally describes what is required of a JVM implementation. Having a single specification ensures all implementations are interoperable. Υλοποίηση (implementation): A computer program that meets the requirements of the JVM specification. Στιγμιότυπο (instance): An implementation of the JVM specification, running in a process that executes a computer program compiled into Java bytecode. Java Virtual Machine The cornerstone of the Java platform. Component responsible for JAVA s hardware- and OS-independence, small size of its compiled code, and ability to protect users from malicious programs. An abstract computing machine. It has an instruction set and manipulates various memory areas at run time. Does not assume any particular implementation technology, host hardware, or host operating system. Not inherently interpreted - can just as well be implemented by compiling its instruction set to that of a silicon CPU. It may also be implemented in microcode or directly in silicon

11 Αρχιτεκτονική JVM Class Loader 41 The class loader must be able to recognize and load anything that conforms to the Java class file format. Any implementation is free to recognize other binary forms besides class files, but it must recognize class files. Performs three basic activities in this strict order: Loading: finds and imports the binary data for a type Linking: performs verification, preparation, and (optionally) resolution Verification: ensures the correctness of the imported type Preparation: allocates memory for class variables and initializing the memory to default values Resolution: transforms symbolic references from the type into direct references. Initialization: invokes Java code that initializes class variables to their proper starting values. 42 JVM and bytecodes JVM knows nothing of the Java programming language, only of a particular binary format, the class file format. A class file contains JVM instructions (or bytecodes) and a symbol table, as well as other ancillary information. Any language with functionality that can be expressed in terms of a valid class file can be hosted by the JVM. For security, JVM imposes strong syntactic and structural constraints on the code in a class file. Δυφιοσυλλαβές (bytecodes) Compiled code to be executed by the JVM. Represented using a hardware- and operating system-independent binary format, typically (but not necessarily) stored in a file, known as the class file format. The class file format precisely defines the representation of a class or interface

12 Μοντέλο εκτέλεσης JAVA Μοντέλο εκτέλεσης JAVA Η JAVA συνδυάζει τις δύο τεχνικές της μεταγλώττισης και της διερμηνείας: Πηγαίος κώδικας μεταγλωττίζεται σε JVM bytecode. Tα bytecode μπορούν να εκτελεσθούν άμεσα από τον διερμηνέα της JVM. O διερμηνέας παρακολουθεί επίσης πόσο συχνά εκτελείται το κάθε τμήμα bytecode (run-time profiling) και προωθεί συχνά εκτελούμενο κώδικα (hot spots) στον «πάνω-στην-ώρα» μεταγλωττιστή (just-in-time - JIT) compiler. Ο JIT μετατρέπει το bytecode σε τελικό κώδικα, και τον τρέχει. 45 Ο JIT μπορεί να κάνει βελτιστοποιήσεις στον κώδικα που θα μεταφράσει, αξιοποιώντας τις πληροφορίες που συγκεντρώνονται από την παρακολούθηση του τρεχούμενου κώδικα. Δυνατότητα καλύτερης βελτιστοποίησης της επίδοσης από παραδοσιακούς μεταγλωττιστές Η αρχιτεκτονική της JAVA επιτρέπει την εκτέλεση κώδικα σε οποιαδήποτε μηχανή στην οποία υπάρχει ο διερμηνέας JVM και την γρήγορη εκτέλεση σε οποιαδήποτε μηχανή υπάρχει και ο μεταγλωττιστής JIT. Σοβαρή βελτιστοποίηση γίνεται για τα hot spots του κώδικα. 46 Μοντέλο εκτέλεσης JAVA JVM πέρα από τη JAVA 47 48

13 Πλεονεκτήματα vs Μειονεκτήματα Κύκλος ζωής απλού προγράμματος Πλεονεκτήματα: Ασφάλεια Εύκολος προγραμματισμός δικτύων (Network-centric programming) Ανεξαρτησία αρχιτεκτονικής Μεταγλωττιστής Διερµηνέας Μειονεκτήματα: Επίδοση(performance) - όταν γίνεται χρήση διερμηνέα, η εκτέλεση προγραμμάτων είναι πιο αργή από την εκτέλεση ιθαγενή κώδικα (native code) Δυσκολία άμεσης διαχείρισης μνήμης από τον προγραμματιστή Ενδιάµεσος Κώδικας διφυοσυλλαβών (bytecodes) Τι χρειάζεστε για να ξεκινήσετε; Γλώσσα Προγραμματισμού Java (Java programming language) Η γλώσσα που γράφονται όλα τα προγράμματα JAVA (applets, servlets and JavaBeans components) Πλατφόρμα Java (Java Platform or Java Runtime Environment) Προκαθορισμένες κλάσεις(class) που υπάρχουν σε κάθε εγκατάσταση Java. Οργανωμένες σε μορφή βιβλιοθηκών (packages). Διαθέσιμες για χρήση από όλα τα προγράμματα JAVA. JVM Ποιά από τις παρακάτω προτάσεις είναι αληθής αναφορικά με την εκτέλεση προγραμμάτων JAVA; Μεταγλωττίζουμε τον πηγαίο (source) σε ιθαγενή (native) κώδικα και εκτελείται ο ιθαγενής κώδικας από το λειτουργικό. Η εκτέλεση μπορεί να γίνει απευθείας από τον διερμηνέα χωρίς χρήση μεταγλωττιστή. Ο javac μεταγλωττίζει τον πηγαίο κώδικα σε ενδιάμεσο και αυτός εκτελείται από τον διερμηνέα. Κάποια τμήματα κώδικα, μπορεί να μεταγλωττιστούν δυναμικά από τον JIT σε ιθαγενή κώδικα. Καμιά από τις παραπάνω. 51 EΠΛ233 52

14 Διαδικασία Προγραμματισμού User Text Editor (Kwrite, Emacs) Source code (class_name.java) Πρώτο πρόγραμμα στη Java Τι ακολουθεί; Compilation errors Java Compiler (javac) Bytecodes (class_name.class) Output Java Virtual Machine 54 Πρώτο πρόγραμμα στη Java Πρώτο πρόγραμμα στη Java Τι ακολουθεί; Μεταγλώττιση (compiling) Τι ακολουθεί; Μεταγλώττιση (compiling) Δημιουργία διφυοσυλλαβών (Fibonacci.class) 55 56

15 Πρώτο πρόγραμμα στη Java Τι ακολουθεί; IDEs: Integrated Development Environments (Ενσωματωμένο Περιβάλλον Ανάπτυξης) Μεταγλώττιση (compiling) Δημιουργία διφυοσυλλαβών (Fibonacci.class) Εκτέλεση (execution) Αποτέλεσμα Eclipse IDE Πόσα πρέπει να ξέρω; Υπάρχουν βασικοί αλγόριθμοι, η χρήση των οποίων εμφανίζεται σχεδόν σε κάθε πρόγραμμα (κυρίως αλγόριθμοι αναζήτησης και ταξινόμησης). Οι δομές δεδομένων που χρησιμοποιούνται συνήθως είναι γνωστές, ή προκύπτουν από τη σύνθεση γνωστών δομών: Πίνακες (arrays) Λίστες (lists) Πίνακες κατακερματισμού (hash tables) Δένδρα (trees) Περίγραμμα ΕΠΛ233 - Πρακτικά θέματα και Στόχοι μαθήματος Αντικειμενοστρεφείς Γλώσσες Προγραμματισμούς και JAVA Η πλατφόρμα της JAVA Θεμελίωση Προβλημάτων Αφαιρετικότητα Επίλυση Προβλημάτων Διαδικασία Επίλυσης Υπολογιστικών Προβλημάτων 59 60

16 «Καλώς ορισμένα» Προβλήματα (well- «Καλώς ορισμένα» Προβλήματα defined problems) Μπορεί να διατυπωθεί ένας σαφής και αυστηρά διατυπωμένος (τυπικός-formal) ορισμός του προβλήματος, από την περιγραφή του σε φυσική γλώσσα; Ενδεχομένως με την υιοθέτηση διασαφηνιστικών υποθέσεων που δεν αλλοιώνουν την υφή του προβλήματος Υπάρχει δυνατότητα εύρεσης λύσης που είναι αποδεδειγμένα σωστή (ή μαθηματική απόδειξη ότι δεν μπορεί να βρεθεί λύση;) Η λύση μπορεί να βρεθεί σε πεπερασμένο αριθμό αλγοριθμικών βημάτων; 61 Ποιό είναι το αποτέλεσμα της πράξης; 1 x Ποιό είναι το αποτέλεσμα της πράξης; x 3 Lakis Express problem: Ποιά είναι η καλύτερη διαδρομή για την παράδοση δεμάτων σε 7 σημεία στον ακόλουθο χάρτη; 62 Λευκωσία Ποιό από τα πιο κάτω ισχύει για το πρόβλημα του Lakis Express με 7 σημεία-σταθμούς; Πάφος Είναι καλά ορισμένο Δεν έχει λύση Δεν είναι καλά ορισμένο Έχει λύση αλλά είναι πολύπλοκη Λάρνακα 63 EΠΛ233 64

17 Πλακόστρωτο μονοπάτι (tiling) Σας δίνεται ένας πεπερασμένο σύνολο από διαφορετικά έγχρωμα πλακάκια. Πλακόστρωτο μονοπάτι Σας δίνεται ένας αριθμός από πλακάκια διαφορετικών χρωμάτων και δύο σημεία στο επίπεδο Α και Β. Επιτρέπεται να τοποθετήσετε δύο πλακάκια δίπλαδίπλα μόνο αν οι συνορεύουσες ακμές τους έχουν το ίδιο χρώμα. ΟΚ ΟΧΙ Δεν επιτρέπεται να περιστρέψετε τα πλακάκια. Αναζητείτε έναν αλγόριθμο που να μπορεί να λύσει το ακόλoυθο πρόβλημα: Μπορούμε να συνδέσουμε τα σημεία Α και Β με ένα φιδάκι από πλακάκια, όταν το φιδάκι επιτρέπεται να κινηθεί οπουδήποτε στο επίπεδο: ΝΑΙ ή ΟΧΙ ; Διαθέτετε απεριόριστο αριθμό από κάθε είδος Το πλακόστρωτο μονοπάτι ως υπολογιστικό πρόβλημα A B A B??????? Αλγόριθμος ΝΑΙ/ ΝΑΙ/ΟΧΙ ΟΧΙ 67 68

18 Δεδομένου αριθμού από πλακάκια και σημείων Α και Β στο επίπεδο, μπορούμε να συνδέσουμε τα Α και Β με ένα φιδάκι από πλακάκια, όταν το φιδάκι επιτρέπεται να κινηθεί οπουδήποτε στο επίπεδο: ΝΑΙ ή ΟΧΙ; Ποιό από τα πιο κάτω ισχύει για το πρόβλημα αυτό; Είναι καλά ορισμένο Δεν έχει λύση Δεν είναι καλά ορισμένο Τίποτα από τα πιο πάνω Πότε υπάρχει λύση; Δεδομένου ενός αριθμού από πλακάκια και δύο σημείων στο επίπεδο Α και Β, μπορούμε να συνδέσουμε τα σημεία Α και Β με ένα φιδάκι από πλακάκια, όταν το φιδάκι επιτρέπεται να κινηθεί οπουδήποτε στο επίπεδο: ΝΑΙ ή ΟΧΙ ; Αποδεικνύεται ότι υπάρχει λύση (αλγόριθμος) όταν το φιδάκι μπορεί να επεκταθεί ελεύθερα σε ολόκληρο το επίπεδο: Αν όμως χωρίσουμε το επίπεδο στα δύο και περιορίσουμε την κίνηση του φιδιού στο μισό επίπεδο τότε αποδεικνύεται ότι δεν υπάρχει αλγόριθμος που να μπορεί να μας πει ΝΑΙ ή ΟΧΙ EΠΛ Περίγραμμα ΕΠΛ233 - Πρακτικά θέματα και Στόχοι μαθήματος Αντικειμενοστρεφείς Γλώσσες Προγραμματισμούς και JAVA Η πλατφόρμα της JAVA Θεμελίωση Προβλημάτων Αφαιρετικότητα Επίλυση Προβλημάτων Διαδικασία Επίλυσης Υπολογιστικών Προβλημάτων Αφαίρεση - abstraction Εννοιολογική επεξεργασία μέσα από την οποία γενικοί κανόνες και έννοιες προκύπτουν από τη χρήση και ταξινόμηση παραδειγμάτων, σημαινόντων, πρωταρχικών εννοιών, συστημάτων ή λειτουργιών/ μεθόδων. Η «αφαίρεση»-αφαιρετική έννοια αποκαλείται επίσης το αποτέλεσμα της διαδικασίας της αφαίρεσης: συνοψίζει τα υπό περιγραφή παραδείγματα, σημαίνοντα, συστήματα, φαινόμενα, λειτουργίες/ μεθόδους. Πηγή: Wikipedia (

19 Aφαίρεση - πώς πραγματοποιείται; Η διαδικασία της αφαίρεση συνήθως εμπεριέχει το φιλτράρισμα του πληροφοριακού περιεχομένου μιας έννοιας, ενός συνόλου παραδειγμάτων, παρατηρούμενων φαινομένων, σημαινόντων, συστημάτων, λειτουργιών με στόχο: την απάλειψη πληροφοριών που δεν ενδιαφέρουν ή δεν είναι σημαντικές την επιλογή και συμπερίληψη εκείνων των στοιχείων / πληροφοριών που είναι χρήσιμες / σχετικές για κάποιο συγκεκριμένο σκοπό Αφαίρεση: πού χρησιμοποιείται; Τέχνες Πληροφορική Μηχανική Γλωσσολογία Μαθηματικά Μουσική Νευρολογία Φιλοσοφία Ψυχολογία Ποιό από τα πιο κάτω αποτελεί «αφηρημένη τέχνη» (abstract art); Στις διαφάνειες όπου εµφανίζεται αυτή η σύνθεση, θα µιλάµε για αφαιρετικότητα (abstraction) Λ. Λαµέρας, «Δύο κόρες»,

20 Αφαιρετικότητα στον προγραμματισμό Η/Υ Αφαιρετικότητα και πραγματικός κόσμος Γλώσσες Υψηλότερου Επιπέδου Διαδικασιακές Γλώσσες (C, Fortran, Modula) Lisp Prolog (setq bar (cons 'x (cdr foo))) sibling(x, Y) :- parent_child(z, X), parent_child(z, Y). Συµβολικές Γλώσσες (assembly) addcc %r1,-4,%r1 addcc %r1,%r2,%r4 ld %r4,%r5 ba loop Παραδοσιακές «διαδικασιακές» Γ.Π. (Fortran, BASIC, C): " Γλώσσες Υψηλότερου Επιπέδου Αποτελούν αφαιρετική αναπαράσταση των συμβολικών γλωσσών (assembly), οι οποίες με την σειρά τους αποτελούν μια αφαιρετική αναπαράσταση των λειτουργιών του υλικού του Η/Υ. Ο προγραμματιστής καλείται να δημιουργήσει μια σύνδεση ανάμεσα στο μοντέλο μηχανής και στο μοντέλο του προβλήματος που προσπαθεί να επιλύσει. Αλγόριθµος Διαδικασιακές Γλώσσες (C, Fortran, Modula) Θεωρητικό Συµβολικές Γλώσσες Μοντέλο Μηχανής (assembly) LISP, APL, PROLOG: επιβάλλουν συγκεκριμένη μοντελοποίηση του πραγματικού κόσμου (π.χ. σαν σύνολο από λίστες, σαν αλγορίθμους, ή σαν αλυσίδες αποφάσεων). 78 Αφαιρετικότητα στον προγραμματισμό Η/Υ Αφαιρετικότητα στον προγραμματισμό Η/Υ " Μηχανή Turing 79 80

21 Αφαιρετικότητα δεδομένων Data Abstraction. Διαφοροποιεί: τις βασικές ιδιότητες δομών δεδομένων από τις λεπτομέρειες της υλοποίησής τους το τι μπορούμε να πράξουμε με τα δεδομένα από το πώς έχουν αυτά αναπαρασταθεί/κωδικοποιηθεί στον Η/Υ Π.χ. μπορούμε να αναπαραστήσουμε αριθμούς με πολλούς τρόπους: Ελληνική αρίθμηση: α, β, γ, δ, ε, στ, ζ, η, θ, ι Αραβική αρίθμηση: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Λατινική αρίθμηση: I, II, III, IV, V, VI, VII, VIII, IX, X Κινεζική αρίθμηση:,,,,,,,,,, Ψηφιακή αρίθμηση: 0, 1 Πράξεις πάνω στους αριθμούς ακολουθούν τους ίδιους κανόνες ανεξάρτητα του πώς αναπαριστούνται οι αριθμοί. 81 Πλεονεκτήματα data abstraction Αποκρύπτουν από τους προγραμματιστές ή τους χρήστες των δομών δεδομένων επουσιώδεις λεπτομέρειες (που δεν είναι ιδιαίτερα σημαντικές για την εργασία τους). Για την ανάπτυξη των περισσοτέρων εφαρμογών συνήθως μας ενδιαφέρει πώς και γιατί μπορούμε να χρησιμοποιήσουμε κάποιες δομές δεδομένων και όχι το πώς αυτές υλοποιούνται ή τι αναπαράσταση έχουν. Διευκολύνεται ο μετασχηματισμός ενός πολύπλοκου προβλήματος σε σύνολο απλούστερων υποπροβλημάτων (διαίρει και βασίλευε). Διευκολύνεται η αλλαγή υλοποίησης μιας λειτουργίας χωρίς να επηρεάζεται η συνολική λειτουργικότητα ενός συστήματος. 82 Πλεονεκτήματα αφαιρετικότητας Γλώσσες Υψηλότερου Επιπέδου Διαδικασιακές Γλώσσες (C, Fortran, Modula) Συµβολικές Γλώσσες (assembly) Το πρόβληµα του Akis Express (traveling salesman) Περίγραμμα ΕΠΛ233 - Πρακτικά θέματα και Στόχοι μαθήματος Αντικειμενοστρεφείς Γλώσσες Προγραμματισμούς και JAVA Η πλατφόρμα της JAVA Θεμελίωση Προβλημάτων Αφαιρετικότητα Επίλυση Προβλημάτων Διαδικασία Επίλυσης Υπολογιστικών Προβλημάτων 83 84

22 Διαδικασία Επίλυσης Προβλημάτων Ορισμός και ανάλυση του προβλήματος Ορισμός: Βρες τον καλύτερο τρόπο για να παραδώσεις αντικείμενα στα 7 σημεία του χάρτη, ξεκινώντας και επιστρέφοντας στο αστέρι. Ανάλυση: Αναγκαίες υποθέσεις, αφαίρεση, υποπροβλήματα, τυπικός ορισμός Επινόηση πλήρους λύσης Διατύπωση λύσης σε βήματα με λεπτομέρεια Έλεγχος ορθότητας (testing), αξιολόγηση (evaluation) λύσης και βελτίωση Eπίλυση Προβλημάτων (παράδειγμα) Τεκµηρίωση (documentation) λύσης και συντήρηση (maintenance) 85 Eπίλυση Προβλημάτων (παράδειγμα) 87 Υποβολή στον πελάτη περιγραφής της διαδρομής που έχουμε επιλέξε Συντήρηση: Έλεγξε την ορθότητα της λύσης Έλεγξε τα υπολογιζόμενα αποτελέσματα έναντι πραγματικών μετρήσεων Τεκμηρίωση Ανάλυση όλων των πιθανών διαδρομών και μέσων μεταφοράς Επιλογή της διαδρομής που πληροί τα κριτήριά μας (π.χ. συντομότερη και φθηνότερη) 86 Έλεγχος και αξιολόγηση: Λάβε υπόψη όλους τους δυνατούς δρόμους και όλα τα μέσα μεταφοράς Βρες τον τρόπο υπολογισμού του κόστους μιας πιθανής διαδρομής Βελτιωμένος Σχεδιασμός Eπίλυση Προβλημάτων (παράδειγμα) Αρχική Επινόηση Λύσης και Σχεδιασμός Ελάχιστη απόσταση, συντομότερη απόσταση ή χαμηλότερο κόστος; Διαθέσιμα μέσα Βάρος, όγκος Συλλογή σχολίων από τον πελάτη για το ταξίδι του Αναδιαμόρφωση της λύσης αν ο πελάτης δεν ήταν ικανοποιημένος από την εμπειρία Ανάλογα βήματα γίνονται όταν προγραμματίζουμε έναν Η/Υ για να δώσουμε υπολογιστική λύση σε ένα πρόβλημα 88

23 Περίγραμμα ΕΠΛ233 - Πρακτικά θέματα και Στόχοι μαθήματος Αντικειμενοστρεφείς Γλώσσες Προγραμματισμούς και JAVA Η πλατφόρμα της JAVA Θεμελίωση Προβλημάτων Αφαιρετικότητα Επίλυση Προβλημάτων Διαδικασία Επίλυσης Υπολογιστικών Προβλημάτων Επίλυση Υπολογιστικών Προβλημάτων Θεμελίωση (φορμαλιστική διατύπωση) Προβλήματος: ορισμός και ανάλυση του προβλήματος Ποιά είναι η είσοδος και ποιά η έξοδος; Ποιές άλλες πληροφορίες είναι απαραίτητες για τη λύση; Ποιά είναι η κατάλληλη αναπαράσταση του προβλήµατος; Επινόηση και διατύπωση αλγορίθµου επίλυσης Ποιά είναι τα βήµατα για επίλυση του προβλήµατος; Κωδικοποίηση αλγορίθµου σε πρόγραµµα Μεταγλώττιση, έλεγχος ορθότητας και αποσφαλµάτωση προγράµµατος Τεκµηρίωση και συντήρηση του προγράµµατος Αρκούν αυτά; "World does not need software. It needs fully functional, easy to use systems. Ragmar Saksing ΑΛΓΟΡΙΘΜΟΙ + ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ = ΠΡΟΓΡΑΜΜΑΤΑ (Niclaus Wirth) Η ικανότητα να επιλύουµε προβλήµατα εξαρτάται σε καθοριστικό βαθμό από τη χρήση αλγορίθμων και δομών δεδομένων. Κάθε πρόγραμμα βασίζεται σε αλγορίθµους και δοµές δεδοµένων. Ο σχεδιασμός των δομών δεδομένων αποτελεί καθοριστική απόφαση στον σχεδιασμό ενός προγράμματος. Αφού έχουμε επιλέξει τις δομές που θα χρησιμοποιήσουμε, ο σχεδιασμός ή η επιλογή των αλγορίθμων επίλυσης τού προβλήματός μας, και ο προγραμματισμός του σε κάποια γλώσσα προγραμματισμού, είναι εύκολες υποθέσεις. Συνήθως, οι δομές δεδομένων και οι αλγόριθμοι που χρησιμοποιούμε είναι γνωστά και μελετημένα. Άρα, πρέπει να γνωρίζετε δομές δεδομένων και αλγορίθμους και τα χαρακτηριστικά τους, για να μπορείτε να επιλέγετε τα κατάλληλα για την επίλυση υπολογιστικών προβλημάτων

24 Υπολογιστικη Σκέψη (computational thinking) Ο τρόπος με τον οποίο οι επιστήμονες της Πληροφορικής χρησιμοποιούν: αποδόμηση (decomposition) αναδρομή (recursion) αλγορίθμους (algorithms) για να αντιμετωπίσουν δύσκολα προβλήματα Η Υπολογιστική Σκέψη συγκεράζει όλα τα πλεονεκτήματα των υπολογιστικών μοντέλων, μεθόδων, εργαλείων και αφαιρέσεων που χρησιμοποιούμε. Σε ποιά από τα παρακάτω βήματα επίλυσης ενός υπολογιστικού προβλήματος εφαρμόζεται η έννοια της αντικειμενοστρέφειας; Προγραμματισμός, Μεταγλώττιση, Έλεγχος Ορθότητας Προγραμματισμός, Τεκμηρίωση, Συντήρηση Θεμελίωση προβλήματος, επινόηση λύσης, προγραμματισμός Εύρεση αλγορίθμου, Προγραμματισμός, Μεταγλώττιση 93 EΠΛ Αναπαράσταση υπολογιστικών προβλημάτων Μετάπτωση κατάστασης Ορισμός του προβλήματος με χρήση αναπαράστασης χώρου καταστάσεων (state space representation): To πρόβλημα αναπαρίσταται σαν ένα σύνολο (χώρος) καταστάσεων Ο χώρος καταστάσεων είναι το σύνολο όλων των καταστάσεων, συμπεριλαμβανομένων της: αρχικής κατάστασης τελικών καταστάσεων Δύο καταστάσεις είναι συνδεδεμένες αν υπάρχει λειτουργία που μπορεί να μετασχηματίσει τη μια στην άλλη Sleep Operate Ένα «συμβάν» ενεργοποιεί την μετάβαση από τη μια κατάσταση στην άλλη Π.χ. ο χρήστης πατάει το κουμπί στο ipad και αυτό μεταπίπτει από κατάσταση Sleep σε Operate και πίσω

25 Τρίλιζα Τα τετράγωνα των μήλων Κάθε κατάσταση αναπαριστά μια δυνατή τοποθέτηση του Χ και του Ο στην τρίλιζα. Το διάγραμμα των καταστάσεων αναπαριστά όλες τις δυνατές κινήσεις που μπορούν να γίνουν με βάση τους κανόνες του παιχνιδιού. Χ Αρχική κατάσταση Ο Χ Τελική Χ κατάσταση Χ Χ Ο Ο Ο Ο Χ Ο 97 Πρόβλημα: Ξεκινώντας από το κεντρικό τετράγωνο, μπορεί το σκουλήκι να φάει όλα τα μήλα; Κανόνες: Το σκουλήκι μπορεί να μετακινηθεί μεταξύ τετραγώνων που έχουν κοινή ακμή. Το σκουλήκι επισκέπτεται ένα τετράγωνο μόνο μια φορά. 98 Aναπαράσταση καταστάσεων

26 Πόσες διαφορετικές διαδρομές μπορεί να ακολουθήσει το σκουλήκι για να φάει όλα τα μήλα; Καμία - δεν υπάρχει λύση Τα τετράγωνα των μήλων ΙΙ Πόσες και ποιές διαδρομές μπορεί να ακολουθήσει το σκουλήκι, ξεκινώντας από ένα οποιοδήποτε τετράγωνο, ώστε να φάει όλα τα μήλα; EΠΛ Τα τετράγωνα των πολύχρωμων μήλων Τετράγωνα των μήλων σε 3 διαστάσεις Ξεκινώντας από το κεντρικό τετράγωνο, μπορεί το σκουλήκι να φάει όλα τα μήλα; Κανόνες: Το σκουλήκι μπορεί να μετακινηθεί μεταξύ τετραγώνων που έχουν κοινή ακμή αλλά διαφορετικό χρώμα μήλου. Το σκουλήκι επισκέπτεται ένα τετράγωνο μια μόνο φορά. Πόσες λύσεις (διαδρομές) έχουμε αν το σκουλήκι: ξεκινήσει από το κέντρο; ξεκινήσει από γωνία με πράσινο ή με κόκκινο μήλο;

27 Τετράγωνα των μήλων σε 3 διαστάσεις 105

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming) ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming) Πληροφορίες Μαθήματος Διαλέξεις Δευτέρα, Πέμπτη 10:30-12:00 Κτήριο ΘΕΕ01, Αίθουσα 202 Εργαστήριο Τετάρτη 10:30-12:00, Κτήριο ΘΕΕ01,

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

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Γλώσσες Προγραμματισμού - Μεταγλώττιση και Διερμηνεία -Η πλατφόρμα

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

Λειτουργικά Συστήματα. Εισαγωγή

Λειτουργικά Συστήματα. Εισαγωγή Λειτουργικά Συστήματα Εισαγωγή Λειτουργικά Συστήματα Ι 4/10/2016 Περιληπτικά Στο σημερινό μάθημα θα δούμε ποια είναι η θέση του Λειτουργικού Συστήματος στην οργάνωση ενός ηλεκτρονικού υπολογιστή. Σπύρος

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν μια

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

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος. Û ØÓÒ ÔÖÓ Ö ÑÑ Ø Ñ ¾ Ç Ö ÐÓ ØÛÒ ÙÔÓÐÓ ØôÒ Ο υπολογιστής είναι εργαλείο επίλυσης προβλημάτων λόγω: ταχύτητας υπολογισμού και μεγέθους μνήμης γενικής χρησιμότητας μέσω της έννοιας του προγραμματισμού. Η

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java Γαβαλάς Δαμιανός dgavalas@aegean.gr Στόχοι μαθήματος Διάκριση και κατανόηση των υφιστάμενων

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) NetBeans, Πρώτα παραδείγματα ανάπτυξης Java εφαρμογών Γαβαλάς Δαμιανός dgavalas@aegean.gr Στόχοι

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ231: ομές εδομένων και Αλγόριθμοι ιδάσκων: Γιώργος Πάλλης Γραφείο: ΘΕΕ-01 Β119 Τηλέφωνο: 22-892743 E-mail: gpallis@cs.ucy.ac.cy Ιστοσελίδα Μαθήματος: http://www.cs.ucy.ac.cy/courses/epl231

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE) NetBeans, Πρώτα παραδείγματα ανάπτυξης Java εφαρμογών Στόχοι εργαστηρίου Εξοικείωση με τις βασικές

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

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

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν μια

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

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

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος: 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου 1. Εισαγωγή 2. Εντολές Εκχώρησης και Τελικές μεταβλητές 3. Μεταγλώττιση και διερμηνεία των

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

05β Η ιδεατή μηχανή της Java

05β Η ιδεατή μηχανή της Java 05β Η ιδεατή μηχανή της Java Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Περιεχόμενα

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

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

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 1 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου

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

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

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

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

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Στόχος Θεματικής Ενότητας Οι μαθητές να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και να μπορούν

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

Αρχές Τεχνολογίας Λογισμικού

Αρχές Τεχνολογίας Λογισμικού Αρχές Τεχνολογίας Λογισμικού Επισκόπηση του μαθήματος 2 Διδάσκοντες ΘΕΩΡΙΑ Νίκος Παπαδάκης ΕΡΓΑΣΤΗΡΙΟ Αϊβαλής Κώστας costis@teicrete.gr Κονδυλάκης Χάρης kondylak@gmail.com 3 Το μάθημα στο πρόγραμμα σπουδών

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

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

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

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

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

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

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

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

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

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

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

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 5: Λογισμικό - Software

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 5: Λογισμικό - Software Εισαγωγή στα Πληροφοριακά Συστήματα Ενότητα 5: Λογισμικό - Software Κωνσταντίνος Ταραμπάνης Τμήμα Οργάνωσης & Διοίκησης Επιχειρήσεων ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κωνσταντίνος Ταραμπάνης Άδειες Χρήσης

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

Δοµές Δεδοµένων. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο Ευάγγελος Μαρκάκης

Δοµές Δεδοµένων. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο Ευάγγελος Μαρκάκης Δοµές Δεδοµένων ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο 2009-2010 Ευάγγελος Μαρκάκης Τι είναι οι Δοµές Δεδοµένων? Δοµές Δεδοµένων 01-2 Τι είναι οι Δοµές Δεδοµένων? Webopedia:

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

Αντικείμενα και Κλάσεις

Αντικείμενα και Κλάσεις Αντικείμενα και Κλάσεις Μ. Δικαιάκος Πανεπιστήμιο Κύπρου Η έννοια της αφαιρετικότητας 2 3 Αφαιρετικότητα - abstraction Γλώσσες Υψηλότερου Επιπέδου Lisp Prolog (setq bar (cons 'x (cdr foo))) Διαδικασιακές

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα2 Προγραμματιστικά Περιβάλλοντα Δημιουργία Εφαρμογών 6.1 Γλώσσες και εργαλεία προγραμματισμού Τι είναι οι γλώσσες προγραμματισμού; Είναι οι τεχνητές γλώσσες στις οποίες γράφονται οι εντολές των

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

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version 1. Ξεκινώντας Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να περιγράψετε τα κύρια χαρακτηριστικά της γλώσσας Java Να περιγράψετε τη Java Virtual Machine Να περιγράψετε πώς λειτουργεί ο μηχανισμός «συλλογής

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Γενικά Χαρακτηριστικά ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΓΕΝΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ

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

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

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

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

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

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

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

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Χαρίδημος Κονδυλάκης Εισαγωγή ΟΡΓΑΝΩΣΗ ΜΑΘΗΜΑΤΟΣ Πληροφορίες Διδάσκοντα Διδάσκοντας: Χαρίδημος Κονδυλάκης Email: Kondylak@ics.forth.gr Εβδομαδιαίες Ώρες Διδασκαλίας: 2 ώρες

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

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

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήρια Δευτέρα 18:00-20:00,Τρίτη

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

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr 1 Δομημένος προγραμματισμός έναντι αντικειμενοστρεφούς

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

Outline. 4 Object-Oriented Programming

Outline. 4 Object-Oriented Programming Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab

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

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( )

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( ) ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Εισαγωγικές πληροφορίες για το μάθημα Τελευταία ενημέρωση: Οκτώβριος 2013 Γλώσσα αντικειμενοστραφούς προγραμματισμού υψηλού επιπέδου,

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 2: Mεταφραστές Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ

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

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

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

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Λογισμικό ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Αλληλεπίδραση Συστημάτων Χρήστες Λογισμικό Εφαρμογών Λειτουργικό Σύστημα Επιπλέον

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η

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

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μεταγλωττιστές Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Βιβλιογραφία Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman. Compilers:

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 4: Λογισμικό Υπολογιστή (3/3), 1ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί στόχοι Η Ενότητα 4 διαπραγματεύεται

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

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

Βασικές Αρχές Προγραμματισμού

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

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

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

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Εισαγωγή Συμβόλαιο Μαθήματος

Εισαγωγή Συμβόλαιο Μαθήματος ΗΜΥ 212 Οργάνωση Υπολογιστών και Μικροεπεξεγραστές Εαρινό Εξάμηνο 2007 Συμβόλαιο Μαθήματος 1 Γενικές Πληροφορίες Διαλέξεις: Διδάσκων: Βοηθός Μαθήματος: Δευτέρα και Πέμπτη, 16:30 18:00 μ.μ. Πανεπιστημιούπολη,

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ Εργαστήριο Ναυτικής Μηχανολογίας

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

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

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα

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

ΗΥ 134. Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 1. Εισαγωγή. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΗΥ 134. Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 1. Εισαγωγή. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 1 Εισαγωγή Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργανωτικά Θέματα Διδάσκων: Νίκος Μπέλλας, Κτήριο Γκλαβάνη,

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια

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

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού Α. Βρακόπουλος 1, Θ.Καρτσιώτης 2 1 Καθηγητής Πληροφορικής Δευτεροβάθμιας Εκπαίδευσης Vraa8@sch.gr 2 Σχολικός

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές 1 ο Εξάμηνο Σπουδών Χειμερινό Εξάμηνο 2012/13 Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης Διδάσκων: Χαρμανδάρης Ευάγγελος, email: vagelis@tem.uoc.gr, Ιστοσελίδα

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

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

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

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

03 Η ιδεατή μηχανή της Java

03 Η ιδεατή μηχανή της Java 03 Η ιδεατή μηχανή της Java Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Περιεχόμενα Η πλατφόρμα της Java γενικά Εισαγωγή στο

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

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

ΕΠΛ664 ΑΝΑΛΥΣΗ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΕΠΛ664 ΑΝΑΛΥΣΗ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗ ΣΥΣΤΗΜΑΤΩΝ ΕΠΛ664 ΑΝΑΛΥΣΗ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Περιγραφή του μαθήματος Στόχοι του μαθήματος Αξιολόγηση Βιβλιογραφία ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-1 Διδασκαλία Διαλέξεις: Δευτέρα και Πέμπτη, 15:00-16:30

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

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 1. Εισαγωγή Ιωάννης Κατάκης Συστάσεις Σήμερα o Συμβόλαιο Μαθήματος o Περιγραφή Μαθήματος o Ιστορική Αναδρομή o Υλικό Υπολογιστή (Computer Hardware) o Λογισμικό

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

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

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος. ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος 1 2 3 Εικόνα 43: Διάφορες πλακέτες υπολογιστών Μέσα σε δύο

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

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

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Μαρίνος Θεμιστοκλέους Email: mthemist@unipi.gr Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Δευτέρα 11-12 AM Πως Προέκυψε το Δαγκωμένο Μήλο της Apple; Το χαριτωμένο

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

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

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

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

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

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

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

ΕΙΣΑΓΩΓΗ. Στόχοι του μαθήματος

ΕΙΣΑΓΩΓΗ. Στόχοι του μαθήματος ΕΙΣΑΓΩΓΗ Στόχοι του μαθήματος Να μάθετε τις βασικές αρχές και τεχνικές του αντικειμενοστραφούς προγραμματισμού (object oriented programming) Να εξασκηθείτε στην πράξη με την γλώσσα προγραμματισμού Java

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

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

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

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

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

ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΑΝΑΠΣΤΞΗ ΓΤΝΑΜΙΚΗ ΙΣΟΔΛΙΓΑ ΓΙΑ ΣΟ ΓΔΝΙΚΟ ΚΑΣΑΣΗΜΑ ΚΡΑΣΗΗ ΓΡΔΒΔΝΧΝ ΜΔ ΣΗ ΒΟΗΘΔΙΑ PHP MYSQL Γηπισκαηηθή Δξγαζία ηνπ Υξήζηνπ

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

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

ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 3 Βασικά εργαλεία ενός προγραμματιστή (editor, compiler, linker κτλ). Το διαδικτυακό περιβάλλον που θα χρησιμοποιηθεί Πληροφορική και Υπολογιστική Βιοϊατρική

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008 Τμήμα θεωρίας: Κάθε Τρίτη, 11πμ-2μμ, ΑΜΦ22. Διδάσκων: Ντίνος Φερεντίνος email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό εργαστήριο (5-6 2ωρα εργαστήρια το εξάμηνο,

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