えんぴつぶろぐ

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

2019-2020年振り返り

2020年の振り返り記事を書こうと思ったらブログの下書きから書きかけの2019年の振り返りを発掘したので一緒に公開して供養します。
前半はコロナ禍より前に書いたものなのでテンションがぜんぜん違うのが興味深い。

育児・仕事・学業全部に言及してるので我ながらごった煮すぎる。

(2019年4月)産技大修了

2019年はまだ育休中だったが、2018年10年に履修開始した産業技術大学院大学の人間中心履修証明プログラムを2019年4月に修了した。
このプログラムはUser Experience デザインやHuman Centered Design、ユーザビリティの理論などを基礎から学んだり実践できるもの。
半年間のプログラムではあるが、履修証明制度に基づいて履歴書にも書けるものになっている。

受けた経緯はこちら:

empitsu88.hatenablog.com

この履修証明プログラム社会人向けで、平日夜や週末に授業がある。
ほぼ毎週土曜日10時〜18時+たまに金曜夜というスケジュール。
もちろん授業に出席するだけでなく課外の課題も多い。

  • 予習として課題図書を読んでくる
  • 授業で学んだことをまとめたレポートを書く
  • ユーザーインタビューに繰り出して書き起こしをしてくる

という個人ワークもあれば、グループワークのためにチームメンバーと協力して制作をしたりもする。
もちろん授業中にも作業はするんだけど、圧倒的に時間が足りないし納得の行く成果物を出すためには授業外の時間を使ってすすめることも時には必要だった。

  • facebookグループ上でコミュニケーション取りながら、プレゼン用の資料を分担してつくる
  • プロトタイプをつくってユーザーインタビューする
  • ユーザビリティテストで使うシナリオや資料を整理する

などなど…
更に受講生同士有志で集まっての勉強会や素振り会が開催されていたり。

そんなこんなでとにかく時間が必要だったけど、産技大の活動をしている間快く家事育児を引き受けてくれた夫には本当に感謝。
おかげで授業は全て出席することができたし、課外の課題やグループワークもスムーズに進めることができた。

f:id:empitsu88:20210101130639j:plain
修了証

「育休中は孤独だし平日日中ワンオペになるが故夫への不満が募りがち」とも世間ではよく言われるが、このおかげで夫には感謝こそすれ不満とかほぼなかったように思う。
むしろ頭上がりません。

職場復帰してからは、UX勉強会開催したり、スクラム開発で仮説検証プロセスを高速で回すときに「これ産技大でやったやつだ!!」って進研ゼミ状態になったり学んだことがじわじわ効いてきてる。

(2019年3月)TOEIC250点上がった

2019年3月に数年ぶりにTOEICを受けた。

2018年の振り返り記事にも書いたけど、育休中は英語の勉強をちまちまと進めていた。

スマホのアプリで単語覚えたりリスニングしたりオンライン英会話やったりして、前回からは250点あげることができた🎉

この勢いでIELTSもうけるか!って意気込んでたけど職場復帰した後はオンライン英会話ですら回数をこなすことが難しくなってやめてしまった。

(2019年4月)職場復帰した

約1年取得した産休育休から2019年4月に復帰した。

その時の振り返り記事:

empitsu88.hatenablog.com

復職してからはWebサービスの環境改善や新規事業の開発に携わったりした。

新規事業の開発のことはAdvent CalendarでQiitaにも記事を書かせてもらった。(今見るとところどころ古い内容があって恥ずかしいが…)

qiita.com

技術選定からアーキテクチャ設計、コンポーネント設計、新規アプリケーションのセットアップ、実装、Unit Test、CI、ドキュメント整備、仕様調整、スケジュール調整、などなど少人数で回す必要があったし、Nuxt.jsもTypeScriptも自分は実務では書いたことなかったので業務の合間に勉強する必要もあったしでかなり大変だったけどここでかなりレベルアップできた気がする。

ブランクもあってコードを書く力がかなり錆び付いていたのもあり、モダンフロントエンド環境での設計力・実装力をつけたいと思ってたので渡りに船だった。

(2020年1月)卒乳した

このとき娘は1歳半をとうに過ぎていたが、ようやく完全に卒乳した。
もともと混合育児で、昼間はまったく母乳はあげずに済んでいたが、寝かしつけや夜泣きのときはあげないとギャン泣きされる状態だった。

何度かトライしつつも娘が体調崩したり自分が体調崩したり義実家帰省があったりで幾度となく中断を余儀なくされていたプロジェクトだったが、令和2年を迎えて再度気持ちを新たに挑戦したところあっさりと卒乳してしまった。

今まで私が寝かしつけるときは「はよここに寝て乳飲ませろ!」と言わんばかりに枕を叩きながらぐずり、服をめくってきていたのにそんなそぶりを見せることもなかった。

「もうおしまいだよ〜」「娘ちゃん大きくなったからもうないよ〜」と幾度と話しかけていたおかげかもしれない。

卒乳関連の指導では「赤ちゃんの心と体が必要ないと思ったタイミングで自然に卒業します」説は話半分で聞いてたけど確かに自然なタイミングでやめられた気がする。

どんなに泣いてても一瞬で泣き止ませることができる最終兵器は使えなくなってしまったが、
卒乳後は夜泣きも少なくなったし、
眠い時にママ依存になることもなくなったし、
これからはお酒も飲めるし、
通院するときに授乳してても大丈夫な薬に変えてもらう必要もなくなる🎉

(2020年1月) University of the Peopleに入学した

詳しくはこちら:

empitsu88.hatenablog.com

empitsu88.hatenablog.com

2018年の振り返り記事には産技大の履修証明プログラムに申し込んだ理由について

「"自分はどこに行ってもなんとかやっていけるという自信"を得るためにポータブルなスキルとキャリアがほしい」

みたいなことを書いてたんだけどUoPeopleに興味持った理由も全く同じだった。
UoPeopleで「グローバルでポータブルなスキルを身につけられてるか」っていうとまだまだ序盤なので全然だけど、どんな場所でも生き残れるようになっておきたいという野望はある。

(2020年3月)娘、2歳になった

2020年3月に晴れて2歳になった🎉
この時点での「できるようになったこと」を挙げると枚挙にいとまがない。

  • 85cm 11kg
  • 手すりがあれば一人で階段登れる
  • 単語だいぶ増えてきた。「娘ちゃんのしゃしんー」とか二語文っぽいのはよく喋る。
  • 「娘ちゃんのおててべたべた〜」とか三語文っぽいのも喋る。
  • 歌が好き。「きらきら星」や「ハッピーバースデー」とかよく歌ってる。歌詞がだいぶ聞き取れるようになってきた。
  • パズル好き。アンパンマンのシルエットパズルとかシルエットに合わせて貼るシールとか得意げにやってる。
  • 好き嫌いが激しくなってきた。保育園だと野菜ほぼ食べてこない…
  • トイレトレーニングはまだしてない。けどおむつ替えてほしいときや💩したときは教えてくれるときもある。
  • イヤイヤ期の片鱗がちょっと見えてきた。
    思い通りにいかないことがあるとめっちゃ泣く。お外行きたいのに雨で行けない日とか。
    親のスマホで自分の写真みたいのに見せてくれないときとか。
    でも別のことに気をそらすと一応誤魔化されてくれる。

反対に、「やらなくなったこと」もあるし「できなかったときの娘」とはもう二度と会えないのだと思うととても切ない。

本当にこれで、突然癇癪を起こしたり、思い通りに泣かないとすぐギャン泣きしたり、1日に3回くらいわざと牛乳をひっくり返したりするけど、だけども今日の娘が今までより一番かわいい。
体のフォルムがかわいいし何を喋ってもかわいいしすべての仕草がかわいいし自我が出てきてるのもかわいい。

(2020年4月)認可保育園に転園した

育休復帰後に最初に入園したのは小規模保育所で、1歳児クラスと2歳児クラスしかない場所だった。
つまり、2021年3月までしか居られなくて、2021年4月から預ける場所は別途探さないといけない。
待機児童が多く保育園になかなか入れない地域だったので、「比較的競争率の低い小規模保育にまずは入園し加点を得た上で、5歳児クラスまである認可保育園に申し込み転園する」という首都圏ではよくある戦略を取った。

無事に認可保育園2歳児クラスの内定がもらえたので、約1年間お世話になった小規模保育所を卒園して新しい保育園に転園することになった。

これで5歳まで預ける場所が確保できる!
つまり職を失う心配をしなくて済む!

と安心したのもつかの間、新しい保育園での慣らし保育もそこそこにコロナ禍に突入してしまったのだった…。

(2020年4月〜) つらいつらい在宅勤務 with kids

4月〜6月は3ヶ月弱保育園が登園自粛になって子供の面倒を見ながらの勤務だったのでほんと辛かった。

親がPC触ってるときに限ってまとわりついてきたり(子供からしたらそりゃ気分よくないよね…)
常に「おそといく」「こうえん行く」「うわあああああああ」だし
でも仕方ないとはいえ公園行くのも少し罪悪感あるし
時間帯によっては公園も結構人がいるし
子供は小さい子同士遊びたがっちゃうので娘が他の子に近づく度に「うわあああ密ううううう」って気が気でなくなるし
公園を避けて散歩するにしても近所は車や自転車も通る道ばかりだし
夫と半日交代制で面倒を見るようにはしていたが、やはり同じ家の中なのでぐずってたら気になるし仕事場に乱入されることもあるし
スプリント計画のときに自分の消化予定ストーリーポイントは多少減らしてもらったけど少し罪悪感はあるしで
(ただ半休はちょくちょく使って育児に専念する日は作ってた)

とてもストレスフルな期間だった。

ただ「昼間働けない分、子供が寝た後深夜に仕事の遅れを取り戻す」みたいなことはしないようにしてた(やりたくない)のでUoPeopleの受講もなんとか続けられていた。

empitsu88.hatenablog.com

今思えば「こんな状況なんだし有休バンバン使って週2勤務にするとか2週間まるごと休むとか、仕事の方をもっとセーブすればよかったのでは…」と思うけど、あのときはいつまで休園が続くかわからなくて有休を温存してしまった。(有休が十分手元にないと保育園から発熱お呼び出しかかったとき困るし)
夫婦二人とも在宅勤務且つフレキシブルに働きやすい職場環境というのもあり、在宅勤務 with kidsがギリギリ無理じゃない状況だったのもある。

(2020年7月〜) 保育園再開

緊急事態宣言が明けて約一ヶ月後の6月下旬、ようやく保育園に登園できるようになったので慣らし保育を再開した。

入ったばかりの新しい保育園の上、3ヶ月も登園していなかったので娘が慣れるか心配だったが順調に馴染んでいた。
いまや土日平日問わず家では「ほいくえんいく!」「あしたほいくえん?」「ほいくえんいきたかったあ」とか言ってる。

登園自粛が明けてからの生活

平日日中はずっと夫婦で家で仕事してるのもあって「電車に乗る」とか「地元以外の場所に外出する」というハードルがめちゃめちゃ高くなった。

職場が全社的に在宅勤務推奨になってから結局1-2回しか物理出社はしていない。

もともと休日は予定を入れまくるタイプの人間だったので休日に思うように外出ができないというのは地味にストレスだった。

実は通っていた保育園でも一度COVID-19陽性者が出て休園となった。
その時娘もPCR検査をした。
「うちの子も罹ってて発症したらどうしよう…」
「子供が罹ってたらそりゃ親もかかってるよな…」
みたいな心配もあるにはあったが家族全員ずっと無症状で超元気だったので、それよりも
「罹ってしまった方は症状大丈夫だろうか…」
「命に別状はないのだろうか…重症だったら…」
「保護者などから責め立てられたり誹謗されたりしてないだろうか…」
「もはや誰が罹っておかしくない状況だしそもそも子供から感染ったかもしれんし…」
「幼児は全員ノーマスクだし職員さん命がけの仕事じゃん…」
とか色々考えて結構ストレスだった。

尚、娘の結果は陰性だった。
とはいえ偽陰性の可能性もあるので念のためしばらくは家族みんな買い物・公園・散歩も含めて外出を控えていた。
(保健所の人には結果出るまで外出控えてねとかも含めてなんも言われなかったが…)

在宅勤務自体は最高

自粛生活はストレスだが在宅勤務は最高である。
夫婦ともに在宅勤務なので、娘を保育園に迎えに行って帰ってきたら夫が娘を出迎えて、3人で夕飯食べてみんなで風呂入って寝るみたいなことができている。

本当は平日夜の子供の世話は日替わりで夫と交代してるんだけど、3人でいるのが当たり前になりすぎて、 片方がお風呂連れて行ったり寝かしつけしようとしても
「ぱぱもおふろはいる!」
「ままはどこ!」
「ままといっしょにねるの!」
「ぱぱはどこ!」
って娘がなるので3人で過ごしちゃう日も多い。これはこれでまあ良し。

通勤時間がまるごとなくなったのもかなりありがたい。
在宅勤務じゃなかったら社会人学生やりながら子育てするのかなり厳しかったかも?と思う。

(2020年8月〜)会社のチームブログに色々記事を書いた

会社でチームブログを開設することになったので私も色々記事を書いた。

レガシーなフロントエンド環境をリプレースするためにチームでやっていること

子育て中の社員からみた食べログフロントエンドチームの働く環境

食べログでのAtomic Design 〜どう分類しているか編〜

SassからCSS Modules、そしてstyled-componentsに乗り換えた話

この記事にもある通り、2020年は業務でもりもりReact/TypeScript/CSS Modules/styled-componentsを実装したりアーキテクチャについて考えたり技術選定したりで技術的にも色んな挑戦ができたのはよかった。

(2020年12月)最近の娘

  • めっちゃ喋る
    • 「きょうは、保育園でね、XXXせんせいがね、XXXで、すべりだいやったの」
    • (体調悪そうにしていると)「ままおなかいたいのー?」「おなかいたくなくなったのー?」
    • 「あ!ここぱぱといったおしゅくりやさん(お薬屋さん)」
  • 数字が20くらいまで言える。
  • 英語でも10くらいまで言える。
  • アルファベットの歌全部言える。
  • 英語の歌好き。
    • 「Twinkle Twinkle Little Star」「Rain, Rain, Go Away」「Row Row Row Your Boat」あたりをよく歌ってる。尚、歌詞は適当。
  • 「かぼちゃのABCはー?」「アンパン食パンのABC!」とか親に英語を聞いたり英語で歌うことをリクエストしてくる(無茶振り)
  • 数文字だけだけどアルファベット読める。
  • 自分でズボン履けるけどやる気がないときの方が多い。
  • 良くないことをしたときちゃんと諭すとわかってくれることがある(感動)
    • 寝かしつけ中とかテンション上がると腹や胸の上に立ったり跳ねたりしようとしてくるんだけど
      「ゴフッ…お腹は柔らかくてデリケートだから立たないでね。優しくしてね」って諭すと
      「おなかゆりけーとー?」「あたまはー?」「おててはー?」とか色々聞いた後「あいわかった」って言ってくれたり。
      その後も忘れて乗ってこようとするときはあるけど「デリケートだから優しくしてね!」って言うとハッとした顔をして「あたまもゆりけーとね」って頭なでてくれたりする(感動)。
  • 寝る時間はどんどん遅くなって22時半〜23時くらい。どんなに早く寝室連れてっても保育園で昼寝してると結局この時間になってしまう…。
  • 絶賛イヤイヤ期の上小賢しくなってきた。
    「そふぁーでねんねするのー!」「おちっこしちゃった(してない)」「うんちした(してない)」「おしっこしたい(出ない)」ってあの手この手で寝室から出ようとしてくる。 (嘘とわかっていてもトイレには連れて行かないわけにはいかないので連れて行くが…)

2021年

  • かろうじてUoPeopleやっていはいたけどそれ以外のことが全然だったので2021年は飛躍したい。(ありきたりな言葉)
  • 今年はもしコロナが落ち着けばもっと子供連れてレジャー施設に遊びにでかけたり旅行行ったりもしたい…けどどうなるんだ世界…。
  • UoPeopleはプログラミングの基礎中の基礎みたいなコースはもう修了できそうなのでこれからどんどん難易度が上がってきそう。びびってる。
  • 高校数学の学び直しや大学の教養数学の基礎あたりをやっていたが学んだことを生かして競プロの問題を解くとか実践的なことをやっていきたい。
  • 機械翻訳に頼りすぎて英語力の低下を感じる。英語の勉強を再開したい。

今年もよろしくおねがいします。

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より。

UoPeopleでCollege Algebra(大学代数学)を修了した振り返り

学費無料のオンライン大学、University of the PeopleでMATH1201-College Algebra(大学代数学)を履修したのでその感想を書きます。

前回までのあらすじ

  • コンピューターサイエンスの学位(学士)を取るために、University of the Peopleという学費無料の米国オンライン大学に入学してみたよ。
  • 英語の学力要件はパスできたけど、正式な学部生(Degree-seeking student)になるためには、2つ以上の基礎コースを修了する必要があるよ。
  • 1つ目の基礎コースOnline Education Strategiesは無事終了したよ。
  • コロナ禍で在宅勤務 with kidsの最中だったからクソしんどかったよ。
  • 2つ目の基礎コースはCollege Algebra(大学代数学)を受けることにしたよ。

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

Motivation

数学に対してはもっっっのすごく苦手意識があったんですが、その分克服したい分野でもありました。

高校数学は数1Aと数2Bの序盤という最低限の範囲しかやっておらず、大学でも数学の知識を全然使わなかったので、

微分積分やったことない」
虚数 って 何」
「この左上に数字があるn√xって何」
因数分解の公式とか忘れた」
「式変形のやり方うろ覚え」

っていうレベルでした😇

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

「このf(x)ってなに…。(ぐぐる)あ、関数のことなんですね…」
「漸化式とか行列を使って解くとか言われてもよくわからん…」
「意味のわからない数式が多すぎてぐぐるのも一苦労」

というレベル。

これは中学数学・高校数学から腰を据えてやり直した方がいいやつだ…。
でも自分一人だと継続的にモチベーションを保つ出る自信がない…。

ということでCollege Algebraは楽しみなコースの一つでした。

コース内容

College Algebra(大学代数学)って名前は大層ですが、以下の通り高校数学+アルファという内容です。

少し古いですがシラバスがこちらで見れます。

my.uopeople.edu

高校数学を数Ⅲ数Cとかまでやった人は楽勝なんじゃないでしょうか。多分。

ただ、高校数学では扱われてない内容も含まれています。
また、グラフの分析が重視されていたり、現実世界に数学の考え方を適用させる練習を何度もやるのでより実践的なのではと思います。

参考になったサイトやツールたち

関数、写像、関係についての解説

Unit1は「関数」や「関係」の定義から始まります。

高校数学の範囲ではないので日本語でのわかりやすい資料がネットでは探しづらく苦労しました。
英語での数学の基礎的な用語もわからない中、テキストには
「function」「relation」「component」「element」「pair」「set」など一般的な単語がどんどん出てくるので
「これは日本語の数学用語だと何に該当するんだ??」
「そのまま一般的な用語に訳していいのか??」

と戸惑いました。

そんな中、以下の資料は「関数」や「関係」の違いを理解するのにとても助けになりました。

対応、関数、射、写像、関係ってなんだろう

ネイピア数の解説

Unit 5のExponential and Logarithmic Functionsは今回最も苦労した単元の中の一つです。

なんせテキスト約100ページの範囲を一週間でこなす必要があります😇

以下はUnit5 Reading Assignment(課題図書)の範囲です。

もちろんこれを読む以外にも練習問題を解いたり動画教材を見たり課題x3を提出したりする必要があります。一週間で

f:id:empitsu88:20201010211011p:plain
Unit5の課題図書の範囲

また、指数的成長・減衰(↓こういうやつ)の公式を活用する問題がたくさん出てくるのですが、解説が日本語でなかなか見つけられなくて死にました。

f:id:empitsu88:20200821005512p:plain

ネイピア数eに関しては以下の記事が参考になりました。

ちなみにネイピア数はテキストではEuler’s constantと書かれています。
欧米ではネイピア数のことをEuler’s constantとかEuler's numberと呼ぶようです。
日本語で言うオイラーの定数 γ やオイラー数列とは異なるので注意してください。

対数を普通の電卓だけで計算する方法

Self-Quizや課題では、自然対数や暗算では計算できない対数(log_2(5)など)が入った値を求める問題が時折出てきます。

関数電卓やOnline Calcuratorで計算すれば済むのですが、最終試験では普通の電卓しか使ってはいけません
もちろん関数電卓スマートフォンもOnline Calcuratorも使用はNGです。

「えっ最終試験ではこういうのどうやって計算するんだ…小数点第一か第二くらいまではわからないと答えずれる…」

と絶望していましたが調べると電卓で計算する方法がありました。

こちらの方法を使えば、自然対数もlog_2(5)なども電卓だけで近似値を計算できます。

普通の電卓で自然対数を求めてみる 2 | 趣味 パズル

また、常用対数や底が整数の対数ならば以下の方法も使えます。

英語の数学用語まとめ

最初の頃は

「えっrangeってここでは”値域”って訳すの」
「powerって”力”じゃなくて”冪乗”なの」
「productって”製品”じゃなくて”かけ算の積”なの」
「coordinateって”調整する”じゃなくて”座標”なの」

みたいな状態だったので以下のようなまとめが大変参考になりました。

高校留学で使う英語の数学用語まとめ│海外留学の情報・準備なら「留スタ」

数学用語 英語 一覧(Mathematics Terminology) | ゆう@アメリカ生活終了→英語勉強

ただ最初の一週間で式変形の過程を英語で説明するくらいまではできるようになる(やらざるを得ない)ので、
基本的な語彙を覚えあとは、「piecewise 数学」「rational root とは」などでぐぐったほうが日訳・英訳を調べるには早いです。

Youtubeチャンネル「トライイット」「ヨビノリ」

トライイット予備校のノリで学ぶ「大学の数学・物理」(ヨビノリ)の動画には本当にお世話になりました。

特にトライイットは数1〜3まで全部解説と動画が揃ってて本当に神です。

コースに慣れてからは

該当の単元を範囲を確認する→トライイットの該当の動画を見る→テキストを読む

という流れで進めていました。

ただAlgebraの各Unitは中学数学〜高校数学Ⅰ,Ⅱ,Ⅲの範囲が混ざっていたり、高校数学で扱ってない内容が入ってることも多いため、
全く予備知識がない状態だと「今回の範囲が中学数学・高校数学のどの単元に値するのか。そもそも高校数学の範囲ではないのか」を調べるのにまず時間がかかったりします。

例えば、Unit 3: Polynomialsは以下のように範囲が広く、トライイットからずばり該当している動画を探すのは少々面倒でした。

f:id:empitsu88:20201011142715p:plain
Unit 3: Polynomialsの範囲

Unit3で参考になったトライイットの動画:

「複素数と方程式」の勉強法のわからないを5分で解決 | 映像授業のTry IT (トライイット)

「整式の割り算」の勉強法のわからないを5分で解決 | 映像授業のTry IT (トライイット)

【高校数学Ⅲ】「グラフのかき方(2)」(問題編) | 映像授業のTry IT (トライイット)

また、Unit 6: Systems of Equationsでの「ガウスの消去法」(別名:掃き出し法)は高校数学では扱われておらずトライイットにも該当の動画はなかったのですが、ヨビノリの以下の動画が参考になりました。

【大学数学】線形代数入門⑤(連立方程式:掃き出し法)【線形代数】

解き方がわからない時の味方、Wolfram Alpha

Wolfram Alphaは数式を入れると計算してくれる無料のサービスです。

Wolfram|Alpha: Computational Intelligence

課金すると途中の計算式も出してくれます。
「この問題、どうしてこの答えになるの?どうしてこう変形できるの?」って時に助かりました。

何故ならテキストの演習問題には解説は載っていないからです。
そして何故か奇数番号の問題には解答すらありません…。

ただ、最終試験の時は普通の電卓以外使えないので、頼りすぎるのは禁物です。

グラフ計算機 DesmosとGeoGebra

Algebraではグラフを描く課題がでてきます。

方程式を書くとそれをグラフ化してくれるDesmosやGeoGebraというサービスにはお世話になりました。

Desmos - グラフ計算機

Calculator Suite - GeoGebra

数式はどうやって書いて提出していたか

課題で数式を書いて提出するときに使っていた方法を紹介します。

TeX記法

MoodleでのWYSIWYGエディタでは「Equation Editor」のボタンを選択するとTeX記法で数式が挿入できます。

f:id:empitsu88:20201011152809p:plain
MoodleのEquation editor

が、Macではプレビュー機能がバグってて全然使えませんでした

なので以下のページのリアルタイムプレビューにはお世話になりました…。

こちらのサイト作ったTeX記法をコピペもしくはスクショを取って画像を貼り付けていました。

MathJaxの使い方 - リアルタイムプレビュー

ただ数式すべてをTeXで書いているとめちゃくちゃ時間がかかるため、
結局は後述の「プレーンテキスト」だけで書いて済ますことが最も多かったです。

行列式やpiecewise functionなどテキストだと表現しづらい数式でのみTeXを使っていました。

Google Docの「数式を挿入」

Google Docでも数式を挿入できます。

ドキュメントで計算式を使用する - パソコン - ドキュメント エディタ ヘルプ

ただ、.docxへ保存すると数式は消えてしまったので注意してください。
.pdfなら大丈夫でした。

この方法を使ったときはドキュメントを.pdf化して添付、
更にDiscussion Assignmentでは読んでもらいやすくするためにページのスクショを取って画像を貼って提出していました。

プレーンテキスト

テキストのみでも案外なんとかなります。

f(x)=x^3+3x^2+5

とか

f(x)=x^{1/3}

とか。

私のクラスではこの方法を使っている生徒が一番多かったように思います。

全角特殊文字の√や∞、×もMoodleには貼り付けられます。

手書きのノートの写真を取る

手書き(お世辞にも読みやすいとは言えないレベルの文字)のノートをスキャンして提出している人もいます。

私も簡単な図を描く必要があったときはEvernoteアプリやGenius Scanアプリで写真を取ってMoodleに貼り付けて提出していました。

課題について

Discussion Assignment

指示が抽象的で何を書けばよくわからない問題がよく出ます。

混乱しますが、そのunitで学んだことを使って何かしらの回答と考えを書けば8点以上は貰えます。

問題文でぐぐるといろんなサイトがひっかかりますが、 微妙に問題文が変わってたり、文脈が伝わってないせいか的外れな回答が書いてあったりするので気を付けましょう。

勿論、コピペしたり無断で引用すると剽窃になるのでいけません。

Learning Journal

その単元で学んだ内容を振り返るかたちでいくつかの設問に答えます。

毎回10点満点をもらえました。

先生によるとは思いますが、回答に抜けや明らかな誤りがなければ高得点が取れると思います。

Written Assignment

数式を解いたりグラフを書く問題が何問か出ます。

途中式が必須の場合が多いです。

テキストの練習問題を解いていれば大抵のものは解けると思います。

次のUnitで模範解答が発表されるのですが、掲示された解答では微妙に最初の問題文と違っていたり問題番号がずれていたことがありました…。

そのせいでPeer Assessmentで「不正解」とみなされ散々な点数を付けられたこともありました😇

それがなくても無言で低い評価を付けてきたり、全問正解のはずなのに「回答が書いてない」とコメントしてきたりする同級生がおり、毎週のように先生に抗議のメールを送っていました。

模範解答が与えられ、評価基準も比較的明確な数学という教科でもこうも評価がぶれるのは何故なのでしょうね…(遠い目)

最終試験

試験はProctoredで試験官の監督の下、実施が必要です。

電卓はあったほうがいいです。

Self-quizやGraded quizより難しい問題がいくつか出ましたので、習った公式はテキストをよく読んで復習しておくのが良いです。

学習時間

週に13〜19時間程度を費やしていました。

この学期に受けていたコースはこのAlgebra一つでしたが、自分の時間はほぼすべてこれで潰れていたので、子供がいると週19時間前後がやはり限界だなーと感じています。

f:id:empitsu88:20201010214542p:plain

最終成績

最終成績は89.0でLetter GradeとしてはB+、GPAとしては3.33でした。

f:id:empitsu88:20201010214355p:plain

あと1点あればA-だったのでとても悔しい😭

最終試験を受ける前は94/100だったので最終試験で何問か間違えて大きく落としたかたちになりました…。

解き方に自信がなかったものは1問だけだったので、間違えた問題はほとんどケアレスミスや問題の解釈間違いだったのではと思っています。

こういうところに場数や基礎力が出る…。

修了してみての感想

スタート時点の自分のレベルを考えるとだいぶレベルアップできた

Aが取れなかったのは悔しいですが、よく考えたら最初は基本的な語彙も知らず中学数学・高校数学もろくに覚えておらず虚数って何」とか言ってる状態だったんですよね。

なのに大学数学の初歩の単位(しかも英語)がB以上の成績で取れただけでもよくやった…と思うようにしたいです。

今なら以下のツイートの意味がなんとなく理解できるまでになりました。

毎週「私はここで脱落するかもしれん」と思うほど辛かったですが、
中学数学・高校数学を復習しつつ練習問題を解き、課題を提出し、テストを受けるなんて自分一人だけでの自習では絶対にやれない(やらない)ので大学の授業という形で受講できてよかったなと思います。

大学数学のロードマップは果てしない…

ですが「大学数学」という括りでみると、今回のコースは「入り口を入るか入らないか」くらいの位置づけだと思います。

以下の大学数学ロードマップを見ると「今回のAlgebraって、どれ!?」ってなります😇

「教養数学」の前提となる知識を学んだ、という感じでしょうか…。

math-fun.net

今後UoPeopleで学べる数学科目としては

などがあるのですが、全部修了してようやく「数学基礎」まででしょうか。

大海は広い…。

そして泣きながら理数系科目の単位を取ったことで、高校数学の範囲(数Ⅰ〜Ⅲ、数A〜C)を全部学んだ人や、CSの学位を持っている人への尊敬の念が一層強まりました。

英語で学んだことで多角的に理解できるようになった…気がする

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

日本の中学・高校ではあまり聞き慣れないDescartes’ Rule of Signs(デカルトの符号法則)Rational root theorem(有理根定理)を活用したり、三角比を覚える際に便利なニモニック 「SOH CAH TOA」を習えたりします。

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

また、英語での数学表現を覚えることで外資系でのホワイトボードコーディングや技術面接でも役立つ…かも。

無事Degree Seeking Studentになれた

これを修了したことで無事Degree Seeking Studentになれました🎉

これで今まではFoundation Course Studentという扱いだったのですが、正式な学部生になったということです。

Office365や大学のメールアドレスも無料で付与されるとのこと。

また、単位移行の手続きも進められるようになり、私は以前の大学から14コース(単位数で言うと48)が承認されました🎉🎉

単位移行の道のりはまた後日記事にまとめたいと思います。

来期は

以前見送ったCS1101 - Progamming Fundamentals(Python基礎)を受講します。

超基礎ではありますが、初めての「Computer Science」に属する科目なので楽しみです。

コロナ禍の中、UoPeopleのOnline education strategiesのコースを修了した振り返りと学んだこと

前回までのあらすじ

  • コンピューターサイエンスの学位を取るために、University of the Peopleという学費無料の米国オンライン大学に入学してみたよ。
  • 入学にあたってはEnglish Composition1というコースの受講と試験をパスする必要があるけど無事パスしたよ。
  • でも正式な学部生(Degree-seeking student)になるためには、更に2つ以上の基礎コースを修了する必要があるよ。
  • Online Education Strategies(UNIV 1001)とProgramming Fundamentals(CS 1101)という基礎コースが4/9から始まったよ。
  • Online Education Strategiesの課題の量やばい。
  • Programming FundamentalsはPythonのコース。超基礎からだけど学び直しという感じでわくわくするね!
  • でも2コース同時受講って週に30時間程度学習時間が必要だよ?
  • そんな中パンデミックの影響で娘の保育園から登園自粛要請が!
  • 子供の面倒を見ながら家でフルタイムで仕事をして大学生やるの?無理じゃない!?どうなる私!

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

はい、そんなわけでですね、「いや、無理でしょ」となったので涙をのんでProgramming Fundamentalsはdropしました。
dropというのは「コースが始まってから1週間以内の辞退」のことで、ペナルティがなにもない。
つまり成績表にもなにもつかない。
戦略的撤退のことであります。

だから今期はOnline Education Strategiesのコース1本だけ受講していました。

子供を見ながらの仕事のつらみ

「子供をみながらの仕事」は想像以上に仕事にならなくてですね、どんだけ仕事にならないかはこの方の記事をぜひ見てください

ちなみになぜOnline Education Strategiesの方ではなくProgrammingを辞退したのかというと、Online Education Strategiesは「全ての生徒が最初に絶対受けるべきコースとして設定されている」からです…。
本当ならProgrammingの方をやりたかった…。

今日は、「Online Education Strategies本当大変だった…」という話をします。

Online Education Strategiesとは

すべてのUoPeopleの学生はこのコースを最初に受講しなければいけません。
コース名の通り、オンライン学習を成功させるための戦略を教えてくれるコースです。

  • UoPeopleの制度や行動規範について
  • ピア学習・ピア評価のメリット
  • 成功する自発的学習者の特徴
  • 批判的思考・問題解決のメソッド
  • 効果的なノートの取り方
  • 剽窃を避けるための引用のノウハウ
  • タイムマネジメントのノウハウ
  • ストレスマネジメントのノウハウ
  • 試験のためのTips

などなど…。

少し古い内容になっていましたが、シラバスがこちらで見れます。

my.uopeople.edu

English Composition1はまだまだ序の口だった

以前の記事でEnglish Composition 1は課題がめちゃめちゃ多いという話を書きましたが、まだまだ序の口でした。

求められる文字数が多い

  • ディスカッションの課題では250 words以上。
  • 同級生のディスカッションへの返信はそれぞれ100words以上。(3人以上に返信必須)
  • ラーニングジャーナルは450words以上。
  • Written AssignmentではWordでA4フォーマットで2ページ以上(単語数にすると500words以上)。

↑毎週この課題が一気に出されるわけです。

250wordsとはだいたいこれくらいになります。

f:id:empitsu88:20200609005459p:plain
これで274words

最初は面食らいました。
しかし、後に述べる通り文字数はあまり問題じゃありません。
評価される文章を書こうとすると自然と長くなってしまうので、制限字数内に収めたり、書いた文を推敲する方が大変でした…。

課題図書の量も多い。

読むべき文献として、論文3本+テキスト1章分(約20p)+ブログ記事2本+動画2本 みたいな量が毎週でます。*1

特に論文は大抵PDFなので機械翻訳もかけづらく、時間をとられました…。

論文を翻訳する際のTipsは以下の記事にまとめています。

empitsu88.hatenablog.com

評価基準が厳しい

English Composition 1のコースで5 paragraph essayについて学んで、「はえ〜論理的な文章とはこう書くのか〜」と感心していましたが、あれは大学入学前の練習に過ぎなかったのです。
このコースから完全に大学レベルに移行したのを感じました。

高得点を取るには、以下の点が求められます。

  • 与えられたQuestionに関して、複数の視点から回答する。
    • たとえば、「批判的思考とはなぜ重要なのか答えよ」などのQuestionが課題として出される。
    • 理由を網羅的に述べられたらベスト。
  • そして提示した視点・アイデアはそれぞれ具体的に詳細を述べる。
  • 適切に引用して自分のアイデアを補強する。
    • むしろ参考文献(引用)ゼロだと減点される。
  • 同級生への採点・フィードバックでは、その点数をつけた理由を明確に書く。
  • 更に、どうすればもっとよくなるかというアドバイスを具体的に書く。
  • ディスカッションポストへの返信は、"I agree with you" とか"Great job!"だけではNG。 具体的に理由を書く。そして議論を発展させ価値を付加するコメントをする。
  • Wordで課題を提出する際はAPA Styleのフォーマットに従う。

もちろん、すべての課題図書を精読した上で課題に取り組むのが大前提となっています。
文献をすべて読んで理解しないと「複数の視点から」「網羅的に」そして「具体的に」述べるというのが難しいためです。

この評価基準は今後のコースでも同様だと思うので、最初に叩き込まれる必要性はとてもわかります。

でもいかんせん時間はかかります…。

なによりモチベーションがわかない

特に最初のUnitのトピックは「ピア学習の効果」「ネチケットの重要性」などだったので、き、興味ね〜〜となってました。

「UoPeopleのすべての学生が最初に受けるべき大事なコース」と言われる理由もわかります…。わかります…。
が、私はComputerScienceについて学習しにここへ来たので…。

興味はわかなくても、大量の文章はかかないといけないのですよね…。

興味のあるトピックもありました

しかし、もちろん学んでいて楽しかったトピックもありました。

クリティカルシンキング・課題解決

クリティカルシンキング・課題解決は実務に直結するスキルなので、そのUnitではようやくモチベーションが上がってきました。

以下のようなトピックが学べます。

  • 6つに分類されるthinking skill
  • その中でのCritical thinking の位置付け
  • Critical thinkingを実践するプロセス
  • イデアの妥当性を検証する際にはFallacies(誤謬)がないかをチェックする
  • Creative thinkingを実施するためのTips
  • 問題解決のための様々なフレームワーク

ただ、課題が難しすぎて相当時間を使いました…。
どこまでちゃんとやればいいかわからず、考えたことをすべてレポートにまとめたらA4 10ページ(1600words)もの大作になってしまった…。

学習サイクルと効果的なノートの取り方

テキストによると、学習は

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

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

本や文献を読む際も、以下のステップでActive Readingを行うのが効果的だとされています。*3

  • 文献を読み始める前にざっと目を通してから、各トピックのタイトルを疑問文に変換してノートに書いておく(Prepare
  • 疑問に対する答えを探しながら読む(Reading
  • キーアイデアをノートに書き留める(Capture
  • 学んだことを要約する(Review

今までの自分の学習スタイルはだいぶ「吸収」に偏っていたので他のステップもちゃんとやらないとなあ、と反省しました。

ちなみにノートの取り方としては、Lists, Outlines, Concept Maps, Cornell Methodsなどのメソッドがあり、多くの大学ではCornell Methodsが推奨されているらしいです。*4

タイムマネージメントと効果的な目標設定

印象に残ったのはこのタイムマネジメントについてのTED Talkの動画です。
未来に向けて振り返りを行うと、自分が本当に優先すべきことが明らかにできるというものです。

www.ted.com

今が来年末のつもりに なってください あなたは自分の成果を 振り返っています 仕事の面で非常に 成果のあった年でした その素晴らしい成果のために あなたがしたことを3~5つ挙げてください
これは私生活にも使えます 多くの皆さんは 私のように 12月になると カラフルな紙が折り込まれた カードを受け取るでしょう 「○○一家からの年末報告」 みたいなやつです
今が来年の年末だと 思ってください まったくもって素晴らしい1年でした 自分にも 自分にとって大事な人たちにも その年を素晴らしいものにするのに あなたがしたことを3~5つ挙げてください

(Vanderkam, L. (2016, October). How to gain control of your free time [Video file]. TED. より引用)

他にも
「具体的で、達成可能で、締切のある目標を短期・中期・長期と3つ設定する」*5とか
「スケジュールを立てる際は科目毎の時間割を作るのではなく、"いつ自分の趣味や息抜きをするか"を最初に設定する」*6
など様々なTipsがありました。

中には、「まあ大事なのはわかるけどそれができたら苦労しないよね…」と苦笑いするものも多かったですが…。

Academic Writingをするときのポイント

このコースを通じて、Academic Writingで抑えるべきポイントを嫌というほど叩き込まれました。

ひとつひとつは基本的なことばかりですが、
‪普段は「ここまで書かんでも伝わるじゃろ」とハイコンテキストな文章を書いてしまいがちなので、
‬人に何かを伝えたい場合は基本を抑えて伝わる文章を書かないとだめだなーと反省しました。

  • 結論は最初と最後に同じことを書く。
  • ‪各段落の最初はトピックセンテンス(主文)。
    • 後ろに続く文はサポートセンテンスとしてトピックセンテンスを肉付けする付加情報を書く。
  • サポートセンテンスではエビデンス、根拠を出す。
    • 学術論文や然るべき機関が発表している資料など、信頼できる情報源から引用してサポートするとよい。
    • 個人的な経験を問われるときもあるが、その際も具体的に書く。
  • ‪問いに答えるときは、わかりやすいシグナルフレーズを使って書き始める。
    • 例えば、「XXの定義を述べよ」という問題だったら"The definition of XX is .."と書き始める。
    • 変に言い換えると"You should state more explicitly"と言われて減点される場合がある。
  • 複数の視点や理由を述べると良い。網羅的に述べられるとなお良い。
  • 他の文献から引用した場合は、その前もしくは後ろに自分の言葉で「So what?」(つまりどういうことか)を書く。
  • Critical thinkingのメソッドを利用して、自分や他人のアイデアの妥当性を評価する。
  • 問いには明確に、期待通りに答える。
    • 求められているのが「定義」なのか、「要約」なのか「分析」なのか?.
    • 例えば、「定義」を聞かれているのに「利点」を述べていて減点される同級生をよく見た。

費やした学習時間と学習タイミング

一週間あたり13〜15時間ほど費やしていたので、大学から提示された目安時間の15〜17時間とほぼ同じでした。
ただ、試験がある週は総復習のためにすべての課題図書を読み直していたり、ノートにまとめたりしていたので19時間ほど費やしていました。

日中は仕事と家事育児があるので、子供が寝た後の時間や朝仕事を始める前の時間に課題をこなしていました。

最終Grade

最終的なGrade Pointsは100点中94.52点で、A評価(GPAで言うと4.0)でした。

f:id:empitsu88:20200612014623p:plain

f:id:empitsu88:20200612014856p:plain

あと4点あれば最高GradeであるA+が取れましたが、GPAとしては満点の4.0が取れたので大満足です。

f:id:empitsu88:20200414225131p:plain

もし卒業後に大学院などを狙う場合はCGPA(Cumulative Grade Points Average。すべてのコースのGPAを平均した数字)が重要になってきます。
大学院によっては入学要件として高いCGPAが求められるためです。

このコースで最高GradeのA+を狙うにはどうしたらよかったのか。

Aが取れたので満足ではありますが、このコースでそれ以上のA+とか絶対無理だわって思い知りました。

これ以上点数を上げるには、ちょっとでも疑問があったら毎回先生と戦う覚悟が必要なのかな、と思ってます…。
自分としては10点満点のつもりで出していても、 ふわっとした理由で先生に8点をつけられたり、理由なく(なんのコメントもなく)同級生に8点をつけられる、
ということは何度かありました。
「10点中8点ならまあいいかあ…」とスルーしてしまっていましたが、毎回先生に連絡して問い質せば変わったかもしれないです。

ただ、対応してくれるかどうかは先生によるので運の要素もあります。

課題もある中でメールで連絡を取り合う必要があるので、そこまで時間を割くのもなあという気持ちもあります…。

次どうするか

とりあえず前回見送ったCS 1101 Programming Fundamentalsと、必修の一つであるMATH 1201 College Algebra履修登録しています。

ようやく当初の目的であった数学やプログラミングの学習ができる😭
ただ、未だ保育園には登園できていないし、保育園再開したとしても働きながら2コース同時受講は厳しいのでどちらかに絞る予定です。
次の科目をGrade C以上の成績で修了できれば無事正式な学部生になれるので、もう少し頑張りたいと思っています。

*1:先程貼ったシラバスにも課題図書は公開されているので、具体的にどんな内容なのか見ることができます。

*2:College Success chapter1.3より。

*3:College Success chapter 5.2より。

*4:College Success chapter 4.4より

*5:College Success chapter 2.1より

*6:Barton, D. (2015, March 26). What do top students do differently? [Video file]. TEDx Talks. より。

英語の論文を翻訳する際はGoogleドキュメントを使うのがおすすめ

米国のオンライン大学、UoPeopleに入学してから英語の論文を読む機会が増えました。
WebページであればChromeで右クリック→「日本語に翻訳」で一発OKなんですが、論文ってPDFや画像の場合が多いので翻訳するには少々面倒です。
そこで、Googleドキュメントを使えばPDFや画像を翻訳する際に便利だった!という記事です。

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

tl;dr

  • PDFの場合はテキストをコピー→Googleドキュメントにペースト→「ツール」の「ドキュメントの翻訳機能」を使うと改行も入らないし長いテキストも翻訳できて便利。
  • 画像の場合はGoogle Driveに設置→Googleドキュメントで開いてテキストに変換→「ツール」の「ドキュメントの翻訳機能」を使う。

正直この2行がすべてなんですが、以下は「何故その方法じゃないとだめなのか」という蛇足的な説明です。
もっと便利なツールや方法があったらぜひ教えて下さい。

前提:論文を読む目的と翻訳する目的。

私の場合は、レポートのための課題図書として「読め」と提示された論文を熟読して理解したいときに翻訳しています。
英語のリーディングスキルが雑魚なので翻訳なしだとかなり時間がかかってしまうため…。

目的によっては、翻訳してまで読む必要はないかもしれません。
例えば、「この論文は精読するに値するのかチェックしたいだけ」の場合など。

論文の効果的な読み方については以下の2つの記事がすばらしいのでこちらを見てください。

論文、どうやって読んでますか?|umbell|note

論文の読み方 / How to survey - Speaker Deck

以下は技術文書についての記事ですが、翻訳せずに「どの部分をちゃんと読むべきか」を最初に把握するために必要なTipsが書かれています。

英語の技術文書を早く読むには - Qiita

機械翻訳サイトのおすすめポイント・イマイチポイント

まず、「各種翻訳サイトはどうなのか?」ということでそれぞれの「おすすめポイント」「イマイチなところ」の紹介です。

みらい翻訳(お試し翻訳)

miraitranslate.com

おすすめポイント

  • 翻訳のクオリティは今回の3つのサイトの中で一番高い。日→英、英→日ともに自然な翻訳をしてくれる。
  • 文学作品など難解な文章では特におすすめ。
  • 英作文をする際にも大活躍。

イマイチなところ

  • 2000字までしか翻訳できない。
  • すぐセッションが切れる。翻訳に失敗した際はリロードしてから再度翻訳する必要がある。

DeepL(無料版)

www.deepl.com

おすすめポイント

  • みらい翻訳には敵わないが、Google翻訳よりは自然な訳になる。
  • 訳文にフォーカスをあてると該当の英文をハイライトしてくれる機能が地味に便利。

イマイチなところ

  • 訳文のクオリティはみらい翻訳には敵わない。
  • PDF翻訳はできない。(docx, pptxは可能)
  • 5000字までしか翻訳できない。

Google翻訳

translate.google.co.jp

おすすめポイント

  • PDF翻訳ができる。
  • 読み上げ機能がある。

イマイチなところ

  • 訳文のクオリティはDeepLやみらい翻訳には敵わない。
  • PDF翻訳は文中の改行を無視してくれない。
  • 5000字までしか翻訳できない。

Google翻訳のPDF翻訳は改行が入ってしまう

Google翻訳にはPDFなどのドキュメントがアップロードができ、何百ページもあるPDFであっても全文翻訳をしてくれます。

f:id:empitsu88:20200611220720p:plain

内容の雰囲気を掴んだり、見出しや目次を一気に翻訳したい場合は非常に便利です。
何百ページもある大学のカタログや、利用規約など長いドキュメントの雰囲気を掴む際には大変お世話になりました🙏

ただし、折り返されている文章は途中に改行が入っているとみなされてしまい、頓珍漢な訳になってしまいます。

PDFからテキストをコピーすると改行が入ってしまう

PDFからテキストをコピー&ペーストした際も同様で、折り返し部分に改行が入ってしまいます。
以下のようなツールを使うと不要な改行を一気に削除することができます。

dream-exp.hatenablog.com

ただ、Google翻訳もDeepL翻訳もみらい翻訳も文字数制限があるので一気に翻訳ができません。
5000字なんて短すぎます。

「Abstractだけ」「Introductionだけ」など一部分だけ翻訳したい場合は問題ないのですが、字数制限を超えて翻訳したいときは文字数がはみ出たところからコピペし直してまた翻訳して…とやるのは非常に面倒です。

Googleドキュメントに貼り付けると改行を削除してくれる

そこでおすすめはGoogleドキュメントです。 PDFからテキストをコピーしてGoogleドキュメントに貼ると、その時点で折り返し部分の不要な改行が消えています。

そして[ツール]の[ドキュメントの翻訳機能]を選ぶと、現在のドキュメントの翻訳済みコピーを作成することができます。

f:id:empitsu88:20200611225719p:plain
「ツール」→「ドキュメントの翻訳機能」

f:id:empitsu88:20200611235323p:plain
ドキュメントを翻訳というダイアログが表示される。

しかし残念ながら、Googleドキュメントでも長すぎる文章は途中までしか翻訳してくれないようです。
ただ、ページ数にして約8ページ、文字数にして約30000字まで翻訳してくれたのを確認したので、他の無料Web翻訳サイトと比べると遥かに長い文章を取り扱ってくれます。

Googleドキュメントで保存しておけばメモの記入やハイライトもできる。

そもそも自分のレポートに引用するために翻訳しているので、やはり翻訳後の文章は保存しておきたいものです。
その意味でも、Web版の機械翻訳サイトよりも、最初からドキュメントとして保存してくれるGoogleドキュメントに分があります。
ドキュメントとして保存しておけば後で読み直せますし、メモやハイライトも記入できます。

Googleドキュメントは画像もテキストに変換できる。

古めの論文やJournalだと、PDFではなく画像でしか読めないものがありますよね。
でもGoogleドライブ+Googleドキュメントを使うとテキスト化してくれます。

support.google.com

詳しい手順は上記の通りですが、ざっと言うと

  1. スクリーンショットなど画像をGoogleDriveにアップロードする
  2. GoogleドライブのWeb版でファイルを選択
  3. [アプリで開く] から [Google ドキュメント] を選択

これだけです。

まとめ

論文のような長いPDF・画像を翻訳したい場合はGoogleドキュメントがおすすめ。

  • PDFの場合はテキストをコピー→Googleドキュメントにペースト→「ツール」の「ドキュメントの翻訳機能」を使うと改行も入らないし長いテキストも翻訳できて便利。
  • 画像の場合はGoogle Driveに設置→Googleドキュメントで開いてテキストに変換→「ツール」の「ドキュメントの翻訳機能」を使う。

  • 自然な翻訳を求めている場合はぜひみらい翻訳を。
    ただし、お試しなので2000字までしか翻訳できない。

冒頭で2行で終わる話を長々と書いてしまった…。

UoPeopleでProgramming Fundamentalsのコースが始まったのでHomeBrewでPython3.8の環境をセットアップした。

English Composition1のコースをパスしたので、Foundation Courseを受けることになった。
コースグレードが発表されてすぐ、Online Education Strategies(UNIV 1001)とProgramming Fundamentals(CS 1101)のコースが自動で登録されていた。

今までの記事:

empitsu88.hatenablog.com

empitsu88.hatenablog.com

正式な学部生(Degree Seeking Student)になるには

実はまだ私は"Foundation Course Student"及び"Non-degree Student"扱いであって、正式な学部生(Degree Seeking Student)ではないのである。
以下のようなの条件を満たすとDegree Seeking Studentになれる。

  • Students who complete the first two courses with a grade of 2.00 or higher in each course and who have submitted the official documentation may be accepted to begin studying towards a degree as early as the very next term.
  • Students who do not earn a 2.00 or higher in each of their first two courses may take up to a maximum of five courses in UoPeople Foundations. Individuals in this group must earn a minimum cumulative grade point average of 2.00 or higher and submit the required documentation in order to be accepted to degree study.

University CatalogのP. 41 "Minimum Requirements at UoPeople Foundations"より引用

つまり、最初の2コースで73/100点以上とり、且つ高校の卒業証明書など書類を提出すればその次の学期からDegree Seeking Studentになれる。
73点とれなかったら、最大5つまでFoundation Courseを受講できて、追加のコースで挽回できればOK。

よって、この学期でOnline Education StrategiesとProgramming Fundamentals両方で73点以上とれれば、9週間後の次のTermでは正式な学部生になれるのである!

2コース並行受講が時間的に可能なのか問題

とはいえ、1コースあたりの学習目安時間が週に15時間なので、2コースを同時受講すると週30時間程度確保する必要がある

もともと働いて子育てしながら30時間も勉強できるのか不安ではあった。
更に、現在は新型コロナウイルスの影響で我が家も保育園登園の自粛をしており、共働き夫婦フルタイムで在宅勤務+2歳児を終日家庭保育している状態のため、なんかもう無理なのでは感がある。

ていうかOnline Education Strategiesの方の課題のボリューム感がやばい。

Programming Fundamentalsの教材はThink Python

でも、ついに一番勉強したかったコンピューターサイエンスの授業が受けられるというのは素直に嬉しい…!
メインの教材はopen educational resourcesとなっているThink Pythonという書籍
日本語版も公開されている。

この本の目標は、如何にしたらコンピュータサイエンティストのように考えることができるかをあなたに教えることである。

Think Python:コンピュータサイエンティストのように考えてみよう第二版 p. 15より引用)

出だしから早速わくわくする。

目次を見ると、「 変数、表式、文」「クラスとオブジェクト」「継承」などの言葉がならんでおり、実務でプログラムをバリバリ書いている諸君は「あ〜はいはい」と思うかもしれない。
私もシラバスを見た時点では「あ〜はいはい」と思っていた。
でも、UoPeopleのコースはちゃんと「なんとなくわかる」で終わらせないようになっている。

Programming Fundamentalsの課題

課題やクイズには以下のような内容が出る。

  • 下記の値をinterpreterに入力するとどんな結果が返ってくるか?そしてなぜそうなるのか説明せよ。(もちろん英語で)
>>> 05
  • 下記の値をinterpreterに入力するとどんな結果が返ってくるか?
>>> 1,234.567,890
  • 結果が4になるのは以下のうちどれか?正解以外の選択肢のoutputは?
a. 6 ^ 2
b. 6 ** 2
c. 6 +- 2
d. 6 += 2
e. 6 -+ 2
  • これらの出力結果から、あなたは何を理解し、学んだのか説明せよ。

  • structure of a program は何という言葉の定義か?

  • One of the basic elements of the syntactic structure of a program, analogous to a word in a natural language は何という言葉の定義か?

※そもそもの課題の題材は概ねThinkPythonに沿っていますが、課題/クイズの出題と回答例をそのまま載せるとまずそうなので若干改変してます。
答えが気になる方はThinkPythonを読んだり、interpreterに実際に入力して出力を確認してみてください。

ご覧の通り、プログラミングの基本的な用語の意味を理解した上で、各演算子の働きなど言語仕様を理解し、それを英語で説明することを求められている。
もちろん、記述した内容はクラスメートやインストラクターにレビューされたり採点されたりする。

そうそう!そういうところから私はちゃんと学び直したかったんだよ!

「第一章プログラムが動くまで」の内容だけですでに興味深いので、後の章も楽しみ!

Python3.8をどうやってインストールしよう

Unit1ではinterpreterの出力を確認する程度の内容だったので、Online Consoleが打てるPythonのサイトで十分事足りた。
だが、プログラミングのコースなのでもちろん今後に備えて開発環境を整える必要がある。

調べると、Pythonの開発環境を整えるには様々な選択肢があるらしい。

クラウドIDE Pythonanywhere

シラバスでは、PythonanywhereというクラウドIDEが紹介されていた。

これが一番楽そうだし、UoPeopleの課題くらいならなんとかなりそうだが…ちゃんとセットアップも経験しておきたい気持ちもある。

公式サイトからダウンロード

Syllabusでは、pythonの公式サイトからダウンロードしろと言っている。

You can find available downloads for Python v3 at the following URL: Python software Foundation. (2019). Download Python. http://www.python.org/download/

pyenv

いや、待て…pyenvというバージョン複数管理ができるツールがあるらしい。
Node.jsでいうnodenvのpython版みたいなやつだろうか。

GitHub - pyenv/pyenv: Simple Python version management

virtualenv/venv

でも以下の記事をみてたら課題こなすだけなのにpyenv必要か?って気がしてくる。
それかvirtualenv/venvもいい気がしてくる。

pyenvが必要かどうかフローチャート - Qiita

Anaconda

エディタはいつも使ってるVSCodeを引き続き使うつもりなので、「VSCode python」でぐぐったらこんな記事もでてきた。

VS CodeでPythonするために必要なこと (1/3):Visual Studio Codeで始めるPythonプログラミング - @IT

でもWindowsの人向けっぽい感じがするな…

Homebrew

待て待て、昔HomeBrewでPythonをインストールした記憶もあるぞ…。
以前、UdemyでPythonのコースを閲覧したときは、Homebrewが紹介されてたからそうしたんだった。

MacでPythonを使って『機械学習』を学ぶための環境構築 — キカガク技術ブログ ドキュメント

HomebrewでPython3.8を入れる

ということで、すでにHomebrewでインストールしていたのでそれをアップグレードしてみる。

Homebrewでpythonがすでにinstallされていることを確認。

$ brew list
python

でもpythonコマンドの方は、OSにもとから入っている2系に向いているのである。
これがややこしい。

$ which python
/usr/bin/python
$ python --version
Python 2.7.10

Homebrewでインストールした3系のpythonはpython3コマンド。

$ which python3
/usr/local/bin/python3

昔インストールしたやつは3系だけどバージョンが少し古いのでアップグレードする。

$ brew upgrade python
Updating Homebrew...
==> Upgrading 1 outdated package:
python 3.7.1 -> 3.7.7

あれ?3.7.7までしかアップグレードされない。

$ python3 --version
Python 3.7.7

Homebrewの公式を見ると、3.8系にするにはpython@3.8という名前のFormulaeをインストールすればいいらしい。

$ brew install python@3.8
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/python@3.8-3.8.2.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/51/511b4f2c3993f000516938ed0700936c8a7d8c054b5171fa733ac7d344291c30?__gda__=exp=1586447975~hmac=2f8c77
######################################################################## 100.0%
==> Pouring python@3.8-3.8.2.mojave.bottle.tar.gz
==> /usr/local/Cellar/python@3.8/3.8.2/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python@3.8/
==> /usr/local/Cellar/python@3.8/3.8.2/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python@3.8/
==> /usr/local/Cellar/python@3.8/3.8.2/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python@3.8/
==> Caveats
Python has been installed as
  /usr/local/opt/python@3.8/bin/python3

You can install Python packages with
  /usr/local/opt/python@3.8/bin/pip3 install <package>
They will install into the site-package directory
  /usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages

See: https://docs.brew.sh/Homebrew-and-Python

python@3.8 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have python@3.8 first in your PATH run:
  echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.bash_profile

For compilers to find python@3.8 you may need to set:
  export LDFLAGS="-L/usr/local/opt/python@3.8/lib"

For pkg-config to find python@3.8 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/python@3.8/lib/pkgconfig"

==> Summary
🍺  /usr/local/Cellar/python@3.8/3.8.2: 4,124 files, 62.7MB

でもこれだけだと、python3コマンドはまだ、3.7系に向いている。

$ python3 --version
Python 3.7.7
$ which python3
/usr/local/bin/python3

$ which pip3
/usr/local/bin/pip3


$ ls -la /usr/local/bin/python3
lrwxr-xr-x  1 empitsu  wheel  34  4 10 00:41 /usr/local/bin/python3 -> ../Cellar/python/3.7.7/bin/python3

インストール時の出力に以下のように出ていたから言うとおりにする。

If you need to have python@3.8 first in your PATH run: echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.bash_profile

$ echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile 

これでpython3コマンドとpip3コマンドがpython3.8に向いた。

$ python3 --version
Python 3.8.2

$ which pip3
/usr/local/opt/python@3.8/bin/pip3

UoPeopleでEnglish Composition1のコースをパスして無事Foundation Course Studentになった

4/2に最終試験の結果が出て、無事English Composition 1のコースをpassしました🎉
これで入学要件の一つである「英語力の証明」ができたことになり、Foundation Course Studentに昇格しました。

University of the Peopleに入学した顛末はこちら:

empitsu88.hatenablog.com

最終成績(Final Grade)

最終試験は69/100点、コーストータルは87.28/100点でした。

f:id:empitsu88:20200414215948p:plain
English Composition1のGrade

つまり、最終グレードはBで3.0。
あと1点あればB+だったのに…!
以下はGrade/Grade Scale/Grade Pointsの換算表。

f:id:empitsu88:20200414221240p:plain
University Catalogのp. 129 The Grading Systemより引用

ちなみに最終試験を受ける前のTotal gradeは70.03だった。
最大値は75.0なので提出した課題や中間試験の成績は結構良い出来だったはずなのだが、最終試験のスコアで大きく落とした形に…。

でもEnglish Composition1のパス条件は「最終試験50点以上」かつ「コーストータル73点以上」なので、その基準は余裕を持ってクリアできたのでよしとしよう。

最終試験の顛末

最終試験は
「試験管からもらったexam codeを入力してから2時間以内」
「実際のテストを開始してから80分」
という時間制限があるのだが、
なんと、exam codeを入力した後に出てくる試験専用サイトのログイン画面で、ID/PASSがわからずめちゃくちゃテンパった…。

急いでプログラムアドバイザーに問い合わせたり、メールボックスを何度も見返したりしてその間生きた心地がしなかった…。
なんせ2時間のタイマーはもう動いてしまってるので…。

exam codeを試験官からもらうという手順は知ってたけど、試験専用サイトに事前にもらったID/PASS/Organization IDを入れるなんて手順知らんよ!?
ってなりました。

後々、試験前に来たメールを全部確認し直したら書いてあったんだけど…。
試験前は大量にメールが来るので全部読めてなかったんだと思う…。

Final Examの流れ

  1. Moodle(Online Campus)のfinal examをクリックします。
  2. proctor(試験官)からもらったexam codeを入れます。
  3. 2時間のカウトダウンが始まります。
  4. oxford のサイトに遷移して、事前にメールでもらったusername/pass/organization idを入れます。
    • ※ここでログインできないなどなんらかの問題があったらメールで問い合わせます。
    • 私はここのログイン情報がわかんなくて問い合わせたら1時間くらいでアドバイザーから返事がきました。
  5. ログインして、テストへのリンクをクリックしたら、80分間のカウトダウンが始まります。
  6. 問題は一度「next」ボタンを押すと前の問題に戻れません。
  7. 80分の時間制限をすぎると、強制的にスコアがゼロになるので、必ず残り時間が0になる前に最後の画面まで行く必要があります。
  8. 試験を全問時間内に提出した後、oxfordのwindowを閉じたらMoodle側のfinal exam statusがfinishedになります。

Final Examの内容

試験の問題は、文法とリスニングが半々くらいでした。
とてもかんたんな問題もあれば、いくら考えてもわからない問題もあり。
試験終わった後、記憶を頼りに辞書で調べても正解がよくわからない前置詞の問題があったり…。
リスニングはTOEICのように、「結局この人は何に困ってるの?」「女性は男性にどうしろとほのめかしてる?」といった問題が多いですが、
「解釈次第ではAもBも間違ってなさそう」みたいな選択肢が多かった印象…。

結果、終わった後の自信は五分五分といったところでした…。

UoPeopleのYammerコミュニティで「English Composition1のfinal testは、TOEICの点数と同じくらい取れるよ(例えば、700点の人なら70%)」的な情報を見たんだけど、そんなにとれませんでした/(^o^)\

3/27の夜に試験を受けてからしばらくはGradeの表示はなにも変わらず、スコアが出たのは6日後の4/2だったのでその間死んだような心地で生きていました。