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

差は開く

木曜日, 5月 18th, 2017

プログラミング1の5週目が終わりました。これで逐次処理・条件分岐・反復処理といった3大フロー制御に加えて、関数も導入は済みました。コアな部分が終わりつつある中、より先に進んでる学生もいるし、未だにシェル・ターミナル・エディタ・Pythonインタプリタの区別が怪しい学生もいます。ま、仕方ないか。ペアプロ演習・課題・宿題出しまくるので頑張ってください。

P.S.
良いレポートに投票させてみたところ、レポート書くのが下手な人でもそれなりに評価はできるということで良レポートに得票が集まる結果に。次回以降のレポート作成時に良いところを取り入れてみて下さい。

プログラミング初学者向けのIDE

金曜日, 5月 12th, 2017

Thonny: Python IDE for beginnersなるものが。どんなものかはデモ動画見るのが早いでしょう。

No-hassle variables.
Simple debugger.
Step through expression evaluation.
Faithful representation of function calls.

あたりの組み合わせが凄くて、デバッグモードでstep-in実行すると「行単位じゃなくて、評価単位で実行」してくれるので理解しやすいし、関数呼び出すと「新しいサブウィンドウ開いて実行」したりしてくれてとても直感的です。

一方で、バージョン管理とか「その先」まではサポートしてないっぽい。そのあたりが「Python IDE for beginners」なのかも。一つの割り切り方としてありだな。

インストールもpipで楽ちん。

半分ぐらいが教科書を読んでないっぽい

木曜日, 5月 11th, 2017

プログラミング1の4週目が終わりました。内容的には関数の補足としてスコープを話しつつ、ループ処理が主題。

例によって「今週のお告げ」。今日は「教科書を活用しよう」ということで、ついでに「読んでない人?」と手を挙げさせたら半数ぐらいが手を挙げるという悲しい状況に。逆に言えば半分近くは読んでるっぽいですが、少ないなー。

正直な話、個人的には「自分で教科書読もうとしない」人は、高い授業料払って何かを学びに来てるとは思えないです。やりたいことを自分のペースでやりつつ、授業を効果的に使うなら授業前授業後のアクションが大切。その一手段が教科書なんだけどな。

教科書無視して授業メインでやるとか、好きな教科とそうでない教科とで力の入れ具合が違うとか、そもそもpaiza/progateとかwebリソースも大量にあるとかいろんな事情があるだろうなとは思います。それでも情報系のコースに第1希望で入ってきて、プログラミングの教科書読まないのが半分ぐらいというのはやっぱり悲しい。英語だからってのも主要因の一つだと想像するけど、それ避けちゃう人は何やるにしても損するぞっと。

P.S.
授業中や授業後に質問する頻度は高いです。何も自習してないという訳ではなく、「英語の教科書を避けて、他で勉強してる」学生が多いんだろうなぁ。

ペアプロの始まり

木曜日, 4月 27th, 2017

プログラミング1では去年からペアプロ導入してます。一般的な「経験者x新人」の形とは違い、「新人x新人」です。そのため自ずと得られる知見も変わりますが、共通している部分も勿論あって。内面の表現法や、質問しやすい雰囲気あたりの効果だけでもメリット大きいなということで、今年もやってます。

一方で、初めての試行だった去年は前期の間あまり馴染まなくて、どうにも分業しがちな学生がちらほら(割合として多いわけじゃないけど、パッと見で見つかるぐらいにはいた)。気持ちはわかるけど、効率良くやることが目的じゃないぞと。ということで、趣旨説明を繰り返すのは今年もやるとして、ペアプロのやり方そのものをやや簡略化してみました。もっと丁寧に説明したいけども限られてる時間でもあるし。少しはやりやすいんじゃないかな。(期待)

P.S.
今日2つ目の課題レポート(うるう年判定)出したら、10分後ぐらいに書き終えてた学生がいました。Python自体は初めてっぽいけど、他言語の経験あるなら楽勝ってことね。そういう人には別課題(独自課題)やってもらった方が良いかなぁ。。

(プログラミング1) 1週目の成果:約9割(去年は2周目で約7割)

木曜日, 4月 20th, 2017

プログラミングの授業では、毎週冒頭で先週の理解度を確認するためのミニテストをやってます。1週目はそもそも始めの授業なので置いとくとして、実質的な理解度確認は2週目が1回目になります。

予定以上に説明時間かかってる節はありますが、先週の内に「計算して、その結果を記録する」という話をコード実行時の様子(pp.17-26)としてメモリに記録される情報を書きながら説明したからか、「数学の等号とプログラミングの等号の差」をそれなりに理解している学生が9割強(短いコードの結果を選択式で回答)でした。去年は3週目のテストで7割だったことを踏まえると、理解するペースが早い&人数も増えてます。やっぱりしっかり説明することって重要ですね。。(去年の人ごめんなさい)

また、去年貰った指摘「少しだけゆっくり話してほしい わからなくなった瞬間に置いていかれて、どこやってるのか全くわからなくなる」を踏まえて意識して「ゆっくり話す+繰り返す」ことをやってるからか、単に説明の仕方が熟れてきてるからなのか、途中で眠る学生が今のところほぼいません。ピンポイントで頷いてくれたり、反応返してくれる学生も多いので、割と嬉しいです。

ペアプロは今日からやる予定でしたが、殆ど時間取れませんでした。ということでこっちは来週からだな。(一方で早くやりたがるペアもちらほらいて、休憩時間入ってもやってるペアもいるんだよな。良いことだ)

(プログラミング1) 初回は想定外の対応であたふた

木曜日, 4月 13th, 2017

Slack登録だけで20分近く時間かかったりしました。TAだけでなくサポーターの皆さんがいてくれて助かりました。ありがとうございます!

知能情報コース1期生へのプログラミング1が始まりました。

2016年度の1回目では「喋った内容は1割でもキャッチできてたら御の字で、最低限「関数、KISS原則、テスト」が残ってれば良いよねという気持ち」でやってましたが、あまりにも話し広げすぎてる雰囲気だったので、今回はいろいろと削りました。関数の話は丸々カット。仕様決めるの難しい(『25℃に室温を保つ空調のプログラム』顧客が本当に必要だったもの)も95%カットで、少し例を出してイメージさせるに留めました。

今年度は、空いた時間でプログラミングには理解・整理・翻訳の3ステップがあることをイメージ付け。それを踏まえてレポートで何を書いてほしいかを示したり。演習を一つ増やして等号の意味が異なることを解説&体験させたり、メモリ空間を含めた動作解説をしてみたり。また、今日一日で覚えて欲しい点を整理・強調もしてみました。また、今週から早速1回目の課題レポートも出しました。

説明&演習が程よい分量だったのか、ピンポイントな発言が学生から出たり、(まだペアプロしてないのだけど)課題取り組み時に試行錯誤&情報共有したりしてる姿を見れて嬉しかったです。

Python独習のためのチャート

水曜日, 4月 5th, 2017

プログラミング1(Python)の授業を持つようになってから、他学部から「受講or勉強したい」相談が舞い込むようになりました。後期はゼロなのでPythonに興味持つ人が増えてるのかなと想像しますが、実際の所はまだ良く分からず。今後も続くようならPython人気なんでしょう。

2017年度に関しては、入学者数自体が例年と比べて多いので、残念ですが受講は断ってます。その代わりに、、、ということで独習のための情報を折り返し伝えるようにしているのですが、何度も似たようなメール書くのもあれなので(便利な日本語)、目的別情報源を整理してみることにしました(上記PDF, GitHub参照)。書籍・サイト情報が少ない箇所は私自身が把握していない場所ですね。

プログラミング1のTA決定

火曜日, 3月 28th, 2017

先日TAを募集しましたが、名嘉村研のまえけん先生&うっしー先生に担当してもらえることになりました! きっとコメント欄にこっそりHas○ellとか縦読み入ったり、自動コメントプログラム作ってて本人不在になってたりすると思います(違)

1週目の内容も大凡調整が終わってきたので、他授業の準備に移れそうかな。

プログラミング1のTA募集(3/28募集終了)

木曜日, 3月 23rd, 2017

2016年度に引き続き、2017年度もNAL研メンバでTA担当するのが難しそうな雰囲気なので募集してみます。プログラミング1では2種類のTAを1名ずつ募集します。(本当はペアプロ対応で大量に欲しいけど、、)

希望者はmail/twitter/slack/直接口頭等で連絡下さい。3/28(火)まで待ってみて誰も希望者出ない場合はnews-ieで募集する予定。

<前提条件>
情報工学専攻の院生。

<募集TAその1: 授業中のサポート> -> 牛島先生に確定

  • 主なタスク: 授業中のサポート。主に学生の質問対応。特に前期は「インストール大会時にPC持ち込みしてなくて未設定〜中途半端な状態」、「何らかの理由で初期化」等の状態から授業で使える状態にするまでのサポートが必要になるケースがちらほらあります。次点でペアプロ時のサポート。欠席などの理由でパートナー不在時に入ってもらうことがあります。
  • 拘束時間: 毎週の授業時間(毎週木曜4時限目)はフル参加。何らかの理由で来れない時は誰か代理をお願いして下さい。

<募集TAその2: レポートコメントサポート> -> maeken先生に確定

  • 主なタスク: レポートに対して気づいたことを片っ端からコメント。今回はgoogleドキュメントで作成してもらい、コメント機能で書いてもらうことを想定してます。また、参考用に採点もお願いしています。
  • 2016年度の例: 去年の授業ページの先にある「Googleドキュメント」に学科アカウントでアクセスし、report2/evaluation2を眺めてもらうと良いかな。
  • 拘束時間: 「レポート提出締め切り後、2週間程度で採点」を5〜7回程度やってもらう予定。また、できればサポートルーム的な業務も兼ねて貰いたいので「x曜日のy時限目にzにいる」形で採点してもらえると嬉しいです。

仕込み始め

火曜日, 3月 7th, 2017

Sierraに入れ替えてからトラックパッドでの操作、特にジェスチャ周りがうまく機能せず。一度設定をOFFにしてからONにすると動くようになったのだけど、トラックパッドの設定だったりアクセシビリティの設定だったりとまとまってなくて上手く探せず。でもググれば一発です。そんなご時世なのでgoogle先生居なくなったら生きていけません。ただ、本来は「PC内でのヘルプ検索」なりで解決できるべきなんだよな。どうせ見つからないよなということで先にググっちゃうけど、それって負けてるよね。Siriに相談という道は一つの手段だと思うけど、まだまだ。といいつつ普段使ってないから何がどこまでできるかは妄想だったり。だって例示見ただけで「使いたくない」と思えるレベルだしなぁ。

来月から新学期ということで、それに向けて仕込み開始。プログラミング1は一度実施したということもあってだいぶ気が楽になってるのだけど、テコ入れしたい部分も少なくなく。優先順位が高い順で並べると、、

  1. シラバス、特に授業計画を修正する。2016年度予定計画は大分入れ替えたので。
  2. レポート課題を増やすか、レポート課題とは別に「手を動かす課題」を増やす。Jenkinsとかでの自動テストをパスしろぐらいの課題でも良いとは思うんだけど、準備する手間が。。
  3. 課題説明文ぐらいを英文にする(少しずつ増やしていく)。
  4. 逐次処理、数学とプログラミングにおける等号の違い、関数あたりの解説をもっと丁寧にやる。
  5. レポートレビュー(コメント)を、Googleドキュメントメインにした上でコメント機能でやってみる。

と、プログラミング1だけ見てもやりたいことあれこれあるわけですが、2017年度からは「工学部工学科知能情報コース」のカリキュラムが開始。新しい講義「工学概論」の担当も割当たっていて、そっちの準備はそもそもゼロからしないといけないから暫くはこっちだな。オムニバス形式で担当するのは1週分だけなんだけど、他コース含めていろんな学生が受講する科目なのでこっちも気合い入れないと。情報工学とか知能情報へのイントロダクションという位置づけで、情報検索・検索エンジンあたりを例題に話してみる予定です。昔沖縄高専に出前講義で話してきた内容が一つの案かなぁ。