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

1回目のレポート

火曜日, 5月 7th, 2019

プログラミング1のレポート1回目採点。

print関数使ったり、変数使ったりするぐらいの内容ですが、
・「print(出力したい文字列)」みたいに、クォートを書き忘れたり。
・「name = (‘スライム’)」みたいに、関数呼び出し時の丸括弧との違いに悩んでたり。
・「print(‘ほげ’)」みたいに、全角半角で悩んでたり。
あるあるネタが散らばってます。

レポートにはエラーが出てもそのまま書いて、それをどう解釈してどう解決していったのかを書くようにと伝えてあるので、そこまで書いてあるなら減点なし(むしろ加点)してます。平均点は100点超えかな?。

全角半角問題は、Rictyとか紹介したら良かったか。

プログラミング1開始

金曜日, 4月 12th, 2019

プログラミング1が始まって、授業でははじめての対面。新入生は基本的にmacOS初心者なので、アプリの起動&終了、複数立ち上がってるアプリのアクティブを切り替え、みたいな話もしつつ「プログラミングとは」喋ってるとあっという間に時間が。一応、コード例の動作方法やったし、str, int, float と基本的な演算子、変数の使い方まで触れたので最小限はやったか。

赤嶺先生の演習1の方は、少し説明不足(知ってる前提がたまにある)なのと、スピードが早いように私は感じたけど、学生的にはどうだったのかしら。逆にあのぐらいの方が良いのかな。

プログラミング1が終了

木曜日, 7月 26th, 2018

終わったのは授業だけで、レポート含めた採点がまだ残ってますが、一区切りには違いない。最終レポート出し終えてない学生かなり多いけど大丈夫か〜。

前記最終回ということで、今日の内容は振り返りと、授業後の道標と題してPythonやプログラミング、ソフトウェア開発、情報工学、分家理系問わず大学生として身につけて欲しいもの。といった話をしてました。

何か一つ「グッとくる」ものがあればそれで良いんですけどね。

レポート採点中

火曜日, 7月 24th, 2018

プログラミング1の話。

昨日のトラブルは、やっぱり学生側に原因がありました。課題取り組んでるうちに読み込み対象のファイル編集してたの忘れてたとか、もしくは友人らとやってるうちにいつの間にか編集済みファイルになってたとかありそうだしね。自動テスト導入したら学生にとっても分かりやすいかなとは思いつつも、どうせコードレビューするのであまり手間暇変わらないかなということでそこまではやってません。マッハ新書的にはそうじゃないだろ、だと思いますが。

レポート6の仮採点(後でTA採と調整)は昨晩で終わって、google documentで書かせてるレポートに直接コメント書いていますが、その数十分後には学生から応答が来ることもたまにあって面白いです。

毎年眼を見張るような学生もいますし、そこまでではない(けど初学者としては十分)学生もいます。いずれにしてもペアプロ時間取るようになってからは手も口も動かす時間増えてるだろうし、今回は後続の演習でもプログラミングの演習やる時間増えてるので、今年度の学生はかなりプロログラミング周りの演習時間増えてるはず。そこで溢れてしまう学生もゼロではないけど、そこを救うには学生自身から声を上げて(相談なり行動に移して)欲しいかな。自分から学ぶ意志が薄い状況で受動的にやってるだけだと変わらないし。

提出されてるコードが実行できない

月曜日, 7月 23rd, 2018

プログラミング1の話。

課題レポート6の採点してるんですが、提出されてるコードが動かない学生がちらほらいて。実行結果はレポートに掲載してるので提出版が古いのだと想像しますし、実際一部の学生は再提出させると動作確認までできるのですが、再提出後もまだ動かないケースもあって。

外部ファイルを利用するので実はそこのファイル編集してたりしないかが怪しいですが、単に「アップロードし直してるコードと、手元で動かしてるコードとが違うものだった」の可能性が高い気がするんだよな。

ま、授業前後なり後で確認しましょう〜。

うまく失敗しよう

水曜日, 7月 18th, 2018

プログラミング1な話。

プログラミングに限った話じゃないんですが、世の中は失敗してなんぼ。机上の空論よりも車輪の再発明の方がマシだし、その過程を通して得られる学びも多々あります。だから変なコード書いて「突っ込まれるのが怖い」と身構えちゃうぐらいなら、「こういうコード書いてみたんですけど、チェック(レビュー)してもらえませんか?」ぐらいの姿勢で動いた方が良いです。

どうしても突っ込まれるのが怖いのであれば、その「怖さの段階」を減らす工夫はできるかもしれないので、そういう相談をしてみるのも手。そうでもなく、どうしても突っ込まれるのは嫌だとするなら、恐らくその人は自分勝手に振る舞える環境を自分だけの力で整えるしかないんじゃないかなぁ。

バージョン管理システム

金曜日, 7月 13th, 2018

プログラミング1な話。昨日で書いてたんだけどポストし忘れてたらしい。

一つの講義は15コマ*90分で今日が13コマ目。ということでそろそろ終わりな時期です。授業で触れる残り部分は、バージョン管理システムとアサーション。

今日はGit入門でイントロダクションのみで、ベアリポジトリやステージングエリアといった概念の解説と、実際にpushしてバージョンを戻してみたり、working directory削除してベアリポジトリから復元したり、ぐらいの内容。この時点では全体の流れを意識してもらうことを重要視して、ベアリポジトリはローカルに用意。

GitHub使うのは後期にやる予定ですが、2年次の別授業でやってるようだし、参考サイト提示してるので、後はやってくれ〜で任せても良いんじゃないか節。mergeやPRあたりは演習として用意してあげた方が良いだろうとは思いますが。

最後の課題はシンプルな検索エンジン作ろうというもの。昨日出したんだけど、もう終わってる学生いるらしい。早い。出典の世界でもっとも強力な9のアルゴリズムにはその続きや、それ以外にも面白い話あるので、余裕ある人は読んでみよう。

勘所的な話

木曜日, 7月 5th, 2018

プログラミング1は、教科書6章「Testing and Debugging」の概説。ブラックテストやホワイトテストといった話を通して、どこでバグが起きやすいか、どういうテストをした方が良いかといった勘所な章ですね。といっても事細かにあれこれ話しても残らないだろうということで、概説に留め、ペアプロの時間を長めに。

演習1でも作業する時間が増えてるので、ここ数週間でそれなりに底上げできてるんじゃないかな〜。勿論、いまでもインデントエラー出てて対応できない人がたまにいますが。ま、仕方ない。

それよりも欠席が目立ったのが気がかりか。たまたま重なっただけなら良いけど、課題なり授業なりについてこれなくて、ということだと何かしら手を打とうかという話にもなるけど、まずは相談なり自分から行動してほしいかなぁ。授業中だとTAもいるから、その気があれば質問しまくれる環境ではあるんだよな。

急に抽象度が高くなるケース

木曜日, 6月 28th, 2018

プログラミング1の11回目は、辞書型をメインにしつつ、Jupyter & Numpy の紹介。それほどトラブルもなかったので、予定通りペアプロ演習する時間を長めに取れました。演習5のBig or Smallを終えて、演習6のガチャシミュレータに入ってるペアもちらほらいるらしい。

赤嶺先生の演習1では、
 ・同じ処理が繰り返される状況=>ループ使おうぜ。
 ・それが複数出てくる状況=>二重ループ使おうぜ。
 ・例外が発生する状況=>条件分岐しようぜ。
みたいなのを組み合わせながら進める問題になってて、少しずつハードルが上がってきてます。1〜2回目までは、多分、解説聞いて理解できるし、コード例見ても理解できてる層が多いけど、そろそろ組み合わせが複雑になってきてる分、ついてこれなくなってきてる学生が増え始めてるかも(多分)。解説聞いてる分にはわかるけど、それをどうコードに落とすか、なんだよな。ま、悩みながら取り組もう〜。

久しぶりにペアプロ

木曜日, 6月 21st, 2018

プログラミング1の話。

先々週ぐらいから「久しぶりにペアプロやるぞ〜」と宣言しつつ、PyCharmの設定トラブルで予想以上に時間取られたり、昨年度より解説丁寧にした分時間かかったりで時間取れず。一方でプログラミング演習の方で、赤嶺先生主催の「プログラミングの演習」をやってくれてるのでそこで良いかなとも思いつつ。それでも実際手を動かすのが重要だよなということで、今日は新規の内容少なめでペアプロだけで1時間取りました。

やらせてみると分かりやすいですが、今でもIndentationErrorやSyntaxErrorを解釈できてない学生がちらほら。一部は同じ質問してくることもあるので「これどういうことだと思う?」と考えさせたり、「どう調べたら良いだろう?」と解決手段を検討させたりしてみてますが、ま、1年次だしな。少しずつ体系的に取り組めるようになろう〜。

名嘉さんアイデアの「複数人に分割してタスク割り当てて、それらを統合すると動く課題」というのも面白そう。何か考えてみるかなー。