pyvec / pyvec/naucse.python.cz

Snake workshop improvements

Open
#356 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

content sprint-idea
Dominant language
No language data
Stars
335
Forks
119
Avg merge
3h 6m
Merged PRs (30d)
1

Description

Braindump of TODOs after the first iteration of the Snake workshop.

(Checked means solved in my fork, not necessarily merged here)

  • Adapt Django Girls' Intro to Python, extending it to include every language/stdlib feature we'll need (with exceptions below). We need some examples of functionality; let's use stuff that'll make people go oh, I knew this already! afterwards.

    • floor division
    • list slicing
    • del (instead of pop())
    • tuples
    • in operator
    • list.remove
    • zip() (use a more advanced example with zipitem-and-the-next with staggred listsjust before a break, so advanced people can think about it while others just clear their head)
    • import
      • random.randrange()
    • return
    • Comments
    • class? (Without __init__, but with general methods, this seems doable – and using it could save time refactoring!)
    • not decorators – those are best explained on Pyglet
    • etc.
  • Print out cheatsheets, ideally:

    • Keyboard
    • Lists
    • Dictionaries
    • Basic control structures (loops, if/else, functions)?
  • Introduce a simple & consistent poor man's versioning scheme very early after writing the first .py file: copy the file to another name, then clear the current file.

  • About the class: explain what a "class" is conceptually (a "blueprint"), show how to write one, but don't go in detail and don't aim for thorough understanding.

  • Don't split the game into two files. That takes too much time and is hard to manage on a projector.

  • Warn about naming a file pyglet.py, random.py & similar

  • Edges of the screen should kill the snake; don't do the toroidal topology. It's exciting for the mathematician, but messes up tile selection which is already more than complicated enough. Move this to a "possible extensions" section at the end

  • Do a "possible extensions" section at the end. There should be proper materials to walk you through:

    • Improvements of controls
    • Toroidal topology
    • Score keeping
    • Two-snake multiplayer
    • Gradually sSpeeding up
    • Split State, plug it into a provided console or web client
    • Use pyinstaller to make an `exe file
    • etc.
  • Discourage creating the virtualenv on the desktop (actually, just fix #313 and make sure the result is usable for workshops)

  • Skip intro to Pyglet; explain all that on the game itself: draw, move, and resize a green square. Maybe add a simple mouse handler with print(), which won't be used in the actual game (that makes it possible to ask "what do the arguments mean?" without giving an answer).

  • Use one language (Czech/English) consistently.

  • Include answers to the hard problem. With diagrams. (This includes removing the code snippet with ???, which isn't syntax-highlighted nicely.)

  • Better time management. Set a fixed schedule. The first workshop wasn't ideal, but its timings were:

    • 9-12:30: installation; intro to Python
    • (Lunch)
    • 13:30-14:00 Intro to Pyglet
    • 14:00-15:40 Drawing
    • (Break)
    • 16:10-18:00 Logic (another 15-30 min would be great to polish the game, but we had to end)
  • Have regular WC breaks.

  • Make a properly dumbed down-version of the intro to command line. Mention and Tab; avoid mkdir and other stuff you can click up graphically. Mention how to copy from/to the command line. Merge improvements to the beginners' course intro.

  • https://github.com/pyvec/naucse.python.cz/issues/667

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the workshop TODOs against Django Girls' Intro to Python, the Pyglet material, the beginners' course command-line intro, and linked issue #667. The issue provides no named files, tests, entry point, or single completion boundary; done would require defining and completing a scoped subset of these workshop improvements.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
content, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.