Presentation is loading. Please wait.

Presentation is loading. Please wait.

How to Read Code Benfeard Williams 6/11/2015 Susie’s lecture notes are in the presenter’s notes, below the slides Disclaimer: Susie may have made errors.

Similar presentations


Presentation on theme: "How to Read Code Benfeard Williams 6/11/2015 Susie’s lecture notes are in the presenter’s notes, below the slides Disclaimer: Susie may have made errors."— Presentation transcript:

1 How to Read Code Benfeard Williams 6/11/2015 Susie’s lecture notes are in the presenter’s notes, below the slides Disclaimer: Susie may have made errors in transcription or understanding. If there is any confusion, please email the lecture presenter.

2 Concepts You Will Learn Programming  Practice, skill, art, science, engineering, creativity Problem-solving  How to solve problems using programming and a computer Impact of computer science  Scale and automation Foundation for future work

3 Interpreted vs Compiled Code Interpreted  Read and executed by another program on the target machine  Easy to implement Compiled  Expressed specifically for the target machine  Faster performance

4 Computers Do What You Tell Them They are fast but not smart You need to plan exactly what the computer needs to do in order to solve a problem

5 Declarative Knowledge Statements of fact “A good health care plan improves the quality of medical care while saving money” “y is the square root of x if and only if y*y = x”

6 Imperative Knowledge How to accomplish something (recipe) 1)Start with a guess, g 2)If g*g is close enough to x, then g is a good approximation of the square root of x 3)Otherwise, create a new guess by averaging g and x/g. 4)Using this new guess, go back to step 2

7 Building Blocks Variables  Name of a storage location  Use ‘=‘ to assign a value to a variable Types  Various classifications of data  A variable can stores data of different types Operators for numbers  Arithmetic: + - * / % ** Functions (subroutines)  Sequence of instructions to perform a specific task

8 Variables Names are unique and can be abstract  What is http://205.251.242.103http://205.251.242.103  What is http://www.amazon.comhttp://www.amazon.com Declare a variable and assign a value  Name and type  Examples: int age = 18; age = 18

9 Data Types Int (integer)  4, 13, -7 Float (floating-point number)  3.33337 Work just like normal numbers  ans = 2 * (7 + 4) – 1  ans = 21

10 Data Types Char (characters)  ‘H’, ‘8’ Str (string)  “HELLO”, “Echo 123” Arithmetic manipulation  phrase = “My name is ” + “Benfeard”  phrase = “My name is Benfeard”

11 Data Types Arrays  Collection of elements  [ 1, 2, 3, 4, 5] [ ‘A’, ‘B’, ‘C’, ‘D’, ‘E’ ] Manipulation  myArray = [1, 2, 3]  myArray = myArray * 2  myArray = [1, 2, 3, 1, 2, 3] Indexing elements

12 Functions Allows you to easily recall a procedure or subroutine def sum(a, b): return a+b Parameters  values in the call, that you pass to the function to use as input Output  Return value  Call Function  Answer = sum(7,3)  Answer = 10

13 Functions Example function that returns a value def greet(name): print "Hello " + name Advantages  Repeat code, call multiple times  Flexible, call with different arguments Functions  greet("Sue")

14 Booleans True or False Useful for comparisons  Greater than, less than  Is equal to, is not equal to Supports algebraic operations  And, or, not

15 If Statements and Loops If statement  If this statement is true, do something For loops  For all values in an array, do something repeatedly While loops  While a statement is true, do something repeatedly

16 Computers do what you tell them They are fast but not smart You need to plan exactly what the computer needs to do in order to solve a problem Outline the solution to your problem  Pseudocoding (step by step walkthrough of code)

17 Algorithms Describe in words how to solve a problem Like a recipe, must be detailed and precise How to make a Peanut Butter & Jelly Sandwich Ingredients: Two slices of bread Peanut Butter Jelly 1.Spread peanut butter on one slice 2.Spread jelly on the other slice 3.Combine slices together Does this provide enough information for anyone to make the sandwich?

18 Find Narten Anderson Applegate Bethune Brooks Carter Edwards Foggle Griffin Holhouser Jefferson Klatchy Morgan Munson Narten Oliven Parken Rivers Roberts Stevenson Thomas Wilson Woodrow Yarbrow Did you find Narten? Can you explain your step-by-step process? If this list had millions of names, what would be an efficient way to find Narten?

19 Creating an Algorithm Is the algorithm correct?  Try it again and again and again  Reason through it: logically and informally How efficient is the algorithm?  How many guesses would it take you to find Narten in the worst case scenario?  Should we care about efficiency?

20 How To Dissect Code ## Author’s comments ## def main(): filename = “romeo.txt” fileToProcess = open(filename) count = 0 for line in fileToProcess: words = line.strip().split() for word in words: if len(word) == 4: count = count + 1 print “count is”, count if __name__ == “__main__”: main() Opening a romeo.txt file Counting something Looping through lines Important information about function and usage from author Splitting lines into words? Words of length equal to 4? Increase counter Print count at the end Mysterious code…

21 Example In TextWrangler

22 Computers Read In Order We give computers the entire code but the computer cannot read ahead ## Author’s comments ## def main(): filename = “romeo.txt” count = 0 for line in fileToProcess: words = line.strip().split() for word in words: if len(word) == 4: count = count + 1 fileToProcess = open(filename) Print “count is”, count

23 Important Resources Howtolearntocode.web.unc.edu Stackoverflow.com BCB Modules ITS Research Computing HtLtC teachers


Download ppt "How to Read Code Benfeard Williams 6/11/2015 Susie’s lecture notes are in the presenter’s notes, below the slides Disclaimer: Susie may have made errors."

Similar presentations


Ads by Google