えんぴつぶろぐ

子育て中のフロントエンドエンジニアのブログ。

Computer Scienceの学位を取るために学費無料のオンライン大学UoPeopleに入ってもうすぐ1年

この記事は社会人学生 Advent Calendar 2020 7日目の記事です。

米国のオンライン大学University of the People(以下、UoPeople)に入って約1年経った振り返り記事となります。

これまでのUoPeople関連の記事はこちら

自分について

UoPeopleのことは普段からこのブログに書いていますが、はじめましての方もいらっしゃるかもしれませんので、自己紹介からさせてください。

Webサービスの事業会社でフロントエンド開発をしています。
2歳8ヶ月の娘の母です。
UoPeopleには今年の初めに入学手続きをして、2020年1月30日のterm 3から受講を開始しました。

University of the Peopleとは

University of the People(UoPeople)とは米国の完全オンライン、学費無料の大学です。
Computer Science のAssociate's Degree(短大相当)やBachelor's Degree(4年制大学相当)が取得できます。

別の専攻では、Master of Business Administration(MBA)やMaster of Education (M.Ed.)など修士号のプログラムもあります。
入学時の事務手数料やコースごとの修了試験料などはかかりますが、それでも4年トータルで$4,860という破格の値段です。

完全オンラインですが、全米認定(National Accreditation)を受けている教育機関です。

動機

自分の遍歴としてはFlash Developer→フロントエンドエンジニアで、就職して以来クライアントサイドのコンテンツ開発をずっとやってきました。
ですが自分のWebエンジニアリングや数学の基礎力の無さを痛感することがしばしばありました。
大学は文系のコースでしたし、理系科目は高校時代に最低限(数ⅠAと数ⅡBの序盤)やったきりで、コンピューターサイエンスを体系的に学んだバックグランドがありません。

今の自分の専門性を高めるにしても、マネジメント職やその他ジェネラリストよりのポジションに舵を切るとしても、エンジニアとしての不変的な基礎力というものが必要だと感じていました。

自分でもちょこちょこと書籍を読んだりAtCoderの問題を解いてみたりudemyなどのオンライン講座をやってみたりもしましたが、
正直言って自分一人だけで継続し続けるのはとても難しいです。

特にアルゴリズムの学習は、数学の基礎知識がなさすぎて躓きまくります。
競プロの解説やアルゴリズムの書籍なんかを読んでると当然数式や用語がバンバン出て来ますよね…。

また、実務ではあまりやらない分野の学習も、書籍や動画でインプットするだけだとそこで 糸冬( ˘ω˘) ってなってしまったり。
やはり「○○ができるようになった」「○○のレベルまで習得した」と言えるようになるにはアウトプットと他人からのフィードバックが必要です。

かといってインプットもアウトプットも誰も強制しないし締切もありません。
それにせっかく勉強するなら客観的な証明、欲を言えば堂々と履歴書に書けるレベルの成果が欲しくなってきます。

ということで

「数学含むコンピューターサイエンスサイエンスを基礎から体系的に学べて」
「アウトプットやフィードバックが必ずあって」
「締め切りなど強制力があるもので」
「履歴書にもかける成果があるもの」

と考えると大学という選択肢はぴったりでした。

また、UoPeopleは「費用が格安」というのも正直かなり大きかったです。

入学を検討したのは子供が1歳のときでした。
約1年取得した産休育休から職場に復帰してしばらく経ち、子育てしながらの仕事にも慣れてきた時期です。
今後の自分のキャリアや未来の収入アップのためにも社会人学生に挑戦してみたい気持ちはありつつも、

「小さい子供がいる状態でいつまで私はまともに働きつづけられるのだろうか?」
「今はなんとかなってるが小1の壁っていうのもあるらしい」
「いつまで自分の時間が使えるのか?」

という不安はもちろんありました。
周りにも子育てしながらバリバリ働いてキャリアを積み続けてる人はまだまだ少なかったですし。
(子供が未就学児でバリバリ働いている方は多かったですが小学生以上のお子さんを持つ方はほぼいません)

ということでいつ挫折してもおかしくないので、失敗しても金銭的ダメージが少ないかどうかはかなり重要でした。

UoPeopleは4年トータルで$4,860と書きましたが、この金額を入学時にまとめて払うわけではありません。
1コースを受講するごとに修了試験料を払う形なので従量課金です。

また、英語力も上げたくて育休中勉強してTOEICの点数を250点上げたりもしてたので
「英語でコンピューターサイエンスを勉強するなんて一石二鳥じゃん!!」
というのものありました。
(本当に一石二鳥だったかは後述)

他のオンライン大学・大学院とも比較して調べたまとめもありますので興味ある方はぜひ。

zenn.dev

入学するには

UoPeopleの入学要件はこちらになります。

  • 16歳以上であること
  • 高校を修了したことを証明できること
    • 高校の卒業証明書などを提出する。
    • 大学既卒なら大学の成績証明書や卒業証明書でも可
  • 英語力を証明できること
    • TOEFL (iBT) であれば61点以上。
    • 他、IELTSや英検でもOK

参考: Admission Requirements | University of the People

TOEFLなどのスコアを持っていなくても、English composition 1というコースを受講して一定の成績を修めればOKです。
私はTOEICのスコアしか持ってなかったので、そのEnglish composition 1を受けて入学しました。

English Composition 1について書いた記事はこちら:

授業について

学習はすべて非同期で、インストラクターやクラスメイトとのコミュニケーションはメールや掲示板などで完結するため、自分のペースで学習を進めることができます。
「リアルタイムで配信を見る」など同期的コミュニケーションは一切ありません。

1コースあたり8週間かかり、毎週課題が出されます。
提出した課題の評価+中間試験+最終試験の結果で成績(GPA: Grade Point Average)が決まります。

学習に必要な時間の目安は、1コースに付き1週間あたり15〜19時間となっています。

卒業までの所要期間

1年が5つのterm(5学期)に区切られており、1学期につき複数のコースを同時受講することも可能です。
常に2コース同時に受けていれば卒業まで4年、常に1コースであれば8年ほどと言われています。

一度に3つ以上のコースを受講して卒業までの期間を短縮することも可能*1ですし、1つだけにしたり、何も受講しない学期をつくる(Leave of Absence )ことも可能です。

Computer Science専攻はどんなコースが受けられるのか

Computer Science専攻のコースは以下のようになっています。

MATH 1201 College Algebra
MATH 1280 Introduction to Statistics
CS 1101 Programming Fundamentals
CS 1102 Programming 1
CS 1103 Programming 2
CS 1104 Computer Systems
CS 2203 Databases 1
CS 2204 Communications and Networking
CS 2205 Web Programming 1
CS 2301 Operating Systems 1
CS 2401 Software Engineering 1
CS 3303 Data Structures
CS 3305 Web Programming 2
CS 3306 Databases 2
CS 3307 Operating Systems 2
CS 4402 Comparative Programming Languages
CS 4407 Data Mining and Machine Learning
MATH 1302 Discrete Mathematics
MATH 1211 Calculus

Electives
CS 3304 Analysis of Algorithms
CS 3308 Information Retrieval
CS 4403 Software Engineering 2
CS 4404 Advanced Networking and Data Security
CS 4405 Mobile Applications
CS 4406 Computer Graphics
CS 4408 Artificial Intelligence

詳細: Bachelor of Science in Computer Science (BS-CS) - uopeople catalog

これ以外に、一般教養科目や他の専攻のコースもいくつか必修で受ける必要があります。
大学っぽいですね!

UNIV 1001 Online Education Strategies
ENGL 1102 English Composition 2
PHIL 1404 Ethics and Social Responsibility
HIST 1421 Greek and Roman Civilization
Disciplinary Areas of Knowledge Requirement –6 courses required

詳細: Bachelor of Science Curricular Requirements - uopeople catalog

これまでの進捗

私がこれまでUoPeopleで受講したコースは下記です。

まだ序盤もいいとこですね/(^o^)\

ただ、14コース(単位数で言うと48)を日本の大学から移行することができたので現在57単位ゲットできてる状態です。
卒業に必要な単位は最低120なので、半分近く得られていることに…!

単位移行によってほとんどの一般教養系のコースをスキップできることになったので編入できたのはかなり嬉しいです。
Computer Scienceの学習をしに来ているので、「ギリシャ・ローマ文明」のコースとか全然モチベあがらんのでね…。

1termあたり1-2講座だけ受講というペースでゆるゆる進めています。

これまでにかかった金額

  • Application fee: $60
    • 申込手数料
  • Exam/Course Processing Fee: $100 × 4=$400
    • 修了試験料4コース分
  • Transfer Credit $17 × 14 = $238
    • 単位移行手数料14コース分
  • ACEI Evaluation Report $225
    • 日本の大学の単位をGPA換算してもらうのに必要だった

Total: $923

あとは成績証明書とか各種証明書の発行手数料(各々数百円)くらいですかね。

単位移行とか一番面倒な手続きはもう終わってるので、
今後はコースごとのExam/Course Processing Feeくらいしかかからないんじゃないでしょうか。

課題がめっちゃ出る

海外オンライン大学だからこそなのかもしれませんが、とにかく課題がめっちゃ出ます。

毎週水曜日に課題が発表され、1週間以内に課題を提出します。

  • Reading Assignment
    • 読書課題。提示された資料を読むor相応の知識がないと他の課題がこなせない。
  • Discussion Assignment
    • 提示されたお題に対する自分の考えを掲示板に投稿する。他の3人以上のクラスメイトに返信・評価をしてDiscussionする。
  • Written Assignment
    • 提示されたお題に対する考え・回答を提出する。他のクラスメイトにピア評価される。
  • Learning Journal
    • 提示されたお題に対する考え・回答を提出する。インストラクターに評価される。
  • Self-quiz
    • 選択式の演習問題。評価はつかない(non-graded)ためなんどでも挑戦可能。

この量が「毎週」出ます。

週によってはWritten Assignmentがなかったり、Graded Quizという中間試験があったりします。

課題の提出有無や出来はコースの成績、つまりGPAに直結するので毎週必死です。

日本での学生時代は「授業に出席して最後に1000字くらいのレポートを出すだけで単位が取れる授業」とかありましたが信じられないくらいです。

どうやって勉強時間を確保しているか

「1コースに付き1週間あたり15〜19時間が目安」と前述しました。
課題が簡単だったり少なめのコースであれば5-7時間で済みますが、自分が苦手な分野のものだと20時間ほどかかったりもします。

f:id:empitsu88:20201207013728p:plain
Python基礎を受講していたときの週毎の学習時間

f:id:empitsu88:20201010214542p:plain
College Algebra(代数学)を受講していたときの週毎の学習時間

課題は子供が寝た後 or 仕事を終えた後 or 土日にこなしています。

平日の夜は、保育園からピックアップした子供の世話を夫と日替わりで担当するようにしています。
世話を担当する日は寝かしつけた後に課題、担当じゃない日は仕事を終えた後やっている感じです。

とはいえ、子供が成長するにつれて寝る時間がどんどん遅くなってきてますし、
絶賛イヤイヤ期のため
「ママもいっしょにおふろはいる!!!」
「ママも寝るの!!!」
「パパはどこ!!!」
「パパもいっしょにねる!!!」
と癇癪起こしたりで結局家族3人で風呂入って寝るみたいな(これはこれで良いのですが…)当番制が意味をなしてない日も多いです。

いずれにせよパートナーの協力のおかげでなんとかできてる感じです。

よかったところ

ここからはやってよかったところの紹介です。

学習内容への満足度は高い

まだ私はプログラムの序盤なので、履修したコースのレベルとしては基礎の基礎です。

Computer Science専攻の一番はじめのコースである「Programming Fundamentals」は「Variables, Expressions, Statementsとはなにか」「Conditionals, Iterationsとはなにか」などから始まり、Pythonの基礎を学んでいきます。
今受講しているJava基礎のコース「Programming 1」もJavaの言語仕様やオブジェクト指向の概念を扱っています。

課題の内容は普段からプログラミングを書いている人間からすると簡単なものばかりですが、それでも得られるものは多いです。

例えば、Programming Fundamentalsで使用するテキストThink Python: How to Think Like a Computer Scientistは副題の通り「如何にしたらコンピュータサイエンティストのように考えることができるか」を教えてくれる本です。

Pythonの機能を使えるようになることではなく、問題解決の考え方を養うことに重きを置かれた本のため、
ifやfor、関数などを使う演習として

ニュートン法平方根を計算してみよう」
再帰を使ってコッホ曲線のようなフラクタル図形を書いてみよう」
「ユーグリッド互除法で最大公約数をしてみよう」

などが出てきます。

Java基礎のコースでも、初週は「FetchとExecuteのサイクル」「非同期イベント」などCPUの仕組みや、TCP/IPJVMとは何かという話から始まります。

Discussionの課題としても言語仕様や概念を自分の言葉で説明したりサンプルを書いたりすることが求められるので理解が深まります。

「コードが書けるようになること」ではなく「考え方を理解して自分で問題解決ができるようになること」をゴールとしているのが大学らしくていいなと思います。

また、数学の必修コースCollege Algebraは高校数学+アルファの内容となっていますが数学にものすごく苦手意識があった私にとってはとてもやりがいがあり、やり遂げた後の達成感は高かったです。

College Algebraについてはこちら:

UoPeopleでCollege Algebra(大学代数学)を修了した振り返り - えんぴつぶろぐ

まだまだComputer Scienceとしては基礎的な内容のコースしか履修できていませんが、これから少しずつステップアップしていけるかと思うとワクワクしますね。

英語のライティングスキルは多分あがった

アウトプットのほぼすべてがライティングなので、ほぼ毎日強制的に英文を書かざるを得ない状況になります。
特に文系の論述が多いコースだと網羅的に具体的に説明しないと高評価が貰えなかったりします。
必然的に長文を書くことになり毎週2000words以上英文書いているというコースもありました。

急いでいる時は辞書や機械翻訳での日→英に頼ることも多いですが、「拙くてもとにかく言いたいことを最後まで書く」というスキルは上がった気がします。

日英両方でインプットするメリット

もともと知らなかった知識を外国語で学ぶというのは時間もかかりますし二重で大変ですが、良かったこともありました。

例えば離散数学の論理演算子の双条件(biconditional)。記号だとこれ:⇔

日本語だと「Aであるとき、かつその時にかぎりB」という説明で「…?」となってましたが英語だと"if and only if"なので理解できたり。

また、Algebra(代数学)のコースでは、高次方程式の解の求め方として、
日本の中学・高校ではあまり聞き慣れないDescartes’ Rule of Signs(デカルトの符号法則)Rational root theorem(有理根定理)を活用したり。
三角比を学ぶUnitでは便利なニモニック 「SOH CAH TOA」を習えたりします。

日本語と英語両方の用語を覚える必要はありますが、ある一つの概念を複数の側面から知ることで理解も深まり記憶にも定着しやすい気がしています。

これらのエピソードは数学ですが、プログラミングは言わずもがな。
何を学ぶにも公式ドキュメントはだいたい英語なので英語で学んだほうが圧倒的に効率的です。

毎日強制的にアウトプットできる。

一人で本を読んだだけでは本当に記憶に定着しないですし、
インプットだけで「習得した」と言うのは難しいため、学んだことをアウトプットする機会が強制的に与えられるのはありがたいです。

入学して一番最初に受けさせられるコース"Online Education Strategies"では、self-directed learnerになるためのノウハウを 嫌って言うほど 教えられます。

そのコースのテキストいわく、

Prepare(準備)→Absorb(吸収)→Capture(記録)→Review(復習)

という学習サイクルを回すのが効果的だとされています。*2

例えばComputer Scienceのプログラムは序盤だと

「parameterとargumentの違いや、それらがなんのためのものかサンプルコードと文章で説明しろ」みたいな

なんだこれ楽勝じゃん…

って課題もあります。

ですが正確な用語で人にわかりやすく説明するというのは案外難しいものです。
英語となればなおさらです。

GPAのためなら頑張れる

当然ですが、課題の提出は1秒の遅れも許されません。
課題を出さなかったり、最終試験で低い点数を取ってしまうとコースのGPAに響きOfficialな成績証明書に残ってしまいます。

GPAの累積値(CGPA)は卒業後に他の大学院に入学する際に重要になってきます。
米国の大学院だとGPA3.0-3.2あたりが推奨要件として提示されていたりします。

私は卒業後どうするかはまだ具体的には決めていないですが、どこかの大学院でMasterを取ることも選択肢の一つとして視野に入れています。

まあ一度課題を出し忘れたくらいであればGPAへの影響は微々たるものですが、せっかくお金を払って学んでいるのでどうせなら良い成績が取りたいです。
ちょっとでも時間ができるとだらけてしまうタイプの人間なのでこのプレッシャーのおかげで頑張れています。

よくなかったところ

もちろん、イケてないところや良くなかったところもあります。

National AccreditationなのでUoPeopleから他の米国大学に編入したいときに注意

UoPeopleはNational Accreditationとなっています。
他のRegional Accreditationの大学に編入したい際に単位が簡単に移行できないという弱点があります。

National AccreditationとRegional Accreditationの違いについてはこちらの記事が詳しいです。

UoPeopleから別の米国4年制大学編入する際だけでなく、卒業後に米国の他の大学院に入学する際にも注意は必要です。

例えば、名門のジョージア工科大学のOnline Master of Science (Computer Science)の入学要件には、「from a regionally-accredited institution」という言葉があります。

Proof that you have been awarded a four-year bachelor’s degree (or equivalent as determined by Georgia Tech) from a regionally-accredited institution.

Admission Criteria | OMSCS | Georgia Institute of Technology | Atlanta, GA

「えっでも米国以外の大学ならregionallyとか関係ないよね?日本の大学卒の人も入学してなかったけ…!?」とか気になるところはありますが…。

ただ、UoPeopleは今年、regional accrediting agencyであるWASCの適正を受けました 。 正式なRegional Accreditationの認定を受ける日は近いかもしれません。

ピア評価はただただ面倒

UoPeople ではピア評価の制度があります。
Discussion AssignmentとWritten Assignmentのスコアはクラスメイトが付けた評価の平均値で計算されます。

つまり不当な評価をしてくるクラスメイトがいたらそれは自分のスコアに反映されてしまうのです。
実際私が受けたコースでも、なにも理由やコメントを書かずに減点してきたり、全問正解のはずなのに「回答が書いてない」と低い評価を付けてくるクラスメイトがいました。
もちろん先生にメールで抗議すればスコアを修正してもらえる場合がほとんどですが、正直とても面倒です

毎週のようにGrade Apealのメールを送っていた時期もあります。
ただでさえ課題で忙しいのに学習以外のことで時間を取られますし、無事点数が修正されるまでとてもストレスです…。

また、こちらが評価するのもぶっちゃけ面倒です。

大学がピア評価を導入している意図としては、
「Self-reflectionの機会を増やし学びを深める」
「他人のworkから学びを得る」
など様々な狙いがあるようです。
(学費無料なので先生の負荷削減の意図もあるのかもしれない)

ですが論述の課題ならともかく、数学の問題を解く課題やプログラムを指示通りに書く課題は自由度が低いため、ただ模範解答と照らし合わせて合ってるか確認するだけの作業に成り果てます。

「英語でCS学べば一石二鳥で時間が節約できるじゃん!」と思っていた時期が私にもありました

結局このツイートの通りなんですが、まだ私の英語力では、未知の分野は日英両方で学習しないと太刀打ちできません。

代数学離散数学のコースでは、何も知らない状態で英語のテキストを読んだら「ハァ?」となったので日本語の資料・動画で予習してから課題に取り組んでいました。
もちろんその分時間はめっちゃかかります。

自動翻訳ツールも使いまくってます。
最初にテキストを流し読みする時はまず翻訳にかけますし、英文を書くときも急いでいる時はみらい翻訳に頼りまくります。

英語で学んでる意味あんのか?って思うときもありますが、精読するときは原文を読みますし、前述したとおり二言語でやる分学びは深まるのでまあ良しとしてます。

TOEICスコアはあんまり上がりませんでした…

先程も言ったとおりコミュニケーションはすべてテキストなのでリアルタイムで会話する機会はありません。
また、動画教材は提示されることもありますが、Youtubeでは字幕という便利なものが付けられるので英語が聞き取れなくてもなんとかなっちゃいます。

つまりほぼReading, Writingしか行わないのですが、それも翻訳ツールを使いまくってると英語力向上にはあまり寄与しません。
(当然ですが…)

今年の7月にTOEICのみんなで模擬受験というものを受けてみたのですが、参考スコアはUoPeople開始前とあまり変わりませんでした…😇

ただ未知の分野を学んでアウトプットするわけなので語彙力はめっちゃ増えました!
(当然ですが…)

MOOCのほうが時間的にも費用的にも効率はいいよ

UoPeopleは大学なのでComputer Science以外のコースも修了する必要がありますし、ピア評価のごたごたもこなす必要があります。
つまり、「自分が本当にやりたかったこと」以外に必要な学習・作業に割かなければならない時間がそれなりにあります。
そしてお金も大学にしては格安といえど40万程度はかかります。

今どきはClass CentralやCourseraなどのMOOC上で名門大学が無料で高品質なコースを提供している時代です。
「学位はもらえなくていい」「好きなコースだけ受講したい」「自分でモチベーション管理しながら学べる」という方はMOOCで学ぶ方が時間的にもコスト的にも効率がよいと思います。

私は無理なので大学に入りました😇

でも総合的にはやってよかったよ

正直言うと、えいやー!と見切り発車でスタートしたところもあるUoPeopleでしたが、今は卒業まで見据えて取り組んでいます。

最初は「8年かかるの?絶対ムリだわ。」 って思ってましたが気づいたら1年経ってたし残り63単位になったので案外できるかも!?って気がしています。

あとコロナ禍で在宅勤務 with kidsやってた時はそんな中でもくそしんどいコースをやりとげたので今後また辛いコースが来ても なんとかなる気がしています。
でも当時は本当に辛かったのでできるのでマイペースにやっていきたいと思います。
Leave of Absence (休学)も気軽にできるし。

このように、UoPeopleはオンライン申し込みフォームに入力して$60払うだけでエイヤー!で始められるので とりあえず一歩踏み出したい!って人にはおすすめです。

(まあその後がめっちゃ大変ですけど…)

*1:一定の成績を収めていれば最大4コースまで同時受講が可能です。

*2:College Success chapter1.3より。