交換留学の話2[授業編]

10月に入ったところでこちらは気温が10度付近になりとても寒いですが、みなさんお元気でしょうか。
今回は授業について書きます。

アメリカの授業と聞いてみなさんは何を想像しますか?やっぱりディスカッションのイメージでしょうか。私も実際にディスカッションメインの授業だろうと学期が始まる前は戦々恐々とした日々を過ごしていましたし、オリエンテーションでもstudent-centeredな授業だから覚悟しておけと言われました。

しかし、幸運なことに現在取っている授業は一切ディスカッションがありません!!!!

まぁ詳しく説明するためにどんな授業展開なのか書きたいと思います。
自分が今学期とった授業はこちら

CSCI 1113 Introduction to C/C++
CSCI 1913 Introduction to Algorithm
CSCI 2021 Machine Architecture

見慣れない表記なので少し説明します。CSCIというのは教科を示しています。Computer SCIenceなので情報系の授業ということです。次に4桁の番号ですが、最初の番号が学年を表しています。つまり1000番台は1年生向けの授業で2000番台は2年生向けの授業ということになります。この番号は目安なので3年生で5000番台とかも取ることができたりします。

驚くべきことにたった3つなんですよね。これ日本の授業と大違いです。決して私がサボりまくってるとかではなく、5つ授業取るとオーバーワークと言われるレベル(個人差、学部差、諸説あり)なんですね。ということは暇なんはないの?と言われると以外とそうでもなく、1授業につき週5、6時間あります。時間わりはこんな感じです。

f:id:reqko:20181009034459p:plain

授業が12時から始まるので朝ぐったりとできます。(この時間を有効に使うのが大切そうですね)
寝坊がないのが救いですね。


情報系の授業はlecture+labで構成されていて、講義で学んだことをlab(実際にはプログラムを組むだけ)で実践するという形式です。なので、授業で英語を話す機会はTAさんにチェックを受ける時のみしかありません!!!
(法の抜け穴的な感じ)

ディスカッションをするような授業を受けてる方は本当にすごいと思います。私には無理です。
そもそも上記の授業を取ったのは、内容が簡単だからだろう、というなんとも消極的な理由でして、実際プログラミングの授業ではなく毎日英語の授業を取っているような感じです。


各授業について簡単に述べます。

CSCI 1113 Introduction to C/C++
C/C++の入門で Hello worldから始まりました。みなさん、C++というやばい言語をご存知でしょうか?私はCから始めてC++をうわべだけでも理解するのに2年ほどかかりました。それなのにここの人たちは半年間で終わらせようとしています。(怖い怖い)シラバスを見る限り、ポインタやテンプレートなど全て網羅するつもりでいます。
課題も結構えぐく、例えば 任意の整数の四則演算の数式の入力にの対して答えを出力するプログラムとか、
え、これ最初のlabでやらせるような題材じゃないだろ、的な感じです。

そういえばなんですけどC++のstd::stringにsplit関数ってないんですね。普段QtのライブラリQStringしか使わないので意外な発見でした。もう一つ文句をいうと、std::vectorって<<演算子オーバーロードしてないんすね。push_back使わないと末尾に追加できないという罠。どうでもいいですね。

CSCI 1913 Algorithm
アルゴリズムの授業っぽいが、なぜかHello worldから始まる。1113と対になるIntrodution to Javaという授業の復習から始まり、すでに1ヶ月でオブジェクト指向の基本的な部分が終わる。Javaなので、若干C++と違うところが煩わしい。教授がめちゃくちゃ早く話すのできつい。

CSCI 2021 Machine Architecture
一番面白い授業かつためになる授業。やるならやっぱりCですよ、C、みなさん。プログラミングするならC。内容はというとコンピュータのlowレベルな部分の話で教科書の90パーセントがC言語アセンブリに落としてそれがどうハードウェアで動いているかの解説。どうやったら効率的にプログラムが動くのか、セキュアなプログラムになるかなどなどです。アセンブリに触るのが初めてなのでとても面白い。
それと教授の話すスピードが遅いのがこの授業が好きな理由の一つですね、はい。


これらの授業は全て、lecture+labの形式で、lectureが全員で受ける、labはいくつかあってそれぞれTAが担当するという形です。lecture自体の人数が100人を超えていて、labは20人ずつぐらいです。
TAのシステムが日本と違っていて責任が大きいのかと感じます(教授だけでなくTA自体もオフィスアワーを義務ずけられている)。TAは大学院生がうちの大学ではやっている(多分)ですが、 こちらではその授業さえ単位を取っていればその授業のTAになれる可能性があるようです。つまり三年生でもなんらかの授業のTAをできたりします。驚きですね。

他にアメリカの授業といえば、質問が多いようなイメージを持っているかと思いますが、これは真です。授業で毎回10回ぐらいは質問があります。僕はまだしたことはありません。あとは授業のスピードがクソ早いですね。例えば先に言った通り、週に50分×3回といえども、C++を半年間でやるって結構やばい(自分のレベルが低いだけか?)ですよね。CSCI2021の教科書は1000ページほどあり、この1ヶ月で200ページほど進みました。1113も1913も今のところ勉強していないのに、2021の教科書を読むだけで結構大変です。もし2021レベルの授業を3つ取っていたらやばかったな。アメリカの学生は本当に勉強熱心だと思います。

それと日本の高校のレベルは比較的高いんじゃないかと感じました。日本では高校までで数学的素養を相当鍛えていますが、ここの学生はそんなことがない気がします。ちなみに私が2年生の時に受けた、微分方程式フーリエ変換の授業は5000番台の授業に対応するっぽいです。(5000番台は大学院生向け)まぁその分、いっぱい勉強する学生が多いんでしょう。追いつかれないように勉強しなければ。。


アメリカに来てから2ヶ月になろうとしています。最初は全く理解できなかった英語も徐々にわかることが多くなっているのを時々感じるのが面白いです。話すのはまだまだです。ではまた。