pyvec / pyvec/naucse.python.cz

Snake workshop improvements

オープン
#356 コメント 13 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

content sprint-idea
主要言語
言語のデータがありません
スター
335
フォーク
119
平均マージ
3時間 6分
マージ済み PR(30日)
1

説明

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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、ワークショップのTODOを Django Girls' Intro to Python、Pyglet の教材、初心者向けコースのコマンドライン入門、リンクされている issue #667 と照らし合わせて確認します。この issue には、ファイル名、テスト、エントリーポイント、単一の完了範囲が指定されていません。完了するには、これらのワークショップ改善のうち、対象を絞ったサブセットを定義して完成させる必要があります。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
content, documentation
issue の種類
ドキュメント
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。