LECTURE 7 SEP 27, 2010 Building computational pipelines.

Slides:



Advertisements
Similar presentations
CS1Q Computer Systems Lecture 14
Advertisements

CS105 INTRODUCTION TO COMPUTER CONCEPTS INTRO TO PROGRAMMING Instructor: Cuong (Charlie) Pham.
The Comparison of the Software Cost Estimating Methods
Python Programming Chapter 1: The way of the program Saad Bani Mohammad Department of Computer Science Al al-Bayt University 1 st 2011/2012.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Programming Introduction November 9 Unit 7. What is Programming? Besides being a huge industry? Programming is the process used to write computer programs.
Russell Taylor Lecturer in Computing & Business Studies.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
The Basic Tools Presented by: Robert E., & Jonathan Chase.
Software Development Unit 6.
Understanding of Load Testing Tools Especially HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Other Features Index and table of contents Macros and VBA.
PYTHON: LESSON 1 Catherine and Annie. WHAT IS PYTHON ANYWAY?  Python is a programming language.  But what’s a programming language?  It’s a language.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
Introduction CSE 1310 – Introduction to Computers and Programming
EMT1111 Logic and Problem Solving Dr. José M. Reyes Álamo Lecture 1.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
PhD, Senior Lecturer, Baimuratov Olimzhon A LGORITHMS & P ROGRAMMING (P YTHON ) Lecture 1 From SDU:
An Introduction to Programming with C++ Sixth Edition
CS1Q Computer Systems Lecture 14 Simon Gay. Lecture 14CS1Q Computer Systems - Simon Gay2 Where we are Global computing: the Internet Networks and distributed.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Math 15 Lecture 10 University of California, Merced Scilab Programming – No. 1.
Computer Programming TCP1224 Chapter 3 Completing the Problem-Solving Process and Getting Started with C++
EMT1111 Logic and Problem Solving Dr. José M. Reyes Álamo Lecture 1.
SONG - MUSIC By: Nicole 6C TAYLOR SWIFT - LOVE STORY.
University of Utah SoCCS Lecture 121 Dynamic Models in Design CS6961 – Lecture 12 Nathan Dykman.
1 Topics for this Lecture Build systems Static analysis.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Sep 13, 2006 Scientific Computing 1 Managing Scientific Computing Projects Erik Deumens QTP and HPC Center.
Programming Basics By: Mohamud Ahmed Haji For: ©
KEEP THIS TEXT BOX this slide includes some ESRI fonts. when you save this presentation, use File > Save As > Tools (upper right) > Save Options > Embed.
CSCI N100 Principles of Computing Basic Problem-Solving.
CSC 1010 Programming for All Lecture 1 Some material courtesy of Python for Informatics: Exploring Information (
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
11 Computers, C#, XNA, and You Session 1.1. Session Overview  Find out what computers are all about ...and what makes a great programmer  Discover.
Practical Kinetics Exercise 0: Getting Started Objectives: 1.Install Python and IPython Notebook 2.print “Hello World!”
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
EPSII Lecture Section AAA 1505 SC Professor Terry A. Braun Biomedical Engineering, Ophthalmology and Visual Sciences.
LECTURE 02: EVALUATING MODELS January 27, 2016 SDS 293 Machine Learning.
Getting ready. Why C? Design Features – Efficiency (C programs tend to be compact and to run quickly.) – Portability (C programs written on one system.
Invent Your Own Computer Games with Python
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
+ Auto-Testing Code for Teachers & Beginning Programmers Dr. Ronald K. Smith Graceland University.
Intro CS – Loops, making animations & films Lesson Plan 3.
Software Engineering Algorithms, Compilers, & Lifecycle.
LOOKING FOR THE OVERLAP SOLVING SYSTEMS OF INEQUALITIES.
Lecture 1b- Introduction
Algorithms and Problem Solving
CMIT100 Chapter 14 - Programming.
Licenses and Interpreted Languages for DHTC Thursday morning, 10:45 am
Scripting for QA Engineers
Intro CS – Loops, making animations & films
Problem Solving Using C: Orientation & Lecture 1
Lecture 22: Using ArcToolbox Tools in Python
Introduction to Programmng in Python
Introduction CSE 1310 – Introduction to Computers and Programming
Capstone Project Pitch
Problem Solving.
Problem Solving Using C: Orientation & Lecture 1
An introduction to the Linux environment v
Algorithms and Problem Solving
Problem Solving Using C: Orientation & Lecture 1
Tonga Institute of Higher Education IT 141: Information Systems
Tonga Institute of Higher Education IT 141: Information Systems
Introduction to Python
What is Programming Language
Information Retrieval
Presentation transcript:

LECTURE 7 SEP 27, 2010 Building computational pipelines

Programming: Scripting vs Software Engineering There are several kinds of programming. Scripting (from “writing little scripts”) is centered on fairly small tasks. Software Engineering (from, um, “engineering”) is centered on building bigger programs (like Avida). The skill sets do not actually overlap much.

Scripting Building small scripts is useful for many things: Automating things you do again and again  Configuring machines  Running programs repeatedly Doing simple kinds of data analysis:  Combining data sets  Various kinds of statistical analyses  Graphing

Several kinds of languages used for scripting Shell scripts  Useful for task automation Python (and Perl, and Ruby, and …)  Particularly useful for text data manipulation.  More general languages, too.  Can be used for graphing and statistics. R (and Matlab)  Statistics, statistics, statistics!  Graphing

The real challenge in programming Computers are dumb. You need to match what computers can do with what problems you need to solve. This is the “computational thinking” part of things, basically.

The annoying challenge in programming I know what I need to do. How can I make the computer understand me?? Analogous to speaking a foreign language in another country. This is “just details” as opposed to culture-shock aspect (“Ground floor” in Europe… floor 1 in US!)

Introduction to scripting 1) Shell script to install an EC2 machine 2) Shell script to compile Avida 3) Shell script to run Avida 10 times 4) Python script to “parse” summary data from running Avida 10 times 5) Python script to extract dominant organism

Here’s the real secret Don’t ever write your own scripts from scratch! Take mine (or someone else’s) and modify them! Iterative process:  Run script, verify that it “works”  Modify slightly  Repeat  SAVE EACH WORKING VERSION!

What we did, in diagram form

The Trap Once you know how to automate programs and analyses, it becomes really, really easy to generate extremely large amounts of data. However,  Keeping track of this data (and your scripts) gets difficult.  Keep your eye on the ball: “easy” doesn’t necessarily mean worthwhile!  “Easy” also doesn’t mean “correct.”