わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

アルバイト型プログラミング,正社員型プログラミング

プログラミングの「講義」は実質的に今日でおしまいです.次回は演習室で実施し,その次は,試験直前ということで,おさらい問題を解いてもらいます.「講義」が今日までなら,「余談」も,今回が最後です.
で,何を話すかなんですが…みなさんの多くは,ひととおり試験を受けると,受かろうが落ちようが,春休みを過ごし,ずいぶんとプログラミングの知識や経験が,頭から抜け落ちた状態で,2年の授業,そしてプログラミング演習を受講することになります.
1年後期と2年前期のプログラミング科目間のギャップというのは,教員にとっても,受講する・してきた学生にとっても,実のところ悩みの種です.
教える側としては,そこでどう連携させるか,距離を縮めればいいのかに苦心してきたわけですが,今回,発想を変えることにしました.違いがあるんだから,その違いを明らかにしたいと思います.
1年までの授業でするプログラミングは,アルバイトのようなものです.そこでは,教員が用意した「課題」を解きます.そしてその「正誤判定」は,基本的に教員が行います.小テストで各自,マルバツをつけてもらっていますが,正解はこちらで言っていますね.
正しい手順で実行すれば,誰がやっても結果は同じになるように,課題を設定します.まあ,アルバイトなら,何種類かのやり方・スタイルはあるのかもしれません.おぼつかない手つきも,数をこなせば慣れてきます.熟練できるとはいえ,基本的には「単純作業」です.
そして,2年からの授業では,プログラミングも言わば,正社員が行うのと似たことをします.最も重要なのは,制約を意識して,「目標」を決める点です.制約としては,期限…いつまでに完了しなければいけないか,を抜かすわけにはいきませんね.そのほかに,実行するあなた自身の能力にも,注意を払いたいところです.
目標を決め,それを達成するために行動します.正解というよりは,「成功」を目指します.できあがったものが,目標・目的に合致しているか,確認するのも,作った人自身です.技術者には,自他が提案するモノが要件を満たすか,動かすとおかしなことにならないか,などを検証することが求められます.
目標を決めるのに,時間をかけますが,いったん決めたらずっと固定,というわけでもありません.何らかの事情で,当初の予定どおりにいかないとなったら,仕事場なら上司に,授業なら教員と相談して,目標や行動を変更することだってあり得るでしょう.
プログラミング演習では,受講者共通の課題を出すのが基本ですので,学生ごとに結果はさほど変わらない…と言いたいところですが,違うのですよ.ソースコードは,もう,学生によってぜんぜん違います.インデントや空白・空行の仕方だとか,コメントの書き方,関数の配列の仕方,ローカル変数の名前まで,十人十色,千差万別なのです.共通の水準を求めながらも,「人によって目に見える成果がまったく違う」というのも,正社員型プログラミングの特徴です.
先ほど,アルバイトは「単純作業」と言いました.それに対応する,正社員型プログラミングの四字熟語は…「知的活動」でしょうね.ひらがなだと「やりがい」です.緩やかな制約のもとで,自分のしたいことを決め,実行できるのです.

何これ

昨日の授業の余談その2です.その1は,ResponseSheetに,ソーティングと,年賀はがき当せん番号ネタを加えました*1
「正社員型」と書いていますが,実のところ「エンジニアリングデザイン」のことです.デザインする能力は,社会に出ても役立つのだよ*2と表現してみた次第です.
私自身の(塾講師・家庭教師を除く)アルバイト経験も,思い出しながら文章に取り入れました.大阪市内の決して大きくない印刷会社で,軽ワゴンを運転していました.常勤ではなく,春休み・夏休み限定です.
社内に印刷機があります.そこで刷られたものを紙工所や製本所などに運び,1日後くらいに取りに行きます.納品に行くことも多く,アルバイトとはいえ「会社の顔」であることは,意識していました.生涯唯一の交通違反(駐車禁止)をしまして,書かれている警察署へ行ったら,中の人がどこかに電話をかけ「出頭」という言葉を使っていたのも,今となったらいい思い出です.
それまで,大阪の電車事情はまあまあ理解していたのですが,このアルバイトで道路事情を学びました.しかし,アルバイト・正社員の別はやはりあって,受け渡しの手配,そして私のスケジューリングは,課長(のちに部長に昇進)が行っていたのでした.モノを扱うことばかりで,カネの扱いは一切ありませんでした.ヒトは…社長を助手席に乗せて運ぶこともありましたが…計画を立ててヒトを動かすということは,しませんでした.指示を受けて動く側でした.
学習における二分法として,過去にタイプA学習,タイプB学習を書いています.「アルバイト型プログラミング」と「正社員型プログラミング」も,水と油ではなく,重ね合わせることができると,考えています.実際,アルバイトの手が足りないだとか,アルバイトに手本を見せるといったときには,正社員もアルバイトの身になって動くわけです.単純作業の枠を越えた,アルバイトの創意工夫そして行動の事例は,数えるときりがありません.

*1:今年は,十の位が3, 6, 7, 9, 0だとみな外れなようで.

*2:就職活動にも有用でしょうね.