Archive for the ‘プログラミング1’ Category

プログラミング1の演習チェックでの共通項

金曜日, 5月 6th, 2016

過半数までは届いてないと思いますが、圧倒的に「変数名をてーげーに付ける」ケース多し。設問文の悪さも影響してると想像しますが。それにしても「enemy = ‘naltoma’」とするところを「enemy = (‘naltoma’)」としてるケースもそこそこあって。この書き方はどこを参照してこうしたのだろう。タプルはまだ教えてないし、例題にも出てきてないから、丸括弧は関数使う時しか使ってない気がするのだけどな。

あと、フォントサイズが異常に小さい(7.5ポイントとか)とか、色盲テストさせられてる(背景色と文字色の組み合わせがよろしくない)ケースも結構あります。文字サイズはともかくとして、よくその色で作業する気になるな。。そういうのをセレクトする人がスライド作るととんでもないことになりそう。そういう人には配色図鑑(?)的なものを見せると良いのかしら。画像検索で良いかもだけど、身近で触れてるものによろしくないのが多いとそっちに引きづられそう?

レポート課題の方は、私・先輩らを頼ってどうにか仕上げてる学生が出始めてます。考え方・取り組み方の例示(問題を分解して考えるとかのデモ)を兼ねて次回はじっくり時間取ろうかと思ってたけど、そこまでやらなくても良いのか悩むな。

プログラミング1の相談対応しながら実験1のレポート採点終了

月曜日, 5月 2nd, 2016

GW前にレポート締め切りがあると、GW中に採点できてなかなかいい塩梅です。疲れるけど、混雑嫌いなので適度な近場巡りでお仕事するのが例年の過ごし方。いや、今日は平日なんだけど。

実験1はほぼ毎週異なるテーマについての実験レポートが課されるので割りと大変な授業です。なんですが、独自課題やって良いよと書いてるとかなりハマる学生がたまにいて。今回もオリジナル課題で30ページ強書いて提出してる学生がいました。変態ですね(褒め言葉)。

採点方法は「基準点設定して、内容に応じて加点減点」してることもあって、100点を超えることが割りとあります。超えた分は自己満足にしかならないんですが、後期の実験2では私担当が2回あるので、「2回で合計200点満点」とかやってたりします。こっちだとたまに100点超えることで嬉しい人が出てきます。(それでも片方で超えちゃう人はもう片方も超えがちなんですが)


採点中に1年次からプログラミングの課題について相談が。分からないことを質問しに来るのは偉い。必要な材料は一通り教科書+授業で用意していますが、「道具が揃ってるからといってどう使えばよいか分かるわけじゃない」のはそうだよね。個々の道具をどう使えばよいかという問題と、それらの組み合わせ方を考えるという道具側からのアプローチと、逆に問題側からできるレベルにまで分解していくアプローチと。どんな方法でも良いけどやっぱりいきなり正解に辿り着けるわけでもなく。そのことは分かっているので、過程をレポートとしてまとめて欲しいです。

とか書いてたら、別学生からメールでも質問来ました。よしよし。

(プログラミング1) 3週目は予定通り演習時間がメイン

木曜日, 4月 28th, 2016

今日は演習時間60分近くとったのだけど、あちこちで手が挙がる。先輩らが大量に居てくれて大助かり〜。何かの機会にご飯でも食べに行きますか。

prog1-w3

3週目の内容はこんな感じ。毎週の共通フレームとして、

  • お告げ: 何かしら新入生に向けた言葉。
  • ミニテスト: 復習と予習について簡易チェックし、結果を見ながら補足説明。
  • 解説: 新しい内容についての解説。主に教科書への補足。
  • 演習時間
  • 宿題: 教科書読み指定+α。

という流れで進めてます。先週までは解説時間が長かったので、今回は「文字列、if文、関数」についての簡易的な説明に留め、先週やり残した演習からやってもらうことに。

予定通り今回は演習時間を眺め(60分弱)取れました。変数使ってみる演習1〜4と、if文と関数を使う演習5。進捗的には予想よりは遅め。過半数(6割弱)は演習2終了したぐらい。早いペアは演習3まで終了(2割弱)。遅いペアはまだ演習1が終わったぐらい(2割弱)。

これはいろんな理由が被ってるようで、
(1)タイプ(キーボード操作)が遅い(要練習)、
(2)問題文が練れてなく意図解釈で戸惑ってる、
(3)演習内容は復習のつもりだけど、まだまだ理解不足(演習で手を動かしながら悩み、1つずつ理解プロセスを歩ませるしかなさそう)、
(4)そもそも進むスピードが早い、

(5)ペアプログラミングが機能していないグループもある(喋らず、個別に悩んでるグループあり)、
といったところかしら。

問題文が練れてなくて解釈難しいのは100%私のミス。申し訳ない。質問対応でなんとかしてみてるつもりですが、見逃してる部分も多々ありそう。

進展スピードは、今週が3回目の授業で、そのうち1回目がガイダンスだったことを考えると、実質的には今日を含めてまだ2回しか具体的な中身をやっていません。その2回で、インタプリタ、スクリプト、演算子、変数、代入、型、文字列、if文、関数、マニュアル、命名規則、といった事柄に触れててアップアップ気味かも。去年までの例だと、今の時期ってまだprintf()してるぐらいなんだよね。

詰め込み過ぎかもしれないけど、各々の道具を単体では面白いことができないので、ループぐらいまでは次回で触る予定。予定は未定ですが、そこから後は復習を兼ねた演習を増やす形にした方が良さげかなー。

プログラミング1始動

木曜日, 4月 14th, 2016

今年度から初めて受け持つプログラミング1が始まりました。1週目はガイダンス中心で、

  • プログラムって何だろう?(->たくさんの関数でできてる)
  • 仕様を考えることもプログラミングの一部(->KISS原則、DRY原則)
  • テストやバージョン管理もやるでよ
  • 教科書は自分で読め
  • 授業では一人ではやれないことをサポートする。「次の一歩」が分かるまで手助けする。
  • こういうことを学ぶためにこういうシラバスになった。が、状況見ながら変更入るはず。

といった内容を例題・思考実験・具体例を交えて話しまくるという形になりました。

手を動かすのも重要だと思いますが、それは2週目以降ということで。

最後に少しだけPCでの演習(ターミナル起動、インタプリタ起動してコード例実行)でprint()したところ、「print()で「`」出力するにはどうしたら良いですか?」との質問が。いろいろ手さぐりするクセがついてる学生は有望ですね。

<申し送り事項>

  • タイピング練習させたほうが良さそう。 ->続きの「ソフトウェア演習1」で「タイピスト」で練習させるらしい。
  • ペア・プログラミングどうやって導入しよう。
  • ペア・プログラミングどうやって評価しよう。

P.S.
今日喋った内容は1割でもキャッチできてたら御の字で、最低限「関数、KISS原則、テスト」が残ってれば良いよねという気持ちでした。が、学生側はだいぶビビってるらしい。シラバスに「毎週ミニテストやる」と書いてるのが効いてるっぽいですが、そんなに難しいことやるつもりないんだよな。配点でも毎週やるにしては大分低い割合だし。