はてなダイアリーでは「へぴゅーNT/というわけで(ry」だった何か。
まとまった文章が中心。日々の短文はmb(ryにあります。

Graduation from UoPeople

University of the Peopleで3年かけてコンピュータサイエンスの学士を取った

…厳密にはまだ卒業ボタン(Graduate Audit Request)押しただけなので、卒業プロセスが始まったばかりですが。

そんなわけで、巷で度々話題になっている気がする例の授業料無料の米国オンライン大学ことUniversity of the PeopleのCSコースを無事終えました。二つ前の、3年間の振り返りエントリで書いていた最後の2科目の単位が無事に取れたので、合計単位が120単位になりとうとう卒業ボタンを押す運びとなりました。長かった。

  • すべてはこのブックマークから始まった。
働きながら米国のコンピュータサイエンスの学士号を取得する、UoPeopleという選択肢 - Velocity

これはいいなあ。一応今CSの教員だけど大学での専門が生物でCSは独学だから、色々と抜けがあって困ること多いんだよね。ちゃんと大学のカリキュラムに沿って学べるの良い。英語の要件も低い。/さっきenrollしてきた!

2019/12/31 12:17

b.hatena.ne.jp

善は急げと言えども、急ぎ過ぎの感も結構ある。新年の計は元旦ならぬ前年の大晦日にあり…。

  • 確か大晦日の朝にブログ記事読んで、少し考えてすぐenrollしたはず。ほとんど迷ってない。

ちなみに、成績は奇跡的にCGPA4.0で終えられました。

一度目の大学の時は、一年次の数学・物理・化学系の科目に派手に足を引っ張られていたのでふるわなかったのですが、今回はいろいろと恵まれて何とかなりました。

  • 実は、一科目だけ少し点数をおまけしてもらった科目があったり。Analysis of Algorithmsという科目でどうしても完璧にできなかった課題があり、GPA4.0を維持するための点に0.5点足りなかった(92.5以上を取らないといけないところを確か最終得点92.05点とか)ことがあるのだけど、最後の最後で先生が「がんばってたから」と件の不完全な課題の点を少し上方調整してくれて92.5点を越えさせてくれた。結果、そのおかげでGPA4.0を維持して卒業できた。担当だったRupali Memane先生、本当にありがとうございました。

そんなわけで、前回の予告通り今回は履修科目や費用、学習ツール等の実用的な?あれこれを列挙してこうと思います。それ以外の要素、これを書いている人間がどういう属性か&3年間にわたる履修がどんな様子だったかは、前回の振り返りエントリをご参照ください。UoPeopleに入学したモチベーションなどもそちらに掲載しています。

以下、長いので目次。

履修科目・履修順

毎期2科目・6単位固定、15Termをぶっ続けで受けて90単位を積み上げました。残りの30単位は2年目の終わり(2022年1月)に一度目の大学から一括で移行しました。

  • 単位移行の記事はこちら→Transfer Credits (to UoPeople) - Segmentation Fault
    • 他の履修生はSophiaなどの外部スクールで(時間のある時の短期間の詰め込み等で)単位を取って、単位移行をしたりすることも多いようなのだけど、自分はめんどくさかったのと毎週課題をやる方がスケジュールにあっていたのでやらなかった。
    • 結果としてCS必修科目を全部UoPeopleで取った形に。UoPeopleのCSちょっと詳しい。
  • 最初のうちは120単位全てをUoPeopleで取る予定だったので、専門+教養の構成で取っていたが、単位移行で教養や選択科目を埋める事を考えてから(2021年9月以降)は専門(簡単)+専門(難しい)の組み合わせでやりこなした。

各科目の難易度は、正直なところ他の学生から前評判を聞くより、自分でシラバスを見て考えた方が正確だと感じました。実務経験がない自分にとってはSoftware Engneering 1で悶絶したり、簡単(中身がない、古い)と評判のWeb Programming 2でも少し手こずったりすることがある一方で、前提知識があるData Mining and Machine Learning, Information RetreivalやComputer Graphicsは相当簡単でした。

 

Term Course 1 Course 2
2020/1

Online Education Strategies
UNIV 1001

A

Programming Fundamentals
CS 1101

A+
2020/4

Programming 1
CS 1102

A English Composition 2
ENGL 1102
A
2020/6 Programming 2
CS 1103
A Introduction to Philosophy
PHIL 1402
A
2020/9 Computer Systems
CS 1104
A College Algebra
MATH 1201
A
2020/11 Introduction to Statistics
MATH 1280
A Emotional intelligence (EI)
PSYC 1205
A
2021/1 Operating Systems 1
CS 2301
A Greek and Roman Civilization
HIST 1421
A
2021/4 Ethics and Social Responsibility
PHIL 1404
A Software Engineering 1
CS 2401
A
2021/6 Databases 1
CS 2203
A Introduction to Environmental Sciences
ENVS 1301
A
2021/9 Comparative Programming Languages
CS 4402
A Web Programming 1
CS 2205
A
2021/11 Web Programming 2
CS 3305
A Data Structures
CS 3303
A+
2022/1 Databases 2
CS 3306
A Data Mining and Machine Learning
CS 4407
A
2022/4 Operating Systems 2
CS 3307
A Analysis of Algorithms
CS 3304
A
2022/6 Calculus
MATH 1211
A+ Discrete Mathematics
MATH 1302
A+
2022/9 Communications and Networking
CS 2204
A Artificial Intelligence
CS 4408
A
2022/11 Information Retrieval
CS 3308
A+ Computer Graphics
CS 4406
A+

 

必修科目のレビューや、教養科目のレビューはいろいろなところで書かれているので、ここでは敢えて取る人が少なそうなCSの選択科目3つをレビューします。

  • 取った選択科目4つのうち、Analysis of Algorithmsは取る人が多そうなのと、日本語のレビューを他のブログで見たことあるので割愛。まあ基本的にAsymptotic analysisです。ひたすら。

 

CS3308 Information Retrieval

テキストマイニングの基礎みたいなことを習います。教科書はStanfordのIntroduction to Information Retrieval https://nlp.stanford.edu/IR-book/information-retrieval-book.html です。自然言語によるクエリの検索(単一キーワード、ワイルドカード等)に対してどのようにドキュメント情報を保存しておくかや、TF-IDFとかの話が順番に説明されます。最後の2回はWebクローラの話なんかもあります。

この科目の特色として、Programming Assignmentの配点が全体の30点を占めるにも関わらず、回数としては4回しか課されないために1回の配点が7.5点もあって死にそうになるというのがあります。しかもInstructionが曖昧な上に、RubricがInstructionとかみあっていないため、Peer assessmentで採点基準を初めて見て「聞いてねえよー」という事態が頻発します。また、この4回の課題は続き物(一つ目の課題の結果を使って二つ目の課題を作る等)であるのもユニークですが、課題間のバランスがかなりおかしく、1回目はほぼ与えられたスクリプトを動かすだけ、2回目はぶっちゃけ与えられたスクリプトをそのまま提出したり、逆に与えられたスクリプトをガン無視してコードを書いてもRubric的には失点しないという適当さなのですが、突然3回目でかなりの理解を要求してくる(コードを書く量は大したことないが)かと思えば、4回目でまた怪しいスクリプトをテンプレートとして提供される(雑な作りだが一応動くしそれだけでほぼRubricを満たす、しかしちゃんと細かい所を直そうとすると意外と手間)…という構成です。

唯一の救いは、担当の先生がかなり分かっている人で、理不尽な部分は全部あとからの点数修正で何とかしてくれてました。おかげで最終スコアは99.89点で、30科目の中で最高点でした(99点台はいくつかあるけど、四捨五入で100点になった科目はこれだけ)。あとたまたまですが、先生が日本(東京)在住の外国人の方でした。30科目取って、日本在住の先生はこの方だけでした。

個人的には全30科目で一番楽しかった科目ですし、さほど難しい感じもしませんでしたが、ElectiveですしPAの課題がひどいので、テキストマイニングに興味がない人はわざわざ取ろうとは思わないでしょう。

 

CS4406 Computer Graphics

Three.jsというJavascriptライブラリを使ってCGを描いていきます。教科書はいろいろ使ってましたが、基本的にはMITのMooC https://ocw.mit.edu/courses/6-837-computer-graphics-fall-2012/pages/lecture-notes/ をつまみ食いする感じです。Learning Journalがいわゆる学習記録に加え、ちょっとした課題への回答も要求してきます(これが意外と答えづらい質問だったりする)。

また、ほぼ毎週Programming Assignmentがあります(全6回)。Programming AssignmentのプラットフォームはRepl.itで、課題が出来たら公開設定にして取得したURLをMoodleから提出するという変わった提出方法でした(なのでRepl.itに行って適当な検索ワードで検索すると、提出済み課題がわらわら見つかります)。UoPeopleには珍しくカリキュラムがちゃんと改訂されているような感じを受けました(Web Programming 1/2などのカリキュラムの古さに対する悪評はすごいので)。

自分は17年くらい前、大学院修士のときに情報系の専攻のコンピュータ・グラフィックスの講義を(他専攻の講義だけど勝手に)取っていたのですが、基本的には同じことを教えているという感じがします。そのときはPOV-Rayを使ってましたが。

 

CS4408 Artificial Intelligence

AIとありますが、昨今の機械学習を読み替えたようなAIではなく、いわゆる知能がどうとか合理的なエージェントがどうとか、という本来のAIの話をしていきます。 教科書はArtificial Intelligence: Foundations of Computational Agents, 2nd Editionで、第1章から11章あたりをカバーしますが、大変難しいです。ただし、UoPeopleの課題(Graded QuizやDiscussion Assignment等)では、教科書の難しい所まで突っ込んでこないのが救いです。なので、テキストが難しくても絶望せずに、粛々とDiscussion AssignmentとかSelf-Quizを解いていけば単位は取れます。過去にならった探索アルゴリズムなども形を変えて出てくるので、その点は良い復習になりました。

  • ちなみに1000番台や2000番台の科目だと「この教科書だと分からないから他の分かりやすい教材で勉強しよう!」という方策が使えるけども、これとかCS4402とかInformation Retreivalとかは検索しても易しいものが出てこないときがあるので、教科書と真剣に格闘する気合が必要だと感じた。専門書を読むのと同じ感覚。

Programming assignmentは疑似コードを書かせるものが多く、実際に動くものを書けという課題は恐らくなかったはずです。すべて予めRubricが示されているので、それを満たすように素直に書けば問題はないはず。

  • 前回の3年間の振り返りエントリにも書いた、救急車で運ばれて入院した時に取っていた科目の一つ。手術直前までWeek7のPAをやっていたが、あらかじめ公開されているRubricが厳密なのと、あくまで疑似コードなので部分点を狙えてなんとかなった。

費用

UoPeopleに支払ったのは全部で3435ドルでした。ここには30科目分の費用のほかに、入学手続き費用60ドル、単位移行費用255ドル、卒業証書のRegistered mail費用120ドルが含まれています(卒業証書は普通郵便なら無料ですが、安全のためRegistered mailにしておきました)。自分は入学が2020年1月なので一科目100ドルで30科目で3000ドルでしたが、今は120ドルなのでもう少しかかると思われます。

あとは、期末試験(Final Exam)で試験監督を必要とするケースを有料サービスのProctorUで全部まかなったので、その費用がかかっています。合計で185ドルでした。

日本語のインターネットをうろうろした感じ、ProctorUの費用を挙げている人はあんまりいなそうなのでMy Ordersのスクショ置いておきます。値段の違いは試験時間の長さの違いですが、何分なのか具体的に書くと微妙に試験情報の漏洩になる気もするので書きません(また、問題がありそうなら上記のスクショは適宜取り下げます)。

また、Databases 2とOperating Systems 2は同じ科目で追加で5ドル課金されてますが、これはぎりぎりになって試験勉強が間に合わないと感じて試験をリスケジュールしたせいです(直前のスケジュール変更は追加料金を取られる)。金曜日にFinal Exam受けるとか無謀だった。

 

学習ツール・スケジュール

ツール

英作文はGrammarly一択です。一応、Ludwig.guruと、最後の方はQuillbotにも課金してましたが、基本的にはGrammarlyが全てです。GrammarlyのWordブラグインは動作が遅い時があるので、GrammarlyのWebサイトで直接書いて、必要に応じてあとでMoodle(UoPeopleの学習プラットフォーム)なりWordなりに貼りつけたときに整形していました。DeepLは急いでいて英訳が浮かばないときにちょっと使う程度でした。今ならDeepL WriteとChatGPTも使うと思いますが、Grammarlyの一番素晴らしいところはスペルが曖昧な単語を適当にタイプしてもすぐ見つけてくれる&本来書きたかった単語を”guess”する能力が非常に高いところなので、他のツールでは代替不可能だと思います。

Reading materialはPDF Expert(iPad用アプリ)およびWeava Highlighter(Chrome拡張)で線を引いて読んでいました。特に、PDFはiPadで読み込んで、Apple Pencilで線を引きながら読むようにしていたのですが、3年間の最後の方はReading materialにかけられる時間が少なすぎて、横着してPCでAcrobat使いながら線引いてるときも結構ありました。

  • 基本的に、テキストに線を引きながらゆっくり読めば大体覚えられる(普通に読んで大事なところに線を引くのではなく、じっくり読み込みながら色のついたマーカーで一文ずつなぞることで記憶できる)ので、まとめノートなどは一切作らなかった。
  • コースによってはReading materialとは別にVideo lectureなども提供されるが、映像を見るのが好きでないので一切見なかったし、それで支障なかった。

ちなみに、リファレンスはいつも手で整形してました。学割でEndNoteを買ったんですが、どんなに多くても10個に満たないリファレンスなら手で付けた方が速いので、いつもそうしてました。しかもある時からGrammarlyがAPAフォーマットを理解するようになったので、少しだけ楽になりました。

また、数式はGrammarlyの中でLaTeXでばばっと書いて、投稿する際にMoodle上なりWord上なりで整形してました。

  • 今はWordの数式エディタがLaTeXを理解するので、CalculusなんかのWritten Assignmentはその機能で乗り切った(手間ではあったけども、最初から全部TeXで書きたい程の分量ではなかった)。
  • あと、数学と言えば解答自動生成器ことWolframAlphaは絶対外せない。もともとは本業のために課金しているのだけど、College AlgebraやCalculusでは自力で解いた後の確認として役に立った。

1週間の学習スケジュール

大体どんな科目のどんな課題もこの時間に落ちる感じでした(たまにProgramming/Written Assignmentは+2時間くらいかけるときもありましたが)。逆に言うと、それ以上時間をかけられない、かけないとも言えます…。

  • UoPeopleの公式な1週間は木曜始まり水曜終わりだけども、時差があるので日本では木曜の14時5分に始まって木曜の13時55分に終わることに注意。
  • ちなみにUoPeople公式の推奨学習時間は1科目15-17時間。Academic Degree Requirements - uopeople catalogのCredit Hoursのところに説明がある。

 

【余裕があるときのスケジュール:1科目分】

  • Reading Materialを全部読む 2~3時間 土日のどちらか
  • Self-Quizを解く 10分 土日のどちらか
  • Discussion Assignmentをやる 2時間 土日、たまに月曜
  • Programming/Written Assignmentをやる 2~3時間 火曜・水曜
  • Peer Assessmentをやる DA/PAすべて込みで1時間 水曜
  • Learning Journalを書く 2時間 木曜

計 9時間~11時間

 

【余裕が無いときのスケジュール:1科目分】

  • Self-Quizの答えをReading materialやインターネットで探しながら解く 1時間 月曜たまに火曜、ごくまれに水曜夜
  • Discussion Assignmentをやる 2時間 水曜朝たまに木曜朝
  • Programming/Written Assignmentをやる 2時間 木曜朝
  • Peer Assessmentをやる DA/PAすべて込みで30分 木曜朝
  • Reading materialを流し読みしながらLearning Journalを組み立てる 1時間 金曜朝

計 6時間半

 

UoPeopleの大体の課題締切は日本時間の木曜の13時55分、Learning Journalだけ金曜の13時55分のため、余裕がない時の木曜朝の死にっぷりが尋常じゃありません。Written AssignmentやProgramming Assignmentがない時はかなり余裕がありますが…。また、Graded Quiz(中間試験)があるとこれに復習時間を含めた2時間が追加されます。つらい。

  • 一応公式としては、Discussion Assignmentは週の前半にForumに投稿して、後半はForumで他の学生の投稿のPeer Assessmentをしつつ、いろいろやり取りするのが推奨されているのだけど、全然守れず…(うるさく言ってくる教員も実はそんなにいないし…)。一応、罪滅ぼしのつもりで、水曜のぎりぎりに投稿してくるみなさん(大体有用なコメントを貰えない)を対象に、出来る限り長めかつ有意義なコメントを残したつもりなので、どうか許してください。

今後の展開

引き続きコンピュータサイエンスのオンライン修士課程に進もうと思っています。

  • 学部を出てとうとう情報系卒を名乗れるようになったものの、やはり知識が足りていない感じがするのと、もう少しじっくり情報工学の価値観を自分に馴染ませる必要がありそうなので。

とはいえ、UoPeopleに最近できた情報系の修士(MSIT)はコンピュータサイエンスというよりはややITより(Management等の単位も取る必要がある)ので、やはりここは鉄板のGeorgia TechのOMSCS(Online Master of Science in Computer Science)を第一志望にしたいところです。

  • 学費が安くて(ゆっくりやってもおそらく$70k程度で卒業できる)、TOEFLは要るけどGREが要らなくて、しかもカリキュラムが良いという噂。
    • カリキュラムについては、シラバスを見る限りオンキャンパスの科目と同等のものがオンライン用に編成されて提供されている模様。事前情報によれば一応修士研究に類するものも出来るようなので、その柔軟さも良い。
  • 一応、Georgia Techに蹴られたらUIUC辺りを考えたいけれど、学費が3倍なのがちょっと…。UIUCは推薦状が要らなそうなのが良いところなのですが。
    • カリキュラムを見るに、ちょっと簡単すぎる感じも少しする。特にData Scienceの方のコースとか。

とりあえず、先週小手調べに受けたTOEFL足切りライン越えてくれたようなので、3月15日締切のOMSCS出願に向けて準備します

  • R29 L30 S24 W25で108だった。4年前はR30 L28 S21 W23で102だったので、4年間でスピーキングが一番伸びたことに。UoPeopleにスピーキングは存在しないのに何故…?そして3年の間にあれだけ課題で書き物をしたのに、全然伸びてないライティング…。
    • スピーキングにせよライティングにせよ、もう少しちゃんと対策をすればもっと伸びるのだろうけど、前回も今回も練習するのが面倒くさくて事前準備ゼロでいきなり受けているので、こればかりは仕方ない。正直なところ、英語は特定の試験に向かって勉強するのが苦手でやれた試しがないので、TOEICTOEFL、英検等に向けて練習できる人は尊敬します。
  • 早速OMSCSの出願フォーム埋めてますが、学歴欄でUoPeople選ぶとNationally Accreditedなことの警告出ちゃうの世知辛いですね。分かっていても。

    • この「日本の非CS学士+UoPeopleのCS(+弱い実務経験)」の組み合わせが本当にOMSCSに対して機能するのか、Webでは情報を見つけられなかったので恐ろしいのだけど、とにかく頑張るしかない。
    • あとなんか、OMSCSは今期から出願形式変わった?っぽい?いわゆる推薦状や取得学位関連の書類などを除けば、自分が準備・アップロードすべきなのはCVだけで、Statement of Purposeとかもう無いっぽい(Redditでも話題にしている人がいた)。その代わりに、厳しい文字制限のあるすごく簡単なフォームをちょこちょこ埋めるだけになっていて、これはこれでやばい。この辺も後日まとめたい。
      • 「えっもうフォーム埋め終わったんですけど?これでCV上げて、成績証明書取って、推薦状お願いしたら終わりですか?ほんとに?」

【2023年4月24日午後11時追記】無事OMSCSに合格しました。詳細はまた別に記事を書きます。