pyvec / pyvec/naucse.python.cz

Snake workshop improvements

Aperta
#356 13 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

content sprint-idea
Lingua principale
Nessun dato sulla lingua
Stelle
335
Fork
119
Merge medio
3h 6m
PR unite (30g)
1

Descrizione

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia esaminando i TODO del workshop confrontandoli con Django Girls' Intro to Python, il materiale su Pyglet, l’introduzione alla riga di comando del corso per principianti e l’issue #667 collegata. L’issue non fornisce nomi di file, test, un punto di ingresso né un singolo confine di completamento; completarla richiederebbe di definire e completare un sottoinsieme circoscritto di questi miglioramenti del workshop.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
content, documentation
Tipo di issue
Documentazione
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.