Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής [ΕΠΛ371 Προγραμματισμός Συστημάτων]



Σχετικά έγγραφα
Γλωσσική Τεχνολογία. Εισαγωγικό Φροντιστήριο

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ

Εισαγωγικό Φροντιστήριο

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Approximation of distance between locations on earth given by latitude and longitude

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Instruction Execution Times

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ. του Γεράσιμου Τουλιάτου ΑΜ: 697

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

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

IT & Networking DEVELOPING Essential Python 3. Κωδικός Σεμιναρίου / Code

ΕΠΛ 012. JavaScripts

EE512: Error Control Coding

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Math 6 SL Probability Distributions Practice Test Mark Scheme

ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Section 8.3 Trigonometric Equations

The Simply Typed Lambda Calculus

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Homework 3 Solutions

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

TaxiCounter Android App. Περδίκης Ανδρέας ME10069

CS 150 Assignment 2. Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Εισαγωγικό Φροντιστήριο

The challenges of non-stable predicates

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Example Sheet 3 Solutions

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Modbus basic setup notes for IO-Link AL1xxx Master Block

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

How to register an account with the Hellenic Community of Sheffield.

Μηχανική Μάθηση Hypothesis Testing

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

2 Composition. Invertible Mappings

Θέματα Προγραμματισμού Η/Υ

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

Partial Trace and Partial Transpose

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

the total number of electrons passing through the lamp.

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

PARTIAL NOTES for 6.1 Trigonometric Identities

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

[1] P Q. Fig. 3.1

ΜΟΝΤΕΛΑ ΛΗΨΗΣ ΑΠΟΦΑΣΕΩΝ

Πληροφορική ΙΙ Θεματική Ενότητα 2

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

ΜΔΛΔΣΖ ΚΑΗ ΔΛΔΓΥΟ ΣΟΤ PYTHON NATURAL LANGUAGE TOOLKIT ΣΖΝ ΔΛΛΖΝΗΚΖ ΓΛΧΑ

Trigonometric Formula Sheet

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

How to boost your online sales. with Last Mile innovations, flexible options and customer convenience

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

Section 9.2 Polar Equations and Graphs

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

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

Reminders: linear functions

ΓΕΩΜΕΣΡΙΚΗ ΣΕΚΜΗΡΙΩΗ ΣΟΤ ΙΕΡΟΤ ΝΑΟΤ ΣΟΤ ΣΙΜΙΟΤ ΣΑΤΡΟΤ ΣΟ ΠΕΛΕΝΔΡΙ ΣΗ ΚΤΠΡΟΤ ΜΕ ΕΦΑΡΜΟΓΗ ΑΤΣΟΜΑΣΟΠΟΙΗΜΕΝΟΤ ΤΣΗΜΑΣΟ ΨΗΦΙΑΚΗ ΦΩΣΟΓΡΑΜΜΕΣΡΙΑ

HISTOGRAMS AND PERCENTILES What is the 25 th percentile of a histogram? What is the 50 th percentile for the cigarette histogram?

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Εισαγωγή στην Python. Διάλεξη 0

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

Εικονική Αναπαράσταση Νοηµατικής Γλώσσας στο ιαδίκτυο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

(C) 2010 Pearson Education, Inc. All rights reserved.

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

«Δικτυακός τόπος της Βιβλιοθήκης του Μοσχάτου»

5.4 The Poisson Distribution.

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

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

ΗΥ-150 Programming. Assignment 3. HY150 Programming, University of Crete

Test Data Management in Practice

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Advanced Subsidiary Unit 1: Understanding and Written Response

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

CHAPTER 12: PERIMETER, AREA, CIRCUMFERENCE, AND 12.1 INTRODUCTION TO GEOMETRIC 12.2 PERIMETER: SQUARES, RECTANGLES,

Assalamu `alaikum wr. wb.

Lecture 2. Soundness and completeness of propositional logic

Models for Probabilistic Programs with an Adversary

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ. Σχολή Τεχνολογικών Εφαρμογών Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων

Transcript:

Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής [ΕΠΛ371 Προγραμματισμός Συστημάτων] ΟΜΑΔΑ 3 Αλεξάνδρου Σάββας Ανδρέου Ανδρέας Παπαφιλίππου Φίλιππος Στεφανίδης Δημοσθένης

Εισαγωγή Θέμα / Όνομα / Έργο Θέμα: Cycling Maps with Όνομα: Έργο: Implement a Crawler for the CyclingMaps project. Particularly, your system has to provide a login box, through which a user provides login credentials and a favorite sport activity tracking website (e.g., runtastic + 2 more). You automatically download, align the trajectory data that is subsequently presented on a google map. The given data will be the foundation for an automated Cyprus Cycling Map we are trying to construct.

Εισαγωγή Python Λίγα Λόγια, Παραδείγματα

Λίγα λόγια I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.

Creator Ολλανδός 59 Χρονών Τίτλος: «Benevolent Dictator for Life». Βραβείο από το Free Software Foundation. Δουλεύει στη Dropbox. Guido van Rossum

Ονομασία Monty Python s Flying Circus [1969 1974] Spam [1970]

Φιλοσοφία Beautiful is better than ugly Explicit is better than implicit Simple is better than complex Complex is better than complicated Readability counts TIMTOWTDIBSCINABTE There should be one and preferably only one obvious way to do it.

Χρήση Google, Yahoo, CERN, NASA Χρησιμοποιείται σαν scripting language σε web applications π.χ. μέσω του wsgi για Apache. Web app framework: Django, Pylons, Pyramid Βιβλιοθήκες: NumPy, SciPy, Matplotlib, BioPython, Astropy, Sage (για Μαθηματικά). Έχει ενσωματωθεί σε λογισμικά FreeCad, Blender, Maya, GIMP, Inkscape, Rasberry Pi.

Software

Επίδοση Εμπειρική μελέτη έδειξε πως οι scripting γλώσσες (όπως η python) είναι πιο παραγωγικές από τις συμβατικές γλώσσες (όπως Java, C) για προγράμματα που έχουν να κάνουν με string manipulation και αναζήτηση σε λεξικό. Η χρήση μνήμης έδειξε να ήταν συχνά καλύτερη από τη Java και όχι πολύ χειρότερη από τις C, C++. PyPy JIT (Just in Time): Επικεντρώνεται στην ταχύτητα, την αποτελεσματικότητα και τη συμβατότητα. Μετατρέπει το Python κώδικα σε γλώσσα μηχανής κατά την εκτέλεση.

Python.S.F. Αποστολή: Προώθηση, προστασία και πρόοδο της Python. Υποστήριξη και διευκόλυνση της ανάπτυξης μιας πλουραλιστικής διεθνής κοινότητας προγραμματιστών της. Μπορεί όποιος επιθυμεί να συνεισφέρει σε έργο ή σε χρήμα Python Software Foundation License PyCon (επόμενο 20-26 Ιούλη στο Bilbao) Χρηματοδοτήσεις (python sprints)

Δουλειές

How to script? Interactively from terminal (interpreted language) From file

First Program in Python Hello world print Hello World\n Simple operations print 25+5, 25-5, 5*5, 25/5 Using variables number = 2 other = 3 print 'Sum: {0}'.+format(name + other)

Strings mystring = 'Hello' mystring += ' world!' print mystring print len(mystring)

Conditionals if <condition1>: <statement1> elif <condition2>: <statement2> else: <statement3>

Lists students = ['Luis', 'Mark', 'Rita'] print students [0], students [1], students [2] students = ['Luis', 'Mark', 'Rita',...] for st in students: print st values = [ 0.11, -0.23 ] print values [0], values [1]

List Indexing students = ['Luis', 'Mark', 'Rita'] print students [0] print students [0:1] print students [1:] print students [-1] print students [-2]

Nested List matrix = [ [1,2,3,4], [5,6,378], [9,10,11,12], ]

Python So Far Basic types: int, float, list Control flow: for, while, if, else, elif

Tuples Τα tuples είναι σαν αμετάβλητες lists. A = (0, 1, 2) A = ( 1 ) print A[0] print len(b)

Dictionaries Τα dictionaries είναι associative arrays όπου γίνεται indexing μέσω keys. g = {} g['nick'] = 18 g['rita'] = 20 print g['nick'] print len(g) print g.keys()

Sets Ένα set είναι ένα unordered collection χώρις duplicate elements. Τα sets υποστηρίζουν και μαθηματικές πράξεις όπως η ένωση, η τομή και η διαφορά. numbers = set( [1,2,5] ) numbers.add(4) print numbers print numbers set( ['Rita'] ) print numbers & set( ['Rita'] ) print numbers - set( [2,3] )

Functions def greet1(): print 'Hello World' print 'Still Here' def greet2(name): print 'Hello {0}'.format(name) greet1() greet2('luis')

Classes class MyClass: i = 10 def f(self): return 'Hello World' x = MyClass() print x.i print x.f()

Exceptions try: 10/0 except ZeroDivisionError: print 'Oops, invalid.' else: print 'Pass.' finally: print 'We \'re done with that.'

Importing import random from time import clock num = random.randint(1,100) print num

File I/O myfile = open('text.txt','w') myfile.write('this is a sample string') myfile.close() myfile = open('text.txt','r') print myfile.read(20) myfile.close()

Εισαγωγή Βιβλιοθήκες, Παραδείγματα, Επίδειξη

Web Crawler Ένα Internet bot που σερφάρει συστηματικά τον Παγκόσμιο Ιστό, συνήθως για σκοπούς Web Indexing. Άλλα ονόματα: Web Spider, Ant, Automatic Indexer ή Web Scutter. Οι μηχανές αναζήτησης χρησιμοποιούν Web Crawling για ενημέρωση των περιεχομένων ιστού ή των ευρετηρίων ιστοσελίδων.

Web Crawler (συνέχεια) Μπορούν να αντιγράψουν σελίδες που επισκέφτηκαν για μεταγενέστερη επεξεργασία από Μηχανές Αναζήτησης. Έτσι η αναζήτηση γίνεται πιο αποδοτική για τους χρήστες. Μπορούν να επικυρώσουν hyperlinks και HTML κώδικα. Χρησιμοποιούνται επίσης και για web scraping (τεχνική εξαγωγής πληροφοριών από ιστοσελίδες).

Beautiful Soup Beautiful Soup είναι ένα πακέτο της Python για parsing HTML και XML αρχεία. Δημιουργεί ένα parse tree για parsed σελίδες. Μπορεί να χρησιμοποιηθεί για εξώρυξη δεδομένων από HTML, κάτι πολύ χρήσιμο για Web Scraping. Διαθέσιμο για Python 2.6+ και Python 3.

Beautiful Soup - Παράδειγμα

Tkinter GUI Python's de-facto standard GUI (Graphical User Interface) package. Tkinter γράφτηκε από τον Fredrik Lundh.

Επίδειξη

Επίδειξη (backup slide)

Επίδειξη (backup slide)

Tracing Roads Tracing Roads Algorithm

Tracing Roads (1) When combining many GPS traces of many users huge amount of data will build up. We need an algorithm that distinguishes roads to keeps only 2 points for each road pass.

Tracing Roads (2) Similar techniques are present in image compression libraries Real world problem example Small Distance Hundreds of points Only for 1 trip The problem scales More problems when previewing in browser

Tracing Roads (3) Algorithm (pseudo-code): For each collected GPX file (trip) For each point traveled Compute gradient between the current and previous point If much different Save previous road Else Continue computing the current road Finding the gradient We initially use the formula: λ = ψ 1 ψ 2 χ 1 χ 2

Tracing Roads (4) Gradient difference (λ 2 λ 1 ) Gradient difference alone isn t sufficient for our case We need difference of bearings d = arctan(λ 2 ) arctan(λ 1 )

Tracing Roads (5)

Tracing Roads (6) Alternative methods Hierarchical clustering (topic of Data Mining) Roads specified by service e.g. Google Maps

Πηγές Πηγές, tutorials... http://www.stavros.io/tutorials/python/ https://www.python.org/ https://en.wikipedia.org/wiki/python_%28progra mming_language%29 http://pypy.org/ http://page.mi.fuberlin.de/prechelt/biblio/jccpprt_computer2000.p df http://www.explainxkcd.com

Πηγές Πηγές, tutorials... Year 10 Interactive Maths - Second Edition http://www.mathsteacher.com.au/year10/ch03_linear _graphs/02_gradient/line.htm Data Mining Algorithms In R/Clustering/Hybrid Hierarchical Clustering (http://en.wikibooks.org/wiki/data_mining_algorithm s_in_r/clustering/hybrid_hierarchical_clustering)

Ερωτήσεις Ερωτήσεις/Συζήτηση Ερωτήσεις? Ευχαριστούμε για την προσοχή σας