講義の内容は別途書くが、さすが、世界でも一流のStanford大学だという感じがする。
今回、受講しているのは指導教官であるProf. John OusterhoutのCS142 ( Web Applications ) である。
Prof. Johnの授業は、厳しいと定評があるらしく、今期はでていないが、Operationg systemの授業では、OSのコードのデバッグをするらしい。。
最も見識深いのが、Johnの授業のThe thought for the weekend. である。これらは以下に書いた。
2013年5月6日月曜日: The thought for the weekend - Stanford大CS142より
2013年5月21日火曜日: 中間試験試験後に起きたこと - CS142から
Computer Science (CS)の授業とは)
http://www-cs.stanford.edu/courses にあるように、授業は、CS xyz (xyzは数字)とよばれ、100の桁が1のものは学部生初級、2のものが学部上級ないしは院初級。というようにランク付けされている。
講義 CS142 (Web Application) の概要)
Stanford大は、4半期制(Quater)なので、Spring Quater は4月に始まり6月で終わる。5/8頃に中間試験(mid term) がある。授業は、週3回 x 50分。週2回 x 1時間30分、週1回 x 3時間の3種類があり、先生が選んでいる。
今年の春は、12:15分から13:05という、これまたお食事タイムになっているが、400人の定員から漏れる学生がでていて1ヶ月経ったが、教室はいまだにほぼ満席である。
(それにしても、教室は、冷房が効きすぎで、長袖にジャケットでも、やたら寒い。米国人は、Tシャツ一枚に短パン、ビーサンだが。。)
四半期maxで22単位とれるらしく、学生によってはスケジュールがびっしり。試験の時間がとれないので、授業中にアンケートをとって、3日 x 3つのタイムスロットから決めたが、夜の20時から試験というスケジュールになっている。当然、早朝の試験とかもあるだろう。。
で内容や資料は公開されている。
先生も準備)
Prof. John Ousterhoutは、指導教官なので、研究室のランチミーティングで授業の準備の話しが時々出る。この授業に供えて、かれは、講義ノートと内容を見直している。
そして、
先生も準備)
Prof. John Ousterhoutは、指導教官なので、研究室のランチミーティングで授業の準備の話しが時々出る。この授業に供えて、かれは、講義ノートと内容を見直している。
そして、
- 教室には10分前にはきて、黒板が消えているか確認し、PCを起動し、マイクを確認し、講義ノートにざっと目を通す
- 講義中も時々講義ノートを確認する。ときどき、間違えて飛ばして、戻ることもある。
- The thought for the weekendという、蛇足の話しでも、かなり詳細な授業ノートを書いてきていて、目を通しながら説明をしている。
- 毎週金曜の午後にTA(Teaching Assistant)の学生らと、会議室で授業の打ち合わせをしている。
つまり、400人もの前途が期待される学生に授業をするのだから、いい加減ではいけないという、プロ意識なのだろう。。
教育は、次の世代の人を育てるものであり、一番大切な職業である。プロ意識のある教育者が増えれば、それを受け継いだ教育者が育ち国は強くなる。逆になれば、負のスパイラルに陥る。以下にも書いたが、どうも日本の政府は勘違いしているように思えてならない。
2013年2月7日木曜日: 大学の本分は教育ではないのか。。
とても速い授業の展開)
授業の進みはとんでもなく早い。
http://www.stanford.edu/~ouster/cgi-bin/cs142-spring13/lectures.php にあるように、
- 1週目) HTML, CSS - ここで、Project1の課題が出題。
http://www.stanford.edu/~ouster/cgi-bin/cs142-spring13/projects.php に、内容有り。採点まで全部書かれている。課題2のCSSでtabを作るというのが難問。 - 2週目) URLとLink, Ruby - まつもとゆきひろ 氏が作成したRubyは米国でも人気。Prof. Johnも絶賛している。ここで、Project2の課題が出題。最初の問題から、授業で習ったことだけでは、解けない。自分で調べないとダメ。まず、所定のRubyを自分でマシンにインストールしないと話しにならない。。
(MacへのRubyのインストールで、ちょっとはまった。。) - 3週目) RailsとSQL 。ここで、Project3の課題が出題。Railsもインストールして自分出実験して提出。
- 4週目) SQL, Active Record, Cookies, Forms
- 5週目) Javascript - Javascriptは、もともとsunでは、Livescriptと呼ばれていたもので、Javaとは完全に別物という説明から入った。変数は型がないし、objectの作り方も全く違う。
- その他、Web Security -- Same Originなどによる対策法と攻撃と対策の進化、現状のデータセンターとMemcached、教授が進めているRAMCloudプロジェクトの紹介。
Java, Webは当たり前)
授業中、Prof. Johnは、何度もこう言う。「web pageを作ったり、Javascriptを使うのは、高校生でもできる。そんなことは、トップスクールのStanfordの学生には期待しない。」
「君たちは、(今までのシステムが作られた経緯とそのシステムの長短を理解し)、次の時代のシステムを作れる人間になってほしい。」
日本では、大学ですら、今の最新技術、それも欧米で誰かが開発したものを教えるのではなかろうか。。それでは、次の技術はでてこない。
また、マスコミやエンジニアも今の最新技術すら使いこなせない人が多いので、「Home pageを作れたり、Javascriptが書ける、高校生をスーパ高校生と賞賛する。」もちろん、励ますのは悪くないが、そこから先が重要なことを、次の世代の学生たちに伝えるのは誰がやるのだろうか。。
授業の姿)
授業中、Prof. Johnは、何度もこう言う。「web pageを作ったり、Javascriptを使うのは、高校生でもできる。そんなことは、トップスクールのStanfordの学生には期待しない。」
「君たちは、(今までのシステムが作られた経緯とそのシステムの長短を理解し)、次の時代のシステムを作れる人間になってほしい。」
日本では、大学ですら、今の最新技術、それも欧米で誰かが開発したものを教えるのではなかろうか。。それでは、次の技術はでてこない。
また、マスコミやエンジニアも今の最新技術すら使いこなせない人が多いので、「Home pageを作れたり、Javascriptが書ける、高校生をスーパ高校生と賞賛する。」もちろん、励ますのは悪くないが、そこから先が重要なことを、次の世代の学生たちに伝えるのは誰がやるのだろうか。。
授業の姿)
授業では、言語の詳細を教えるのではない。私が理解するに、それは、大学生なら本を買うなり、webを引けば自習できるから。HTMLについては、引用すべきURLや文献がwebに乗っている。それができないレベルの学生はStanfordには、そぐわないということだろう。
授業で教えるのは、以下のポイントである。
- 技術発展の歴史
- なぜ、その技術が必要になったか。例えば、RubyとかRails
- それらの長所と課題
そして、それらは、スライドではなく、黒板に板書していく。
ひとしきり説明すると、質問をとるが、大体数件は会場から質問がでる。一日の授業で30件は出る。先生も答えられないようなものもでる。
また、会場にはMr. Javascriptと呼ばれる学生もいて、先生も時々彼に答えを教えてもらう。経験者や一度会社に勤めてから戻る学生もいるので、レベルはまちまちである。
その後、PCの画面を使って,実際に実験してみせる。学生たちも、Mac(PCはあまりいない。Prof. JohnはPCだが。。)を持っているので、その場で実験ができる。
まとめると、
- 概要は、webに、シラバス(授業の進め方)、スライド、説明文書、project(課題)が掲載されている。課題には必要なツールを自分のPC/Macにインストールするやりかたがでている。
- 板書(歴史、必要性、言語の得失)
- 先生のPCで実験する画面をスクリーンに映す
- 質疑
- いくつかこれを繰り返し
- Administrative talk (業務報告)
- また、1-5の繰り返し
の具合である。授業の中間で、中間試験の日程とか課題の締め切りとかに関する事務報告をやる。
こうやって毎度板書していく
CS142の教室の風景
|
CSSとHTMLの関係をソースをいじりながら実践してみせている様子。 学生から質問がでると、実際にやって試してくれるので分かりやすい。 |
日本との違い)
手取り足取りは教えない。教科書やwebでは分からないところを教え、質疑をするのが授業。課題をやるには、内容が足らないので自分で調べないとダメ。
とはいっても、結構、初歩的な質問がでるが学生も物怖じすることもないし、先生も丁寧に答えている。つまり、知識ではなく学ぶやり方を教えている。
それを大学で教えられるか、やはり知識を教えるに留まるか。。
日本は、高校までは教育レベルが高いというが、大学であっという間に米国に抜かれるという。この差が、こういうところにあるのではなかろうか。。
日本の大学の先生は、海外の大学への留学経験があるはずであり、分かっているはずである。文科省の役人が分かっていないのか、今の米国が昔とは変わってしまっているのか、昔の留学のことは忘れてしまったのか。。
学ぶ方法を教える)
学ぶ方法を教えるのが教師である。学ぶ方法さえ分かってしまえば、あとは独学で良い。特に最近はInternetもあり先進国には書籍も沢山ある。
CS142では)
静的HTML → CSS → CGI → 第一世代Dynamic web → 第二世代Dynamic webという流れとそれぞれの長短。その解決の歴史を教えた。
Rubyの時にも、Rubyの良さとして、1) 全てがobject, 2) メタプログラミング 3) blockとiterator を最初に説明し、その価値の説明に時間を割いた。
その結果、dynamic webとしてjavascriptとその利点(極めてシンプルであること) と課題(デフォルトで変数がglobal変数というのが一番の課題) を説明したときには、なぜ、javascriptなのかという質問が会場からでてきた。これは、現在、多くのブラウザがサポートしているのはjavascriptしかないので、というのが一番分かりやすい答え。。
日本だと)
日本だと、知識=結果を教える教育になる。この結果なのか、「流行っているから」とか、「みんなが良いといっているから」という価値判断軸だけで行動する人間が増えているように思う。
当然、評価が定まっていない新しいものに対して、良いのか悪いのか判断できず、判断できる人がいる諸外国の後塵を拝することになる。。
巷では、村上春樹の小説が流行ったり、一頃前には、フェルメールの真珠の首飾りの少女の展示に観客が殺到したり。。一般人なら流行に乗るのも分かるが、知識人といわれる人でも、そういうミーハーな動きをしている。
音楽の趣味もそうであって、「なぜ、その曲がよいのでしょう?」「なぜ、その演奏家が上手いのでしょう?」「どういう音が良い音なのですか?」と聞いても、説明が返ってこないことが多い。たぶん、「良いと言われているから」が答えなのかも。。
それでは、自分で新しいものは生み出せない。屁理屈でもいいので、自分が納得のいく、説明を付ける習慣が必要なのでは。。
欧米だと)
また、欧米で、「どうして好きなの?」と聞かれたときに、「流行っているから」「とか、評判がいいから」などと答えていたら、知識人としては、相手にしてもらえない。自分の判断基準をもっていないからである。
「xx氏が、良いと言っているから」などと、答えれば、「xx氏の意見じゃない、君の意見を聞いているんだ。」と返ってきて、聞きかじったxx氏の評論を語ったりすれば、突っ込みが入って答えが返せなくなる恐れもある。。
判断をするためには、知識が必要である。いわゆる、リテラシと呼ばれる教育である。が、それは、困難な状況・新しい状況を判断して対処する技術を獲得するための部品にすぎない。部品だけを獲得して終わりにしてしまっては、高等教育としては不十分に思う。
若者達への期待)
年寄り達はもはや変われないので、若い人たちが変わっていくことに期待している。そのためには、柔軟な理解力がある若いうちにどんどん世界にでて、井の中の蛙の日本とは違った世界があることを体験してもらいたい。。
年寄りが海外にでても、もはや固定概念の小さな穴からしか見られないことが多いようで、本質的に理解したような感想は、あまり聞くことはない。。
中間試験)
5/3日の授業で、Administrative で、中間試験(mid term)の説明をした。
日本の大学の先生は、海外の大学への留学経験があるはずであり、分かっているはずである。文科省の役人が分かっていないのか、今の米国が昔とは変わってしまっているのか、昔の留学のことは忘れてしまったのか。。
学ぶ方法を教える)
学ぶ方法を教えるのが教師である。学ぶ方法さえ分かってしまえば、あとは独学で良い。特に最近はInternetもあり先進国には書籍も沢山ある。
CS142では)
静的HTML → CSS → CGI → 第一世代Dynamic web → 第二世代Dynamic webという流れとそれぞれの長短。その解決の歴史を教えた。
Rubyの時にも、Rubyの良さとして、1) 全てがobject, 2) メタプログラミング 3) blockとiterator を最初に説明し、その価値の説明に時間を割いた。
その結果、dynamic webとしてjavascriptとその利点(極めてシンプルであること) と課題(デフォルトで変数がglobal変数というのが一番の課題) を説明したときには、なぜ、javascriptなのかという質問が会場からでてきた。これは、現在、多くのブラウザがサポートしているのはjavascriptしかないので、というのが一番分かりやすい答え。。
日本だと)
日本だと、知識=結果を教える教育になる。この結果なのか、「流行っているから」とか、「みんなが良いといっているから」という価値判断軸だけで行動する人間が増えているように思う。
当然、評価が定まっていない新しいものに対して、良いのか悪いのか判断できず、判断できる人がいる諸外国の後塵を拝することになる。。
巷では、村上春樹の小説が流行ったり、一頃前には、フェルメールの真珠の首飾りの少女の展示に観客が殺到したり。。一般人なら流行に乗るのも分かるが、知識人といわれる人でも、そういうミーハーな動きをしている。
音楽の趣味もそうであって、「なぜ、その曲がよいのでしょう?」「なぜ、その演奏家が上手いのでしょう?」「どういう音が良い音なのですか?」と聞いても、説明が返ってこないことが多い。たぶん、「良いと言われているから」が答えなのかも。。
それでは、自分で新しいものは生み出せない。屁理屈でもいいので、自分が納得のいく、説明を付ける習慣が必要なのでは。。
欧米だと)
また、欧米で、「どうして好きなの?」と聞かれたときに、「流行っているから」「とか、評判がいいから」などと答えていたら、知識人としては、相手にしてもらえない。自分の判断基準をもっていないからである。
「xx氏が、良いと言っているから」などと、答えれば、「xx氏の意見じゃない、君の意見を聞いているんだ。」と返ってきて、聞きかじったxx氏の評論を語ったりすれば、突っ込みが入って答えが返せなくなる恐れもある。。
判断をするためには、知識が必要である。いわゆる、リテラシと呼ばれる教育である。が、それは、困難な状況・新しい状況を判断して対処する技術を獲得するための部品にすぎない。部品だけを獲得して終わりにしてしまっては、高等教育としては不十分に思う。
若者達への期待)
年寄り達はもはや変われないので、若い人たちが変わっていくことに期待している。そのためには、柔軟な理解力がある若いうちにどんどん世界にでて、井の中の蛙の日本とは違った世界があることを体験してもらいたい。。
年寄りが海外にでても、もはや固定概念の小さな穴からしか見られないことが多いようで、本質的に理解したような感想は、あまり聞くことはない。。
中間試験)
5/3日の授業で、Administrative で、中間試験(mid term)の説明をした。
- ノートでも印刷でも、2枚まで持ち込み可能。ただし、肉眼で読める文字の大きさであること。
- 授業と課題をこなしていれば、暗記は不要な内容
- 出題の範囲は、先週のrailsの後、今週のFormsの前まで
- もしも、習ってない内容がでたら、会場にいるTA(Teaching assistant)に質問すればよい
その後質問がでて、そこで、前の席の白人の学生が、手を上げて質問するかと思いきや、
「I will announce today is Megan's birthday!!」 とのこと。
Prof. Johnは黒板にMegan という文字と、そこへ矢印を書いて、みんなで、Happy birthday to youの合唱。400人の教室である。。
ふざけているといえば、それまでだが、合唱が終わると直ぐに授業に戻る。ま、学部生なので、一番最初の授業の開始のときは、しばらくざわざわしていることもあるが。。
Databaseの大御所、Prof. Hector http://stanford.io/TdHDFd も、授業の途中にJoke timeというのをもうけているらしい。彼の授業は1時間半 x 週2回であり、学生から集中力を高めるために、途中で息抜きをしたらどうか、といわれて導入したらしい。
Hector曰く、「後から学生に会ったとき、学生が覚えているのは、このJokeばかりだけれどね。。また、ポリティカリーに問題のないジョークをいうのは結構難しくて、あとから、あれで良かったかな。。と考えることもあるんだよ。。」とのこと。。Hectorのジョークはいつも大変面白い。。
Databaseの大御所、Prof. Hector http://stanford.io/TdHDFd も、授業の途中にJoke timeというのをもうけているらしい。彼の授業は1時間半 x 週2回であり、学生から集中力を高めるために、途中で息抜きをしたらどうか、といわれて導入したらしい。
Hector曰く、「後から学生に会ったとき、学生が覚えているのは、このJokeばかりだけれどね。。また、ポリティカリーに問題のないジョークをいうのは結構難しくて、あとから、あれで良かったかな。。と考えることもあるんだよ。。」とのこと。。Hectorのジョークはいつも大変面白い。。
課題)
課題をいくつか掲載して、回答例を添付しておく。
1. HTML, CSS
2. Ruby
3. Rails