Slide 1

Slide 1 text

HOPPy: Hands-On Projects in Python

Slide 2

Slide 2 text

How do we learn?

Slide 3

Slide 3 text

• Parents • Teachers • Peers Some common answers

Slide 4

Slide 4 text

Our common model I know something I tell you that thing Now you know it, too!

Slide 5

Slide 5 text

• Swiss psychologist • Constructivism: We create our own knowledge • You cannot be taught, but you can be helped to understanding • Children are little scientists, constantly experimenting • Hugely influential in the educational world Jean Piaget

Slide 6

Slide 6 text

• Studied with Piaget • Constructionism: The best way to create your own knowledge is by creating artifacts that are meaningful • Famous for Logo and Lego-Logo Seymour Papert

Slide 7

Slide 7 text

• “How can I improve my Python?” • Join an open-source project! • You’ll learn by doing • You’ll create something that’s interesting to you • You’re steeped in knowledge and practice Open source is constructionist

Slide 8

Slide 8 text

• To participate in an open-source project, there are lots of things you need to know beyond Python • Git and GitHub • Working on a project • Modern tools • The mechanics of creating, building, and publishing packages But:

Slide 9

Slide 9 text

• I believe in learning through doing • I’m constantly learning new things • Try something new • Make mistakes • Learn from them • Make new, bigger mistakes! I’m a constructionist

Slide 10

Slide 10 text

• I love writing exercises • Weekly Python Exercise • Bamboo Weekly • Python Workout • Pandas Workout Learn through practice

Slide 11

Slide 11 text

• Exercises are small and self-contained • They are necessary, but not suf f icient • They hone your understanding of a particular problem • Functions, data structures, objects • But software engineers spend time on lots of other things, too • Data structures, functions, and objects aren’t enough to be a productive Python coder Exercises aren’t enough

Slide 12

Slide 12 text

• You’ve f inished a Python course, but when it comes time to start a project, you stare at the screen and aren’t sure what to do. • How do I start a project? • How do I work with multiple f iles? • How do I use the latest tools, such as uv, ruff, and black? • How do I incorporate tests and type checking? • How do I share my work with others? • How should (and shouldn’t) I use AI in my work? That’s why you’re frustrated!

Slide 13

Slide 13 text

• Architecture students have “studio” • They’re given the general outline of a project • They can design and build whatever they want, within those outlines • Twice each week, they are critiqued by their instructor and peers • This is a tough class — but also one from which you learn the actual practice of architecture Architecture

Slide 14

Slide 14 text

What if we had a constructionist Python course?

Slide 15

Slide 15 text

What if it looked like an architecture student’s studio course?

Slide 16

Slide 16 text

Introducing HOPPy: Hands-On Projects in Python

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

• I’ll run 3-5 HOPPy cohorts every year • Each cohort will be six weeks long and have a speci f ic theme • Each of the six meetings will include: • A short lecture/demo introducing topics • People presenting their work and ideas • Peer review and feedback • The goal: Help you become a more fluent Python software engineer, beyond being a good Python coder The general idea

Slide 19

Slide 19 text

• There are other “create a Python package” courses out there • This one draws on my constructionist background • You’ll create something that you care about (not a toy project that I’m giving you) • You’ll get feedback from me and your peers — and give feedback, as well • Learn technologies and techniques that you will use in any job you take How is this different?

Slide 20

Slide 20 text

• The f irst cohort starts in 10 days, on Sunday, March 30th • Our topic: Publishing a library to PyPI • Yes, this is brand new! • I hope/expect to learn a ton from you, just as you’ll learn from me HOPPy 1

Slide 21

Slide 21 text

• Sunday, March 30th: Kickoff • Meet the cohort, AI tools, communication frameworks, and choosing projects • Sunday, April 6th: Modern packaging tools • PyCharm, ruff, black, and uv. Mentor review + peer review. • Monday, April 14th: Adding tests • Using pytest. Mentor review + peer review. • Monday, April 21st: Type checking • Type hints and mypy. Mentor review + peer review. • Sunday, April 27th: Publishing to PyPI • Registering, publishing with uv. Mentor review + peer review. • Sunday, May 4th: Demo day Schedule

Slide 22

Slide 22 text

• You’ll be expected to work on your project between meetings • Questions? Ask away on Discord! • Share things Outside of class

Slide 23

Slide 23 text

• You can only participate in HOPPy if you’re already a member of my LernerPython.com community • I can point you to lectures and resources, and not worry if you have access • This allows me to keep the price a bit lower (and to avoid complex pricing models) • If you’re a current member of my twice-yearly PythonDAB bootcamp, then you can join HOPPy without additional charge • The price is $750 for the six-week course • And yes, you’ll get a certi f icate/letter when you’re done Participation and cost

Slide 24

Slide 24 text

• Better to keep a project small and doable than big and ambitious • Come with ideas… but don’t try to shoehorn your dream project into this class • I can’t and won’t veto what you decide to do • I have a bunch of ideas that I’ll share when you register, to prepare for the f irst meeting Project ideas

Slide 25

Slide 25 text

• I plan to run 3-5 HOPPy cohorts each year • Each will have a different theme • For example: • Web applications • Data dashboards • Command-line utilities Future HOPPy cohorts

Slide 26

Slide 26 text

Questions?