An Introduction to the Python Programming Language Daniel Toppo Pictet Asset Management

Total Page:16

File Type:pdf, Size:1020Kb

An Introduction to the Python Programming Language Daniel Toppo Pictet Asset Management An Introduction to the Python Programming Language Daniel Toppo Pictet Asset Management 20192 – Financial Econometrics 2 Spring 2017 Python Part I Introduction Intro Lecture 2 Python What is Python ? Intro Lecture 3 What is Python ? High-level Cross- Open platform Source PYTHON Programming Language Multi- Interactive paradigm General- purpose Intro Lecture 4 What is Python ? . A high-level, general-purpose, interactive programming language o Designed to communicate instructions to a computer o Allows to humans to express what they want the computer to execute for them . High-level o Python uses English keywords (aka natural language elements) o Strong abstraction from the details of the computer o Makes the process of creating a program much simpler . General-purpose o Used to create software in a wide variety of domains o Extended through an extensive ecosystem of libraries o Can be used for rapid code development as well as for building large applications Intro Lecture 5 What is Python ? . Interactive o Processed at runtime by Python interpreter (Matlab-like) o The interpreter is a program that reads a program and carries out its instructions o It translates the code at runtime to executable byte code (i.e. binary code that the computer can understand and execute) . Cross-platform o Available for the most important Operating Systems (Windows, Mac OS, Linux, etc.) o Used to build web applications, desktop applications, etc. Multi-paradigm o Supports different ways to program o Object-oriented, Functional, Imperative, Procedural programming Intro Lecture 6 Python What for ? Intro Lecture 7 Where to find Python ? . Domains o Software Development o Art (Movies) o Business o Education o Government o Science o Engineering . Available platforms o Windows o Mac OSX o Linux o MS-DOS o Solaris o Raspberry o Mobile phone (Android, iOS, Windows) Intro Lecture 8 What is Python used for? Web Data Development Analysis Machine Learning Intro Lecture 9 What is Python used for ? Internet of Things Games And Mobile LOT Development more! Intro Lecture 10 What is Python used for ? . Web Development o To create websites with dynamic content o Some popular web framework (packages which allow developers to write web applications): Django, TurboGears, web2py . Data analysis o Large and excellent scientific libraries: NumPy, SciPy, Statsmodels, Pandas, Matplotlib, Seaborn, etc. o Specifically, Pandas is probably the most useful data analysis in Python: easy-to-use data structures and data analysis tools . Machine Learning o Machine Learning is a branch of computing science that studies algorithms allowing computers to learn without being explicitly programmed o It is an application of a broader concept of Artificial Intelligence Intro Lecture 11 What is Python used for ? . Internet of Things o Python can be used to control and automate your entire home! o Python can act as a brain for robots to perform actions or act & react to the environment o Tiny computer like Raspberry Pi can be programmed in Python . Games Developments o Entire video games are coded in Python o From graphical interface, to artificial intelligence algorithms o Specifically, the Pygame library is used to program games . Mobile Developments o Some library (like Kivy, or PyMob) allow for rapid development of mobile applications o Still a very young technology though, but might improve drastically in the near future Intro Lecture 12 Who uses Python ? Intro Lecture 13 Python Tools & Infrastructure Intro Lecture 14 Python Tools & Infrastructure . Python tools and infrastructure are all the components (software & hardware) that allow for increasing productivity . Anaconda is one of the most popular Python distribution for data science o To install Python and scientific libraries o Over 100 of the most important libraries o Cross-platform (Windows, Mac, Linux) Intro Lecture 15 Python Tools & Infrastructure . iPython is a Python interactive interpreter o syntax color highlighting o code completion o variables inspection o integrated help o commands history o cross-platform Intro Lecture 16 Python Tools & Infrastructure . Spyder IDE (Integrated Development Environment) is a Python editor with: o syntax color highlighting o code auto-completion o variables inspection o integrated help Intro Lecture 17 Python Tools & Infrastructure . PyCharm is another Python IDE: o syntax color highlighting o code auto-completion o debugging capabilities o variables inspection o built-in web development integration o free student access for professional edition Intro Lecture 18 Python Why use Python ? Intro Lecture 19 Why use Python ? . Python is easy ! o Easy to read – Easy to learn – Easy to digest! o In C++ (another very famous programming language) : #include <iostream.h> void main() { cout << “Ciao Italia!" << endl; } o In Python : print (“Ciao Italia!") Intro Lecture 20 Why use Python ? . Python's ecosystem is one of the largest out of any programming community: External libraries Tools Frameworks Books Documentation Websites Tutorials Python’s Python’s ecosystem Developers People Trainers Intro Lecture 21 Why use Python ? . Widely taught in universities o Top-ranked tech universities (MIT, Berkeley, etc.) switched their introductory courses to Python o The largest MOOC (massive open online course) providers (edX, Coursera, Udacity) offer introductory programming course in Python . Open source o Development model that encourages open collaboration o Python source code is freely available to the public o Higher security, higher quality, higher customization . One of the top-ten programming languages rd 1 o IEEE Spectrum: 3 out of 20 (July 2016) th 2 o TIOBE Programming Community : 5 out of 20 (Feb. 2017) 1 http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages 2 http://www.tiobe.com/tiobe-index/ Intro Lecture 22 Python vs Matlab Python Matlab . Advantages . Advantages Include IDE, GUI builder, o Open and free o matrix algebra, data o Low learning curve processing, plotting in o Object oriented standard package o High portability: run the code everywhere o Available and extensive documentation o Extensive ecosystem: libraries (external modules) o Large scientific community GUI toolkits (tools to build Graphical User Interfaces) . Disadvantages IDEs (Integrated Proprietary: hidden code Development Environment) o o Expensive: Toolboxes are . Disadvantages usually not free Low portability (Matlab o Must include libraries to o extend standard code doesn't run exactly the functionalities same way on different platforms) Intro Lecture 23 Python vs Matlab Python Matlab Core Core . Programming language . Programming language . Interpreter . Interpreter . Standard library . Standard library . IDE . GUI builder Libraries IDEs Toolkits | Toolboxes . Numpy . Spyder . Simulink (simulation & . Scipy . PyCharm . Matplotlib . Wing IDE modelling) . Pandas . PyStudio . Parallel computing . Scikit . IDLE . Image processing . PyQt4 . Etc. Signal processing . Etc. Etc. Intro Lecture 24 Python Python in Finance Intro Lecture 25 Python in Finance . Financial institutions are evolving into technology companies o Banking and financial institutions is the industry that spends the most in technology (often spending billions $US per year) o Large banks employ thousands of developers to create and maintain IT systems . Technology leads to competitive advantages o Increase of speed of trades executions o Increase and automation of controls o Ease of increasing data volumes management o Financial engineering modelling . However, skilled people are scarce and hard to find o Expert not only need to know technology, but also finance! o Skills shortages are a threat to competitiveness and growth Intro Lecture 26 Python in Finance . Non-exhaustive list of uses of Python in finance o Analyzing data o Backtesting trades and models o Financial modeling o Asset pricing o Risk management . Examples of software built with Python in the financial Industry o JP Morgan’s Athena: risk management & analysis, asset pricing, trading management system o Bank of America Merrill Lynch’s Quartz: asset pricing, positions management, risk management o Bellco Credit Union’s SAFE: online banking system o Altis Investment Management: risk management system Intro Lecture 27 Python in Finance . Most requested languages in coding interviews in the financial space (from the HackerRank1 website) 1 https://blog.hackerrank.com/emerging-languages-still-overshadowed-by- incumbents-java-python-in-coding-interviews/ Intro Lecture 28 Python Part II Examples Intro Lecture 29 Python Examples – Basic . Simple mathematical expression and its evaluation: Compound Interest = 1 + # Defines a function with parameters � 'p', 'r' and 't' def compoundInterest (p, r, t) : return p*(1+r)**t # Return the function result # Let's initialize the parameters… p = 100 r = 0.1 t = 10 # … and call the function ! f = compoundInterest (p, r, t) # The variable 'f' yields the # function result (259.374246…) Intro Lecture 30 Python Examples – Basic . What does this very simple example shows us: o Python syntax is very similar to the mathematical syntax o Python uses English keywords for expressing scientific and mathematical problems o Python elegant syntax clearly separates blocs of statements (the function in our example) using adequate indentation . Any financial (or scientific) problem can thus be very easily expressed and translated into algorithms Intro Lecture 31 Examples – Optimization . Let’s try to minimize the following function over the [-1, 1] x [-1,
Recommended publications
  • Preview Turbogears Tutorial
    TurboGears About the Tutorial TurboGears is a Python web application framework, which consists of many modules. It is designed around the MVC architecture that are similar to Ruby on Rails or Struts. TurboGears are designed to make rapid web application development in Python easier and more supportable. TurboGears is a web application framework written in Python. TurboGears follows the Model-View-Controller paradigm as do most modern web frameworks like Rails, Django, Struts, etc. This is an elementary tutorial that covers all the basics of TurboGears. Audience This tutorial has been designed for all those readers who want to learn the basics of TurboGears. It is especially going to be useful for all those Web developers who are required to simplify complex problems and create single database backed webpages. Prerequisites We assume the readers of this tutorial have a basic knowledge of web application frameworks. It will be an added advantage if the readers have hands-on experience of Python programming language. In addition, it is going to also help if the readers have an elementary knowledge of Ruby-on-Rails and Struts. Disclaimer & Copyright Copyright 2016 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors.
    [Show full text]
  • Cherrypy Documentation Release 8.5.1.Dev0+Ng3a7e7f2.D20170208
    CherryPy Documentation Release 8.5.1.dev0+ng3a7e7f2.d20170208 CherryPy Team February 08, 2017 Contents 1 Foreword 1 1.1 Why CherryPy?.............................................1 1.2 Success Stories..............................................2 2 Installation 5 2.1 Requirements...............................................5 2.2 Supported python version........................................5 2.3 Installing.................................................5 2.4 Run it...................................................6 3 Tutorials 9 3.1 Tutorial 1: A basic web application...................................9 3.2 Tutorial 2: Different URLs lead to different functions.......................... 10 3.3 Tutorial 3: My URLs have parameters.................................. 11 3.4 Tutorial 4: Submit this form....................................... 12 3.5 Tutorial 5: Track my end-user’s activity................................. 12 3.6 Tutorial 6: What about my javascripts, CSS and images?........................ 13 3.7 Tutorial 7: Give us a REST....................................... 15 3.8 Tutorial 8: Make it smoother with Ajax................................. 17 3.9 Tutorial 9: Data is all my life...................................... 19 3.10 Tutorial 10: Make it a modern single-page application with React.js.................. 22 3.11 Tutorial 11: Organize my code...................................... 25 4 Basics 27 4.1 The one-minute application example.................................. 28 4.2 Hosting one or more applications...................................
    [Show full text]
  • WEB2PY Enterprise Web Framework (2Nd Edition)
    WEB2PY Enterprise Web Framework / 2nd Ed. Massimo Di Pierro Copyright ©2009 by Massimo Di Pierro. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600, or on the web at www.copyright.com. Requests to the Copyright owner for permission should be addressed to: Massimo Di Pierro School of Computing DePaul University 243 S Wabash Ave Chicago, IL 60604 (USA) Email: [email protected] Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created ore extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages. Library of Congress Cataloging-in-Publication Data: WEB2PY: Enterprise Web Framework Printed in the United States of America.
    [Show full text]
  • Appendix a the Ten Commandments for Websites
    Appendix A The Ten Commandments for Websites Welcome to the appendixes! At this stage in your learning, you should have all the basic skills you require to build a high-quality website with insightful consideration given to aspects such as accessibility, search engine optimization, usability, and all the other concepts that web designers and developers think about on a daily basis. Hopefully with all the different elements covered in this book, you now have a solid understanding as to what goes into building a website (much more than code!). The main thing you should take from this book is that you don’t need to be an expert at everything but ensuring that you take the time to notice what’s out there and deciding what will best help your site are among the most important elements of the process. As you leave this book and go on to updating your website over time and perhaps learning new skills, always remember to be brave, take risks (through trial and error), and never feel that things are getting too hard. If you choose to learn skills that were only briefly mentioned in this book, like scripting, or to get involved in using content management systems and web software, go at a pace that you feel comfortable with. With that in mind, let’s go over the 10 most important messages I would personally recommend. After that, I’ll give you some useful resources like important websites for people learning to create for the Internet and handy software. Advice is something many professional designers and developers give out in spades after learning some harsh lessons from what their own bitter experiences.
    [Show full text]
  • The Turbogears Toolbox and Other Tools
    19 The TurboGears Toolbox and Other Tools In This Chapter ■ 19.1 Toolbox Overview 372 ■ 19.2 ModelDesigner 373 ■ 19.3 CatWalk 375 ■ 19.4 WebConsole 377 ■ 19.5 Widget Browser 378 ■ 19.6 Admi18n and System Info 379 ■ 19.7 The tg-admin Command 380 ■ 19.8 Other TurboGears Tools 380 ■ 19.9 Summary 381 371 226Ramm_ch19i_indd.indd6Ramm_ch19i_indd.indd 337171 110/17/060/17/06 111:50:421:50:42 AAMM urboGears includes a number of nice features to make your life as a de- Tveloper just a little bit easier. The TurboGears Toolbox provides tools for creating and charting your database model, adding data to your database with a web based GUI while you are still in development, debugging system problems, browsing all of the installed widgets, and internationalizing your application. 19.1 Toolbox Overview The TurboGears Toolbox is started with the tg-admin toolbox command. Your browser should automatically pop up when you start the Toolbox, but if it doesn’t you should still be able to browse to http://localhost:7654, where you’ll see a web page with links for each of the tools in the toolbox (as seen in Figure 19.1). FIGURE 19.1 The TurboGears Toolbox home page Each of the components in the Toolbox is also a TurboGears application, so you can also look at them as examples of how TurboGears applications are built. 372 226Ramm_ch19i_indd.indd6Ramm_ch19i_indd.indd 337272 110/17/060/17/06 111:50:431:50:43 AAMM 19.2 ModelDesigner 373 Because there isn’t anything in TurboGears that can’t be done in code or from the command line, the use of the Toolbox is entirely optional.
    [Show full text]
  • HOWTO Use Python in the Web Release 2.7.9
    HOWTO Use Python in the web Release 2.7.9 Guido van Rossum and the Python development team December 10, 2014 Python Software Foundation Email: [email protected] Contents 1 The Low-Level View 2 1.1 Common Gateway Interface.....................................2 Simple script for testing CGI.....................................2 Setting up CGI on your own server..................................3 Common problems with CGI scripts.................................3 1.2 mod_python..............................................4 1.3 FastCGI and SCGI..........................................4 Setting up FastCGI..........................................5 1.4 mod_wsgi...............................................5 2 Step back: WSGI 5 2.1 WSGI Servers.............................................6 2.2 Case study: MoinMoin........................................6 3 Model-View-Controller 6 4 Ingredients for Websites 7 4.1 Templates...............................................7 4.2 Data persistence............................................8 5 Frameworks 8 5.1 Some notable frameworks......................................9 Django.................................................9 TurboGears..............................................9 Zope.................................................. 10 Other notable frameworks...................................... 10 Index 11 Author Marek Kubica Abstract This document shows how Python fits into the web. It presents some ways to integrate Python with a web server, and general practices useful for developing web
    [Show full text]
  • The 20 Minute Wiki Turbogears Concepts and Tutorial
    The 20 Minute Wiki TurboGears concepts and tutorial Bologna, 9/5/2007 Stefano Zacchiroli [email protected] Disclaimer ● Some stuff (shamelessly) took from – the 20 minute wiki tutorial http://docs.turbogears.org/1.0/Wiki20/Page1 – Crhistopher Arndt's talk at RuPy conference 2007 http://chrisarndt.de/talks/rupy/ Part I TurboGears Concepts What is TurboGears? ● a python web framework – comparable to Django and Ruby on Rails (the latter Ruby-based) – Open Source (MIT license) – still young (1st public version autumn 2005) – buzzword compliant: MVC, REST, AJAX What can it be used for? ● “classic” web (1.0/2.0/whatever) apps ... ● http://docs.turbogears.org/1.0/SitesUsingTurboGears – aggregators – blogs – social neworking – ... ● ... i.e. database-frontends on the web! Which components? ● philosophy: reuse existing stuff for – db abstraction – application server – template engine – javascript ● other bits: – formencode, nose, simplejson Putting it all together ● the big picture of component interactions ● da http://docs.turbogears.org MVC: Model / View / Controller ● buzzword ... but – helps separating concerns ● foster reusable components ● on the web: – db / template / data manipulation Recipe 1.scaffold (i.e. tg 6.write controller quickstart) methods 2.code the model 7.write templates 3.create the db 8.bells and whistles: 4.fill db with sample CSS / JavaScript data 9.deploy 5.design your URLs 10.( shuffle and iterate over and over again ) Part II The 20 Minute Wiki Tutorial Scaffold ● create a skeleton project from scratch tg-admin quickstart Enter project name: Wiki 20 Enter package name [wiki20]: wiki20 Do you need Identity (usernames/passwords) in this project? [no] no ...output..
    [Show full text]
  • Cherrypy Documentation Release 3.2.4
    CherryPy Documentation Release 3.2.4 CherryPy Team Jun 30, 2017 Contents 1 Foreword 1 1.1 Why CherryPy?.............................................1 1.2 Success Stories..............................................2 2 Installation 5 2.1 Requirements...............................................5 2.2 Supported python version........................................6 2.3 Installing.................................................6 2.4 Run it...................................................6 3 Tutorials 9 3.1 Tutorial 1: A basic web application................................... 10 3.2 Tutorial 2: Different URLs lead to different functions.......................... 10 3.3 Tutorial 3: My URLs have parameters.................................. 11 3.4 Tutorial 4: Submit this form....................................... 12 3.5 Tutorial 5: Track my end-user’s activity................................. 13 3.6 Tutorial 6: What about my javascripts, CSS and images?........................ 14 3.7 Tutorial 7: Give us a REST....................................... 15 3.8 Tutorial 8: Make it smoother with Ajax................................. 17 3.9 Tutorial 9: Data is all my life...................................... 19 3.10 Tutorial 10: Organize my code...................................... 22 4 Basics 23 4.1 The one-minute application example.................................. 24 4.2 Hosting one or more applications.................................... 25 4.3 Logging.................................................. 26 4.4 Configuring...............................................
    [Show full text]
  • An Analysis of CSRF Defenses in Web Frameworks
    Where We Stand (or Fall): An Analysis of CSRF Defenses in Web Frameworks Xhelal Likaj Soheil Khodayari Giancarlo Pellegrino Saarland University CISPA Helmholtz Center for CISPA Helmholtz Center for Saarbruecken, Germany Information Security Information Security [email protected] Saarbruecken, Germany Saarbruecken, Germany [email protected] [email protected] Abstract Keywords Cross-Site Request Forgery (CSRF) is among the oldest web vul- CSRF, Defenses, Web Frameworks nerabilities that, despite its popularity and severity, it is still an ACM Reference Format: understudied security problem. In this paper, we undertake one Xhelal Likaj, Soheil Khodayari, and Giancarlo Pellegrino. 2021. Where We of the first security evaluations of CSRF defense as implemented Stand (or Fall): An Analysis of CSRF Defenses in Web Frameworks. In by popular web frameworks, with the overarching goal to identify Proceedings of ACM Conference (Conference’17). ACM, New York, NY, USA, additional explanations to the occurrences of such an old vulner- 16 pages. https://doi.org/10.1145/nnnnnnn.nnnnnnn ability. Starting from a review of existing literature, we identify 16 CSRF defenses and 18 potential threats agains them. Then, we 1 Introduction evaluate the source code of the 44 most popular web frameworks Cross-Site Request Forgery (CSRF) is among the oldest web vul- across five languages (i.e., JavaScript, Python, Java, PHP, andC#) nerabilities, consistently ranked as one of the top ten threats to covering about 5.5 million LoCs, intending to determine the imple- web applications [88]. Successful CSRF exploitations could cause re- mented defenses and their exposure to the identified threats. We mote code execution [111], user accounts take-over [85, 87, 90, 122], also quantify the quality of web frameworks’ documentation, look- or compromise of database integrity—to name only a few in- ing for incomplete, misleading, or insufficient information required stances.
    [Show full text]
  • Smart Applications Management
    Smart Application Management +31 6 156 883 17 [email protected] strypes.eu AN INCREASED DEMAND FOR GROWTH Smart applications are now an integral part of business operations. Industries such as manufac- turing, high tech, automotive, aerospace, healthcare, and energy use smart applications to man- age, maintain or automate certain activities. This automatically leads to an increased demand for growth when it comes to applications’ capabilities. Smart applications are now bigger, more complex, and evolve continuously. The industry has moved from traditional desktop operating environments to the cloud. And with the current trends in mind, it is very difficult to determine where the application lifecycle ends. The demand for applications is growing, and so is the demand for different services during or after the application development lifecycle. Based on our 10 years experience, working with var- ious clients, requirements, and actual needs for software, Strypes offers an end-to-end smart applications services: development, management and modernisation. We offer an added value for our clients, taking responsibility and ownership not only of the software development process but also of the maintaining of excellent quality, performance, stability and user experience. FOLLOWING PREDEFINED STANDARDS AND BEST PRACTICES We cover the entire lifecycle after the software is released to production This includes design, implementation, testing and integration, and release to production. On top of that, we have added services like bugs and issue management during development, version control, DevOps that includes continuous integration, continuous delivery, test automation, and application support activities following ITIL standards. We cover the entire lifecycle after the soft- ware is released to production.
    [Show full text]
  • Please Help Me Improve It Focus on Model-View-Controller Frameworks Controllers
    web frameworks design comparison draft - please help me improve it focus on Model-View-Controller frameworks Controllers In Rails class MyTestController < ApplicationController def index render_text “Hello World” end end The name of the class has to match the name of the controller file. Controllers In Django from django.http import HttpResponse def index(request): return HttpResponse("Hello World”) Django is explicit, you need to import all functions you use. Controllers In Cherrypy and TurboGears 1.0 import cherrypy class MyRoot: @cherrypy.expose() def index(self): return "Hello World" Cherrypy, Turbogears, and Pylons are also explicit. You need to import all functions you want to use. Controllers In web2py def index(): return "Hello World" web2py is similar to Rails. It imports for you all the web2py keyword. Often, like in this case, you do not need any. Get/Post requests In Rails class MyTestController < ApplicationController def index render_text “Hello ”+params[:who] end end GET and POST variables are passed via params but other request parameters (client ip for example) are passed via a different mechanism. Get/Post requests In Django from django.http import HttpResponse def index(request): return HttpResponse("Hello World %s” % \ request.REQUEST[‘who’]) Nice, simple. The request contains all the info. You can use .GET or .POST instead of .REQUEST to be more specific. Get/Post requests In Cherrypy and TurboGears 1.0 import cherrypy class MyRoot: @cherrypy.expose() def index(self,who): return "Hello %s" % who GET and POST variables are passed via arguments of the action, but other request parameters (client ip for example) are passed via a different mechanism.
    [Show full text]
  • A Case Study in Web 2.0 Application Development
    A Case Study in Web 2.0 Application Development Paul R. Marganian Software Engineer – National Radio Astronomy Observatory, Green Bank Authors: Paul Marganian Mark Clark Amy Shelton Mike McCarty Eric Sessoms 2 Introduction • Discussing our recent experiences creating a Web 2.0 application: the new Dynamic Scheduling System (DSS) for the Green Bank Telescope (GBT). • Addresses ADASS focus topic: Commonly available development environments & tools • What is Web 2.0? – Wikipedia: “is commonly associated with web development and web design that facilitates interactive information sharing, interoperability, user-centered design and collaboration on the World Wide Web.” – Desktop quality applications for the Web Browser. Oct 7, 2009, ADASS XIX 3 Overview Background Beta Test Release 4 5 Background: The GBT • The Robert C. Byrd Green Bank Telescope is the world's largest fully steerable radio telescope. • The Green Bank Telescope (GBT) is located at the National Radio Astronomy Observatory's site in Green Bank, WV. • 100 m diameter • Can observe over a larger range of frequencies than other comparable centimeter/millimeter single-dish telescopes. • Is located in a continental, mid-latitude region where weather is dominated by water vapor and small scale effects. 6 Background – The Problem: Dynamic Scheduling • The primary goal of the DSS is to improve the efficiency of GBT observations by matching the observing schedule to current weather conditions, while allowing each observer to retain interactive control of the telescope • Example: use the GBT for high-frequency science for clear, calm weather, and schedule low-frequency science when the weather is otherwise. • Exceptional Scheduling Paradigm: not scheduling scripts, but scheduling observers.
    [Show full text]