Python Workshops for Beginners

Welcome to the Python Workshops for Beginners (PWFB) — a series of four sessions designed to introduce some of the basic tools of programming and analysis of data from online communities to absolute beginners.

The PWFB are being held between September 26th and November 15th, 2014 at the University of Waterloo in Waterloo, Ontario, Canada. This pages includes links to the curriculum we used so thats other can build on and learn from our curriculum.

Registration
Registration is currently closed and, sadly, we are oversubscribed! Over 220 applications were submitted for 50 spots. That said, we certainly hope to organize more workshops like these in the future. You can watch (or subscribe to) the Women in Computer Science website where we will post more information in the future.

Communication
Mailing lists for mentors and attendees have been created. Once you have been added to a list, you can read the archives and receive future email communications.

Policies
You can read our Code of Conduct here. You may also want to read through the Hacker School Rules. An announcement will be made at the beginning of Session 0 and 1 regarding our recording policy.

Schedule
All sessions are interactive and involve you programming on your own and on your own laptop. Everybody attending should bring a laptop and a power cord so that they don't run out of battery.

Session 0 (Friday September 26th Evening 6-9pm)
Room details have been emailed out to attendees. It's OK if you come late but you'll want to have as much time as you can to finish the setup and self-directed assignments so come as close to 6pm as you can.

During this session, mentors will help you:


 * set up your development environment
 * learn how to execute Python code from a file and interactively from a Python prompt
 * learn about printing and using Python as a calculator

For those of you who may be missing parts of the Friday session, if you don't finish, you should come in early the next day (9am) to allow a mentor to go over the checklist with you. You'll also be on your own and responsible to get everything set up before our first meeting on Saturday morning. We'll post all the information for the Friday session on this page and you will able to follow along.

>>Click here for the the setup and tutorial material.<<

Session 1 (Saturday September 27th)
We'll begin at 9:30am. You will need time to get settled and setup. We want to start lecturing promptly at 10am.


 * Morning, 10:00 AM - 12:00 PM: A 2-part lecture introduction to the Python language, with exercises.
 * Lunch, 12:00 PM - 12:45 PM: Lunch is served.
 * Afternoon, 12:45 PM - 1:00 PM: Afternoon sessions are introduced.
 * Afternoon, 1:00 PM - 3:30 PM: Afternoon sessions to practice through short projects on a variety of fun and practical topics.
 * Wrap-up, 3:30 PM - 4:00 PM: Closing remarks, next steps, and homework.

Session 2 (Saturday October 25th)
We'll begin at 9:30am. You will need time to get settled and setup. We want to start lecturing promptly at 10am.

Please come prepared to start working in your Python interpreter during the lesson. If you are going to be bringing a different computer than the one you brough and setup last time, you will need to go through the setup section of the setup and tutorial session from the first Friday session. You don't need to do the tutorial or CodeAcademy lessons again unless you think that you could use a refresher. You can also skip the sections about installing Colorwall and Wordplay. We won't be looking at those in this session.

To participate in the Twitter afternoon session, you must have registered with Twitter as a developer before the session by following the Twitter authentication setup instructions. If you did not do this, or if you tried but did not succeed, please attend one of the other two sessions instead.


 * Morning, 10am-noon: A 2 hour lecture-based introduction to the web APIs
 * Lunch, noon-1pm: We'll provide lunch!
 * Afternoon, 1pm-3:30pm: Python and API practice through short projects
 * Wrap-up, 3:30pm-4pm: Wrap-up, next steps, and upcoming opportunities for learning and practicing Python

Session 3 (Saturday November 15th)
We'll begin at 9:30am. You will need time to get settled and setup. We want to start lecturing promptly at 10am.

Please come prepared to start working in your Python interpreter during the lesson. If you are going to be bringing a different computer than the one you brough and setup last time, you will need to go through the setup section of the setup and tutorial session from the first Friday session. You don't need to do the tutorial or CodeAcademy lessons again unless you think that you could use a refresher. You can also skip the sections about installing Colorwall and Wordplay. We won't be looking at those in this session.

In the lecture, we're going to be doing building some simple visualizations online in Google Docs. Please make sure you have a Google Account you can use for the session and poke around at and create a new Google Spreadsheet. I suspect that most of you are going to use Microsoft Excel, LibreOffice, Gnumeric, etc., in your work after the class but using Google Docs means that we'll all be using the same software during the lecture.


 * Morning, 10am-noon: A 2 hour lecture-based introduction to data analysis
 * Lunch, noon-1pm: We'll provide lunch! And not pizza this time!
 * Afternoon, 1pm-3:30pm: Python and analysis practice through short projects
 * Wrap-up, 3:30pm-4pm: Wrap-up, next steps, and upcoming opportunities for learning and practicing Python

Resources

 * Friday September 26th setup and tutorial
 * Saturday September 27th lecture
 * Saturday September 27th projects
 * Introduction to Python CodeAcademy exercises


 * Saturday October 25th lecture
 * Saturday October 25th projects
 * Introduction to APIs in Python CodeAcademy exercises - Includes information on using APIs from NPR, Bitly, Sunlight Foundation, and PlaceKitten
 * Saturday November 15th lecture
 * Saturday November 15th projects

Location
The Women in Computer Science Committee of the David R. Cheriton School of Computer Science is hosting the event. We are located in the Davis Center (DC) on the University of Waterloo Campus. All sessions will be held in the same room, which was emailed out to participants. We will move into other rooms in the building for the workshop parts of the sessions.

You can find the building on this Google map or using these directions from the School of Computer Science.

Parking at UW is available and free on weekends after 16:30 Friday in the X lot. More details are on the Parking Services Website. UW is also well served by public transportation and easily accessible by bicycle with the Laurel Trail.

If you have any questions about the event, you can contact [mailto:ehashman@uwaterloo.ca Elana Hashman].

What to bring

 * 1) a laptop (ideally one with a Python environment set up. See Session 0 information, above)
 * 2) a power cord
 * 3) a sense of adventure!

Food
Thanks to generous sponsorship by the Python Software Foundation, we will provide catered lunchs during the Saturday sessions. We will make our best effort to accommodate all dietary restrictions; if the food we have doesn't doesn't work for you, there is a plaza nearby the University open for lunch.

Thanks!
This event would not be possible without all the volunteer mentors, the provided curriculum derived from OpenHatch material and provided from Prof. Ben "Mako" Hill's Community Data Science Workshops, and support of the Python Software Foundation and Women in Computer Science Committee.