pyvec / pyvec/naucse.python.cz

Snake workshop improvements

Offen
#356 13 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

content sprint-idea
Vorherrschende Sprache
Keine Sprachdaten
Sterne
335
Forks
119
Ø Merge
3 Std. 6 Min.
Gemergte PRs (30 T.)
1

Beschreibung

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

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Workshop-TODOs anhand von Django Girls' Intro to Python, dem Pyglet-Material, der Einführung in die Befehlszeile des Anfängerkurses und dem verknüpften Issue #667 zu überprüfen. Das Issue nennt keine Dateien, Tests, keinen Einstiegspunkt und keine einzelne Abschlussgrenze; für den Abschluss müssten zunächst ein abgegrenzter Teil dieser Workshop-Verbesserungen definiert und fertiggestellt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
content, documentation
Issue-Typ
Dokumentation
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.