わさっきhb

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

学科学生が身につけるプログラミング能力の私案(1)

自分の学科の学生に,どんなプログラミング能力が身についてくれているといいかを,妄想してみました.
もっと検討し,学科教員*1の了承を得てから,授業や研究室指導に活用していきたいと考えていますが,現時点では「個人の経験に基づく発想」に過ぎないことを,ここに明記しておきます.
「3年生の研究室配属時」と「卒業時」の2つに分けて,それぞれで要請されるプログラミング能力を立ててみます.3年配属は9月末ですので,これは,3年前期までの2年半に学修して獲得する能力ということになります.
今日は,3年生の研究室配属の時点で身につけておいてもらいたいプログラミング能力を書くことにします.大きくは次の2点です.

  • 計算機の利用およびプログラミングに関する基本的な語句について,いつ質問されても適切な答えを言えるようにすること.
  • 目的,対象(入出力),技術的な助言technical advicesが教員から与えられれば,その仕様を満たすプログラムをCで書くことができる.

補足です.

  • 基本的な語句ですが,必修科目で学んでいて,研究室活動の中だけでなく,社会に出てからも必要と思われる語句は,数百は下らないと思います.しかしそれらをすべて列挙し,「理解せよ!」というのは非現実的なので,ここでは代わりに,20〜30で代表させることにします.しかしそれらの一つ一つを「説明」できるようになるまでには,その数倍〜10倍以上の語句や概念も合わせて理解しているだろう,ということです.
  • 具体的な「基本的な語句」は,数年の時間経過には耐えられるようにしたいと思います.別エントリで案を出し,アドバイス,学科内の授業内容などをもとに,良い方向へ編集していくことにします.
  • どんなプログラムが書ければいいかについてですが,まずは,「何(どんなデータ)を対象として」「何を使って」「何をするのか」という枠を定めるのは教員の仕事とし,その枠の中で,要件を満たすプログラムを書けることを目標とします.この枠は,研究活動をしていく中で緩くなります.卒業研究をしていく中で,学生がその枠を決め,自主的にプログラムを作っていけるよう,教員が誘導していければいいのですが.
  • 書くプログラムに,制限を置いておきます*2
    • ソースコードの行数は,新規に作る*3ものとして,単一ファイルで300行程度まで.
    • 完成までの所要時間は,教員が自分で作るなら30分〜1時間程度のものとします*4.学生には,1時間〜1日くらいでできるものとしましょう.
    • 実行プログラムの質ですが,教員のチェックで,1〜2組の入力が合っていればよいという程度にしましょう.ある入力でうまくいかないものがあれば,教員が原因を指摘し,学生がデバッグするということで.

「学生の能力」について考えてきたのですが,後半では,「教員」がたびたび登場しています.書いている本人がそうだからというのもありますが,学生の能力を見定め,伸ばすのは,教員の役割であるという点も,忘れないようにしたいものです.
最後に,上記の能力がなかったら研究室に配属されない,という位置づけのものではないことを申し添えないといけませんね.研究室配属後に*5勉強し直すことは可能だし,歓迎したいと思います.

*1:たぶん「学科」の了承は難しい.まず方針を立てて行動し,成果が出たら学科の教育改善関係の会議に報告する,という流れにするのがよさそう.

*2:これは,問う「教員」側の制限であり,プログラムを書く「学生」にとっては,制限を越えて多い行数,高度な質のソースコードを書けるのであれば,より高度な能力として歓迎されることでしょう.

*3:すでにあるプログラムを修正するとか,ソースファイルの穴埋めをするとかではない,という意味です.

*4:逆に,教員が見通しを立てられないものを,学生にやらさないようにします.自戒,自戒.

*5:今,これを読んでいる3年生のみなさんは,今のうちに!!