ド文系がリケジョを目指すおはなし

日々の記録とモチベとシェア

シンガポール国立大学留学物語④

あけましておめでとうございます!(旧正月に合わせて)今年は二回もhappy new yearがありなんだか不思議な気がしました。ついに留学が始まってから約200日が経ちました。そんな中今期の履修授業が決まったのでその紹介をしたいと思います。

 

今期は前学期のデータサイエンス祭りとは一歩違って、そもそもどうやって今まで書いていたプログラムは動いていたのかそもそもパソコンはどういう仕組みで動いているのかどうしたら効率的にプログラムがかけるかについてを学びたいと思いました。それゆえ今期はシンガポール大学の下級生とともにコンピューターサイエンスの基礎を学んでいます。

 

<履修授業内容>
※これはsemester2の授業で同じ名前でもsemester1とは先生や内容が違うこともあるので注意

CS1010 PROGRAMMING METHODOLOGY
ASSOC PROF Tung Kum Hoe Anthony
この授業はC言語を使ったプログラミング入門。私の場合もともとpythonはやっていたので大体のことは分かるので主にC言語習得のため。とはいえ今まで独学でやっていたのでそもそも0からプログラミングを学問として学んだことがなかったのでしっかりやることも無駄ではないかなと思っています。履修授業の中ではこれがいちばん基礎。この授業(CSの授業では多いが)のいい仕組みは毎週の課題がNUS独自の競技プログラミングのプラットフォーム上で行われること。以前私がやっていたAtCoderとまさに仕組みは同じ、コードをsubmitすると自動で判定が返ってくる。このような画期的な仕組みがNUSでは数多く取り入れられている。学生の時に毎週のように課題として競技プログライングをやっていればそりゃあできるようになるとも思った。

 

CS2040 DATA STRUCTURES AND ALGORITHMS
ASSOC PROF Tan Sun Teck

この授業はデータ構造とアルゴリズムについてJAVAで行う授業。リスト系の処理に始まり基礎から応用まで幅広く浅く授業をしてくれる。今まで本で読んだだけなのでこの授業での課題はとても身になっている。毎週のように競技プログラミングの課題もあり、授業中のコーディングテストもありかなり重みのある授業。ただそれだけ学ぶことがありかなりオススメ。ただJAVAへの入門がほぼないので自習する必要あり。

--------------------------------------------------------------------------------------------------

参考: 私のJAVA入門の方法⇨

①Progateで一通りJAVAの問題を解く

知識の量はあまり増えないが最初に少しコーディングをすることでそのあとの理解の手助けになった

新わかりやすいJava オブジェクト指向徹底解説

この本は特に今までに他の言語でプログラミングをしたことがある人でオブジェクト指向をやったことがない人にはとてもオススメ。普通入門書で習うif文などの基礎文法を飛ばして解説をしてくれているのでとても効率的に学べた。

---------------------------------------------------------------------------------------------------

参考: 私のデータ構造とアルゴリズム入門(Python版) ⇨

なっとく! アルゴリズム

こんなにわかりやすく説明してくれている本は他にないのではないかというぐらいわかりやすかった。量があまりないので2,3日で読めるので入門の入門書として最適。

② Pythonで体験してわかるアルゴリズムとデータ構造

1冊目だけでは実際にどのようにコーディングしていけばいいのかわからないので自分がよく使う言語で演習する必要がある。この本はコーディング少しと絵を自分で書くような演習が多いので、この本一冊でプログラミングできるようにはならないが入門書としてよかった。

---------------------------------------------------------------------------------------------------

 

CS2100 COMPUTER ORGANISATION
MR Tan Tuck Choy

この授業はここにまとまっているのでぜひみて欲しい。いわゆるコンピューターのハードウェアの部分の解説。2進数に始まりアセンブリ言語に触れ、プロセッサー、パイプ処理、キャシェなどについての授業。全く今まで触れたことのない分野だがパソコンの仕組みを絵としても頭に入るのでとても有用そうである。

 

CS1231 DISCRETE STRUCTURES (離散数学
DR Li Wei

この授業は離散数学なのでここまで紹介したいわゆるプログラミング系とは少し分類が違います。この授業はどちらかというとパソコンに向かって行うものではありませんが今まで統計の本などを読む中でたまに理解できていなかった文字や理論についての勉強ができていて、とてもスッキリできます。日本で経済学部でこの科目はなかったのですがあってもいいのかなと思いました。人間とコンピューターサイエンスの架け橋的な科目です。まだまだ基礎ですが帰国後もう少し勉強してみたいなと思っています。

 

いかがでしたでしょうか?前期同様課題が多く毎日追われていますが、いかに課題に取り組むかでinputできてるのかを確認できとても身になっているなと感じています。何を勉強したいと決まっていてさらにシンガポール大学にその授業がある人にはとてもオススメしたい留学先大学です!


P.S

今週の一冊は「[改訂第7版]LaTeX2ε美文書作成入門」奥村 晴彦 (著), 黒木 裕介 (著)

今までTeXをあまり使ってこなかったので授業でのレポートで使うので勉強を始めた。この本はわかりやすくオススメ。辞書的な一冊。