導入事例:多摩大学様

TOPSIC と PG BATTLE で自発的学習、
プログラミング的思考を身につける講義


OPSIC と PG BATTLE で自発的学習、 プログラミング的思考を身につける講義01

多摩大学では「ゼミ力の多摩大」を掲げて、少人数の手作り教育で学生を育てています。

経営情報学部では2年生から始まる必修の「ホームゼミ」を中心に指導しており、情報系のゼミとしては、ビッグデータ・統計データ分析系と、3グラフィクスや VR ・ Web システムなどの開発系のゼミが展開されています。

今年度から、プログラミング教育に TOPSIC を利用する密度の濃い講義が開講されました。実際に講義を見学し、出原教授にプログラミング教育に関する情熱あふれるお話をうかがいました。

プログラミング教育に TOPSIC を導入した理由

今回、 TOPSIC を使って講義をしようと思われたのはなぜですか。

OPSIC と PG BATTLE で自発的学習、 プログラミング的思考を身につける講義02プログラムで何かを作ろうとするとき、最近では多くの場合、それが優秀なツールの組み合わせで実現できてしまいます。本当に基礎的なアルゴリズムがわからなくても、モノができたように見えてしまうところが、非常に大きな問題だと感じていました。

たとえば VR システムである程度モノが作れると思っている学生に対して、アルゴリズムの話をしてみると、実はきちんと理解していないことが多いのです。ところが、自分で考えて何かを生み出していくには、基本となるアルゴリズムが必要です。

この問題をなんとかカバーしたいとずっと思っていました。ある課題に対して、解法は一つではありません。それぞれが自分の考え方を説明して共有し、お互いに理解を深めていく。そのようなアルゴリズムの学習ができないか考えていたところで TOPSIC を拝見し「これだ!」と思いました。

ゼミ方式の TOPSIC 利用法

本日、見学しましたが、少人数制のゼミ方式で密度の濃い講義でしたね。

この講義に興味を持った学生には「これはプログラム言語を勉強するのではなく、プログラミング的な考え方を学ぶ講義だよ」という話をしました。一方で「これをやっておかないと、業界で生きていく上で限界が来る。仕様ががっちり固まっているものの開発実装はできるかも知れないけれど、何か新しいものを考えて作っていく力がつかない」とも話しました。その上でレベル1の問題をやらせてふるいにかけた結果、本当にやる気のある学生が残りました。フランスからの留学生も2名含まれています。

講義を開始したのはいつからですか?

今年の4月から 90 分講義を週1回行い、今日(6月 24 日)が本番のイベントの5回目です。最初の3回のイベントでは、レベル1とレベル2の問題を行いました。学生のレベルも上がってきて、4回目は学生から「そろそろレベル3行きましょう」という声が上がり、4回目はレベル1とレベル2とレベル3の問題です。こんなふうに学生側から声が上がるのは心強かったです。

(注) TOPSIC はレベル1~レベル6までの問題があり、数字が大きいほど難易度が高い。

講義の内容について詳しく教えてください。

講義の前半で前週の問題の正誤発表とコード解説、後半で次の問題を解くという時間配分です。学生は、次の講義までに、間違えた問題や効率の悪いプログラムの改良版を作成します。学生のスキルが向上して試験時間の長い問題を解くようになったので、5回目からは学生が持ち帰って自宅で問題を解き、講義ではコード解説とその内容を理解した学生が自身のコードを改良する方式に変えたところです。

アルゴリズムを学ぶ授業なので、生徒ごとに言語が違ってもよい

プログラミング言語は何を学んでいるのですか?

学生によってまちまちで、現在は C と C# と Python が使われています。教員の私は Pascal を使って同じ制限時間で問題を解いています。

先生が Pascal というのはなぜですか?

OPSIC と PG BATTLE で自発的学習、 プログラミング的思考を身につける講義03手続き型の言語の中で、 Pascal はコマンドや演算子がアルファベットで書かれているので、特殊な知識がなくてもアルゴリズムを追いやすいためです。 C や C# を使っている学生でも、それほど違和感なくアルゴリズムを理解できます。

例えば C で私が正解を書いてしまうと、それを書き写したら動いてしまいます。別の言語で書かれたアルゴリズムを理解した上で、自分の言語で書きなさいというふうにしたいのです。

私の経験では、他の言語からプログラムを移植することによって学べることはすごく大きく、これによって、言語の違いを超えたところにあるアルゴリズムを意識することができるのです。

同じ講義を別々の言語でやっているのはユニークですね。

こうするとお互いの言語の強み、弱みを自然に理解することができます。理屈の上では C は速くて Python は遅いとなんとなく知っているわけですが、実際に動かしてみて実行時間が明らかになったときに「確かに違うね」ということが目の前で見えるわけです。

一方で配列の扱いなどは、 Python はものすごく強力なライブラリを持っています。「あ、 Python で書いたらこんなに楽ができるんだ」と C の人たちは発見するわけです。

 TOPSIC で2単位、 PG BATTLE で2単位取得できる

この授業は単位も取れるんですよね。

多摩大学では、こうした新しい試みを単位認定する「アクティブ・ラーニングプログラム」という仕組みがあり、「 TOPSIC を利用したプログラミング的思考法の習得」で申請が通っています。4月から7月 20 日までの 12 回と予習・復習で2単位です。

OPSIC と PG BATTLE で自発的学習、 プログラミング的思考を身につける講義04実は、これとは別に、夏休み期間中に PG BATTLE の特訓をする集中講義を用意しています。こちらも「企業・学校対抗プログラミングコンテスト PG BATTLE 参加」という申請で「アクティブ・ラーニングプログラム」として認定されました。オンラインで 20 時間、学生を教室に集めての特訓が8時間、本戦が 90 分、そして終わった後の振り返りが2コマ3時間という内容で2単位です。

かなり盛り上がりそうですね。

盛り上がると思います。ただ、いま受講している留学生はこの時期にはもう帰ってしまっているので、フランスからの参戦になります。試験時間が現地時間の朝5時からなので、ちょっと早起きしてもらう必要があります(笑)。本戦前になんとかレベル3の打率7割くらいまで持っていきたいと思っています。

個々の成長が毎週着実に確認できる

今日が5回目ということですが、学生さんたちのレベルは上がってきましたか。

まず、レベル1はかなり正解率が上がってきました。レベル1は基本的には入出力と計算ができれば解ける問題なのですが、学生はこれまで標準入力のプログラムを書く機会があまりなかったので、苦労していました。レベル1がここまで解けるようになってきたので、ようやくアルゴリズム、どう考えたらいいのかというところに到達しています。

レベル2の複雑な条件判断が必要な問題はまだ正解率が低いですが、説明すれば理解できるようになってきました。以前は、説明しても何を言われているのかわからないというレベルだったので、アルゴリズム的な考え、プログラム的な考え方が身についてきたと思います。

学生自身も上達を実感しているわけですね。

解けなかった問題が解けるようになることで、かなり成長の実感があるようです。次の週までに「自分なりに考えてできました」というサイクルが普通に回るようになりました。自主的に前に進もうとする力が補強されている感じです。この楽しさには日本人もフランス人もありません。

先生自身も同じ問題を解いていますね。

先々週解いた問題で、数え上げ問題に見せかけておいて数学的な条件でループを減らせる問題がありました。学生は問題文通りに2重ループを回しましたが、それを私が1重ループで解いたのを見せて違いを説明すると、彼らの納得感が高くなります。

こんなふうに教員の力を自ら示すことで、学生を引っ張っています。特にフランスの学生には、教員だからといって無条件に尊敬してもらえるわけではないように思います。そうやって解いているうちに、私自身もレベルが上がってきました(笑)。

プログラミングを学びたい学生に広げていきたい

 TOPSIC を使った授業は今年初の試みですが、この後の展開や構想はありますか?

非常に優秀な仕組みなので、プログラミングをやっている学生はほぼ必修でいいぐらいに思っています。この命令を打つとこうなりますというような直訳風の言語の仕組みを学ぶのではなく、自分から何かを作っていく能力を鍛えられるツールとして、他の先生にも声をかけて広げていきたいです。

また、1年生の動機づけにも使えそうです。多摩大学は、大学に入学した後で進路を決める学生が多いのですが、最初からプログラミングをやってみたいと思っている学生も少なからずいます。大学全体としては、平均的な学生に合わせたカリキュラムを作らざるを得ないのですが、もっと先を走りたいと思っている学生にとっては、 TOPSIC はクイズ感覚で魅力的なので、ぜったいに面白いはずです。そうした学生たちが、自発的学習を前に進める仕組みを作れないかと思っています。

今日は授業を目の前で見て感動しました。学生がアルゴリズムの重要性を学んでいる姿は、本当に刺激的でした。

ビジネスにとって実務的、即戦力という意味では、たとえば Java でインタフェースを書けるとか、ツールを使って効率的に動くものを作れるという能力も重要でしょう。しかし、それは本質的にモノを作っていく力とは別物です。

私がよく学生に言っているのは「技術そのものは古くなっていく」ということです。ツールの使い方などは一生懸命覚えても5年、 10 年経ったら価値がなくなっているかもしれません。その一方で私が 30 年前に学んだことには、まったく価値が変わってないものがあります。そういうところをきっちり抑えていたら、世の中がどう変わっていっても対応できるはずです。

就職させるまでが大学の役割だとすれば、企業が即戦力を求めるならそういう学生を育てればいいでしょう。しかし、大学が学生を鍛えるのは、 30 年も 40 年もやっていける基礎的な力を身につけさせるためです。そう考えたときに、ツールの使い方を教えることだけが大学の役目ではないはずです。

確かにそういう本質的な力を付けるのが、大学の本来のミッションですね。

そういうところを評価してくれる企業が増えてくれるといいのですが…。

ゆくゆくは TOPSIC 何点というようなスコアを付けて履歴書に記すようにしたいと思っています。

本日は見学およびインタビュー、本当にありがとうございました。

多摩大学

ホームページ:
https://www.tama.ac.jp/
多摩大学について:多摩大学は「現代の志塾」という教育理念のもと、問題解決の最前線に立つ「志」人材の育成に尽力し、人間的な触れ合いによる少人数制ゼミを中心とした「手作り教育」を行っています。

掲載している企業情報および記事内容は、取材時( 2019 年6月)のものです。
記載されている社名・商品名などは各社の商標登録です。内容の無断複製・転載の一切を禁じます。

TOPSIC ご説明資料