2022情報I 2学期
第16回 授業の振り返りより

質問より

先生が初めて作ったゲームはどんなものでしたか。
4桁の数あてゲームでしたね。ランダムの4桁をヒントをもとに当てるゲームでした。
授業を休んでいました。提出方法はプログラミングをコピーしてそのままフォームに貼り付ければいいですか?
欠席者を集めて相互評価をやる予定です。
1回正常に動作するプログラムが、また実行しようとすると不具合が起きる事があるのですが原因は何なのでしょうか。
GoogleコラボラトリーやJupyterNotebookの場合、他のセルのプログラムが影響して動かないことがあります。また、単独でプログラムを書いていても、初期値の設定が適切にされていないと、前回実行したときの値が影響することがあります。
プログラミングで作った中で面白いなと思ったゲームはなんですか?
ゲーム作らないですからね。二進法の計算練習問題のプログラム、題材がまじめなだけで、ゲームの要素が含まれてますよね。
先生が僕らの立場だったら、どんなミニゲームを作りますか?
数当てゲームですかね。オセロとか五目並べ的なものも作れそうですよね。
forの中にifを二個いれると処理に時間がかかってしまったのですが、どうしたら時間を短くできますか。
現在皆さんが作っている程度のプログラムであれば、そんなに処理に時間はかからないと思います。for文で無駄に繰り返しているようならbreakを使うことや、条件にあう時だけ繰り返すwhileにすることを考えてみてください。
ゲームでよくある隠しコマンドは
当然あらかじめプログラムしてあります。
相手のゲームをやってたんですけど、たまに出るバグって何なんですか?
プログラムに問題があるからです。たまにバグが出るのではなく、結構動くときが多いと考えるべきで、丁寧に状況を整理して、バグが出ないようにすべきですね。
プログラミングを実行して数字を入力した時、エラーの規則性が見つけられない場合はどうしたらいいのでしょうか
エラーの規則性が見つけられないときはプログラムを別の環境で書き直して実行します。このとき、コピペすると同じ間違えがやってくることもあるので打ち直します。その上でエラーが出る状況を分析します。どういった判断をしているのかがわかっているのですから、どのような値でエラーが起きるのかを予測し、対応策を考えていきます。
degleteで全て揃えたのに動作しなかった。自分のパソコンでは動いていた。これはなぜか。
degleteがなにか調べてもわからなかったのですが、おそらくDleleteのことでしょう。インデントの問題だと思います。Pythonではインデントが大きな意味を持つということを授業でも説明しています。ここが理解できていない人が多い要です。Tabキーを使う人もいるようですが、Tabと4文字スペースは文字コードも違いますから、エラーの原因になります。GoogleColaboratoryを使うときにはインデントを4に設定してから使うようにします。
プログラミングするために書いてあるプログラムってありますか?そうやって考えていくとキリがないように思えてくるのですが。。。
Pythonはプログラミングのためのプログラムですよね。コンピュータは機械語しか理解できないのですが、人間が機械語を理解するのはとても難しいわけです。PythonはPythonの文法に従って作った文章を機械語に変換して実行してくれるプログラムなんです。

感想より

みんな想像以上に手の込んだプログラムを書いていて驚いた。何かの手違いでプログラムが白紙になっていて、評価されていない人がいたが、ctrl+zで戻してあげたのでその人は感謝してほしい。
評価している人が消してしまった(と思われる)状況ですね。あれだけプログラミングの時間をとっているのに、消してしまったらどう復活させたらよいか、わかっていない人結構いるんですよね。直しておいてくれてありがとう。
いろんな人がいろんなジャンルのゲームを作っていた。説明文の書き方によって良いプログラミングがあったとしてもうまく使われない状況を見て、人に伝わる説明を書く能力と理解する能力が大切だと感じた。
説明書きを用意するように事前に告知していたのですが、プログラムを作る方に一生懸命になる人が多く、説明書きを慌てて作った人も多いようです。ゲームって世界観とか操作方法とか説明しとかなきゃならないことってたくさんあるんですよね。
他の人のプログラミングは、今まで授業で学んだことと自分が創造したアイデアが組み合わされていて圧倒された。自分にはプログラミングの技能が足りていないと思っていたが、それだけでなく工夫を生み出すための思考力も足りないなと感じさせられた。
技能(プログラミングのテクニック)が増えると工夫できるようになりますよね。逆にこうしたいという工夫を実現するために、技能を身につける人もいます。Pythonなら検索すればサンプルがたくさん出てきます。結局大事なのはアルゴリズムで、考えなきゃならないということなんです。思考力が足りないと書いてますが、思考力が必要だと気づいたということですよね。今度は考えてみましょう。
人のゲームには、公正に評価した上で、学べるところがたくさんあることに気づいた。
楽しくてためになる授業ですよね。相互評価って学びの取れ高がとても高いのです。先生が説明する授業より、よっぽど深く学べますよね。
Googleコラボラトリーで相互評価をしてもらいましたが、プログラム自体は以上がなく、エラーが出ないのに「セルはすでに実行されています」とだけ出て?を押しても全く実行されなかったようで、ゲーム自体の評価をして貰えませんでした。しかし、後からやり直したら希望の実行がなされたので正しいプログラムが提出できました。準備時間の最後の最後で誤ってキーボードを押し、改行が入ってエラーしか出なくなったので、違う保存場所からコピーして急いで貼ったのですが、そこから実行しても希望の表示が出てきませんでした。Jupiter Notebookであればkernelなど、実行されない場合に対する対処がはっきりしているので、そちらを使えば良かったと後悔しました。GoogleコラボラトリーはどこでもPythonができるという点では優れているので、2つのツールの一長一短を理解して使おうと思いました。
プログラムが動作中のままだったんですね。どこか別のセルかもしれません。一度停止させて再度実行すれば動くはずです。
授業外でも家のパソコンを使って作業したことできちんと動作するプログラミングを作ることができた。プログラミングを書いて実行していく中で感じたのはエラーがとても大切だということだ。エラーの内容を翻訳サイトにかけたり、webで調べたりしていく中でどういったミスが起きているのかがより鮮明にわかるようになり、また次書いていくコードにつなげることができた。最近課題などで忙しく、息抜きにプログラミングをやっていたがかなり夢中になってしまい、夜中3時くらいまでやっていたこともあった。正直もう少し改良できるところがあり、作業したかった。
プログラミングって思った通りに動き始めたり、ちょっとだけ不具合が出ていると、ハマってしまうことがあります。気づいたら1時間あっという間に過ぎてしまったりして、沼ですよね。情報の課題なんですから、そんな頑張っちゃだめですよ。
説明書は言わばプレイヤーとの約束であるがその約束をプレイヤーは守れないこともある。そんなとき、ゲーム制作者側の配慮が試されると思う。
そうですね。エラーが出ないようにプログラムを作るには、想定している条件に合わない入力があった場合、どう処理するかのプログラムをすべて書いておきます。今回はそこまでやるのは大変なので、説明書に従いプレーしてもらうことにしてあります。市販のプログラムはいろいろなことを想定して作るのですから、大変ですよね。
遊び方の説明を書くのは難しいなと思いました。自分の思っていることをそのまま書けばよいだけだが、相手がプレーするときにどのようなハプニングが起こるかわからないから、難しいなと思いました。
授業の手順書も同じことが言えます。私が考えている手順通り操作してくれればいいのですが、まったく違う操作をする人がいるので、どうやれば確実に伝わるか、どうやれば間違えずにできるか、どうやれば読み飛ばされないか、いろいろ考えて作っています。それでもやらかしてくれる人がいて、教材の改善点が見つかることがあります。
みんなゲームのクオリティが高くて、自分ももっと頑張れば良かったと思った。また、ゲームづくりでGoogleコラボラトリーを使おうと思ったときに、個人のアカウントのストレージに空きが無くこれ以上保存ができないという事態が発生したので、学校用にもうひとつGoogleアカウントを作ろうと思った。
コラボラトリーで使うデータの容量は少ないので、そもそものGoogleドライブにたくさんファイルが保存しているのでしょうね。個人的なデータもあると思いますので、学校用のアカウントを作るのはいいアイディアだと思います。
実際に自らプログラミングを生み出すことは今までに習ってきたプログラミングよりも全然難しいと思った
ゲームのプログラムを作るには、ルールを考えて、アルゴリズムを考えて、プログラミングをするわけですよね。授業だとどうしてもアルゴリズムが決まっていて、そのためのプログラムを書くことになるので、プログラミングだけに集中すればできるわけです。プログラムを作るのに重要なのはアルゴリズムなんですね。
前日まで保存がされず(グーグルコラボラトリー)毎回までやっては消えての繰り返しだったので一回どこかで保存すればよかったなと思った。一回はちゃんと動作したのに、保存できなくて最終的には無限ループが発生する未完成の状態で提出することになってしまい残念だった
Googleコラボラトリーはサインインして利用すれば、保存しなくても勝手に保存されます。消えてしまうのは同じファイル名で上書きしているからです。利用開始時に[ノートブックを開く]または[ノートブックを新規作成]としておけば、自動保存されます。
相互評価の際、Googleアカウントに2段階認証のためにログインできず、(スマホを所持していないため)Googleコラボラトリーを使用できず、Jupyter Notebookを使用したら、Runをクリックしても動作せずに、まったく動作しなかった、という声が寄せられた。自分は、適当な場所を改行して元に戻してから、実行したので、うまく動作したが。。ほかの人はそんな工夫をしてくれるわけでもないので、無残な結果となった。学校用のGoogleアカウントが配布されているならまだしも、プライベート用のGoogle個人アカウント(あくまでネットのいちサービスに過ぎない)を使用させないと成り立たないというのは、いかがなものかと思った。
東京都の方針で、Googleアカウントを配布することはできません。次に、Googleコラボラトリーを使用しなくても問題ないように、JupyterNotebookの環境を準備しています。コラボラトリーの利用は任意で、おそらく皆さんにとって便利だと考えられるので利用を推奨しています。コラボラトリーで「正しく」作ったプログラムはJupyterNotebookでも動作します。コラボラトリーでしか動かない「正しくない」プログラムはJupyterNoteでは動きません。
「パソコン室のパソコンで実行できるようにする」ことが提出の条件ですから、事前に動作テストをするなどの準備が必要なのです。
今日、ほかの人のプログラミングを見てこれはどういう命令で、なぜこの変数がここにあるのか、など疑問がわいてきて、楽しいと思えた。それは、ある程度の知識が実習を通して身についたから楽しめるようになってきたのかなと思う。他の教科でもそうだけど、情報は特に自分でコンピュータを動かしてアウトプットを積極的にしないと身につかないし、楽しめないと感じた。
やってみたからわかることっていうのがたくさんありますよね。先生が「ここ大事」というより、友達が上手に使いこなしているのを見た方が「大事」だということが伝わったりします。
授業中に扱ったいくつかの技術を使い、あんなにも多様なゲームが作られることに感心した
プログラムは順次・反復・分岐の組み合わせで作ることができ、少なくともこの構造がかけるだけのプログラムの技量は身についているはずです。面白いゲームのルールのアルゴリズムが整理できれば、プログラムとして書くことができますよね。リアルタイムの反応や画像による表現はできませんが、市販のプログラムもこのように作れるはずなのです。
複雑そうな仕組みでもひとつひとつ分解して考えるという点がプログラミングのコツなのではないかと感じたのでこの感覚を覚えておきたい。
一つ一つ指示しないと何もできないのがコンピュータですからね。細かく場合分けして丁寧に指示を書くのがプログラミングなんですね。
みんなのプログラムを楽しめた。どんなプログラミングがされているのか見るのが楽しかった。
改めて第三者の目というのは大切であると感じた。自分のプログラミングにはまあまあ自信があった。ルール説明も充分であると思っていた。しかし、実際にはルール説明が不足している、よく分からないというコメントが多かった。やはり、自分の中では完結していても客観的に見ると充分でないのだなと思った。プログラミングが完成してから誰かに試しにやってみてもらうべきだったと思う。主観と客観の違いが明確になったと感じた。
最後に戻ったら自分のプログラムが途中で壊されエラーが出てた。最後の人までできていたのか不安
色々な人のプログラミングを見ていたら、関数を使ってプログラミング量を減らし簡潔にしている人がいたり、短いプログラ厶ながらも、少し文章を書いて、やる人に語りかけたり、占いも色々な方法を用いていたりし、プログラ厶にゲーム性を与えている人がいた。余りプログラムを書かかなくとも、発想して独自性や面白さを作り、やる人を楽しませることは、ものづくりをする上で手早く作る効率とやり手を楽しませる結果を伴っていて、大切なことなのかなと思った。また、中には数当てなのに、答えを表示しないような少し不親切な物もあって、プログラ厶を介する人と人の対話ながらも、機械に命令するときのように端的に、見ていて分かりやすくする必要はあるのだなと思った。加えて、そのような問題点やエラーに気づくためには、人にやってもらうことも手だから、ものづくりで人の意見を聞いていくことは大切だし、だからこそ、デバッカーという職業は存在するのだなと思った。
本当に簡単ですぐ終わってしまうゲームだったけれど説明文についてみんなが褒めてくれたので、頑張って文を考えて良かったと思った。みんなのやつを遊んでみて、どれも面白いし個性的だし同じものが一つもなくてすごいと思った。ゲームに個性も現れていて楽しかった。

自己評価集計

自己評価集計

ワードクラウド

3つのキーワード

3つのキーワード
感想や気づき

感想や気づき
テキストマイニング 無料ツール by ユーザーローカル
前のページに戻る