memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

基礎ゼミで「プログラムはこうして作られるプログラマの頭の中をのぞいてみよう」をやってみる

今日は講義がない日なので、自宅で作業しています。

いつもであれば講義がなくてもやることはありますので出勤するのですが、これから歯医者に行かなければならず。。。それで自宅待機しているところです。

歯医者ですが、1月から通って先週にやっと完了したんですね。でも、最後にセラミックの歯を詰めたのですが、その翌日にごはん中に取れてしまい(割れた)。また、歯医者なわけです。。。orz。もちろん、タダですよね?人生初です。こんなことは。

f:id:ke_takahashi:20170410090647p:plain

歯医者まで時間があったので、明日の授業準備をしていました。

ここから本題です。

どの大学でも、1年前期にレポートの書き方や情報機器の扱い方などを学ぶフレッシュマン教育があると思います。

私の所属する大学でも基礎ゼミという科目がありまして取り組んできました。その教育内容は試行錯誤を経ていろいろと変遷してきました。ノートの取り方、レポートの書き方、基礎数学、プレゼンテーションなどなどです。

そうした基礎知識をイチから学ぶことはそれなりに意味のあることとは思うのですが、感覚的にうまくハマらないんですね。。。

ハマらない感覚を文字にするのは難しいのですが、個人的には「現実味がない」ということかと思います。

企業なんかでも新人教育では座学で1つ1つ教えることもあるでしょうけど、多くの知識はOJTで教え学ぶと思います。この方法がいいか悪いかわかりませんが、実際に学生が遭遇する状況の中で必要なことを教えていく。。。というのが教わる方にとって必要性を感じるでしょうし、なぜ、いつ、その知識や技術を使うのかがわかると思います。

では、何を教えるか?

学生の期待と私のやりやすさの点でプログラミングを選択します。

1年次からプログラミング演習がありますが、その演習では、プログラミングを英文法と同様に1つ1つ機能を学習していきます。課題の多くはパズル的であり、そうした課題に素直に興味をもつ学生は多いとは言えないと思います。

どんな技術や学問にもそうした基礎があると思いますのでしかたがないことなのですが。。。なかなか難しい。主に2、3年次を担当しているので、できるだけ入学当初のモチベーションを維持したまま、またプログラミングに対する興味を失わないで欲しいというのが願いではあります。

興味を失う原因の1つとして、学生らがイメージしているアプリソフトウェアの完成イメージとあまりにかけ離れている点が考えられます。1年次で学ぶプログラミングはあまりにプリミティブなので、そのこと自体が理解できたとしても、それをいつどのような場面で使うのかわからない。。。しかもパズル的に難しいと嫌になる学生が増えるというところじゃないかと感じてきました。

そこで、ここ数年はコロコロ工作ブロックやScratchなどを前期に学習し、後期に小学校に行って自分らが先生になるという体験をしてもらってきました。

コロコロ工作ブロックなどのビジアルプログラミング言語(VPL)はタイプミスによるエラーが発生しません。また、プログラムの正当性をビジュアルに(キャラクターの動き)などですぐに確認できる点があります。さらに、人に教えることを目的としているため、自分がまず学ばなければならないという動機づけになり、さらに教えることでさらに深く学べるはずという私の体験的な学習効果の期待も込めての取り組みでした。

ただ、残念ながら、協力してくれていた小学校の都合がつかなくなったため、今年度から別テーマを用意する必要が出てきました。

考えた結果、タイトルの本を写経してみることにしました。

プログラミング言語および開発環境(sunaba)という著者自らが開発した独自なもので、日本語でプログラムを記述します。ちなみに著者はセガの方で、ゲームを作りがらイメージしたモノを形にしていくプロセスを段階的に記述してくれています。

これまでは、こうしたネタ本がある場合は、輪講、輪読のようなスタイルをとってきましたが、そもそも1年次では技術書を読んだこともないでしょうから、自分で読んで理解して進めていく形にしたいと思います。ある程度の進度の目標は提示したとしても、それを厳守させることは考えていません。

あくまで、自分のペースでしっかり理解しながら進めていって欲しいというのが願いです。できれば最終的にはある程度の達成感とプログラミングに対する興味が向上してくれることを願っています。

教員は質問があれば対応する。。。という感じですね。サポーターです。

さて、どうなりますやら?