第1週がガイダンス、第2週が共通授業(ITC-LMSによるオンデマンド受講)、
第3- 13週が個別授業となります。
はじめに,チャレンジする問題に関する紹介をし,目標地点のイメージを共有する.
最初の何回かで,プログラミング言語Python,およびPythonの中で使う可視化,アニメーション,数値計算のためのライブラリについて説明し,簡単な練習問題を行う.
それ以降はグループを結成し,チャレンジ問題を解いていく.
このゼミの中で行われる活動には以下があります.以下を臨機応変に,参加学生が主体的に組み合わせます.
* グループごとの議論:
グループごとに問題解決のためのアイデアを出しあう,問題点を共有する,解決に至るまでのステップを議論する
* プログラミング演習:
解決の方針が定まったとして,それをプログラムにするための,演習を行います.プログラミングは語学と似ていて「習うより慣れろ」的な側面が多いので,その「慣れろ」にもある程度の時間を取ります
* 進捗共有のためのミニ発表:
2回に一回程度,授業時間の最後にグループ進捗や次週の予定について情報共有し,コメントをし合います.
* 学生による講義:
必要なプログラミング,物理,数学などについて調査・考察した結果で,グループ間で共有すると有用な情報を,教員役となる学生を決めて講義風に発表します(例えばプログラミングで必要なツールについて,プログラミングが得意な学生が講義したりする)
* 発表会:
成果をまとめて発表する
* 教員によるインデキシング:
教員からの情報提供.といってもあまり多くを講義するのではなく,情報へのポインタやキーワードを与えて,学生の調査の手助けをする程度.その意味でインデキシング(索引付け)と呼ぶ
重要なことは,「実世界の問題はほとんど常に難しい」ということです. 学校で習ったことだけで直ちに答えが出ることは殆ど無く, それは大学の授業をマスターしたしても同じことです. また実世界では,学校の勉強のように単元に分かれていて, ある問題がどの単元に出ているかによって取り出すべき法則や公式が想像できる, というようなこともありません.
その状況で重要なことは何でしょうか? 個々の分野の基礎的な勉強をおろそかにしてはいけませんが, 残念ながらそれだけだとなかなか実践的な,役に立つ, 問題解決能力は身につきません.
愚直ですが「基本に立ち返って自分で考えられる」 ことが大事だろうと思います.また,同じ理由で, ある問題が自分一人であっさり解決,ということもあまりないので, 他の人と知恵を出し合えることも重要です. 他の人と議論するためには嫌でも「基本に立ちかえる」必要があります. 「なぜそうするのか,なぜそのやり方でいいのか」という疑問に対して, 「教科書のあそこに書いてあった公式だから」では,通用しません. 議論は,自分が本当にどれくらいわかっているかがわかるきっかけになります.