PyClass: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
Line 18: Line 18:
We have our own Jupyter Hub for the class at [https://sfpythonlab.com https://sfpythonlab.com]. This is free and available for all students of the class as well as the larger Noisebridge community if necessary. Drop by a class to get an account.
We have our own Jupyter Hub for the class at [https://sfpythonlab.com https://sfpythonlab.com]. This is free and available for all students of the class as well as the larger Noisebridge community if necessary. Drop by a class to get an account.


=== Course links ===
=== Course schedule and links ===
All of these links open the Jupyter Hub at sfpythonlab.com with the selected lesson open. Come to an in person class to get an account.
All of these links open the Jupyter Hub at sfpythonlab.com with the selected lesson open. Come to an in person class to get an account.


* [https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Faudiodude%2FPythonClass%2Fblob%2Fmain%2Flessons%2F01-Basics-using-Mastodon%2Fmastodon.ipynb Week 1]
* May 8, 2023 - Basics featuring Mastodon - [https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Faudiodude%2FPythonClass%2Fblob%2Fmain%2Flessons%2F01-Basics-using-Mastodon%2Fmastodon.ipynb Week 1]
* [https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Faudiodude%2FPythonClass&urlpath=tree%2FPythonClass%2Flessons%2F02-control-structures%2Fcontrol_structures.ipynb Week 2]
* May 15, 2023 - Control structures and booleans - [https://sfpythonlab.com/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Faudiodude%2FPythonClass&urlpath=tree%2FPythonClass%2Flessons%2F02-control-structures%2Fcontrol_structures.ipynb Week 2]
* May 22, 2023 - No class!
* May 29, 2023 - Review session
* June 5, 2023 - Algorithms - (lesson link TBD)
* June 12, 2023 - Basic data processing and string manipulation (incl JSON) - (lesson link TBD)
* June 19, 2023 - Review session
* Later schedule TBD, check Meetup!


=== Course Material (Subject to overhaul) ===
=== Course Material (Subject to overhaul) ===

Revision as of 09:04, 28 May 2023

Noisebridge | About | Visit | 272 | Manual | Contact | Guilds | Resources | Events | Projects | 5MoF | Meetings | Donate | (Edit)
Guilds | Meta | Code | Electronics | Fabrication | Games | Sewing | Music | AI | Neuro | Philosophy | Funding | Art | Security | Ham | Brew | (Edit)
Code | FreeCodeCamp | PyClass | Gamebridge | Circuit Hacking Monday | Machine Learning | Edit
PyClass | Python/OrganizerMeetings | Edit

PyClass is an introductory Python course run by the Noisebridge community. It helps students solve common programming problems while learning about the language.

  • WHEN: Classes and/or office hours are held Mondays 7:00 - 9:00 PM in the second floor Electronics Room. Check Meetup. If you have not been to Noisebridge before, please try to arrive 15 minutes early so that you can be introduced to the space.
  • MEETUP: Mostly organized through Meetup.
  • ORGANIZERS: Travis B (tmoney on Discord).

Welcome to the Noisebridge PyClass!

Spring 2023 Reboot

As of April 2023, the class is being rebooted and taught by a fresh set of volunteers. The course material described below will likely be updated and subject to change.

The class follows the format of two weeks of lessons, followed by one week of review. Feel free to drop in at any time, but the classes build on each other (especially for those with little existing programming experience). If you are new and the class has been in progress for some time, it might be best to come to a review session first.

Jupyter Hub

We have our own Jupyter Hub for the class at https://sfpythonlab.com. This is free and available for all students of the class as well as the larger Noisebridge community if necessary. Drop by a class to get an account.

Course schedule and links

All of these links open the Jupyter Hub at sfpythonlab.com with the selected lesson open. Come to an in person class to get an account.

  • May 8, 2023 - Basics featuring Mastodon - Week 1
  • May 15, 2023 - Control structures and booleans - Week 2
  • May 22, 2023 - No class!
  • May 29, 2023 - Review session
  • June 5, 2023 - Algorithms - (lesson link TBD)
  • June 12, 2023 - Basic data processing and string manipulation (incl JSON) - (lesson link TBD)
  • June 19, 2023 - Review session
  • Later schedule TBD, check Meetup!

Course Material (Subject to overhaul)

Updated course material is being authored and tracked on Github.

The course previously contained six lessons and assorted guest lectures. The old list of classes (retained for reference) are:

  • Storing and transmitting information with JSON
  • Working with text data
  • Relational databases and SQL
  • Performance and Big O notation
  • Objects and Classes
  • Web applications with Flask

The material for these is available on the old Github page. The classes tend to move fast, but can be repeated and have references to related material in the notes.

The first three classes (JSON, text data, SQL) are suitable for anyone, but will be more difficult if you are not comfortable using python as a calculator.

   # importing libraries
   import time
   
   # printing and calling functions
   print(time.ctime())
   
   # variables and math
   calculation = (1 * 2 * 3) / 2  
   
   # strings
   print('I've done some math!', calculation)
  • If you are comfortable this program, you will be comfortable with the class.
  • If can understand what the program is doing, the class is a good fit for you, but might seem fast.

The last three classes assume familiarity with loops, functions and collections. If you are comfortable with the following program you will be comfortable with the class.

   frequency_dict = {}
   word = "noisebridge"
   
   for letter in word:
       times = frequency_dict.get(letter, 0)
       times += 1
       frequency_dict[letter] = times

Python Setup

You do not need to install Python to attend this class. All lectures, coursework and assignments are provided via a Jupyter Hub instance, that allows students to create files and run Python code.

If you would like help getting a Python environment set up on your computer anyway, please speak with one of the instructors, or ask in #python on Discord.

Helping out and getting additional help

Discussions of the class and announcements will take place in the #python channel on Noisebridge Discord (under classes).

PyClass runs on volunteer effort, and we would love to have your help keeping it it excellent! The simplest and most appreciated contributions are simple examples of the projects you want to work on, the bugs you encounter, and the concepts you find difficult. Especially if they are succinct or easy to turn into problems that others can learn from.

We are always looking for more people to teach classes. This is a great way to solidify your understanding, find new and exciting edge cases, and help others. We welcome people teaching existing classes, or their own classes on the subjects they are most excited about. Remember, the only thing that qualifies people to run PyClass is having enough enthusiasm to show up.

If you need help getting started, getting unstuck, or getting someone to look at your code we are happy to help! There are usually office hours during the week, announced in the class, and designed to solve these problems. Feel free to reach out over meetup to learn more.

Code of Conduct

PyClass holds to the Noisebridge Community Standards, and the Noisebridge Anti-Harassment Policy which we take seriously.

We also follow the Recurse Center social rules, because they are excellent at creating an environment where people are comfortable learning.

Python Resources

For learning programming, we recommend that you consult multiple resources with a variety of formats and priorities. Some of our favorite resources are:

  • Learn Python the Hard Way - A clear introduction to python intended for people new to programming. Written well enough to be useful for more advanced programmers as well. Available in the Noisebridge library.
  • Python Documentation - The Python documentation is a well written and comprehensive reference. It isn't a page turner, but should be one of your first stops when confused.
  • Python Module of the Week - Python comes with batteries included, but it can still be hard find the best tool among the hundreds of modules it provides. Python Module of the Week walks you through each of the standard library modules provided by the language.
  • pyvideo - A searchable index of Python conference talks. Drop by class for some specific recommendations!
  • python tutor - pythontutor.com allows you to walk through small pieces of code and understand how Python thinks of them. An excellent resource for debugging mysterious Python behavior.

There are more good resources for learning Python than we can list here. Do you have a favorite that you think is missing? Let us know!

Free to all - please donate to Noisebridge!

This course only happens because the Noisebridge community provides a space for it to exist. Maintaining the space and broader community is difficult and thankless work. The course is free, but if you want to help the community pay rent go to: https://www.noisebridge.net/wiki/Donate_or_Pay_Dues.
Recommended Donations: $15, $50, $200+ Recommended monthly donations: $10, $20, $40, $80+ / month