Scripting Languages Fast development, extensible programs

Size: px
Start display at page:

Download "Scripting Languages Fast development, extensible programs"

Transcription

1 Scripting Languages Fast development, extensible programs Devert Alexandre School of Software Engineering of USTC November 30, 2012 Slide 1/60

2 Table of Contents 1 Introduction 2 Dynamic languages A Python tour Functions as objects Monkey patching 3 Languages comparison 4 Tools making Content generation 5 Glue code Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 2/60

3 Introduction You probably heard about those programming languages Javascript Perl Python Lua Ruby... Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 3/60

4 Scripting languages They are scripting languages, sharing common features Highly dynamic Automatic memory management Can compile to a virtual machine Can be embedded Can be extended with modules written in C or C++ Cross-platform Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 4/60

5 Scripting languages Scripting languages tends to help you to code faster less code to do the same things with other languages powerful default types very dynamic languages large, complete standard library Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 5/60

6 Usages They are successful for a number of applications tool-making languages glue languages to write glue code building extensible, open-ended software... Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 6/60

7 Table of Contents 1 Introduction 2 Dynamic languages A Python tour Functions as objects Monkey patching 3 Languages comparison 4 Tools making Content generation 5 Glue code Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 7/60

8 A Python tour Let s have a look at a scripting language, Python. What follows is true for most other scripting languages. Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 8/60

9 Friendly syntax List and dictionaries are parts of the language syntax a = [ 1, 2, 3, 4, 5, s i x, 7 ] b = { name : a p p l e, c o l o r : r e d, c o s t : } c = [ [ 1. 5, 3. 0 ], [ 2.0, 5. 0 ], [ 9.7, 5. 2 ] ] d = { f r u i t s : [ a p p l e, orange, peach ], l o c a t i o n : Suzhou } Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 9/60

10 Friendly syntax List manipulations are part of the languages a = [ 1, 2, 3, 4, 5, 7, 8, 9, 1 0 ] p r i n t a [ 2 : 7 ] >>> [ 3, 4, 5, 7, 8 ] p r i n t a [ 2 : ] >>> [ 3, 4, 5, 7, 8, 9, 1 0 ] p r i n t a [ : 5 ] >>> [ 1, 2, 3, 4, 5 ] p r i n t a [ 2 : 5 ] + a [ 7 : ] >>> [ 3, 4, 5, 9, 1 0 ] p r i n t [ 2, 3 ] 5 >>> [ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3 ] Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 10/60

11 Friendly syntax Iterators are nearly invisible a = [ 1, 2, 3, 4, 5 ] f o r v a l u e i n a : p r i n t v a l u e Iterating over the elements of a list Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 11/60

12 Friendly syntax Iterators are nearly invisible m y F i l e = open ( i n p u t. t x t ) i = 0 f o r l i n e i n m y F i l e : i += 1 p r i n t i, l i n e Iterating over the lines of a text file Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 12/60

13 Friendly syntax You affect multiple variable in one statement a, b, c = 1, 2, 3 p r i n t a, b, c d e f myfunction ( x ) : r e t u r n x, x x a, b = myfunction ( 3 ) p r i n t a, b Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 13/60

14 Dynamic variable type Variable types is not fixed, it changes a = 42 a = a p p l e a = [ wang, f e i, yue ] a = ( 1, 2, 3, f o u r, 5. 0 ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 14/60

15 Everything is object Numbers are objects a = 2 p r i n t a + 3 p r i n t a. a d d ( 3 ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 15/60

16 Everything is object Lists are objects a = [ 1, 2, 3, 4, 5 ] p r i n t a [ 3 ] p r i n t a. g e t i t e m ( 3 ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 16/60

17 Everything is object Functions are objects d e f s q r ( x ) : r e t u r n x x p r i n t s q r ( 3 ) c l a s s sqrfunc ( o b j e c t ) : d e f c a l l ( s e l f, x ) : r e t u r n x x s q r = sqrfunc ( ) p r i n t s q r ( 3 ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 17/60

18 Standard library An extensive standard library OS-independent file and directory access data persistence XML, JSON, CSV,... parsing most common Internet protocols OS-independent GUI... Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 18/60

19 Standard library Example: defining a command-line interface i m p o r t a r g p a r s e cmdline = a r g p a r s e. ArgumentParser ( d e s c r i p t i o n = Read t h i n g s and do s t u f f s ) cmdline. add argument ( inputpath, a c t i o n = s t o r e, h e l p = path to i n p u t f i l e, t y p e = s t r ) cmdline. add argument ( s, s i z e, a c t i o n = s t o r e, d e s t = f o n t S i z e, d e f a u l t = 16, h e l p = s i z e o f r e a d b u f f e r, t y p e = i n t ) a r g s = cmdline. p a r s e a r g s ( ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 19/60

20 Standard library Example: printing the content of a ZIP archive i m p o r t i m p o r t z i p f i l e a r g p a r s e cmdline = a r g p a r s e. ArgumentParser ( d e s c r i p t i o n = L i s t t h e c o n t e n t o f a ZIP a r c h i v e ) cmdline. add argument ( inputpath, a c t i o n = s t o r e, h e l p = path to i n p u t ZIP a r c h i v e, t y p e = s t r ) a r g s = cmdline. p a r s e a r g s ( ) t r y : a r c h i v e = z i p f i l e. Z i p F i l e ( a r g s. inputpath, r ) f o r i n f o i n a r c h i v e. i n f o l i s t ( ) : p r i n t i n f o. f i l e n a m e, i n f o. d a t e t i m e, i n f o. f i l e s i z e, i n f o. c o m p r e s s s i z e e x c e p t z i p f i l e. B a d Z i p f i l e : p r i n t a r g s. inputpath, i s not a ZIP f i l e e x c e p t I O E r r o r as ( e r r n o, s t r e r r o r ) : p r i n t s t r e r r o r Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 20/60

21 Standard library Example: reading/writing JSON data i m p o r t j s o n a = j s o n. l o a d ( open ( example. j s o n ) ) p r i n t a i m p o r t j s o n a = [ f o o, { bar : ( baz, None, 1. 0, 2) } ] j s o n. dumps ( a ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 21/60

22 Fibonacci numbers Fibonacci numbers are defined as follow F n = F n 1 + F n 2, F 0 = 0, F 1 = 1 Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 22/60

23 Fibonacci numbers Let s code a function to compute Fibonacci numbers d e f f i b ( n ) : i f n < 2 : r e t u r n 1 r e t u r n f i b ( n 1) + f i b ( n 2) p r i n t f i b ( 3 6 ) On my computer, this takes about 11 sec. to compute Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 23/60

24 Memoization To make it faster, we should store intermediate results. It s called memoization fib memo = { } d e f f a s t F i b ( n ) : i f n < 2 : r e t u r n 1 i f not fib memo. h a s k e y ( n ) : fib memo [ n ] = f a s t F i b ( n 1) + f a s t F i b ( n 2) return fib memo [ n ] p r i n t f a s t F i b ( 3 6 ) Same function, but takes 80 msec. to compute! Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 24/60

25 Memoization But we might not be so happy of that solution mix the idea and the implementation have to do by hand this for any expensive recursive function Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 25/60

26 Functions are objects But remember, functions are objects! we can build a function object which contains a function f and a dictionary m if a not in m, m[a] = f (a) returns m[a] Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 26/60

27 Memoizing functions Python implementation for this (works for all arguments) c l a s s Memoize : d e f i n i t ( s e l f, f ) : s e l f. f = f s e l f.m = { } d e f c a l l ( s e l f, a r g s ) : i f not s e l f.m. h a s k e y ( a r g s ) : s e l f.m[ a r g s ] = s e l f. f ( a r g s ) r e t u r n s e l f.m[ a r g s ] Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 27/60

28 Memoizing functions And now, we have a general and clean way to do memoization d e f f i b ( n ) : i f n < 2 : r e t u r n 1 r e t u r n f i b ( n 1) + f i b ( n 2) f i b = Memoize ( f i b ) p r i n t f i b ( 3 6 ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 28/60

29 Monkey patching Methods of objects are functions too c l a s s Animal : d e f makenoise ( s e l f ) : p r i n t not d e f i n e d def dogroaaaar ( ) : p r i n t g r o a a a a r! t i g e r = Animal ( ) t i g e r. makenoise = dogroaaaar t i g e r. makenoise ( ) Dynamic replacement of methods Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 29/60

30 Monkey patching Monkey-patching allow to write very flexible and short code i m p o r t random c l a s s Animal : d e f makenoise ( s e l f ) : p r i n t not d e f i n e d c l a s s RandomNoiseMaker : d e f i n i t ( s e l f, n o i s e L i s t ) : s e l f. n o i s e L i s t = n o i s e L i s t d e f c a l l ( s e l f ) : p r i n t random. c h o i c e ( s e l f. n o i s e L i s t ) t i g e r = Animal ( ) t i g e r. makenoise = RandomNoiseMaker ( [ g r o a a a r!, g r r r r r!, graaaaouuu! ] ) t i g e r. makenoise ( ) Monkey patching with a dynamically defined function Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 30/60

31 Table of Contents 1 Introduction 2 Dynamic languages A Python tour Functions as objects Monkey patching 3 Languages comparison 4 Tools making Content generation 5 Glue code Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 31/60

32 Languages comparison Let s compare Python and Java to do common tasks Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 32/60

33 Languages comparison Printing Hello, world! p u b l i c c l a s s H e l l o W o r l d { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { System. out. p r i n t l n ( H e l l o, w o r l d! ) ; } } p r i n t H e l l o, w o r l d! Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 33/60

34 Languages comparison Opening a file i m p o r t j a v a. i o. ;... m y F i l e = open ( a r g F i l e n a m e ) B u f f e r e d R e a d e r m y F i l e = new B u f f e r e d R e a d e r ( new F i l e R e a d e r ( a r g F i l e n a m e ) ) ; Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 34/60

35 Languages comparison Add an integer to a list, get an other from the list p u b l i c Vector<I n t e g e r > a L i s t = new Vector<Integer >; p u b l i c i n t anumber = 5 ; p u b l i c i n t anothernumber ; a L i s t. addelement ( anumber ) ; anothernumber = a L i s t. g e t E l ement ( 0 ) ; a L i s t = [ ] anumber = 5 a L i s t. append ( anumber ) anothernumber = a L i s t [ 0 ] Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 35/60

36 Languages comparison Print a list of numbers to a file i m p o r t j a v a. i o. ; f = open ( out. t x t, wb ) p u b l i c c l a s s IOTest { f o r i i n x r a n g e ( ) : p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { f. w r i t e ( s t r ( i ) ) t r y { F i l e f = new F i l e ( out. t x t ) ; f. c l o s e ( ) P r i n t W r i t e r ps = new P r i n t W r i t e r ( new OutputStreamWriter ( new F i l e O u t p u t S t r e a m ( f ) ) ) ; f o r ( i n t i = 0 ; i < ; i ++) ps. p r i n t ( S t r i n g. v a l u e O f ( i ) ) ; ps. c l o s e ( ) ; } c a t c h ( I O E x c e p t i o n i o e ) { i o e. p r i n t S t a c k T r a c e ( ) ; } } } Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 36/60

37 Languages comparison Defining a simple class p u b l i c c l a s s Employee { p r i v a t e S t r i n g myemployeename ; p r i v a t e i n t mytaxdeductions = 1 ; p r i v a t e S t r i n g m y M a r i t a l S t a t u s = s i n g l e ; p u b l i c Employee ( S t r i n g EmployeName ) { t h i s ( employeename, 1 ) ; } p u b l i c Employee ( String EmployeName, i n t taxdeductions ) { t h i s ( employeename, t a x D e d u c t i o n s, s i n g l e ) ; } p u b l i c Employee ( S t r i n g EmployeName, i n t t a x D e d u c t i o n s, S t r i n g m a r i t a l S t a t u s ) { t h i s. employeename = employeename ; t h i s. taxdeductions = taxdeductions ; t h i s. m a r i t a l S t a t u s = m a r i t a l S t a t u s ; }... Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 37/60

38 Languages comparison Defining a simple class c l a s s Employee ( ) : d e f i n i t ( s e l f, employeename, t a x D e d u c t i o n s =1, m a r i t a l S t a t u s= s i n g l e ) : s e l f. employeename = employeename s e l f. taxdeductions = taxdeductions s e l f. m a r i t a l S t a t u s = m a r i t a l S t a t u s... Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 38/60

39 Table of Contents 1 Introduction 2 Dynamic languages A Python tour Functions as objects Monkey patching 3 Languages comparison 4 Tools making Content generation 5 Glue code Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 39/60

40 Tools It s quite common to have to do code which will not be in the final product Build Test Content generation Source-code generation Content generation often need project-specific tools Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 40/60

41 Texture atlas In games, graphics are usually made from lot of pictures Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 41/60

42 Texture atlas Save speed & memory pack all graphics in one texture On mobile devices, it is essential Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 42/60

43 Texture atlas A texture packing many graphics elements is called a texture atlas Building a texture atlas is very device and project dependent Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 43/60

44 Texture atlas Automated texture atlas generation a big time saver artist can test many ideas does not need to be fast integration to build process Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 44/60

45 Texture atlas Texture atlas generator should 1 read a list of pictures 2 read a list of rectangle coordinates 3 pack rectangles 4 generate rectangle coordinates 5 generate a picture Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 45/60

46 Texture atlas Texture atlas generator as a script read/write pictures with one line of code read/write XML, JSON, plain text with very few code rectangle packing algorithm Personal experience 1 hour in Python, 12 hours in C Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 46/60

47 Tool making Scripting languages are wonderful to build such tools Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 47/60

48 Table of Contents 1 Introduction 2 Dynamic languages A Python tour Functions as objects Monkey patching 3 Languages comparison 4 Tools making Content generation 5 Glue code Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 48/60

49 Glue code Software are often built by gluing together various libraries project specific code some specialized processing libraries a communication library a data storage library (database, XML,... ) a GUI library Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 49/60

50 Glue code Many important libraries have Python, Ruby, Lua or Perl bindings Sqlite, MySql, Berkeley DB database wxwindow, QT, GTK graphic users interfaces Numpy, Scipy math and linear algebra Simple Direct Media Layer basic graphic, sound and inputs handling Ogre3D 3d graphic engine Cairo 2d vector graphics... Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 50/60

51 Glue code A way to build cross-platform software quickly use a scripting language to glue libraries Glue code usually goes very well with very dynamic languages Fast prototyping Good performance (most bindings are coded in C or C++) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 51/60

52 Success stories Some successful applications using this approach Python DropBox, Civilization IV, Mercurial, Django, Blender, BitTorrent Ruby Ruby On Rails, Google Sketchup Erlang Wings3D, CouchDB, Goldman Sachs robot traders Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 52/60

53 Project specific code You might want to create your own extensions for a scripting language using legacy code for the 10% code which takes 90% of the time Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 53/60

54 Project specific code All scripting languages provides a way to create extension in C/C++ Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 54/60

55 Writing Python extensions A Say hello Python extension #i n c l u d e <Python. h> s t a t i c PyObject s a y h e l l o ( PyObject s e l f, PyObject a r g s ) { const char name ; i f (! PyArg ParseTuple ( args, s, &name ) ) r e t u r n NULL ; p r i n t f ( H e l l o %s!\ n, name ) ; Py RETURN NONE ; } s t a t i c PyMethodDef HelloMethods [ ] = { { s a y h e l l o, s a y h e l l o, METH VARARGS, G r e e t somebody. }, { NULL, NULL, 0, NULL } }; PyMODINIT FUNC i n i t h e l l o ( v o i d ) { ( v o i d ) P y I n i t M o d u l e ( h e l l o, HelloMethods ) ; } Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 55/60

56 Writing Python extensions The Say hello Python extension setup from d i s t u t i l s. c o r e i m p o r t setup, E x t e n s i o n module1 = E x t e n s i o n ( h e l l o, s o u r c e s = [ h e l l o m o d u l e. c ] ) setup ( name = PackageName, v e r s i o n = 1. 0, d e s c r i p t i o n = This i s a demo package, e x t m o d u l e s = [ module1 ] ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 56/60

57 Writing Python extensions Using the Say hello extension i m p o r t h e l l o h e l l o. s a y h e l l o ( World ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 57/60

58 Writing Python extensions A Fibonacci numbers Python extension #i n c l u d e <Python. h> i n t f i b ( i n t n ) { i f ( n < 2) r e t u r n n ; e l s e r e t u r n f i b ( n 1) + f i b ( n 2); } s t a t i c PyObject f i b ( PyObject s e l f, PyObject a r g s ) { const char command ; i n t n ; i f (! PyArg ParseTuple ( args, i, &n ) ) r e t u r n NULL ; } r e t u r n P y B u i l d V a l u e ( i, f i b ( n ) ) ; s t a t i c PyMethodDef FibMethods [ ] = { { f i b, fib, METH VARARGS, Calculate the Fibonacci numbers. }, {NULL, NULL, 0, NULL} }; PyMODINIT FUNC i n i t f i b ( v o i d ) { ( v o i d ) P y I n i t M o d u l e ( f i b, FibMethods ) ; } Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 58/60

59 Writing Python extensions The Fibonacci Python extension setup from d i s t u t i l s. c o r e i m p o r t setup, E x t e n s i o n module1 = E x t e n s i o n ( f i b, s o u r c e s = [ f i b m o d u l e. c ] ) setup ( name = PackageName, v e r s i o n = 1. 0, d e s c r i p t i o n = This i s a demo package, e x t m o d u l e s = [ module1 ] ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 59/60

60 Writing Python extensions Using the Fibonacci extension i m p o r t f i b p r i n t f i b. f i b ( 1 0 ) Devert Alexandre (School of Software Engineering of USTC) Scripting Languages Slide 60/60

Python & Numpy A tutorial

Python & Numpy A tutorial Python & Numpy A tutorial Devert Alexandre School of Software Engineering of USTC 13 February 2012 Slide 1/38 Table of Contents 1 Why Python & Numpy 2 First steps with Python 3 Fun with lists 4 Quick tour

More information

Python. chrysn

Python. chrysn Python chrysn 2008-09-25 Introduction Structure, Language & Syntax Strengths & Weaknesses Introduction Structure, Language & Syntax Strengths & Weaknesses Python Python is an interpreted,

More information

Notater: INF3331. Veronika Heimsbakk December 4, Introduction 3

Notater: INF3331. Veronika Heimsbakk December 4, Introduction 3 Notater: INF3331 Veronika Heimsbakk veronahe@student.matnat.uio.no December 4, 2013 Contents 1 Introduction 3 2 Bash 3 2.1 Variables.............................. 3 2.2 Loops...............................

More information

YYT-C3002 Application Programming in Engineering GIS I. Anas Altartouri Otaniemi

YYT-C3002 Application Programming in Engineering GIS I. Anas Altartouri Otaniemi YYT-C3002 Application Programming in Engineering GIS I Otaniemi Overview: GIS lectures & exercise We will deal with GIS application development in two lectures. Because of the versatility of GIS data models

More information

Tryton Technical Training

Tryton Technical Training Tryton Technical Training N. Évrard B 2CK September 18, 2015 N. Évrard (B 2 CK) Tryton Technical Training September 18, 2015 1 / 56 Overview and Installation Outline 1 Overview and Installation Tryton

More information

Python. Tutorial. Jan Pöschko. March 22, Graz University of Technology

Python. Tutorial. Jan Pöschko. March 22, Graz University of Technology Tutorial Graz University of Technology March 22, 2010 Why? is: very readable easy to learn interpreted & interactive like a UNIX shell, only better object-oriented but not religious about it slower than

More information

Jug: Executing Parallel Tasks in Python

Jug: Executing Parallel Tasks in Python Jug: Executing Parallel Tasks in Python Luis Pedro Coelho EMBL 21 May 2013 Luis Pedro Coelho (EMBL) Jug 21 May 2013 (1 / 24) Jug: Coarse Parallel Tasks in Python Parallel Python code Memoization Luis Pedro

More information

Inkscape and Python. Alex Valavanis. July 11, Institute of Microwaves and Photonics, University of Leeds

Inkscape and Python. Alex Valavanis. July 11, Institute of Microwaves and Photonics, University of Leeds Inkscape and Python Alex Valavanis Institute of Microwaves and Photonics, University of Leeds July 11, 2014 Overview Inkscape: an intro to the project How I got involved Inkscape development My involvement

More information

Data. Notes. are required reading for the week. textbook reading and a few slides on data formats and data cleaning

Data. Notes. are required reading for the week. textbook reading and a few slides on data formats and data cleaning CS 725/825 Information Visualization Fall 2017 Data Dr. Michele C. Weigle http://www.cs.odu.edu/~mweigle/cs725-f17/ Notes } We will not cover these slides in class, but they are required reading for the

More information

Practical Data Processing With Haskell

Practical Data Processing With Haskell Practical Data Processing With Haskell Ozgun Ataman November 14, 2012 Ozgun Ataman (Soostone Inc) Practical Data Processing With Haskell November 14, 2012 1 / 18 A bit about the speaker Electrical Engineering,

More information

Karsten Vennemann, Seattle. QGIS Workshop CUGOS Spring Fling 2015

Karsten Vennemann, Seattle. QGIS Workshop CUGOS Spring Fling 2015 Karsten Vennemann, Seattle 2015 a very capable and flexible Desktop GIS QGIS QGIS Karsten Workshop Vennemann, Seattle slide 2 of 13 QGIS - Desktop GIS originally a GIS viewing environment QGIS for the

More information

A GUI FOR EVOLVE ZAMS

A GUI FOR EVOLVE ZAMS A GUI FOR EVOLVE ZAMS D. R. Schlegel Computer Science Department Here the early work on a new user interface for the Evolve ZAMS stellar evolution code is presented. The initial goal of this project is

More information

Introduction to Portal for ArcGIS. Hao LEE November 12, 2015

Introduction to Portal for ArcGIS. Hao LEE November 12, 2015 Introduction to Portal for ArcGIS Hao LEE November 12, 2015 Agenda Web GIS pattern Product overview Installation and deployment Security and groups Configuration options Portal for ArcGIS + ArcGIS for

More information

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 07/2014 SESSION 8:00-10:00

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 07/2014 SESSION 8:00-10:00 FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING MODULE CAMPUS CSC2A10 OBJECT ORIENTED PROGRAMMING AUCKLAND PARK CAMPUS (APK) EXAM JULY 2014 DATE 07/2014 SESSION 8:00-10:00 ASSESOR(S)

More information

Introduction to Portal for ArcGIS

Introduction to Portal for ArcGIS Introduction to Portal for ArcGIS Derek Law Product Management March 10 th, 2015 Esri Developer Summit 2015 Agenda Web GIS pattern Product overview Installation and deployment Security and groups Configuration

More information

Among various open-source GIS programs, QGIS can be the best suitable option which can be used across partners for reasons outlined below.

Among various open-source GIS programs, QGIS can be the best suitable option which can be used across partners for reasons outlined below. Comparison of Geographic Information Systems (GIS) software As of January 2018, WHO has reached an agreement with ESRI (an international supplier of GIS software) for an unlimited use of ArcGIS Desktop

More information

Contents Why use NEURON ( 5-10 mins) Basics of NEURON (20-25 mins) Exercises (45 mins) Wrap Up (10 mins)

Contents Why use NEURON ( 5-10 mins) Basics of NEURON (20-25 mins) Exercises (45 mins) Wrap Up (10 mins) Contents Why use NEURON ( 5-10 mins) 3 Basics of NEURON (20-25 mins) 8 Exercises (45 mins) 27 Wrap Up (10 mins) 28 (Many thanks to David Sterratt (Uni of Edinburgh) for allowing the use of his tutorials

More information

It s about time... The only timeline tool you ll ever need!

It s about time... The only timeline tool you ll ever need! It s about time... The only timeline tool you ll ever need! Introduction about me Jon Tomczak Senior Consultant Crypsis Game Dev turned Forensicator Past: Started TZWorks in 2006 Consultant at Mandiant

More information

Scikit-learn. scikit. Machine learning for the small and the many Gaël Varoquaux. machine learning in Python

Scikit-learn. scikit. Machine learning for the small and the many Gaël Varoquaux. machine learning in Python Scikit-learn Machine learning for the small and the many Gaël Varoquaux scikit machine learning in Python In this meeting, I represent low performance computing Scikit-learn Machine learning for the small

More information

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 09/06/2014 SESSION 8:30-10:30

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 09/06/2014 SESSION 8:30-10:30 FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING MODULE CAMPUS CSC2A10 OBJECT ORIENTED PROGRAMMING AUCKLAND PARK CAMPUS (APK) EXAM JUNE 2014 DATE 09/06/2014 SESSION 8:30-10:30 ASSESOR(S)

More information

(Multiscale) Modelling With SfePy

(Multiscale) Modelling With SfePy (Multiscale) Modelling With SfePy Random Remarks... Robert Cimrman & Eduard Rohan & others Department of Mechanics & New Technologies Research Centre University of West Bohemia Plzeň, Czech Republic PANM

More information

epistasis Documentation

epistasis Documentation epistasis Documentation Release 0.1 Zach Sailer May 19, 2017 Contents 1 Table of Contents 3 1.1 Setup................................................... 3 1.2 Basic Usage...............................................

More information

VPython Class 2: Functions, Fields, and the dreaded ˆr

VPython Class 2: Functions, Fields, and the dreaded ˆr Physics 212E Classical and Modern Physics Spring 2016 1. Introduction VPython Class 2: Functions, Fields, and the dreaded ˆr In our study of electric fields, we start with a single point charge source

More information

Deep-dive into PyMISP MISP - Malware Information Sharing Platform & Threat Sharing

Deep-dive into PyMISP MISP - Malware Information Sharing Platform & Threat Sharing Deep-dive into PyMISP MISP - Malware Information Sharing Platform & Threat Sharing Team CIRCL http://www.misp-project.org/ Twitter: @MISPProject MISP Training @ Helsinki 20180423 Context MISP is complex

More information

DATA SCIENCE SIMPLIFIED USING ARCGIS API FOR PYTHON

DATA SCIENCE SIMPLIFIED USING ARCGIS API FOR PYTHON DATA SCIENCE SIMPLIFIED USING ARCGIS API FOR PYTHON LEAD CONSULTANT, INFOSYS LIMITED SEZ Survey No. 41 (pt) 50 (pt), Singapore Township PO, Ghatkesar Mandal, Hyderabad, Telengana 500088 Word Limit of the

More information

Leveraging Your Geo-spatial Data Investments with Quantum GIS: an Open Source Geographic Information System

Leveraging Your Geo-spatial Data Investments with Quantum GIS: an Open Source Geographic Information System Leveraging Your Geo-spatial Data Investments with Quantum GIS: an Open Source Geographic Information System Donald L. Schrupp Colorado Division of Wildlife (Retired) Danny Lewis Texas Parks and Wildlife

More information

Practical Bioinformatics

Practical Bioinformatics 4/24/2017 Resources Course website: http://histo.ucsf.edu/bms270/ Resources on the course website: Syllabus Papers and code (for downloading before class) Slides and transcripts (available after class)

More information

/home/thierry/columbia/msongsdb/pyreport_tutorials/tutorial1/tutorial1.py January 23, 20111

/home/thierry/columbia/msongsdb/pyreport_tutorials/tutorial1/tutorial1.py January 23, 20111 /home/thierry/columbia/msongsdb/pyreport_tutorials/tutorial1/tutorial1.py January 23, 20111 27 """ 28 Tutorial for the Million Song Dataset 29 30 by Thierry Bertin - Mahieux ( 2011) Columbia University

More information

Announcements. Problem Set 6 due next Monday, February 25, at 12:50PM. Midterm graded, will be returned at end of lecture.

Announcements. Problem Set 6 due next Monday, February 25, at 12:50PM. Midterm graded, will be returned at end of lecture. Turing Machines Hello Hello Condensed Slide Slide Readers! Readers! This This lecture lecture is is almost almost entirely entirely animations that that show show how how each each Turing Turing machine

More information

GRASS GIS Development APIs

GRASS GIS Development APIs GRASS GIS Development APIs Lifting the fog on the different ways to develop with and for GRASS Moritz Lennert Member of the GRASS GIS Project Steering Comittee PostGISomics Over 30 years of development

More information

Jointly Learning Python Programming and Analytic Geometry

Jointly Learning Python Programming and Analytic Geometry Jointly Learning Python Programming and Analytic Geometry Cristina-Maria Păcurar Abstract The paper presents an original Python-based application that outlines the advantages of combining some elementary

More information

Practical Information

Practical Information MA2501 Numerical Methods Spring 2018 Norwegian University of Science and Technology Department of Mathematical Sciences Semester Project Practical Information This project counts for 30 % of the final

More information

Comp 11 Lectures. Dr. Mike Shah. August 9, Tufts University. Dr. Mike Shah (Tufts University) Comp 11 Lectures August 9, / 34

Comp 11 Lectures. Dr. Mike Shah. August 9, Tufts University. Dr. Mike Shah (Tufts University) Comp 11 Lectures August 9, / 34 Comp 11 Lectures Dr. Mike Shah Tufts University August 9, 2017 Dr. Mike Shah (Tufts University) Comp 11 Lectures August 9, 2017 1 / 34 Please do not distribute or host these slides without prior permission.

More information

Iowa Department of Transportation Office of Transportation Data GIS / CAD Integration

Iowa Department of Transportation Office of Transportation Data GIS / CAD Integration Iowa Department of Transportation Office of Transportation Data GIS / CAD Integration From GIS data to CAD graphics - Iowa DOT's workflow utilizing GeoMedia and MicroStation to develop map products. Mark

More information

Portal for ArcGIS: An Introduction

Portal for ArcGIS: An Introduction Portal for ArcGIS: An Introduction Derek Law Esri Product Management Esri UC 2014 Technical Workshop Agenda Web GIS pattern Product overview Installation and deployment Security and groups Configuration

More information

6. How Functions Work and Are Accessed. Topics: Modules and Functions More on Importing Call Frames

6. How Functions Work and Are Accessed. Topics: Modules and Functions More on Importing Call Frames 6. How Functions Work and Are Accessed Topics: Modules and Functions More on Importing Call Frames Let s Talk About Modules What Are They? M1.py A module is a.py file that contains Python code The name

More information

Tox Issues with virtualenv GNU Guix guix-tox. Guix-tox. A functional version of tox. Cyril Roelandt January 30, /35

Tox Issues with virtualenv GNU Guix guix-tox. Guix-tox. A functional version of tox. Cyril Roelandt January 30, /35 A functional version of tox cyril@redhat.com January 30, 2016 1/35 OpenStack developer at Red Hat since 2013 developer 2/35 1 2 Only Python packages can be installed Reproducibility One package manager

More information

arxiv: v2 [cs.ds] 9 Nov 2017

arxiv: v2 [cs.ds] 9 Nov 2017 Replace or Retrieve Keywords In Documents At Scale Vikash Singh Belong.co Bangalore, India vikash@belong.co arxiv:1711.00046v2 [cs.ds] 9 Nov 2017 Abstract In this paper we introduce, the FlashText 1 algorithm

More information

I. Numerical Computing

I. Numerical Computing I. Numerical Computing A. Lectures 1-3: Foundations of Numerical Computing Lecture 1 Intro to numerical computing Understand difference and pros/cons of analytical versus numerical solutions Lecture 2

More information

6.001 Recitation 22: Streams

6.001 Recitation 22: Streams 6.001 Recitation 22: Streams RI: Gerald Dalley, dalleyg@mit.edu, 4 May 2007 http://people.csail.mit.edu/dalleyg/6.001/sp2007/ The three chief virtues of a programmer are: Laziness, Impatience and Hubris

More information

PySaxs A Python module and GUI for SAXS data treatment

PySaxs A Python module and GUI for SAXS data treatment DIRECTION DES SCIENCES DE LA MATIERE IRAMIS Laboratoire Interdisciplinaire sur l Organisation Nanométrique et Supramoléculaire PySaxs A Python module and GUI for SAXS data treatment Olivier Taché Collaborative

More information

1 Trees. Listing 1: Node with two child reference. public class ptwochildnode { protected Object data ; protected ptwochildnode l e f t, r i g h t ;

1 Trees. Listing 1: Node with two child reference. public class ptwochildnode { protected Object data ; protected ptwochildnode l e f t, r i g h t ; 1 Trees The next major set of data structures belongs to what s called Trees. They are called that, because if you try to visualize the structure, it kind of looks like a tree (root, branches, and leafs).

More information

Overview of xcode Overview of xcode

Overview of xcode Overview of xcode Ilya Agapov Original motivation: spontaneous radiation Need for diagnostics, power loads and potentially science cases Numerical methods well understood, single particle solver provided by O. Chubar (SRWlib)

More information

EXTRACTION AND VISUALIZATION OF WIND SPEED IN A GIS ENVIRONMENT FROM A WEATHER RESEARCH AND FORECASTING (WRF) OUTPUT USING PYTHON

EXTRACTION AND VISUALIZATION OF WIND SPEED IN A GIS ENVIRONMENT FROM A WEATHER RESEARCH AND FORECASTING (WRF) OUTPUT USING PYTHON EXTRACTION AND VISUALIZATION OF WIND SPEED IN A GIS ENVIRONMENT FROM A WEATHER RESEARCH AND FORECASTING (WRF) OUTPUT USING PYTHON Jerome T. Tolentino 1, Ma. Victoria Rejuso 1, Jara Kaye Villanueva 1, Loureal

More information

R: A Quick Reference

R: A Quick Reference R: A Quick Reference Colorado Reed January 17, 2012 Contents 1 Basics 2 1.1 Arrays and Matrices....................... 2 1.2 Lists................................ 3 1.3 Loading Packages.........................

More information

Agilent MassHunter Quantitative Data Analysis

Agilent MassHunter Quantitative Data Analysis Agilent MassHunter Quantitative Data Analysis Presenters: Howard Sanford Stephen Harnos MassHunter Quantitation: Batch and Method Setup Outliers, Data Review, Reporting 1 MassHunter Quantitative Analysis

More information

Performing Advanced Cartography with Esri Production Mapping

Performing Advanced Cartography with Esri Production Mapping Esri International User Conference San Diego, California Technical Workshops July 25, 2012 Performing Advanced Cartography with Esri Production Mapping Tania Pal & Madhura Phaterpekar Agenda Outline generic

More information

TOWARDS THE DEVELOPMENT OF A MONITORING SYSTEM FOR PLANNING POLICY Residential Land Uses Case study of Brisbane, Melbourne, Chicago and London

TOWARDS THE DEVELOPMENT OF A MONITORING SYSTEM FOR PLANNING POLICY Residential Land Uses Case study of Brisbane, Melbourne, Chicago and London TOWARDS THE DEVELOPMENT OF A MONITORING SYSTEM FOR PLANNING POLICY Residential Land Uses Case study of Brisbane, Melbourne, Chicago and London Presented to CUPUM 12 July 2017 by Claire Daniel Urban Planning/Data

More information

- Why aren t there more quantum algorithms? - Quantum Programming Languages. By : Amanda Cieslak and Ahmana Tarin

- Why aren t there more quantum algorithms? - Quantum Programming Languages. By : Amanda Cieslak and Ahmana Tarin - Why aren t there more quantum algorithms? - Quantum Programming Languages By : Amanda Cieslak and Ahmana Tarin Why aren t there more quantum algorithms? there are only a few problems for which quantum

More information

Geoprovisioning delivers geodata and its analysis for specific areas on request.

Geoprovisioning delivers geodata and its analysis for specific areas on request. DRAFT 27 February 2009 Geoprovisioning Geoprovisioning delivers geodata and its analysis for specific areas on request. What are the components of a geoprovisioning service? The sample web site geoprovisioning.com

More information

Computational Methods for Nonlinear Systems

Computational Methods for Nonlinear Systems Computational Methods for Nonlinear Systems Cornell Physics 682 / CIS 629 James P. Sethna Christopher R. Myers Computational Methods for Nonlinear Systems Graduate computational science laboratory course

More information

Read all questions and answers carefully! Do not make any assumptions about the code other than those that are clearly stated.

Read all questions and answers carefully! Do not make any assumptions about the code other than those that are clearly stated. Read all questions and answers carefully! Do not make any assumptions about the code other than those that are clearly stated. CS177 Fall 2014 Final - Page 2 of 38 December 17th, 10:30am 1. Consider we

More information

Geostatistics and Spatial Scales

Geostatistics and Spatial Scales Geostatistics and Spatial Scales Semivariance & semi-variograms Scale dependence & independence Ranges of spatial scales Variable dependent Fractal dimension GIS implications Spatial Modeling Spatial Analysis

More information

Algorithms for Uncertainty Quantification

Algorithms for Uncertainty Quantification Technische Universität München SS 2017 Lehrstuhl für Informatik V Dr. Tobias Neckel M. Sc. Ionuț Farcaș April 26, 2017 Algorithms for Uncertainty Quantification Tutorial 1: Python overview In this worksheet,

More information

A Glimpse at Scipy FOSSEE. June Abstract This document shows a glimpse of the features of Scipy that will be explored during this course.

A Glimpse at Scipy FOSSEE. June Abstract This document shows a glimpse of the features of Scipy that will be explored during this course. A Glimpse at Scipy FOSSEE June 010 Abstract This document shows a glimpse of the features of Scipy that will be explored during this course. 1 Introduction SciPy is open-source software for mathematics,

More information

Google Go illustrated on the basis of Fibonacci numbers

Google Go illustrated on the basis of Fibonacci numbers Google Go illustrated on the basis of Fibonacci numbers Jan Pennekamp RWTH University Aachen Chair for Data Management and Data Exploration Prof. Dr. T. Seidl Supervision: Dipl.-Ing. Marwan Hassani Friday,

More information

Introduction to Python

Introduction to Python Introduction to Python Luis Pedro Coelho luis@luispedro.org @luispedrocoelho European Molecular Biology Laboratory Lisbon Machine Learning School 2015 Luis Pedro Coelho (@luispedrocoelho) Introduction

More information

Lisp Introduction. Dr. Neil T. Dantam. Spring CSCI-498/598 RPM, Colorado School of Mines. Dantam (Mines CSCI, RPM) Lisp Spring / 88

Lisp Introduction. Dr. Neil T. Dantam. Spring CSCI-498/598 RPM, Colorado School of Mines. Dantam (Mines CSCI, RPM) Lisp Spring / 88 Lisp Introduction Dr. Neil T. Dantam CSCI-498/598 RPM, Colorado School of Mines Spring 28 Dantam (Mines CSCI, RPM) Lisp Spring 28 / 88 Outline Lisp Common Lisp by Example Implementation Details Typing

More information

Comp 11 Lectures. Mike Shah. July 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures July 26, / 40

Comp 11 Lectures. Mike Shah. July 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures July 26, / 40 Comp 11 Lectures Mike Shah Tufts University July 26, 2017 Mike Shah (Tufts University) Comp 11 Lectures July 26, 2017 1 / 40 Please do not distribute or host these slides without prior permission. Mike

More information

7th FIG Regional Conference Spatial Data Serving People: Land Governance and the Environment - Building the Capacity

7th FIG Regional Conference Spatial Data Serving People: Land Governance and the Environment - Building the Capacity 7th FIG Regional Conference Spatial Data Serving People: Land Governance and the Environment - Building the Capacity Hanoi, Vietnam, 19-22 October 2009 ------------------ TS 3A - SDI in Support of Urban

More information

GEOGRAPHICAL INFORMATION SYSTEMS. GIS Foundation Capacity Building Course. Introduction

GEOGRAPHICAL INFORMATION SYSTEMS. GIS Foundation Capacity Building Course. Introduction GEOGRAPHICAL INFORMATION SYSTEMS. GIS Foundation Capacity Building Course. Introduction In recent times digital mapping has become part and parcel of our daily lives with experience from Google Maps on

More information

Lab 1: Empirical Energy Methods Due: 2/14/18

Lab 1: Empirical Energy Methods Due: 2/14/18 Lab 1: Empirical Energy Methods Due: 2/14/18 General remarks on scientific scripting Scientific scripting for managing the input and output data is an important component of modern materials computations,

More information

A Practical Comparison of Agile Web Frameworks

A Practical Comparison of Agile Web Frameworks A Practical Agile Frame David Díaz Clavijo david@diazclavijo.com University of Las Palmas de Gran Canaria School of Computer Science Tutors: Cayetano Guerra Artal Alexis Quesada Arencibia Lydia Esther

More information

4th year Project demo presentation

4th year Project demo presentation 4th year Project demo presentation Colm Ó héigeartaigh CASE4-99387212 coheig-case4@computing.dcu.ie 4th year Project demo presentation p. 1/23 Table of Contents An Introduction to Quantum Computing The

More information

St. Kitts and Nevis Heritage and Culture

St. Kitts and Nevis Heritage and Culture St. Kitts and Nevis Heritage and Culture Eloise Stancioff, Habiba, Departmet of Culture St. Kitts HERA workshop: March 17-20, 2015 Goals Using freely available open source platforms, we implement two different

More information

A BASE SYSTEM FOR MICRO TRAFFIC SIMULATION USING THE GEOGRAPHICAL INFORMATION DATABASE

A BASE SYSTEM FOR MICRO TRAFFIC SIMULATION USING THE GEOGRAPHICAL INFORMATION DATABASE A BASE SYSTEM FOR MICRO TRAFFIC SIMULATION USING THE GEOGRAPHICAL INFORMATION DATABASE Yan LI Ritsumeikan Asia Pacific University E-mail: yanli@apu.ac.jp 1 INTRODUCTION In the recent years, with the rapid

More information

Pysynphot: A Python Re Implementation of a Legacy App in Astronomy

Pysynphot: A Python Re Implementation of a Legacy App in Astronomy Pysynphot: A Python Re Implementation of a Legacy App in Astronomy Vicki Laidler 1, Perry Greenfield, Ivo Busko, Robert Jedrzejewski Science Software Branch Space Telescope Science Institute Baltimore,

More information

Supplementary Material

Supplementary Material Supplementary Material Contents 1 Keywords of GQL 2 2 The GQL grammar 3 3 THE GQL user guide 4 3.1 The environment........................................... 4 3.2 GQL projects.............................................

More information

CS 221 Lecture 9. Tuesday, 1 November 2011

CS 221 Lecture 9. Tuesday, 1 November 2011 CS 221 Lecture 9 Tuesday, 1 November 2011 Some slides in this lecture are from the publisher s slides for Engineering Computation: An Introduction Using MATLAB and Excel 2009 McGraw-Hill Today s Agenda

More information

Digital Electronics Part 1: Binary Logic

Digital Electronics Part 1: Binary Logic Digital Electronics Part 1: Binary Logic Electronic devices in your everyday life What makes these products examples of electronic devices? What are some things they have in common? 2 How do electronics

More information

COMP 204. Object Oriented Programming (OOP) Mathieu Blanchette

COMP 204. Object Oriented Programming (OOP) Mathieu Blanchette COMP 204 Object Oriented Programming (OOP) Mathieu Blanchette 1 / 14 Object-Oriented Programming OOP is a way to write and structure programs to make them easier to design, understand, debug, and maintain.

More information

Geodatabase Best Practices. Dave Crawford Erik Hoel

Geodatabase Best Practices. Dave Crawford Erik Hoel Geodatabase Best Practices Dave Crawford Erik Hoel Geodatabase best practices - outline Geodatabase creation Data ownership Data model Data configuration Geodatabase behaviors Data integrity and validation

More information

Satellite project, AST 1100

Satellite project, AST 1100 Satellite project, AST 1100 Introduction and useful information 0.1 Project overview In this project you are going to send a satellite from your home planet, in your own personal star system, to visit

More information

1 ListElement l e = f i r s t ; / / s t a r t i n g p o i n t 2 while ( l e. next!= n u l l ) 3 { l e = l e. next ; / / next step 4 } Removal

1 ListElement l e = f i r s t ; / / s t a r t i n g p o i n t 2 while ( l e. next!= n u l l ) 3 { l e = l e. next ; / / next step 4 } Removal Präsenzstunden Today In the same room as in the first week Assignment 5 Felix Friedrich, Lars Widmer, Fabian Stutz TA lecture, Informatics II D-BAUG March 18, 2014 HIL E 15.2 15:00-18:00 Timon Gehr (arriving

More information

Appendix 4 Weather. Weather Providers

Appendix 4 Weather. Weather Providers Appendix 4 Weather Using weather data in your automation solution can have many benefits. Without weather data, your home automation happens regardless of environmental conditions. Some things you can

More information

Solving Polynomial Systems in the Cloud with Polynomial Homotopy Continuation

Solving Polynomial Systems in the Cloud with Polynomial Homotopy Continuation Solving Polynomial Systems in the Cloud with Polynomial Homotopy Continuation Jan Verschelde joint with Nathan Bliss, Jeff Sommars, and Xiangcheng Yu University of Illinois at Chicago Department of Mathematics,

More information

MapOSMatic, free city maps for everyone!

MapOSMatic, free city maps for everyone! MapOSMatic, free city maps for everyone! Thomas Petazzoni thomas.petazzoni@enix.org Libre Software Meeting 2012 http://www.maposmatic.org Thomas Petazzoni () MapOSMatic: free city maps for everyone! July

More information

BACHELOR OF TECHNOLOGY DEGREE PROGRAM IN COMPUTER SCIENCE AND ENGINEERING B.TECH (COMPUTER SCIENCE AND ENGINEERING) Program,

BACHELOR OF TECHNOLOGY DEGREE PROGRAM IN COMPUTER SCIENCE AND ENGINEERING B.TECH (COMPUTER SCIENCE AND ENGINEERING) Program, BACHELOR OF TECHNOLOGY DEGREE PROGRAM IN COMPUTER SCIENCE AND ENGINEERING B.TECH (COMPUTER SCIENCE AND ENGINEERING) Program, 2018-2022 3.1 PROGRAM CURRICULUM 3.1.1 Mandatory Courses and Credits The B.Tech

More information

A Reconfigurable Quantum Computer

A Reconfigurable Quantum Computer A Reconfigurable Quantum Computer David Moehring CEO, IonQ, Inc. College Park, MD Quantum Computing for Business 4-6 December 2017, Mountain View, CA IonQ Highlights Full Stack Quantum Computing Company

More information

Introduction to Python

Introduction to Python Introduction to Python Luis Pedro Coelho Institute for Molecular Medicine (Lisbon) Lisbon Machine Learning School II Luis Pedro Coelho (IMM) Introduction to Python Lisbon Machine Learning School II (1

More information

L435/L555. Dept. of Linguistics, Indiana University Fall 2016

L435/L555. Dept. of Linguistics, Indiana University Fall 2016 in in L435/L555 Dept. of Linguistics, Indiana University Fall 2016 1 / 13 in we know how to output something on the screen: print( Hello world. ) input: input() returns the input from the keyboard

More information

MAGIC End of Year Presentations. Girls Middle School May 10th, 2016

MAGIC End of Year Presentations. Girls Middle School May 10th, 2016 MAGIC 2015-2016 End of Year Presentations Girls Middle School May 10th, 2016 Agenda Aruna Gauba Anne Friedman Modeling figures and textures using 3-D modeling with Blender Ada Firth Four different games

More information

Using the EartH2Observe data portal to analyse drought indicators. Lesson 4: Using Python Notebook to access and process data

Using the EartH2Observe data portal to analyse drought indicators. Lesson 4: Using Python Notebook to access and process data Using the EartH2Observe data portal to analyse drought indicators Lesson 4: Using Python Notebook to access and process data Preface In this fourth lesson you will again work with the Water Cycle Integrator

More information

Turing Machines Part Three

Turing Machines Part Three Turing Machines Part Three What problems can we solve with a computer? What kind of computer? Very Important Terminology Let M be a Turing machine. M accepts a string w if it enters an accept state when

More information

ASE: A programmable environment for calculations with many electronic structure codes

ASE: A programmable environment for calculations with many electronic structure codes ASE: A programmable environment for calculations with many electronic structure codes Ask Hjorth Larsen Center for Atomic-scale Materials Design, Technical University of Denmark 16th ETSF workshop September

More information

CSCI-141 Exam 1 Review September 19, 2015 Presented by the RIT Computer Science Community

CSCI-141 Exam 1 Review September 19, 2015 Presented by the RIT Computer Science Community CSCI-141 Exam 1 Review September 19, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu 1. Python basics (a) The programming language Python (circle the best answer): i. is primarily

More information

Write a report (6-7 pages, double space) on some examples of Internet Applications. You can choose only ONE of the following application areas:

Write a report (6-7 pages, double space) on some examples of Internet Applications. You can choose only ONE of the following application areas: UPR 6905 Internet GIS Homework 1 Yong Hong Guo September 9, 2008 Write a report (6-7 pages, double space) on some examples of Internet Applications. You can choose only ONE of the following application

More information

Integrating ARCGIS with Datamining Software to Predict Habitat for Red Sea Urchins on the Coast of British Columbia.

Integrating ARCGIS with Datamining Software to Predict Habitat for Red Sea Urchins on the Coast of British Columbia. Integrating ARCGIS with Datamining Software to Predict Habitat for Red Sea Urchins on the Coast of British Columbia. Wayne Hajas Pacific Biological Station Nanaimo, BC 1 Allison Smeaton GIS-student intern

More information

PaikkaOppi - a Virtual Learning Environment on Geographic Information for Upper Secondary School

PaikkaOppi - a Virtual Learning Environment on Geographic Information for Upper Secondary School PaikkaOppi - a Virtual Learning Environment on Geographic Information for Upper Secondary School Jaakko Kähkönen*, Lassi Lehto*, Juha Riihelä** * Finnish Geodetic Institute, PO Box 15, FI-02431 Masala,

More information

CS187 - Science Gateway Seminar for CS and Math

CS187 - Science Gateway Seminar for CS and Math CS187 - Science Gateway Seminar for CS and Math Fall 2013 Class 3 Sep. 10, 2013 What is (not) Computer Science? Network and system administration? Playing video games? Learning to use software packages?

More information

CS177 Fall Midterm 1. Wed 10/07 6:30p - 7:30p. There are 25 multiple choice questions. Each one is worth 4 points.

CS177 Fall Midterm 1. Wed 10/07 6:30p - 7:30p. There are 25 multiple choice questions. Each one is worth 4 points. CS177 Fall 2015 Midterm 1 Wed 10/07 6:30p - 7:30p There are 25 multiple choice questions. Each one is worth 4 points. Answer the questions on the bubble sheet given to you. Only the answers on the bubble

More information

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University Prof. Mi Lu TA: Ehsan Rohani Laboratory Exercise #4 MIPS Assembly and Simulation

More information

Sapienza universita di Roma Dipartimento di Informatica e Sistemistica. User guide WSCE-Lite Web Service Composition Engine v 0.1.

Sapienza universita di Roma Dipartimento di Informatica e Sistemistica. User guide WSCE-Lite Web Service Composition Engine v 0.1. Sapienza universita di Roma Dipartimento di Informatica e Sistemistica User guide WSCE-Lite Web Service Composition Engine v 0.1 Valerio Colaianni Contents 1 Installation 5 1.1 Installing TLV..........................

More information

From BASIS DD to Barista Application in Five Easy Steps

From BASIS DD to Barista Application in Five Easy Steps Y The steps are: From BASIS DD to Barista Application in Five Easy Steps By Jim Douglas our current BASIS Data Dictionary is perfect raw material for your first Barista-brewed application. Barista facilitates

More information

GIS Functions and Integration. Tyler Pauley Associate Consultant

GIS Functions and Integration. Tyler Pauley Associate Consultant GIS Functions and Integration Tyler Pauley Associate Consultant Contents GIS in AgileAssets products Displaying data within AMS Symbolizing the map display Display on Bing Maps Demo- Displaying a map in

More information

The PyMC MCMC python package

The PyMC MCMC python package The PyMC MCMC python package MCMC Coffee - Vitacura, December 7, 2017 Jan Bolmer Outline 1. PyMC, MCMC & Bayesian Statistics 1.1 PyMC - Purpose 1.2 Marcov Chain Monte Carlo 1.3 Metropolis-Hastings Algorithm

More information

Bentley Map Advancing GIS for the World s Infrastructure

Bentley Map Advancing GIS for the World s Infrastructure Bentley Map Advancing GIS for the World s Infrastructure Presentation Overview Why would you need Bentley Map? What is Bentley Map? Where is Bentley Map Used? Why would you need Bentley Map? Because your

More information

Why GIS & Why Internet GIS?

Why GIS & Why Internet GIS? Why GIS & Why Internet GIS? The Internet bandwagon Internet mapping (e.g., MapQuest) Location-based services Real-time navigation (e.g., traffic) Real-time service dispatch Business Intelligence Spatial

More information

4 Modes. to decompose second-order systems into modes, explaining the decomposition using operators and block diagrams.

4 Modes. to decompose second-order systems into modes, explaining the decomposition using operators and block diagrams. 4 Modes 4. Growth of the Fibonacci series 52 4.2 Taking out the big part from Fibonacci 55 4.3 Operator interpretation 57 4.4 General method: Partial fractions 59 The goals of this chapter are: to illustrate

More information

Structural Induction

Structural Induction Structural Induction In this lecture we ll extend the applicability of induction to many universes, ones where we can define certain kinds of objects by induction, in addition to proving their properties

More information