github octcat icon
twitter bird icon
rss icon

University of the Peopleに通い出して2年

2023-03-26

library in an university

Photo Credit: Ken Theimer

University of the People(以下UoPeople)に通い出して2年が経つので書きました。私のブログへのアクセスの大半が昨年書いたUniversity of the Peopleに通い出して1年なので、一定需要はあるのだなと思っています。

今年の夏には卒業できそうなので、その際にUoPeopleでの学生生活全体をまとめることはするとしつつ、今回はこの1年間で取得した単位についてそれぞれ記載したいと思います。

これから授業を取ろうとしている方、UoPeopleへの入学を迷われている方の参考に少しでもなれば幸いです。

取得単位数

UoPeople:27単位 Sophia:9単位 Study.com:3単位

UoPeopleで取得した単位

CS3305: Web Programming 2

PHPでコードを書いたり、CMSを用いてサイトを作ったりする授業でした。とても楽でしたが、古のCMSを触ったりするのは正直全然楽しくなく、さらっとこなした授業でした。

CS1104: Computer Systems

論理回路エミュレーターを使って簡易的なメモリを作成したりしました。メモリやCPUなど、複雑な機構を持っていそうなコンピューターの一部も結局は論理回路からできているということを肌感持って学べてよかったです。今後学習するOSの授業などの土台になっていい授業でした。

CS3303: Data Structures

アルゴリズムおよびアルゴリズムを書く際に利用するデータ構造について学びました。Quick sortなどの基本的なソートアルゴリズムを実装したりする授業でした。アルゴリズムを学ぶ際に、そのアルゴリズムの特徴、特徴を活かすことができるデータの特性、用いるデータ構造、計算量など、普段コーディングをする際にも参考になる内容でよかったです。ただ、課題は実装ヘビーというわけでもなかったので、コーディング面接対策の勉強をするための土台にはなる。ぐらいの印象でした。

CS3306: Database 2

Database 1は以前Sophiaで単位を取っており、Database 2を取りました。このクラスでは、データベースにおける権限管理の仕組み、データベースバックアップの取り方と復旧手法、Transactionについて、クライアント・サーバーシステムにおけるデータベースの役割について、などについて学びました。Database1のクラスが実際にSQLを発行してみたり、Indexをはってみたりといったデータベースの利用方法を学ぶクラスで、Database2はそれらの知識をベースとして一歩踏み込んだ、データベースの運用者としての知識を学ぶクラスになっていました。ただ、tapeでバックアップを取るような話が題材になっていたりと、少し古すぎる感じもしました。歴史を知るという意味ではいいのですが。

MATH1302: Discrete Mathematics

離散数学というと、文系上がりの自分としてはとても難しそうな科目ではないのか?と身構えてしまっていましたが、中身はほぼ高校で習う組み合わせ・確率でした。高校の数学IIBまでやっていた人であればリーディング課題はほぼ飛ばしてクリアすることができると思います。

CS4402: Comparative Programming Languages

プログラミング言語のパラダイム、およびそれぞれのパラダイムにおける代表的なプログラミング言語について学びました。さまざまなパラダイムについて知ることができてよかったです。特に、普段用いているRustやTypeScriptなどが影響を受けているが、自分自身では使ったことがなかった関数型言語について学ぶことができ、雰囲気だけでも掴むことができてよかったです。

CS2301: Operating System 1

この1年で学んだコースで一番面白かったです。CPUへのプロセス割り当てやメモリアロケーションの方法などについて学びました。どんなにテクノロジーが発展しても最終的にプログラムが動く方法はしばらく変わらないはずなので、OSについてもっと詳しく学びたい気持ちが強くなりました。

CS4407: Data Mining and Machine Learning

機械学習やデータマイニングを行う際に用いるツールや手法などについて学び、最終的には簡単なモデルをニューラルネットワークシュミレータを用いて作成してみるクラスでした。また、機械学習に用いられるアルゴリズムの基礎について学び、KNNや決定木、ニューラルネットワークなどメジャーなアルゴリズムがどのようなものであるのかを学びことができました。実装まで落とし込むことができるレベルにはこのクラスだけではなりませんが、仕組みを知ることはできたので、機械学習と言われた際にポカーンとなるのではなく、裏でどんなことが行われているのか想像はできるようになったかと思います。

MATH1211: Calculus

微分積分のコースです。内容としては高校数学の範囲を飛び出るようなものはなく、高校数学をやってきた人ならば多少忘れていることはあれど割とサクサクと進めていくことができるのではないでしょうか。自分は10年ぶりに数学をまともに勉強する機会だったので、思い出すのに多少時間がかかりました。しかし、今はYoutubeなどで大学受験用の非常にわかりやすく説明してくれているチャンネルがたくさんあったので、それらを見たりしながら進めました。

Sophiaで取得した単位

全てに共通していますが、自分が学びたいComputer Scienceとは直接関係があるわけではない分野で、とにかく卒業のためにサクッと単位を取得したい内容、且つSophiaに単位変換互換性があるコースがある場合には極力Sophiaのコースを取るようにしました。理由としては、かかる労力がUoPeopleに比べて圧倒的に低いためです。

English Composition 2

UopeopleにおけるWritingのコースはとてつもなく面倒臭いです。本当はUoPeopleのコースENGL1102 English Composition 2 (proctored course)を取る必要があるのですが、ENGL1101を取った自分としては再度この面倒なコースを2ヶ月かけてやるのはゴメンだったので、SophiaのEnglish Composition 2というコースを取って単位移管することにしました。しかし、SophiaもSophiaでEnglish Composition 2は面倒臭かったです。好きなタイミングで取り組むことができるだけSophiaの方がマシですが、課題の量は大して変わらない気がしました。最終的に6−8ページ程度のエッセイを書くために課題に取り組んでいくスタイルですが、1つの課題の採点が完了するまで次の課題を提出できないスタイルのため、1ヶ月で終わらせることはほぼ不可能で実質2ヶ月分の料金をSophiaに払うことになります。そのため、どうせこのコースを取るのであれば他のコースも併用で採点待ち期間に進めるようにしておくと、お得に履修することが可能でおすすめです。

College algebra

高校数学で習う範疇を越えることはなく、二次方程式などについて学ぶコースです。ひたすら練習問題を解いて、final examを受けました。サクッと単位が取れました。

Introduction to Ethics

こちらも暗記勝負の科目です。内容を忘れてしまうとfinal examが解けなくなってしまうので、1週間ぐらいで一気に修了しました。

Study.comで取得した単位

Computer Science 305: Operating Systems

UoPeopleのCS 3307 Operating Systems 2相当に当たるクラスです。2023/04/12追記:無事単位移行を行うことができました。一度単位移行申請が却下されてしまったのですが、大学に問い合わせたところ、申請を出したタイミングでCS 3307 Operating Systems 2を履修していたため却下したとのことで、該当コースをdropすることで申請が通りました。万が一単位移行ができなかった場合でも授業から単位を取得できるように履修していましたが、まさかそれが原因で移行に失敗するとは思っていなかったので、drop締め切り前に問い合わせてできてよかったです。

コースの内容は同時に受講していたCS2301: Operating System 1と非常に近しく、難易度的には同時受講が十分可能でした。CPUのスケジューリングアルゴリズムやその他OSが果たす役割について学びました。

コースの最後には、メモリアロケーションアルゴリズムを模擬実装する課題が出たりして面白かったです。この課題の目的はメモリアロケーションの仕組みを理解することだったので、CやC++で書いてもOKだし、PythonやJavaScriptなど自分が得意な言語で書いてもOKになっていました。私はPythonで書きましたが、やはり実際に実装してみるとメモリがどう管理されているのかより実感が湧いてよかったです。

コース最後のテストはコースの合間合間にあるような選択問題を大量に解くテストでした。練習問題を解いて都度理解していれば十分合格点は取れるレベルだったかと思います。

一点注意点として、私はコース自体3週間ほどで終了したのですがfinal examやprogramming assignmentの採点に2週間ほどかかります。ただ、2023/03時点では、月次サブスクの期限を過ぎてから採点が完了した場合でも、結果を見たり単位移管したりすることは可能でした。

取得できなかった単位

Saylor.orgのNetwork

大学院受験に間に合わせたかった自分は、Saylor.orgでも単位を取得して移管しようとしていました。しかし、Saylorの教材が誤りが多かったり、答えが曖昧な問題が多かったりとあまり良くなく(無料だし仕方ない)、UoPeopleの授業よりも面倒な感じがしたのでNetworkのコースの途中で取るのをやめました。

その他

3コース同時受講はつらい

年明けから初の3コース同時受講にトライしたのですが、やはり想像通り辛かったです。フルタイムで仕事しつつだったので、忙しさ的にはめちゃ忙しくなるのですが、自分の性格的に締切に追われていて忙しいほど色々できるのでいい経験にはなりました。

忙しいからこそなぜか色々やりたくなって、社内LTに登壇してみたり、アプリ作ってみたり、Study.comで追加の単位を取ったり、英会話をはじめてみたりできました。ただ、パンクギリギリな感じもあったので、ほどほどに調整してやっていけたらと思います。