Computer Science for San Francisco Youth



Similar documents
We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.

Introduction to Python

Introduction to Python

Exercise 4 Learning Python language fundamentals

Beginning to Program Python

Python. KS3 Programming Workbook. Name. ICT Teacher Form. Do you speak Parseltongue?

CSC 221: Computer Programming I. Fall 2011

CSCE 110 Programming I Basics of Python: Variables, Expressions, and Input/Output

COMSC 100 Programming Exercises, For SP15

Computer Programming In QBasic

Welcome to Introduction to programming in Python

A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming

Introduction to Python

Exercise 1: Python Language Basics

University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python

Python Loops and String Manipulation

The first program: Little Crab

Getting Started with WebSite Tonight

CS 1133, LAB 2: FUNCTIONS AND TESTING

Programming in Access VBA

2 The first program: Little Crab

STEP 0: OPEN UP THE PYTHON EDITOR. If python is on your computer already, it's time to get started. On Windows, find IDLE in the start menu.

Invent Your Own Computer Games with Python

PIC 10A. Lecture 7: Graphics II and intro to the if statement

Using Google Docs in the classroom: Simple as ABC

Decision Logic: if, if else, switch, Boolean conditions and variables

Chapter 2 Writing Simple Programs

Hands-On Python A Tutorial Introduction for Beginners Python 3.1 Version

Okay, good. He's gonna release the computers for you and allow you to log into NSLDS.

Today s Topics... Intro to Computer Science (cont.) Python exercise. Reading Assignment. Ch 1: 1.5 (through 1.5.2) Lecture Notes CPSC 121 (Fall 2011)

Informatica e Sistemi in Tempo Reale

How To Increase Your Odds Of Winning Scratch-Off Lottery Tickets!

2nd Grade Language Arts Practice Test

Python Lists and Loops

Objectives. Python Programming: An Introduction to Computer Science. Lab 01. What we ll learn in this class

EASILY WRITE A CREATIVE PROFILE - QUICK ACTION WORKSHEET

Chapter 11. Talk To Your Computer

What is a Domain Name?

Part II. Managing Issues

Working with forms in PHP

WAYNESBORO AREA SCHOOL DISTRICT CURRICULUM INTRODUCTION TO COMPUTER SCIENCE (June 2014)

Chapter 2. Making Shapes

Setting up a basic database in Access 2007

mouse (or the option key on Macintosh) and move the mouse. You should see that you are able to zoom into and out of the scene.

PYTHON Basics

Here are the steps to configure Outlook Express for use with Salmar's Zimbra server. Select "Tools" and then "Accounts from the pull down menu.

Website Development Komodo Editor and HTML Intro

Over the past several years Google Adwords has become THE most effective way to guarantee a steady

This Method will show you exactly how you can profit from this specific online casino and beat them at their own game.

Sample Process Recording - First Year MSW Student

Addition & Subtraction Basic Facts Games Lapbook

Generate Leads With. -YouTube- Creating YouTube Ads

As you ask them and if not, you have things to question, we can answer, we can give advice to you by within 24 hours.

UNDERSTANDING YOUR ONLINE FOOTPRINTS: HOW TO PROTECT YOUR PERSONAL INFORMATION ON THE INTERNET

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

The single biggest mistake many people make when starting a business is they'll create a product...

Option Profit Basic Video & Ecourse

Making Money Your Friend

ESCI 386 Scientific Programming, Analysis and Visualization with Python. Lesson 5 Program Control

IP Subnetting: Practical Subnet Design and Address Determination Example

Parallels. for your Linux or Windows Server. Small Business Panel. Getting Started Guide. Parallels Small Business Panel // Linux & Windows Server

Databases in Microsoft Access David M. Marcovitz, Ph.D.

How to Complete the Online Course Work for an Entry Level Clinic

US Fish and Wildlife Service Why Structured Decision Making Part 1_

Introduction to Open Atrium s workflow

Introduction to: Computers & Programming: Review for Midterm 2

Visual Basic 6 Error Handling

Why should I back up my certificate? How do I create a backup copy of my certificate?

Introduction to the course, Eclipse and Python

Excel macros made easy

CROSS EXAMINATION OF AN EXPERT WITNESS IN A CHILD SEXUAL ABUSE CASE. Mark Montgomery

Cygwin: getting the setup tool

What to Expect on the Compass

A: We really embarrassed ourselves last night at that business function.

Equity Value, Enterprise Value & Valuation Multiples: Why You Add and Subtract Different Items When Calculating Enterprise Value

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

3 Improving the Crab more sophisticated programming

ATLAS.ti 5.5: A Qualitative Data Analysis Tool

What makes a good coder and technology user at Mountfields Lodge School?

Mail Merge Tutorial (for Word ) By Allison King Spring 2007 (updated Fall 2007)

Line Tracking Basic Lesson

enter the administrator user name and password for that domain.

Using Dedicated Servers from the game

What Do I Do With My DNA Results.in 10 Easy Steps By Roberta Estes (copyright 2008)

Part 3 focuses on ways families can help keep teens from using or abusing alcohol and tobacco.

Lab 1: Create and Disqualify a Lead

Will USB flash drives work with Wii U?

Turtle Power. Introduction: Python. In this project, you ll learn how to use a turtle to draw awesome shapes and patterns. Activity Checklist

Creating Your Own TinyWeb Database. Ball State University - CS116 - Ashley Swartz

>> My name is Danielle Anguiano and I am a tutor of the Writing Center which is just outside these doors within the Student Learning Center.

MS Outlook to Unix Mailbox Conversion mini HOWTO

6.042/18.062J Mathematics for Computer Science. Expected Value I

CrushFTP User Manager

Programming Project 1: Lexical Analyzer (Scanner)

Particularly friendly, respectively informal. = Particularly formal: rather used in business letters or faxes.

Text of Templates

Installing and Running the Google App Engine On Windows

Transcription:

Python for Beginners Python for Beginners Lesson 0. A Short Intro Lesson 1. My First Python Program Lesson 2. Input from user Lesson 3. Variables Lesson 4. If Statements How If Statements Work Structure Lesson 5. Simple Loops

Lesson 0. A Short Intro - Python helps Huntington s Disease First, if you haven't heard of python already, you might be wondering what it means. In addition to being a snake-like animal, python is also a programming language. Python, is well-known for being an easy language to learn. Do you know what Huntington s Disease (HD) is? Here is a video that explains the disease. This is a genetic disease, so children of HD patients may be affected too. Imagine you work in the medical field analyzing the DNA of patients who want to know whether they will come down with Huntington s disease. Patients get their DNA sequenced and give you the sequence. You analyze the DNA, looking for repeats of the CAG. Depending on how many times CAG is repeated, a simple Python program can tell patients what status they are in. For example, if CAG is repeated 40 times, then the patient will come down with HD. This program does three tasks: 1. Get the DNA sequence from the patient [HD Task 1] 2. Count how many times CAG is repeated in the sequence [HD Task 3] 3. Print the disease status according to the count [HD Task 2] We will complete these three Tasks in Python. Let s start with your first python program.

Lesson 1. My First Python Program Let's start with a simple python program. Step 0. Open Python Shell by going Dashboard ->search for idle ->click on IDLE (using Python-2.7). A window should open with a white background and some black text that reads something like: Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2 Type "copyright", "credits" or "license()" for more information. ==== No Subprocess ==== >>>

Step 1. Python commands can now be typed into the Python Shell. The interpreter in Python Shell will compile and run those lines of code interactively. Try typing the following command: print "Alice in Wonderland" Step 2. What happens? Alice in Wonderlandshould be printed to the screen. The print command just prints anything you tell it to print. Try printing your own messages to the screen. Make sure to include the quotes around your message (explanation to follow). It could be anything like: print "Oh dear! Oh dear! I shall be too late!" print "DRINK ME" print "EAT ME" Lesson 2. Input from user Now your program can print all the things the white rabbit says, the bottle says, and the cookie says. How about what YOU want to tell the program, like the DNA sequence from the patient? Step 0. If you haven't done so already, open a Python Shell. Step 1. Type the following line into the command line: print raw_input("what is your name? ")

Step 2. What did your program say? It should have showed What is your name? Step 3. Answer with your name. What happens? Lesson 3. Variables Now we can get the input from user, but for more fun, we want "react" to what user has said. For example, if your name is Alice, then we want the program to say Hello, Alice! To do so, your program needs to remember what the user said. A computer program remembers by storing what user has said in a "variable". You've probably already learned something similar to variables. Have you taken algebra? Remember problems like 4x + 2 = 14, where you need to solve for x? x is like a variable! x has a value, it's storing the data 3 in the equation (4*3 + 2 = 14). In computer programming, we're usually more explicit in naming our variables. We can use any letters, numbers, or an underscore, to name our variables. So, instead of x, we might want to have a variable called answer or rabbit or firstname. Then we assign a value to this variable. The value can be of any data type. Let's see this in practice: Step 0. If you haven't done so already, open a Python Shell. Step 1. Type the following lines into the command line: firstname = "Alice"

print firstname This might not seem very interesting, but it is! The variable, firstname, is being assigned "Alice". The quotation marks around Alice means that this is a String - a text. The print command is printing the value, what's inside of the variable firstname. Step 2. Let's try adding the last name to the first name. Type the following into the command line: firstname + " Lewis" What happens? AliceLewis should be printed! The single quotation marks mean that Python understands that AliceLewisis a text. The python interpreter is using the value of "Alice" for the variable firstname and is adding " Lewis" to "Alice", which turns out to be a new text "Alice Lewis". Step 3. OK, now let's test the "variable" aspect of variables. The Wikipedia definition says that variables are named "variable" because the values can be changed. Try assigning a different value to firstname: firstname = "Carol" print firstname firstname is now 'Carol'. Sweet, variables really are variable.

Step 4. This doesn't seem too useful yet, but let's begin a little example that will help you realize how powerful this can be. It will be called "Guessing Game". Your program will play the guessing game with you. Your program will think of a number between 1 and 10. You make a guess, and the program will tell you It s too high if your guess is greater than its secret number, and It s too low if your guess is less than its secret number. To begin our example, see if you can create a variable, called secret. Now can you make your program to ask "What is your guess?" Here's what the beginning of the code should look like: secret = 3 #change to your choice of number between 1 and 10 x = raw_input("what s your guess?") This assigns whatever guess you typed to the variable x. Enter your guess and type xto verify that your guess is correctly stored. >>> x It should have single quotation marks around the number you entered. HD Task 1. Write Python code that asks the patient to enter the DNA sequence, and store it in the variable dna. Before we do anything else, let's move this code to a file so we don't have to keep typing it over and over again. Open a new window by going File->New Window in Python Shell, and write the code into the file. Save the file as huntington.py, and save it directly to Desktop.

Step 5. Do you remember what the single quotation marks mean? They mean that Python thinks it is text. For us to compare with the secret number (3 above), we need to change this. Try the following code and see what happens. >>> guess = int(x) >>> guess Now there is no single quotation mark! Python understands that variable guesshas a number. intstands for integer, which are whole numbers (no fractions or decimals). Step 6. Open a new window by going File->New Window in Python Shell, and write the code into the file. Save the file as guessing.py, and save it directly to Desktop. You can run the code in the file by opening it (File->Open) and clicking on Run->Run Module. In your Python Shell, you will see the result as below: >>> ================================ RESTART ================================ >>> What s your guess? 5 Lesson 4. If Statements "OK, great," you might say, "I can create variables. I can change text to numbers. But this isn't very interesting. How does my program say whether the guess is too high or too low?" You could think of it this way: given the answer from the user, if the number is greater than the secret (3 in the example above), then print "It s too high!". Otherwise, print "It s too low!". I'll write this in another way:

x = raw_input("what s your guess? ") guess = int(x) if guess > secret: print "It s too high!" else: print "It s too low!" Guess what, that's python code! This is called an "if statement". There are a couple important things to know about if statements. First, you should know how they work. Then you should know the structure. Let's just look at how they work first. How If Statements Work The code after the word if (guess>secret) is called a boolean expression. Huh? Boolean expression is a really strange term. Basically, it means that the expression is either true or false. You can use the following comparison operators to form a boolean expression: ==,!=, <, <=, >=, >. Most of these are straightforward, except for maybe the == and!= comparison operators. Can you guess what == does? It checks if one piece of data is equal to another. Why not just use 1 equal sign instead of 2, you might ask? Good question. Python already uses one equal sign to mean "assignment". In other words, if you wrote secret = 3, python would think you're assigning the value 3 to the secretvariable. A different symbol has to be used for comparison, and that's ==. Now how about!=. Can you guess what this does? It means not equal to. For example, you might want to say "if guess is not equal to secret, do something interesting."

Step 0. Here are some examples of boolean expressions, fill out their meaning (the first one is done for you as an example): name == "Alice" Meaning: name is equal to "Alice" price < 20 Meaning: grade >= 80 Meaning: temperature!= -50 Meaning: Going back to the code above, the secret variable is first set to 3. Then, python evaluates the boolean expression guess >secret. In this case it's true, which means runs the code block under the if statement and skips the code under the else statement. If it was false, it would run the code block under the else statement and skip the code under the if statement.

Structure The first thing note about the structure: you need to place a colon (:) after the if statement. Look at the code again. if guess > secret: #< colon here print "It s too high!" else: #< colon here print "It s too low!" See the colons? If you don't include these, there will be an error when you try to run your code. The colons tell python that the if and else statements are over and the next lines of code are the code blocks. In the if statement above, there are 2 blocks of code. One block is under the first if statement and another block is under the elsestatement. Notice that the code blocks are indented. I used a tab here, but you could also use spaces. The important thing is that all lines of code in the same code block are indented the exact same amount. In the example above, each block has only 1 line of code, but that's not always the case. There could be several lines of code in each block. Here's an example: if guess > secret: print "It s too high!" print Try a smaller number. else: print "It s too low!"

Like I mentioned earlier, all code in the block needs to be indented the same amount. Step 0. Now that you know the structure, try entering the following code into guessing.py. import random secret = random.randint(1,10) #This line picks a number between 1 and 10 x = raw_input("what s your guess? ") guess = int(x) if guess > secret: print "It s too high!" else: print "It s too low!" Step 1. There's actually one more type of statement that you can use: the elif statement. Any idea what this might stand for? else if. This gives us even more options for our if statements. Here's an example: import random secret = random.randint(1,10) #This line picks a number between 1 and 10 x = raw_input("what s your guess? ") guess = int(x) if guess > secret: print "It s too high!" elif guess < secret: print "It s too low!" else:

print You won! The elif statement is placed between the if and else statements and includes a boolean expression like the if statement. During the execution of the program, the boolean expression in the if statement is first tested. If it is true, the code block under the if statement is executed and the rest is skipped. If it is false, the boolean expression in the next elif statement is tested. If that boolean expression is true, the code in the code block will be executed and the rest is skipped. If none of the boolean expressions are true, only the code in the else statement is executed. HD Task 2. Huntington s Disease status depends on the CAG repeat count as below. Add if-elif-else statement to huntington.py from HD Task 1 to print right messages for patients according to the number stored in variable count. The first if statement is provided. if (count<26): print "Normal. This patient is unaffected." Repeat count Classification Disease status <26 Normal Unaffected 26 35 Intermediate Unaffected 36 39 Reduced Penetrance May or may not be Affected >=40 Full Penetrance Affected

Lesson 5. Simple Loops Imagine that you want to play the guessing game that you made. It will be boring that you have to click on Run->Run Module every time you want to make a guess. Computers are perfect for doing the repetition for you. Let's start with printing the same thing multiple times. Step 1. Try the following range statement, what happens? range (0,5) Step 2. Try the following for-loop statement, what happens? >>> for i in range (0,5):... print i #<= don t forget to tab before print... 0 1 2 3 4 Step 3. Fill in the numbers below to make the guessing game ask (repeat) 3 times. import random secret = random.randint(1,10) #This line picks a number between 1 and 10 for i in range# Fill in the numbers

x = raw_input("what s your guess? ") guess = int(x) if guess > secret: print "It s too high!" elif guess < secret: print "It s too low!" else: print You won! Later, we will use the for-loop statement to repeat the search for CAG in the DNA sequence. The DNA sequence can be very long, and the for-loop statement will help finding all CAGs and counting them. Lesson 6. Finding CAG How do you create a nickname for a friend? Many people use a short form of their names as nicknames. For example, Elizabeth could be Eli, Liz, Liza, or Beth. Python is very good at finding all possible nicknames. Let s try this: Step 0. Open a Python Shell as usual. Step 1. At the command line, type the following: name = Elizabeth name[0:3] What is printed? It should say Eli. All programming languages start counting at 0, unlike

humans who start at 1. name[0:3]gives you a short name starting from the first letter (0) and ending before the 4th letter (3). Let s try some more. name[1:4] name[1:5] name[5:9] Imagine the DNA sequence is ATTCAG stored in variable dna. What will dna[3:6] be print? Step 2. To find all CAGs stored in the DNA sequence, we need to look at dna[0:3], dna[1:4], dna[2:5], dna[3:6],etc. How do we know when we can stop? Try the following code. dna = ATTCAG len(dna) 6 should have been printed. Let s try some more. What values are printed? dna = ATTCAGCCCC len(dna) dna = ATTCAGCAGCAG len(dna) So, we need to look at dna[0:3], dna[1:4], dna[2:5], dna[3:6],... dna[len(dna):len(dna)+3].

Step 3. Remember the for-loop statement with range(0,5)? What will be printed from the following for-loop? dna = ATTCAG for i in range(0,len(dna)): print dna[i:i+3] Step 4. Remember the if statement with == symbol? What will be printed from the following for-loop? dna = ATTCAG for i in range(0,len(dna)): if dna[i:i+3]== CAG print "CAG" Step 5. Ok, almost there. Remember the if statement with == symbol? What will be printed from the following for-loop? Add more CAGs to dnaand see what happens. dna = ATTCAG count = 0 for i in range(0,len(dna)): if dna[i:i+3]== CAG : count = count+1 print count HD Task 3. Use the Python code from HD Task 1 and HD Task 2 to complete huntington.py, Huntington s Disease program. Good job!!