University of the PeopleのComputer Scienceプログラムで取った単位と感想
私はWebエンジニアとして働き始めてしばらく経ちますが、特にコンピュータサイエンス(CS)の学位を持っていないため、どこかで体系的にCSを学びたいという気持ちがありました。
そこで2022年の初めからUniversity of the People(UoP)という完全オンライン、試験料以外は無料の大学で学び始めました。
UoPは2009年設立で世界で初の授業料が無料のオンライン大学であり、米国教育省が認定するThe Distance Education Accrediting Commission (DEAC) という期間に認定を受けているようです。
この記事を書いている現在入学から1年ほどが経過し、日本の大学から単位移行もしたおかげで少しずつ卒業の目処も最初よりは立ってきたように思います。(まだ10コース以上残ってはいますが)
そこでここまでのまとめとして、今までに取った単位とその感想を簡単に書いていこうと思います。
ここには単位移行した単位は含めず、UoPで取った単位に関して書いて行きます。
2022年1月~
この時期は始めたてということもあり、まずは2つ取ってみてどれくらい大変かやってみようという感じでした。
内容は難しいものではありませんでしたが、割と大変だった記憶があります。
Online Education Strategies(UNIV 1001)
これはまずUoPに入った人は誰でも取る必要がある単位であり、ここでAPA Formatでの引用の仕方を学んだり、盗作(plagiarism)をしない、UoPの特徴であるピアラーニングの意義などに関して学びます。
僕はCSを学びたくて入ったため、このコースは正直苦痛ではありましたが、何とか終わらせることができました。
プログラミングのように一意に正解があるというよりも、自分の意見を書いたりする課題もあったかと思うので、良い評価をもらうにはそれなりにきちんと文章を書いたりする必要があるのではないかと思います。
Programming Fundamentals(CS 1101)
ここではPythonを使ったプログラミングの基礎に関して学びます。
変数、if文、for文、関数などのトピックが中心となります。
プログラミングを学んだことがある人にとっては簡単かと思いますが、未経験の人でもそれほど苦なく学べるので、そういう意味で良いコースだと思いました。
2022年4月~
前学期は2つのコースを取りましたが、これは結構辛かったので今期は1つのコースにしました。
Programming 1(CS 1102)
このコースではJavaを使ったプログラミングの基礎に関して学びます。
Pythonではあまり意識しなかった型を意識することになると思うので、この学び方の順番は良いと思いました。
if文、for文を始めとして、オブジェクト指向、継承、インターフェースといった概念も登場します。
Javaはほとんど触ったことがありませんでしたが、内容は基本的なのであまりつまづくことはないと思います。
GUIのプログラミングに関しては、初めてでしたが「ほーこんな感じで書けばこんな感じになるんだな」という形でした。
2022年6月~
初めての数学系コースということもあり結構警戒していた記憶があります。
College Algebra(MATH 1201)
これは代数学の基礎のコースでした。
かなり初歩から(二次方程式や多項式)から高校3年生くらいの範囲までの数学のうち、文字を使って表される数式にフォーカスしているという印象でした。
指数関数、対数関数、三角関数、極座標(距離と角度で位置を表す)などに関して駆け足に学んでいくコースでした。
指数関数などの計算でお金を運用して最終的に何%になるかなどの文章題が出てくるのが、より実用的に感じました。
またcoordinates(座標)、vertex(頂点)などの数学的な英語も見慣れないものが多く、勉強になりました。
これも学び直しをしている人にとっては良いコースではないかと思います。
逆に大学の受験数学をしっかりやった人にとっては物足りな過ぎるかもしれません。
自分に取っては最初は簡単でも後の方になってくると、知らないトピックもあり勉強になりました。
2022年9月~
このあたりは仕事があまりなかったので、集中して2コースをやることにしました。
この辺から本格的にCSっぽくなってきた感じがあり、非常に大変でしたがやりがいがある2ヶ月間でした。
Programming 2(CS 1103)
このコースはJavaを使ったプログラミングのコースで、Programming 1(CS 1102)と比べるとCSっぽい要素が多めなコースでした。
ネットで調べていると、結構難しいという声もあり登竜門的なコースという印象でした。
内容としては再帰関数であったり、Linked List、Stack、Queueなどのデータ構造に関してがメイントピックで、最後の方ではGUIプログラミングもあります。
毎週プログラミング課題があり、結構しっかりと取り組む必要があるのでこれまでで一番大変なコースだと思いました。
同時にCSっぽさが結構あるので楽しくもありました。
Discrete Mathematics(MATH 1302)
このコースでは俗にいう離散数学(連続でない値を扱う数学)の基礎に関して学びました。
数学的記法、集合、組み合わせ、論理、漸化式、関数、グラフ、初歩的な整数論などCSを学ぶ上で重要な要素が多く詰まっていると思いました。
これも結構高校数学とかぶる部分もあるので、知っていることも多かったです。
一方で真理値表(Truth table)を手で書いて作ったり、単射、全射、全単射などの関数に関する概念であったり、二部グラフ、完全グラフ、ハミルトンパスなどのグラフ理論に関する概念を学べた点が面白かったです。
まとめ
2022年の11月はセブに短期留学をしていたのでコースを取っていませんが、このように他のスケジュールの都合に合わせて柔軟にコースを取ることができるのが良いところだと思います。
ネームバリューや知り合いを作るという点では他の大学に劣りますが、低コスト、オンラインで働きながら地道にCSの勉強ができるといった点で、現時点ではUoPを初めて良かったと思っています。
コースの雰囲気を感じて頂けたら幸いです。
また今後の進捗に応じて追記していきます。
この記事が気に入ったらサポートをしてみませんか?