PyClass: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
(reverting the changes for PyClass - JeffreyATW - not sure what happened to the prev version that required a revert)
m (Redo revision 46641 by Eric Vinyl (talk))
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=== PSAs and Events ===
=== PSAs and Events ===
(''PSAs are '''P'''ublic '''S'''ervice '''A'''nnouncements'')


'''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 4-6-15:''' As of today, attend PyClass on MONDAYS and THURSDAYS.<br />
Mondays in the Turing classroom will replace the previous Tuesday sessions.


'''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 1-26-15:''' Thursdays in the Church Classroom will replace the Wednesday sessions.
 
'''PSA 10-1-14:''' PyClasses start at 7:00 PM, but please try to come a few minutes earlier. We want to finish up by 9:00 PM so people can hack or catch their preferred train home. You can come at any time, but YMMV (your mileage may vary).
 
'''PSA 8-19-14:''' [https://noisebridge.net/wiki/PyClass This Noisebridge PyClass wiki] and [https://github.com/PyClass/PyClass-lesson-plans the GitHub PyClass] README.md 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.
'''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.
Line 11: Line 17:
We set up the space at 6:45 PM - try to arrive early to help if you are able to.
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
* Monday 7:00 - 9:00 PM PST - 'Turing' Classroom
* Wednesday 7:00 - 9:00 PM PST - 'Church' Classroom
* Thursday 7:00 - 9:00 PM PST - 'Church' Classroom


=== Mailing List ===
=== Mailing List ===
Line 26: Line 32:
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?
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?


====== We use the [http://www.criticalthinking.org/pages/socratic-teaching/606 Socratic Method]: ======
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


<pre>A Socratic questioner should:  
Lessons are available on GitHub [https://github.com/PyClass/PyClassLessons here] ([https://github.com/PyClass/PyClassLessons https://github.com/PyClass/PyClassLessons]).
a) keep the discussion focused
 
b) keep the discussion intellectually responsible
===== The 'ideal student' for this course can grasp the following code: =====
c) stimulate the discussion with probing questions
 
d) periodically summarize what has and what has not been dealt with and/or resolved
(Feel free to use web resources to look up anything you don't understand)
e) draw as many students as possible into the discussion.</pre>
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 = {}
<source lang="python">letter_frequency_dict = {}
Line 43: Line 47:
     times += 1
     times += 1
     letter_frequency_dict[letter] = times</source>
     letter_frequency_dict[letter] = times</source>
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
===== We use the [http://www.criticalthinking.org/pages/socratic-teaching/606 Socratic Method] =====


=== New Student Reading ===
====== A Socratic questioner should ======


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
# keep the discussion focused
# keep the discussion fact based*
# stimulate the discussion with probing questions
# periodically summarize what has and what has not been dealt with and/or resolved
# draw as many students as possible into the discussion.


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.
:<nowiki>*</nowiki> [https://en.wikipedia.org/wiki/Intellectual_responsibility intellectually responsible] can be effectively replaced with 'fact based' for our needs.


=== Course List ===
=== New Student Reading ===


The order of the following courses has not yet been determined.
If you are new to python or programming in general here are some excellent resources:<br />-[http://learnpythonthehardway.org/ Learn Python the Hard Way] - 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


Please email PyClass@googlegroups.com if you want to know what courses are coming this week!
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.
 
# [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 ===
=== OS / Environment / Versions ===
Line 80: Line 69:
This section is under development.
This section is under development.


For the sake of our sanity we use Python 2 for this course.
[https://www.digitalocean.com/?refcode=1a1061eaf303 Digital Ocean $10 Credit]
 
For the sake of our sanity we use Python 2.x for this course.


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!]
Line 91: Line 82:


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)
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;">
<li>Numeric and Mathematical Modules, and Operators<br /></li>
<li>argparse, ConfigParser, and more - configuring your applications<br /></li>
<li>pip, virtualenv, packaging, versions, and inspect.<br /></li>
<li>Logging your applications: logging, logging.config, logging.handlers<br /></li>
<li>Exceptions and Debugging: Exception behavior, custom exceptions, pdb, cProfile, timeit, time, trace.<br /></li>
<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>
* Control Structures, itertools - Teddy<br />
* 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
==== Two approaches for course material building that should be blended ====
# Modules Course - http://pymotw.com/2
# Applications Course - http://newcoder.io/dataviz/part-0/

Revision as of 01:50, 13 April 2015

PSAs and Events

(PSAs are Public Service Announcements)

PSA 4-6-15: As of today, attend PyClass on MONDAYS and THURSDAYS.
Mondays in the Turing classroom will replace the previous Tuesday sessions.

PSA 1-26-15: Thursdays in the Church Classroom will replace the Wednesday sessions.

PSA 10-1-14: PyClasses start at 7:00 PM, but please try to come a few minutes earlier. We want to finish up by 9:00 PM so people can hack or catch their preferred train home. You can come at any time, but YMMV (your mileage may vary).

PSA 8-19-14: This Noisebridge PyClass wiki and the GitHub PyClass README.md 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.

  • Monday 7:00 - 9:00 PM PST - 'Turing' Classroom
  • Thursday 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

Lessons are available on GitHub here (https://github.com/PyClass/PyClassLessons).

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>
We use the Socratic Method
A Socratic questioner should
  1. keep the discussion focused
  2. keep the discussion fact based*
  3. stimulate the discussion with probing questions
  4. periodically summarize what has and what has not been dealt with and/or resolved
  5. draw as many students as possible into the discussion.
* intellectually responsible can be effectively replaced with 'fact based' for our needs.

New Student Reading

If you are new to python or programming in general here are some excellent resources:
-Learn Python the Hard Way - 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.

OS / Environment / Versions

This section is under development.

Digital Ocean $10 Credit

For the sake of our sanity we use Python 2.x 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)