Learning Journal for a BS CS

Soon to be a Degree Seeking Student

UoPeople で3学期目が終わった振り返り

みなさん、あけましておめでとうございます。もとまちです。 本年もよろしくお願いします。

昨年は子供の保育園通いが始まったり、引っ越したり、転職したり、色々変化があった一年でした。 今年は、そうした変化に適応して生活の基礎を固めつつ、コツコツ積み上げていく年にしたいと思います。

さて掲題の通り、UoPeople での3学期目(AY2022-T2)を終えたので、その振り返りを書いておこうと思います。

まだ本科生じゃなかった

一つ前の記事で「本科生になりました」と書きましたが、実は嘘でした😇

記事執筆時点では要件を満たしていた認識だったのですが、入学のための書類取り交わしが実際は期限に間に合っておらず、結果この学期は Foundation Student 扱いのままとなりました。Foundation Student のままだと、取得単位は卒業単位に算入してもらえるものの、成績は GPA に含まれないという状態になります。この辺りの確認は Program Advisor とやりとりしていて、その流れでしょげた気持ちを表明するメールを送ったところ、落ち込まないで!と励まされました。あ、そこは励ましてくれるんだというのが率直な感想でした。

CS1102: Programming 1

今期は試しに2科目履修してみたのですが、そのうちの一つ目がこちら。

my.uopeople.edu

Java で Object-Oriented Programming と Graphical User Interface Programming を学ぶことが主眼に置かれています。

教科書はこちら:http://math.hws.edu/javanotes/

英語でプログラミングを学ぶ意味

過去に職場で Android アプリ開発をかじった経験があるため、学ぶことはさほど多くないかなと思っていたのですが、それでもやはり英語でプログラミング・CSを学ぶ価値は大きいと感じさせられた科目でした。

日本語でOOPについて学ぶと、のっけから”オブジェクト指向”とカタカナ語になり、言葉の定義が曖昧になって迷子になりがちな印象があるのですが、英語で学ぶことで語彙の用法がスーッと澄んで見通しが良くなる感覚がありました。例えば、 A sub-class extends a super class. The sub-class inherits some variables and methods from the super class. など。これらの例を日本語で簡潔に言い表すと、拡張や継承となりますが、そうした言葉を使うときに英語的な目的語を意識できていなかったなぁと振り返って思います。

OOP に限らず、GUI についても基礎をしっかりやる感じなので、自分の中で理論的な地図が構築されていく感覚を得ることができました。

Programming Assignments

シラバスにあるように、 hands-on experience として実際にプログラムを組みます。GUI 実装のために JavaFX を使えるようにする必要があるのですが、そこがハマりどこでした。

JavaFX のインストールに成功した後も、意識低く最低限の課題をこなすに留まりましたが、独自カスタマイズの余地もあり楽しむことができました。

Discussion Assignments

お題は、OOPGUIの鍵となる概念について、実装例を交えつつ説明するといったものが中心でした。既述の通り、抽象的なお題になりがちなので、そもそも問いを取り違えているクラスメートが多く見られました。その中で、小慣れたコードで鮮やかに回答していくクラスメートもいて、刺激になりました。クラスメイトにも恵まれ、議論を深めることができました。

学習時間

いつものやつですが、馬鹿正直に毎回70-100ページほどの教科書の指定範囲を読み込もうとしていたため、やたら時間がかかっていました。

f:id:motomachi17:20220114001737p:plain
1週間だけ外れ値っぽいものの、平均7-8h/week くらい学習した

MATH1280: Introduction to Statistics

続いて2科目めはこちらの、統計学入門。

my.uopeople.edu

記述統計から確率・各種分布・確率変数などをカバーして、MATH1281に控える統計推論の前提を学ぶ構成になっています。

教科書はこちら

体調を崩したり、業務負荷が上がったり、諸々の皺寄せを一身に受けた結果、こちらの科目は B で着地しました。悔しいです。

Final exam は持込可

この科目、監視員付き試験の科目なのですが、シラバスを見ると、教科書と参考ノート(いずれもPDF)を持ち込み可能と書いてありました(2022/1月 現在)。

Open book: Students can read the course textbook and PDF notes for the class, which contain examples of R commands.

配布されている参考ノートには、教科書の理解が難しい箇所を噛み砕き、学生の理解を容易にする目的があると思われます。そこで試験対策としては、豊富な問題演習を可能な限り解き、出来なかったところを教科書や参考ノートで理解し直す、というサイクルを回すことに集中しました。教科書もUoPeople向けに執筆されているものとはいえ、かなり行間を読まなければいけない部分があり、参考ノートの存在にもっと早くから気づいておきたかったというのが正直なところでした。期中に体調を崩して寝込んだ週があり、そこから仕事も忙しくなって腰を据えて勉強できなかった(≒しなかった)のが悔やまれます。

参考ノートは教科書理解に必須

一つ前の項と重複するのですが、抽象概念が数多く登場する統計学を学ぶにあたっては、当たり前ですが具体と抽象の往復が理解を深めるための鍵となります。で、教科書が当然ながらそこそこ抽象的に書かれているところ、Moodle 上で参考ノートが複数提供されているため、必ず併せて目を通すことをお勧めします。もしもう1回同じ科目を受けられるならば、実際に教科書の章末問題や Slef Quiz を解いて、不正解だった部分の原因追求の中で参考ノートにも目を通すと思います。

Unit5 での体調不良;バッファは大切

この科目、教科書通読を通じて理解しようと躍起になっていたところに、体調不良でのダウンがあり、期中で張り詰めていた糸が切れてしまったようになってしまいました。課題の提出状況をまとめた以下の表では、未提出を赤で表現しています。

f:id:motomachi17:20220113235056p:plain
Unit5 以降、課題やらないサボ学生に
ちょうど年末に仕事で関わっているプロダクトの初期リリースを迎えたのと時期的に重なったこともあり、かなりパフォーマンスが下がってしまいました。振り返ると、体調を崩す Unit5 以前も、Unit の後半になると睡眠時間を削って課題をこなす日々が続いていたので、自覚はなかったものの大分無理をしていたようでした。

当たり前のことなのですが、可処分時間は動かしようがないので、その中で無理せず学ぼう、という結論に至りました。

あらためて、手を動かすべし

期末試験の項で触れた通りなのですが、とにかく演習あるのみと思います。

f:id:motomachi17:20220114001326p:plain
平均勉強時間は 6h/week ほど
定量的に振り返ると、そもそも2科目履修の結果として学習時間が取れていないですね。これが低パフォーマンスの原因と言えそうです。

まとめ

  • まだ本科生じゃなかった(次の学期からは本科生のはず!)
  • 無事に2科目履修して単位は取れた模様
  • 今期のパフォーマンス低下の反省から、今後は学期あたり1科目で進行予定

おまけ

okayu さんのブログ記事で紹介されていた「データ分析のための統計学入門」の元サイトで見つけた動画を紹介します。

リンク先では、統計学が実世界で使われているかを知れる動画の一つとして紹介されており、その中でも先進的な事例と言える、NBA で働くデータサイエンティストの紹介動画です。Bloomberg 版のプロフェッショナル仕事の流儀、という感じで、引き込まれました。

youtu.be

大学バスケットボール一部リーグ奨学金をもらって活躍しつつも、プロバスケ選手志望から、数学の Ph.D. にキャリア転換。女性のデータサイエンティストが少ない中で躊躇があったものの、蓋を開けてみれば、バスケットボールへの深い理解と数学の両方を兼ね備えた人材は貴重だという雇用側コメント。痺れます。

それでは、また。

UoPeople での2学期目が終わり、CS 学部本科生になりました

ご無沙汰しております、もとまちです。

今回は、UoPeople での2学期目が終わったので、その振り返りをしようと思います。

以下、目次です。

これまで

と、その前に、そもそもなんで UoPeople で勉強しているの?については前回の初回記事をご覧ください。

motomachi17.hatenadiary.jp

ざっくりまとめると:

  • 職業プログラマだが、学問的には素人なので Computer Science 的素養を培いたい
  • 家事と育児と仕事を抱えているため、講義時間に拘束されたくない、ましてや通学をや
  • 将来的には海外移住も視野に入れているため、英語でのプログラムが好ましいと思っていた

てな理由で UoPeople で勉強することに決めたという次第です。

2学期目も履修数は1科目

上記の流れで UoPeople での2学期目に突入したわけですが、履修を決める前の段階で仕事が忙しくなる想定があったため、この学期も1講座だけの履修に抑えました。その想定とは、転職。

とっとと学位を取得したい!という気持ちからすると悩ましいところではあったのですが、新しい職場で立ち上がる目処が立つまでは、学業で業務を圧迫しないようにするのが無難だろうと堅めの判断を下しました。9月1日入社だったので本記事執筆時点で丸2ヶ月が経過しているのですが、特に職場での不確実性が大きい段階で履修決定を迫られたため、妥当な判断だったなと感じています。

新学期開始の前日に、こんな呟きをしていたらしい。

CS1101: Programming Fundamentals 振り返り

さて、今回履修したのは CS1101 という科目。

my.uopeople.edu

科目名にもあるとおり、プログラミングをする際の基礎的な考え方、概念、作法について総ざらいするという内容。プログラミングの基礎を学ぶことは、Computer Science を学ぶにあたって、まさに初めの一歩ということなのでしょう。教科書*1に指定されている Think Python 第2版 が入門書としてはよくできているので、もし Computer Science 学んでみようかなと思ってる方がいらしたら、ぜひ手に取ってみてください。

教科書がよくできている

繰り返しになるのですが、Think Python という教科書が秀逸でした。著者の力量によるところが大きいのでしょうが、ああ、英語の世界ではこんなに見通しよくプログラミングが語られているのね、と感動することしきりでした。

これを感じたのが、第1章でプログラミング言語の定義をするくだりでした。

前のセクションで「よくできている」と書いたのは、登場する用語の定義がわかりやすく、ネット上に落ちている(日本語の)プログラミング関連記事によくある、カタカナ語によるモヤモヤがないことに尽きます。受け取り手を迷子にさせない意思疎通、書いたり、話したりする際に念頭におきたいものです。

クラスメイトと絡むのが楽しい

UoPeople の醍醐味の一つに、全世界から学生が集まっている点が挙げられます。今回のクラスも多分に漏れず、南北米・アフリカ・欧州・亜州など各大陸からクラスメイトが参加していました:

  • やたらとコードがエレガントな、熟練 pythonista らしきブラジル人
  • BTS Army だとプロフィールに書いているアメリカ人
  • CS 専攻じゃないけどよろしくねと自己紹介していたハンガリー

中でも記憶に残っているのが、カナダ出身で北欧在住、子育て中とプロフィールに書いている父さん学生とのやりとり。これがなかなか白熱しました。きっかけは初期の Discussion Assignment で、筆者の投稿に対して向こうが疑問を投げかけてきたこと。結構込み入ったポイントをつかれたのですが、こちらからの返信が Unit の締め切りのギリギリだったこともあり、Moodle の DM 機能に場所を移してのやりとりを2-3往復した記憶があります。彼とはその後も、 hilite.me というコード整形サービス の使い方についてやりとりしたのですが、どうやらプログラミング初学者らしき彼の文章は、やたら冗長で、わかりやすかったのでした。即座に再現できるようにするためのアクションを取らないところが筆者の怠惰なところなのですが、彼の素晴らしい文章力に大きな刺激を受けた次第です。

コード上の命名が困る

この科目では、とにかく配列や辞書など基本的なデータ構造の取り扱いについて理解が問われるものでした。つまり、Discussion Assignment にしろ、 Programming Assignment にしろ、Learning Journal にしろ、基本的なデータ操作(配列への要素追加、辞書の逆引きなど)をこれでもかとコードで表現しなければいけないわけです。そこで少し困ったのは、それらのデータ構造で何を表現するかということでした。もちろん、教科書の内容を基礎に別の方向でコードを書き上げることが求められる場合は創作の余地はほぼないわけですが、それでも感覚的に半分くらいは創造性を問われる(嘘)課題だったように思います。

あまり時間もかけられないのでぱっと思いついたものを使うわけですが、筆者の場合はスター・ウォーズのキャラクターたちに参加してもらいました。例えば、配列への要素の追加がお題だったら、R2-D2C-3PO を含む配列に、 BB-8 を追加する、といった具合です。

今振り返ると Unit2 の Learning Jouranal の提出物の中に既に Yoda の文字が見えているので、当初から彼らに頼っていたようです。Discussion Forum では終盤に、この創造性が問われる課題が登場し、その際はやたら好評を博しました。その様子をここに引用できないのが若干悔しいですが、 "I love you wrote your code with what we've grown up with!" みたいなコメントを上述の BTS Army が残してくれていて、通じた感じがとても嬉しかったです。

UNIV1001 との比較で楽しく過ごせた科目だった

初っ端の Online Education Strategies がつらすぎるという話ではあるのですが、、、上記のクラスメイトとの交流や、 Peer Assessment や Discussion Assignment の採点基準が明瞭だったこともあり、精神的な負担は相当軽くなったというのが実感です。

筆者が職業プログラマということもあり、かなりサクサク課題をこなせたというのは勉強時間の実績値からも読み取れます。他方で、実態としては早寝早起きで、毎日子供が起きる前の1-2時間で生産性を極力上げて取り組んだのが功を奏した面もあります。

f:id:motomachi17:20211108234526p:plain
勉強時間は 4-12時間/週、程度だった

本科生になった

こんな書き出しで始まるメールを受信し、正式に UoPeople の Computer Science プログラム本科生になりました。

Congratulations!

You have successfully completed UoPeople Foundations and have been admitted as a Degree Student in the Bachelor's degree in Computer Science program! But wait, there is more! All courses with a passing grade will be counted towards your degree!

この学期の初期に手続きをしていたのであまり詳細は覚えていません。が、ポイントは原則高校の卒業証明書の提出を求められるところ、既に大学を卒業している人は大学の卒業証明書を提出すればよい、ということ。筆者は、 n 年前に日本の大学の学部を卒業していたため、そちらの卒業証明書を提出して、無事に承認されました。Catalog に原則しか書いていないのは、学部 admission において基本高校を卒業した人の入学が想定されているであろうことからすると納得なのですが、例外についても FAQ とかで誰でも参照できる状態にしておいて欲しいなぁという感想です。筆者がただ見落としているだけかもしれませんが。

次の学期

もうすぐそこに迫っている来学期ですが、下記2科目を履修予定です。

それでは、また。

*1:リンクを貼ったシラバスには A History of the Personal Computer という別の教科書も指定されているが、本科目履修中に課題図書として指定されることはなかった。

UoPeople はじめました

はじめまして、もとまちと申します。題名にある通り、2021年6月から University of the People (以下 UoPeople*1)に入学し、 Computer Science (以下 CS)の学士号取得に向けた勉強をはじめました。

www.uopeople.edu

この度、最初の学期が終わって一区切りついたので、振り返ります。

なぜ UoPeople か

そもそも UoPeople とは

多くの先行記事(後述)で言及されているので深入りはしませんが、公式から引用すると

As the first online, tuition-free, American, accredited university UoPeople is making higher education affordable and accessible to all qualified applicants, while providing support from application to graduation.

米国で高等教育提供機関として認証されている、学費が無料のオンライン大学、といったところ。

設立の経緯や理念については創設者兼学長によるプレゼンがTEDにあるので、そちらもどうぞ。

Shai Reshef: An ultra-low-cost college degree | TED Talk

UoPeople の雰囲気を知るのにこちらの記事などを参考にしていました:

CS の学位は欲しいが、まずは学部から勉強しようと思った

そもそも何故 CS の学位がほしいのかというところからになりますが、大雑把に言えば、今の時代をよりよく生きていくための武器を獲得したいから。四大は出ているものの、いわゆる文系学部出身の人間には、仕事で技術を習得するにせよ、根底の文脈というか教養みたいなものが不足していると痛感してきました。キャリア的にこれといった尖りもなく、ここでしっかりした土台を築き、この先10年20年活かしていきたいというのもあります。

他方で、仕事をしながら大学で学ぶことを考え始めた際には大学院進学を検討していました。しかし、CS 領域の土台となる数学がおぼつかないことから、学部からのやり直しを選択することにしました。なお学費や通学観点から一番真剣に検討したのは JAIST北陸先端科学技術大学院大学の社会人コース@東京品川キャンパス)だったのですが、その際には下記ブログに熱量高い筆致の記事があがっており、参考にさせてもらっていました。

fushiroyama.hatenablog.com

UoPeople に辿り着いた経緯

CS の学位を検討する中で、大学院と並行して学部のプログラムも幾つか見ていました。国内の大学で勤労学生向けのCS関連の学位がとれるプログラムとなると、選択肢が極めて限られており、しかも通学前提だったりするわけです。そこで国内外問わず、オンラインのプログラムにも目を向けたわけですが、注意を惹かれたのが UoPeople だったのでした。

  • Fully-online なので、通学時間不要で、かつ、勉強時間さえ確保できればいつ勉強しても良い(=講義時間に縛られない)
  • 費用が安い;単位認定に必要な経費のみ;総額で最大 $4,860 + 入学費用
  • 米国の高等教育機関認証を取得しているので、中期的に考えている海外移住の助けになりそう
    • この点については、そのうち記事にするかも知れません。
  • 海外大学の入学要件でネックになりがちな語学力証明基準を既に突破していた
    • TOEFL で基準突破していた。基準値 61、所持値 93。

理由としては上記に掲げた通りですが、ポイントは、子育て世帯の当事者が学ぶのにもってこいな環境ということです。その意味では日本の放送大学の情報学プログラムも匹敵する可能性がありましたが、個人的には英語で学べるというのも UoPeople を選んだ大きなポイントでした。

まとめると、子供を保育園に通わせるようになり、生活にリズムができてきたところで、CS 学士号取得に向けた勉強を UoPeople で始めた次第です。

最初の講座を修了した

UoPeople で入学手続きをすると、まずは Foundation Course Student という、本科生の一歩手前という状態が付与されます。いくつかの講座履修を選考プロセスの一環としているわけです。その際、最初の学期で UNIV1001 と専攻したいプログラム(Ex. CS)の必修科目を1つアサインされるのが一般的な流れで、僕の場合もそのケースに該当していました。しかし、UoPeople は1つの講座につき週 15-17 時間は見ておくようにと言っており、ひとまず1コースを除外し、1コースのみに専念することにしました。それが UNIV1001 というコードの講座でした。

UNIV1001 とは

その名も Online Education Strategies という講座で、全学生に履修が義務付けられている、UoPeople のオリエンテーション的位置づけです。

This course is required for all students and is a preparation for a successful journey into the University’s online environment. It introduces students to the University of the People library, the resources available to them, our academic methods, and the policies and expectations for student performance. Further, it provides an overview of strategies for student success including time and stress management, effective study skills, and personal ownership of the learning process.

内容は、だいたいここに要約されている通りですが、詳しくは同じく UoPeople 勢のブログをご参照ください。

empitsu88.hatenablog.com

okauuu.hatenablog.com

個人的感想は、下記つぶやきに要約されます。

ここからは個人的に印象に残った点を幾つか。

College Success という教科書が秀逸

open.lib.umn.edu

College Success というのは、この講座を通じて何章か読むことになる教科書なのですが、この内容がとてもよかったです。どうよいのかというと、引用にもある通り、大学で学ぶとはどういうことか、大学で成功するためには何をすべきかについて具体的に書いてくれています。もし僕が大学の新入生向けのカリキュラムを決める権限を与えられたら、間違いなくこの教科書を基礎の1つに据えることでしょう。

もう一つ感銘を受けたのは、この教科書の内容が、多かれ少なかれ米国の大学で新入生の手ほどきとして標準的に導入されているらしいということでした。これは UNIV 1001 の中で調べ物をした際に、この教科書の各章のキーワードでググると、だいたい米国のどこかの大学の Learning Center の記事や動画がヒットした経験をもとに言っています。1周目の学部体験を日本の大学で得た身としては、少なくともこの手の学びは記憶にないし、こうした読み書き算盤に匹敵する基礎的汎用性のある内容を大学生に標準的に導入している米国は、高等教育機関で国力もたせているのだなと身につまされました。

結構つらい

勉強量、なかなかありました。

f:id:motomachi17:20210828004320p:plain
Study hours

読み物の量がそこそこあり、しかも週によって内容がぜんぜん違うので、1週間頑張っても、次の週はゼロスタートでお題目に興味関心を持てるように時間を掛ける必要がありました。 Critical thinking だったり、 Self-determination theory だったり、より時間を書けてじっくり論文を味わいたかったのですが、今の自分の実力と思って割り切るしかなさそうです。

次の講座

来期は CS 1101: Programming Fundamentals という講座を履修予定です。

*1:UoP だと他大学と衝突してしまうらしい。