pyvec / pyvec/naucse.python.cz
Snake workshop improvements
Nobody has claimed this yet.
- 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 ofpop()) - tuples
-
inoperator -
list.remove -
zip()(use a more advanced example withzip– item-and-the-next with staggred lists – just 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
.pyfile: 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
mkdirand other stuff you can click up graphically. Mention how to copy from/to the command line. Merge improvements to the beginners' course intro.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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