Community Data Science Workshops (Fall 2015)/Day 1 lecture: Difference between revisions

From CommunityData
m (→‎Review Friday material: Restored an open code tag.)
 
(12 intermediate revisions by the same user not shown)
Line 5: Line 5:
== Resources ==
== Resources ==


* [http://communitydata.cc/~mako/cdsw-au2015-lecture1-20151010.ogv Lecture Recording/Screencast] — The pre-lecture and motivation is at the beginning. The technical part begins about 17m30s into the from. The file is in [[:wiki:Theoro|OGV/Theora]] format. If you have trouble playing it, you can install the free software [https://www.videolan.org/vlc/index.html VLC software] which runs on Mac OSX, Windows and Linux and should be able to play the video.
* [[Python data types cheat sheet]]
* [[Python data types cheat sheet]]
* [[Python loops cheat sheet]]
* [[Python loops cheat sheet]]
* [http://mako.cc/teaching/2015/cdsw-spring/state_capitals.py state_capitals.py] -- the state capitals example.
* [http://mako.cc/teaching/2015/cdsw-spring/state_capitals.py state_capitals.py] -- the state capitals example.
* [http://communitydata.cc/~mako/cdsw_sp2015-lecture1-20150411.ogv Lecture Recording/Screencast] — The file is in [[:wiki:Theoro|OGV/Theora]] format. If you have trouble playing it, you can install the free software [https://www.videolan.org/vlc/index.html VLC software] which runs on Mac OSX, Windows and Linux and should be able to play the video.


== Lecture outline ==
== Lecture outline ==
Line 43: Line 43:
** e.g., <code>if "mako" in "makoshark"</code>
** e.g., <code>if "mako" in "makoshark"</code>
** e.g., adding else example: <code>if brother_age > sister_age</code>
** e.g., adding else example: <code>if brother_age > sister_age</code>
** e.g., tempreature range
** e.g., temperature range (e.g., if temp<65 is cold; temp>80 is hot; otherwise, just right)
** e.g., adding elif: fix the bug in the previous program if they were the same age
** e.g., adding elif: fix the bug in the previous program if they were the same age
** indent with spaces (we use 4 spaces!)
** indent with spaces (we use 4 spaces!)
Line 92: Line 92:
** Super powerful because it can do something many many times. Data science is about doing tedious things very quickly. For is the workhorse that makes this possible.
** Super powerful because it can do something many many times. Data science is about doing tedious things very quickly. For is the workhorse that makes this possible.
** Look and see name is after we're done looping.
** Look and see name is after we're done looping.
** ''Move to editor.''
** '''Move to text editor'''
* <tt>if</tt> statements inside <tt>for</tt> loops
* <tt>if</tt> statements inside <tt>for</tt> loops
** e.g., <code>if name[0] in "AEIOU"</code> then print "starts with a vowel"
** e.g., <code>if name[0] in "AEIOU"</code> then print "starts with a vowel"
Line 101: Line 101:
** build up a sentence
** build up a sentence
* nested <tt>for</tt> loops
* nested <tt>for</tt> loops
* <tt>range()</tt>
* <tt>while</tt> loops
* infinite loops
* <tt>if</tt> statements inside <tt>while</tt> loops
* <tt>break</tt>
* <tt>input()</tt>


=== dictionaries ===
=== dictionaries ===
Line 118: Line 112:
=== modules ===
=== modules ===
* purpose
* purpose
* builtins
* importing with <tt>import</tt>
* imports
* <tt>import random</tt>
* <tt>import random</tt>
* <tt>random.randint</tt>
* <tt>random.randint</tt>
* <tt>random.choice</tt>
* <tt>random.sample</tt>
 
=== extra functions ===
 
* <tt>input()</tt>


=== walk through state_capitals.py ===
=== walk through state_capitals.py ===


Where state_capitals.py from http://mako.cc/teaching/2015/cdsw-spring/state_capitals.py is the grand finale and synthesis of lecture material.
Where state_capitals.py from http://mako.cc/teaching/2015/cdsw-spring/state_capitals.py is the grand finale and synthesis of lecture material.


[[Category:Fall_2015_series]]
[[Category:Fall_2015_series]]

Latest revision as of 23:53, 12 October 2015

Welcome to the Saturday lecture section of the Community Data Science Workshop! For about 2 hours, we'll work through an introduction to the Python programming language via both a lecture and hand-on exercises.

At the beginning of the lecture, we'll give a short pre-lecture talk to motivate the sessions.

Resources[edit]

Lecture outline[edit]

Review Friday material[edit]

  • math: using python as a calculator
    • addition, subtraction, multiplication, division
    • division shows something different: 8/2 versus 2*2
  • type()
    • there are different types of things in python (called objects)
    • variables that "know about the decimal place" (int) and variables that don't (floats)
  • variables
    • assignment of variaibles
    • e.g., math with variables: scale up a recipe, into an assignment
    • you can assign to a variable and it will replace the old value
  • strings
    • things within quotation marks
    • adding strings with "concatination" (smushing things together)
    • e.g., print("Hello" + name)
    • concatenating strings and integers don't work (e.g., print(1 + "mako"))
    • 1 is different than "1"; name is different than "name"
    • single quotes versus double quotes (python doesn't care)
    • you can also multiply strings! (although it's not clear why you want to weird)
  • booleans
    • comparisons (e.g., 1 == 1 or 1 == 0)
      • you can compare strings (case sensative!)
      • also >, <, and !=
    • type() shows that the output of True or False is bool
    • e.g., "i" in "team"
    • e.g., "i" not in "team"
  • if/elif/else (move to external file)
    • if, something that evaluates to a boolean, and then colon
    • e.g., if "mako" in "makoshark"
    • e.g., adding else example: if brother_age > sister_age
    • e.g., temperature range (e.g., if temp<65 is cold; temp>80 is hot; otherwise, just right)
    • e.g., adding elif: fix the bug in the previous program if they were the same age
    • indent with spaces (we use 4 spaces!)
  • functions
    • has a parentheses
    • we've already learnd examples of this: exit(), help(), type()

Lists[edit]

  • purpose
    • Stores things in order
  • initialization
    • making a list called my list: my_list = ["a", "b", "c"]
    • comma separated elements. in python they can be a mix of any kind of types
    • type(my_list)
  • len() review
  • accessing elements
    • indexing like my_list[0]
    • indexing starts from the front and we start counting at 0 (now you understand all the zeros we've been using
    • we go from the end with negative numbers
    • what happens if we try to move outside of the range? ('error!)
  • adding elements
    • using the the my_list.append() function
    • the .append() function is a special kind of function that lists know about
  • changing elements
    • replacing elements like my_list[0] = "foo"
  • finding elements in list
    • e.g., "z" in my_list
  • slicing lists
    • the colon inside the [] is the slicing syntax
    • e.g., my_list[0:2] is 0th up to, but not including, the 2nd
    • e.g., my_list[2:]
    • e.g., my_list[:2]
    • e.g., my_list[:]
  • strings are like lists
    • we can slice lists
    • len()
      • len("") length of the empty string
  • many other interesting functions for lists
    • e.g., min() and max()
    • e.g., create a list of names and sort it names.sort()

loops and more flow control[edit]

  • for loops
    • e.g., for name in names: print name
    • e.g., for name in names: print 'hello ' + name
    • Super powerful because it can do something many many times. Data science is about doing tedious things very quickly. For is the workhorse that makes this possible.
    • Look and see name is after we're done looping.
    • Move to text editor
  • if statements inside for loops
    • e.g., if name[0] in "AEIOU" then print "starts with a vowel"
    • show we can test things outside the loop to show how the comparisons are working
    • add an else statement to capture words that start with a consonant
    • append to a list within a for loop
    • create a counter within a for loop (keep track)
    • build up a sentence
  • nested for loops

dictionaries[edit]

  • purpose
  • initialization
  • accessing elements
  • adding elements
  • changing elements
  • keys() and values()

modules[edit]

  • purpose
  • importing with import
  • import random
  • random.randint
  • random.sample

extra functions[edit]

  • input()

walk through state_capitals.py[edit]

Where state_capitals.py from http://mako.cc/teaching/2015/cdsw-spring/state_capitals.py is the grand finale and synthesis of lecture material.