PyClass: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
(Undo vandalism by 76.14.67.253 (talk))
m (Reverted edits by 176.10.99.200 (talk) to last revision by 76.14.67.253)
Line 1: Line 1:
=== PSAs and Events ===
== Noisebridge's Learning Python Classes ==


'''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.
'''Come learn [http://www.python.org/ Python]'''!!<br>
See our awesome website for both PyClasses at [http://pycourse.com/ Noisebridge Learning Python]


'''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.
* Advanced Class, Tuesdays at 7:00 - 9:00 PM PST
* Introduction to Python, Wednesday, ditto (at 7-9 PM)


'''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.
Intro to Python schedule is [http://pycourse.com/schedule/ here], see below to get the online texts for this Intro to Python class


=== Scheduled Weekly Meeting Times ===
The Advanced Class:
We are currently building a weekly schedule that you can peek at by clicking [[http://pycourse.com/advanced-class-schedule/ here]]<br>
In general, this is '''your''' class, peeps! We are here to serve '''you''', so any feedback is welcome.


We set up the space at 6:45 PM - try to arrive early to help if you are able to.
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.


* Tuesday 7:00 - 9:00 PM PST - 'Turing' Classroom
For redundancy, not 1 but 2(!) people will be helping run the Advanced Class. Please contact either of us with comments/questions:
* Wednesday 7:00 - 9:00 PM PST - 'Church' Classroom
* Elizabeth Leddy on IRC (#noisebridge/#plone) as eleddy or [http://twitter.com/eleddy @eleddy]
* Kellan Jacobs  [http://twitter.com/kellanjacobs @kellanjacobs]
 
Cost: Free! That's right homies. Bring your good vibes and we are at your disposal!


=== Mailing List ===
=== Mailing List ===
Sign up for this now!
* [http://groups.google.com/group/pyclass Pyclass-Discussion]
Once you join the mailing list, send a request to join the PyClass organization to https://github.com/egonSchiele


Sign up for this to hear updates and conversations regarding the course!
=== Intro to Python Texts ===
 
* [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://groups.google.com/group/pyclass PyClass-Discussion]
* [http://www.greenteapress.com/thinkpython/ Think Python: How to Think Like a Computer Scientist]
 
=== 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 will '''at the very minimum''' be able to 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>
 
It certainly does help to have some coding experience with one or more other programming languages.<br>
We would definitely encourage your learning of programming languages other than just Python, regardless of whether or not you decide to drop in to our PyClass.<br>
At the same time, if you happen to be new to Python or to programming in general here are some excellent resources to help get you up-to-speed:<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
 
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.<br><br>
''*'' While most of us will be more than glad to go over in person these excellent resources (and others) for you Beginners interested in dropping by for the PyClass, still, it's completely '''UNexcellent''' for us to completely halt course coding sessions just in order to provide you with your own individual Beginning Python tutorials, starting from scratch!
 
=== 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!
 
# [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]<br />
# [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]<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/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 &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/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/15_classy_OOP.md OOP in Python]
# [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/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/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/7_built-ins_and_idioms.md 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 [http://docs.python-guide.org/en/latest/ 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:<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)
 
=== For Lesson Planners: ===
 
==== Some Modules to include ====


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


* Control Structures, itertools - Teddy<br />
===  [Old] Class Slides ===
* requests<br />
* [http://egonschiele.github.com/pyclass Slides on Github]
* 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


==== Two approaches for course material building that should be blended ====
=== Other Helpful Texts ===
* [http://inventwithpython.com Invent Your Own Computer Games with Python] - written by Noisebridger [[User:AlSweigart|Al Sweigart]], free to download
* [http://www.python.org/dev/peps/pep-0008/ PEP 8 -- The '''highly''' recommended Style Guide for Python Code]
* [http://www.swaroopch.com/notes/Python A Byte of Python]
* [http://oreilly.com/catalog/9780596100469/ Python in a Nutshell] - a handy reference
* [http://docs.python.org/ Python Documentation]
** [http://wiki.python.org/moin/BeginnersGuide Python Wiki -- Beginners Guide]
** [http://docs.python.org/library/index.html Python Standard Library]
** [http://docs.python.org/reference/index.html Python Language Reference]


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

Revision as of 10:21, 1 December 2014

Noisebridge's Learning Python Classes

Come learn Python!!
See our awesome website for both PyClasses at Noisebridge Learning Python

  • Advanced Class, Tuesdays at 7:00 - 9:00 PM PST
  • Introduction to Python, Wednesday, ditto (at 7-9 PM)

Intro to Python schedule is here, see below to get the online texts for this Intro to Python class

The Advanced Class: We are currently building a weekly schedule that you can peek at by clicking [here]
In general, this is your class, peeps! We are here to serve you, so any feedback is welcome.

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.

For redundancy, not 1 but 2(!) people will be helping run the Advanced Class. Please contact either of us with comments/questions:

Cost: Free! That's right homies. Bring your good vibes and we are at your disposal!

Mailing List

Sign up for this now!

Once you join the mailing list, send a request to join the PyClass organization to https://github.com/egonSchiele

Intro to Python Texts

PyClass Githubs

[Old] Class Slides

Other Helpful Texts