PyClass: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
Synchronized wiki with git repo with pypandoc.
Line 1: Line 1:
== PSAs and Events ==
=== PSAs and Events ===


''' PSA 8-19-14: ''' The [https://noisebridge.net/wiki/PyClass noisebridge wiki] and [https://github.com/PyClass/PyClass-lesson-plans github readme] files now have parity to each other.
'''PSA 10-1-14:''' PyClass starts at 700 PM, try to come a few minutes earlier. We want to finish up by nine so people can hack or catch their preferred train home. You can come at any time, but YMMV.


''' PSA 8-16-14: ''' The new curriculum for the Noisebridge PyClass is a crash course in the Python standard library, also touching on modules that are popular but not quite part of the standard modules.   Scroll down to see the course list.
'''PSA 8-19-14:''' The [https://noisebridge.net/wiki/PyClass noisebridge wiki] and [https://github.com/PyClass/PyClass-lesson-plans github readme] files have the same information and updates.
 
'''PSA 8-16-14:''' The new curriculum for the Noisebridge PyClass is a crash course in the Python standard library, also touching on modules that are popular but not quite part of the standard modules. Scroll down to see the course list.
 
=== Scheduled Weekly Meeting Times ===
 
We set up the space at 6:45 PM - try to arrive early to help if you are able to.


== Scheduled Weekly Meeting Times ==
* Tuesday 7:00 - 9:00 PM PST - 'Turing' Classroom
* Tuesday 7:00 - 9:00 PM PST - 'Turing' Classroom
* Wednesday 7:00 - 9:00 PM PST - 'Church' Classroom
* Wednesday 7:00 - 9:00 PM PST - 'Church' Classroom


== Mailing List ==
=== Mailing List ===
 
Sign up for this to hear updates and conversations regarding the course!
Sign up for this to hear updates and conversations regarding the course!
* [http://groups.google.com/group/pyclass Pyclass-Discussion]


== Class Description, Goals, and Ideal Student ==
[http://groups.google.com/group/pyclass PyClass-Discussion]
 
=== Class Description, Goals, and Ideal Student ===


The pace of the courses will be fast, and the materials will be available online 24/7. We plan to frequently repeat modules with new twists as we iterate over course materials.
The pace of the courses will be fast, and the materials will be available online 24/7. We plan to frequently repeat modules with new twists as we iterate over course materials.


A major PyClass is to break down the courses into independent units. In other words, you won't fall behind if you miss a week. Sounds good, right?
A major PyClass goal is to break down the courses into independent units. In other words, you won't fall behind if you miss a week. Sounds good, right?


To best experience the course, spend a short time reviewing the course materials before you come in. If you wish to know this week's courses, please join the mailing list and send an email out to PyClass@googlegroups.com
To best experience the course, spend a short time reviewing the course materials before you come in. If you wish to know this week's courses, please join the mailing list and send an email out to PyClass@googlegroups.com
Line 23: Line 30:
The ideal student for this course can grasp the following code (feel free to use web resources to look up anything you don't understand):
The ideal student for this course can grasp the following code (feel free to use web resources to look up anything you don't understand):


<source lang="python">
<source lang="python">letter_frequency_dict = {}
 
word = &quot;noisebridge&quot;
word_frequency_dict = {}
word = "noisebridge"
 
for letter in word:
for letter in word:
     times = word_frequency_dict.get(letter, 0)
     times = letter_frequency_dict.get(letter, 0)
     times += 1
     times += 1
     word_frequency_dict[letter] = times
     letter_frequency_dict[letter] = times</source>
   
If you are new to python or programming in general here are some excellent resources:<br />-[http://learnpythonthehardway.org/ Learn Python the Hardway] - great guide for total beginner<br />-[http://www.swaroopch.com/notes/python/ Byte of Python] - nice guide for total beginner and new to python<br />-[https://docs.python.org/2/tutorial/ Excellent Official Python Tutorial - 2.7.8] - great for new to python<br />-[http://shop.oreilly.com/product/0636920028154.do Learning Python 5th edition (also at sf lib)] - A comprehensive guide to the language and its uses<br />-[http://pymotw.com/2/ Python Module of the Week] - Learning the standard library by example<br />-[https://www.python.org/doc/ The docs themselves! 2.x for this class] - Learn what is and how to use the standard library
</source>
 
There are many, many good resources for learning the language of Python and how to do awesome things with it. Those listed above are just a few based on personal experience and strong recommendations.


== Course List ==
=== Course List ===


The order of the following courses has not yet been determined.
The order of the following courses has not yet been determined.


Please [http://groups.google.com/group/pyclass ask on the mailing list] if you want to know what courses are coming this week!
Please email PyClass@googlegroups.com if you want to know what courses are coming this week!


# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/1_json_module.md JSON format, Python Types, and the JSON Module]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/1_json_module.md JSON format, Python Types, and the JSON Module]<br />
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/5_control_statements.md Control Flow and Exceptions]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/5_control_statements.md Control Flow and Exceptions]<br />
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/3_functional_and_control.md itertools, and Functional Programming]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/3_functional_and_control.md itertools, and Functional Programming]<br />
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/4_builtintypes_stringservices.md Built-in Types and String Services]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/4_builtintypes_stringservices.md Built-in Types and String Services]<br />
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/10_rot13.md Coding a module: rot13) ]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/10_rot13.md Coding a module: rot13]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/6_socrata_matplotlib_workshop.md Matplotlib Workshop (using Socrata API ]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/6_socrata_matplotlib_workshop.md Matplotlib Workshop (using Socrata API]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/11_server_side_dev_flask.md Flask - Installfest & Basics]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/11_server_side_dev_flask.md Flask - Installfest &amp; Basics]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/9_numbers.md Working with numbers in Python) ]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/9_numbers.md Working with numbers in Python]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/13_games.md Programming Mastermind (the game]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/13_games.md Programming Mastermind (the game)]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/14_unittest.md Unit Testing and Python's unittest Module]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/14_unittest.md Unit Testing and Python's unittest Module]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/15_classy_OOP.md OOP in Python]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/15_classy_OOP.md OOP in Python]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/16_keywords_and_control_flow.md Keywords & Control Flow]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/16_keywords_and_control_flow.md Keywords &amp; Control Flow]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/17_polygon_abstraction.md Project: Calculate Angles of a Polygon]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/17_polygon_abstraction.md Project: Calculate Angles of a Polygon]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/18_unittesting_more.md Project: Unit testing our projects ]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/18_unittesting_more.md Project: Unit testing our projects]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/12_functions.md Functions]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/12_functions.md Functions]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/2_git_module.md Git - incomplete]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/2_git_module.md Git] - incomplete
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/3_functional_and_control.md) Functional Programming in Python]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/3_functional_and_control.md Functional Programming in Python]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/7_built-ins_and_idioms.md Some Idioms for Python Builtins]
# [https://github.com/PyClass/PyClass-lesson-plans/blob/master/7_built-ins_and_idioms.md Some Idioms for Python Builtins]


== OS / Environment / Versions ==
=== OS / Environment / Versions ===


This section is under development.
This section is under development.


For the sake of our sanity we use Python 2.7.1+ for this course.
For the sake of our sanity we use Python 2 for this course.
 
Emergency Python Command Line: http://repl.it/languages/Python


Installing Python with [http://docs.python-guide.org/en/latest/ The Hitchhiker’s Guide to Python!]
Installing Python with [http://docs.python-guide.org/en/latest/ The Hitchhiker’s Guide to Python!]
We accept refugees using all operating systems. You will be politely prodded in the direction of solutions that are closer to posix standards: http://en.wikipedia.org/wiki/POSIX#Mostly_POSIX-compliant


Emergency Python Command Line: http://repl.it/languages/Python
Emergency Python Command Line: http://repl.it/languages/Python


Some routes:
'''We accept refugees using all operating systems. You will be politely prodded in the direction of solutions that are closer to posix standards: http://en.wikipedia.org/wiki/POSIX#Mostly_POSIX-compliant'''
# Install a linux virtual machine on another computer using virtualbox.
# Use the command line in your apple machine.
# Explore POSIX for windows: http://en.wikipedia.org/wiki/POSIX#POSIX_for_Windows
 
Another critical tool is git:
* Windows: http://git-scm.com/download/win
* Mac: http://git-scm.com/download/mac
* Linux: (use your package manager)
 
== Legacy Materials 2011-2014 (Liz & Kellan's Class) ==
 
''' The following material is old material from Kellan and Liz's long-running PyClass: '''
 
 
'''Come learn [http://www.python.org/ Python]'''!!<br>
See our awesome website for both PyClasses at [http://pycourse.com/ Noisebridge Learning Python]
 


After 9pm Tuesdays, we'll have open hacking time and time for questions for those that are kicking so much ass they just can't go home yet, or even for those that may have gone to Mondays' Front-end Web Development class and want to come back for more. If you have problems from work or home, feel free to bring them after 9 and everyone can help each other.
Some routes:<br />1. Install a linux virtual machine on another computer using virtualbox.<br />2. Use the command line in your apple machine.<br />3. Explore POSIX for windows: http://en.wikipedia.org/wiki/POSIX#POSIX_for_Windows


Another critical tool is git:<br />''Windows: http://git-scm.com/download/win<br />''Mac: http://git-scm.com/download/mac<br />*Linux: (use your package manager)


''' Semi-Official Intro to Python Class Texts '''
=== For Lesson Planners: ===
* [http://www.greenteapress.com/thinkpython/ Think Python: How to Think Like a Computer Scientist]
* [http://learnpythonthehardway.org/ Learn Python The Hard Way] - A good introductory text with lots of exercises written by prolific programmer [http://zedshaw.com/ Zed Shaw]
* [http://www.python.org/dev/peps/pep-0008/ PEP 8 -- The '''highly''' recommended Style Guide for Python Code]


''' Other Intro to Python Texts '''
==== Some Modules to include ====
* [http://www.swaroopch.com/notes/python A Byte of Python]
* [http://www.learnpython.org/ Learn Python - Free Interactive Python Tutorial]
* [http://www.openbookproject.net/thinkcs/python/english2e/ How to Think Like a Computer Scientist: Learning with Python 2nd Edition]
* [https://docs.python.org/2/tutorial/ The Python Tutorial] - written by Guido van Rossum, creator of the Python programming language
** [https://docs.python.org/2/download.html Python 2.x.x Documentation download] - Contains Python Tutorial & other docs in various readable formats


''' PyClass Githubs '''
<ol start="5" style="list-style-type: decimal;">
* [https://github.com/PythonNinjas PyClass Organization]
<li>Numeric and Mathematical Modules, and Operators<br /></li>
* [https://github.com/PythonNinjas/InventWithPython  Invent with Python Textbook Code] <404 Error>
<li>argparse, ConfigParser, and more - configuring your applications<br /></li>
* https://github.com/noisebridge/Intro-Python  / Kellan Jacobs Notes
<li>pip, virtualenv, packaging, versions, and inspect.<br /></li>
* https://github.com/noisebridge/web2py-noiselist
<li>Logging your applications: logging, logging.config, logging.handlers<br /></li>
* https://github.com/noisebridge/flask-noiselist  / E Leddy
<li>Exceptions and Debugging: Exception behavior, custom exceptions, pdb, cProfile, timeit, time, trace.<br /></li>
* https://github.com/tachang/django_noiselist
<li>os, sys, and io (Caution, here be Python 3, inside the io module)<br /></li>
<li>(potential for a unittest course)<br /></li>
<li>Built-in Functions</li></ol>


'''  [Old] Class Slides '''
* Control Structures, itertools - Teddy<br />
* [http://egonschiele.github.com/pyclass Slides on Github]
* requests<br />
* urllib/urllib2<br />
* math<br />
* ConfigParser<br />
* argparse<br />
* json<br />
* csv<br />
* time, datetime<br />
* os<br />
* sys<br />
* io<br />
* logging<br />
* decorators<br />
* Profile<br />
* subprocess (catchall replacement for system call libraries)<br />
* pdb<br />
* unittest<br />
* py.test<br />
* virtualenv<br />
* pip<br />
* packaging?<br />
* versions


''' Other Helpful PyClass links '''
==== Two approaches for course material building that should be blended ====
* [https://www.python.org/ Main Python.org site]
* [http://oreilly.com/catalog/9780596100469/ Python in a Nutshell] - an older but handy reference
* [http://www.pygame.org Pygame]
* [http://inventwithpython.com Invent Your Own Computer Games with Python] - written by Noisebridger [[User:AlSweigart|Al Sweigart]], free to download [http://inventwithpython.com/IYOCGwP_book1.pdf here] or [https://dl.dropbox.com/u/11076239/IYOCGwP_book1.pdf here]


[[Category:Python]]
# Modules Course - http://pymotw.com/2
[[Category:Pages with a Noisebridge Tiny URL]]
# Applications Course - http://newcoder.io/dataviz/part-0/

Revision as of 21:28, 11 November 2014

PSAs and Events

PSA 10-1-14: PyClass starts at 700 PM, try to come a few minutes earlier. We want to finish up by nine so people can hack or catch their preferred train home. You can come at any time, but YMMV.

PSA 8-19-14: The noisebridge wiki and github readme files have the same information and updates.

PSA 8-16-14: The new curriculum for the Noisebridge PyClass is a crash course in the Python standard library, also touching on modules that are popular but not quite part of the standard modules. Scroll down to see the course list.

Scheduled Weekly Meeting Times

We set up the space at 6:45 PM - try to arrive early to help if you are able to.

  • Tuesday 7:00 - 9:00 PM PST - 'Turing' Classroom
  • Wednesday 7:00 - 9:00 PM PST - 'Church' Classroom

Mailing List

Sign up for this to hear updates and conversations regarding the course!

PyClass-Discussion

Class Description, Goals, and Ideal Student

The pace of the courses will be fast, and the materials will be available online 24/7. We plan to frequently repeat modules with new twists as we iterate over course materials.

A major PyClass goal is to break down the courses into independent units. In other words, you won't fall behind if you miss a week. Sounds good, right?

To best experience the course, spend a short time reviewing the course materials before you come in. If you wish to know this week's courses, please join the mailing list and send an email out to PyClass@googlegroups.com

The ideal student for this course can grasp the following code (feel free to use web resources to look up anything you don't understand):

<source lang="python">letter_frequency_dict = {} word = "noisebridge"

for letter in word:

   times = letter_frequency_dict.get(letter, 0)
   times += 1
   letter_frequency_dict[letter] = times</source>

If you are new to python or programming in general here are some excellent resources:
-Learn Python the Hardway - great guide for total beginner
-Byte of Python - nice guide for total beginner and new to python
-Excellent Official Python Tutorial - 2.7.8 - great for new to python
-Learning Python 5th edition (also at sf lib) - A comprehensive guide to the language and its uses
-Python Module of the Week - Learning the standard library by example
-The docs themselves! 2.x for this class - Learn what is and how to use the standard library

There are many, many good resources for learning the language of Python and how to do awesome things with it. Those listed above are just a few based on personal experience and strong recommendations.

Course List

The order of the following courses has not yet been determined.

Please email PyClass@googlegroups.com if you want to know what courses are coming this week!

  1. JSON format, Python Types, and the JSON Module
  2. Control Flow and Exceptions
  3. itertools, and Functional Programming
  4. Built-in Types and String Services
  5. Coding a module: rot13
  6. Matplotlib Workshop (using Socrata API
  7. Flask - Installfest & Basics
  8. Working with numbers in Python
  9. Programming Mastermind (the game)
  10. Unit Testing and Python's unittest Module
  11. OOP in Python
  12. Keywords & Control Flow
  13. Project: Calculate Angles of a Polygon
  14. Project: Unit testing our projects
  15. Functions
  16. Git - incomplete
  17. Functional Programming in Python
  18. Some Idioms for Python Builtins

OS / Environment / Versions

This section is under development.

For the sake of our sanity we use Python 2 for this course.

Installing Python with The Hitchhiker’s Guide to Python!

Emergency Python Command Line: http://repl.it/languages/Python

We accept refugees using all operating systems. You will be politely prodded in the direction of solutions that are closer to posix standards: http://en.wikipedia.org/wiki/POSIX#Mostly_POSIX-compliant

Some routes:
1. Install a linux virtual machine on another computer using virtualbox.
2. Use the command line in your apple machine.
3. Explore POSIX for windows: http://en.wikipedia.org/wiki/POSIX#POSIX_for_Windows

Another critical tool is git:
Windows: http://git-scm.com/download/win
Mac: http://git-scm.com/download/mac
*Linux: (use your package manager)

For Lesson Planners:

Some Modules to include

  1. Numeric and Mathematical Modules, and Operators
  2. argparse, ConfigParser, and more - configuring your applications
  3. pip, virtualenv, packaging, versions, and inspect.
  4. Logging your applications: logging, logging.config, logging.handlers
  5. Exceptions and Debugging: Exception behavior, custom exceptions, pdb, cProfile, timeit, time, trace.
  6. os, sys, and io (Caution, here be Python 3, inside the io module)
  7. (potential for a unittest course)
  8. Built-in Functions
  • Control Structures, itertools - Teddy
  • requests
  • urllib/urllib2
  • math
  • ConfigParser
  • argparse
  • json
  • csv
  • time, datetime
  • os
  • sys
  • io
  • logging
  • decorators
  • Profile
  • subprocess (catchall replacement for system call libraries)
  • pdb
  • unittest
  • py.test
  • virtualenv
  • pip
  • packaging?
  • versions

Two approaches for course material building that should be blended

  1. Modules Course - http://pymotw.com/2
  2. Applications Course - http://newcoder.io/dataviz/part-0/