見出し画像

UoPeople (アメリカのオンライン大学)に入学して1年経過しました。

2022年9月にアメリカのオンライン大学(コンピュータサイエンス専攻)に入学し社会人兼学生になりました。エンジニアになって2年目になったタイミングで入学しました(気まぐれです)。


見出しのうち、「UoPeopleとは」と「UoPopleにおける毎週の課題」「1年間社会人学生をやってみて」は非UoPeople生向けの内容となっております。


はじめに

入学してから5term(1年間)の受講が完了しましたのでこれまでを振り返ってみようと思います。授業の内容や難易度、自分がしてきた準備や時間の使い方について書きました。

かなり長くなってしまったので気になるセクションだけ目を通すなど参考になればと思います。

UoPeopleとは


公式サイトに記載ある通り、アメリカの国家認定大学(Nationally Accredited University)です。

アメリカの教育機関の認定制度については、先輩学生であるSayahさんの記事が非常に分かりやすいです。

「ACCREDITATION」の意味とアメリカの認定大学の落とし穴

主な特徴としては
・授業料や教科書が無料
 ※テスト費用や単位移管は必要です。
・オンラインで入学から卒業まで完結可能
・入学要件が、英検準1級程度の資格と2つの基礎コースで合格点を取ること
 ※資格を持っていない方は英語クラスとパスすることで英語の要件を満たすこと(TOEICは不可)
・アメリカの認定を受けた大学でCSの学位を取ることができる

オンラインで全てを完結できるというのは仕事を続けながら学ぶことができるので社会人にとってはかなり有難いです。

きちんと調べられていないのですが大学などで完全に英語のみで学ぶクラスをとっていると資格証明書を提出しなくてもパスできるようです。私は高校と大学それぞれで受講していたこともあり資格証明書を提出することなく英語の要件はパスしました。

入学方法など参考ブログ


主にこちらのお二人のブログを参考にして入学準備、単位移管などの手続きを進めました。入学を検討されている方は覗いて見てください。
サクライパンダのブログ

えんぴつブログ


授業の振り返り

UoPopleにおける毎週の課題

毎週木曜日に1週間分の課題が出されます。
下記のような構成としては、Reading、Discussion、Assignement、Learning Journal、Quizです。これを8week分+最終のgraded-quiz(期末試験)が課題の全てです。

Reading:教科書+動画
教科書とページが指定され該当の箇所を読みます。20Pほどの短いものから100P超えのものあったりと科目、週によって変動します。

動画は3分ほどの短いものから1時間ほどのものがあります(クラスによって異なります)。こちらは必須ではなく補助教材のような感じです。

Discussion:短いレポート+クラスメイトとのディスカッション
テーマが与えられるのでそれに対して500語前後で意見をまとめてクラスメートとディスカッションします。掲示板のようなところにレポートを投稿しそれにリプする形でディスカッションを行います。

Assignement:プログラムの実装orレポート
受講クラスによって異なりますがJavaのクラスであればJavaを使ったアルゴリズム実装などです。また作った課題に対してクラスメイトと匿名で相互評価をする必要がございます。

Learning Journal:レポートを書く
クラスや週によってテーマと最低語数が異なります。500語〜1000語ぐらいです。APA形式で書く必要がございます。これは先生が評価します。

Self-QuizもしくはGraded-Quiz:
選択問題もしくは空欄にキーワードを入力して回答するタイプの問題です。Selfは期間内に何度も受けることのできる練習問題で、Gradedは中間テスト、期末テストのようなものです。

期間内に終わらなかったものは0点として評価されます。
大学からはとして15時間/クラスとして推奨されております。

入学前はオンラインだから余裕かな?と思っておりましたが、さすが海外の大学ということだけあってかなり課題多いので自然と15時間ほど行きます。

Term1(オンライン教育戦略)

コース名
UNIV 1001 Online Education Strategies

コース内容
UoPeopleでの学習スタイル、学習方針を理解するためのクラスでした。

オンラインと対面授業の違いを理解した上でどのように学習を進めるか、クラスメートとのコミュニケーションの非同期性を理解した上で学習効率を上げるのかを学びました。

 今後UoPeopleでのクラスを取る上での基本的な学習スタイルに慣れるための授業でもありました。CS関連のクラスが始まると下記に加えてAssignmentが追加されます(後述)。

Reading:教科書
Discussion :短い文章+ディスカッション
Learning Journal:レポートを書く
Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
授業に対して準備はしませんでした。時間に余裕がありましたのでUoPeople関連サイトを見て回ってました。

難易度・感想
 英語で授業を受けるのはかなり久しぶりでしたが、オリエンテーションのようなクラスなので課題は多くなく、また参考図書のページ数も少なかったので毎日向き合っていれば問題なく修了することができると思います。
週に8時間ほど確保できれば大丈夫だと思います。

UoPeopleでの授業を体験できる初めてのコースです。
ここで学習の進め方を身につけておくと後が楽だと思います。日本の大学生だった頃は1term丸々使って大学生活の準備を行うといった授業は無かったので個人的にはすごく新鮮だと感じました。

Term2(Pythonプログラミング入門)

コース名
CS 1101 Programming Fundamentals

コース内容
Pythonを使ってプログラミングの基礎の基礎を学ぶ授業です。
このクラスからプログラムを書く課題が、2週間に1度出題されます。

Reading:教科書
Discussion:短い文章+ディスカッション
Learning Journal:レポートを書く
Assignement:Pythonでの実装
Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
基本情報を受ける際にPythonを学んでいたのでそれ以上の準備はしておりませんでした。その時は「Pythonチュートリアル」で学んでました(無料なので)下記の画像にリンク貼ってます。

Pythonチュートリアル

業務ではPythonを使ったことはないですがプログラミング経験者であれば難しくないとは思います。
次のJavaのクラスで一気にレベルが上がりますのでチュートリアルを読んでプログラミングの基本を固めておいた方がいいと思います。

難易度・感想
難易度は優しいと思います。イメージとしては日本語の初学者向け技術書で学べるレベル感です。Tuppleって何?Arrayって何といった感じです。

まだ課題は少なくPython自体も馴染みやすい言語なので進めやすかったです。レポートやプログラミングの実装課題で自分が調査したもの、実装したものについて英語で説明するのは慣れが必要でした。このTermでは英語で表現することとプログラミング関連の英単語を覚えることに注力しておりました。

CS関連の授業は初回だったので身構えて1科目のみ受講しましたがなんとかなるレベルですので、UNIV1001と同じTermにとってもよかったなと少し後悔しています。

Term3(代数学とJava)

初めての2科目だったのでかなり大変でした。難易度と課題の量が一気にふえ難易度が跳ね上がった(本来の難易度になっただけ?)と感じました。毎週最低でも30時間はUoPeopleに時間を割いたと思います。

コース名
CS1102 Programming 1

コース内容
Javaを使ってプログラミングについて学びました。Pythonの時とは違いオブジェクト指向に踏み込んだりとより実践的だと感じました。

Reading:教科書
Discussion :短い文章+ディスカッション
Learning Journal:レポートを書く
Assignement:Javaでの実装
Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
業務でたまたまJavaのリバースエンジニアリングに取り組んでいたので公式ドキュメントをちらほらと目を通しておりました。

難易度・感想
Pythonのクラスが5段階で1だとしたら3ぐらいのイメージです。
教科書がJavaの書き方だけではなく、プログラミングの背景知識、ベストプラクティス、基本的なオブジェクト指向に関しても記述されているのでかなり読み応えがありました。一部リーダブルコードに書かれているよう実務でも求められるような内容にも踏み込んでおりました。

特にDiscussionとQuizが、単に用語を知っているだけで答えられるものでは無かったです。
イメージですがSuperとThisを使ったサンプルコードを書いて、どのように使うのかどういったタイミングで使うのか説明を求められたりです。

個人的にはEclipseの環境構築がめんどくさかったです。

コース名
Math 1201 College Algebra

コース内容
代数学の授業で、多項式、合成関数、指数対数と三角関数and so onを学びました。

Reading:教科書
Discussion:短いレポート+ディスカッション
Learning Journal:代数学の問題を解く
Assignement:代数学の問題を解く
Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
ガッツリ準備しました。笑 
授業を受けるまでに下記の本を読んでました。少しオーバーワークだったかなと思いますがお陰で詰まることもなく進んだと思います。日本の大学受験では数学を使わなかったので学び直しだと思って取り組んでました。ここまでは必要ないと思いますが中学数学ぐらいまでは知識があった方がいいかもです。

「小学校6年分の算数が教えられるほどよくわかる」
「語りかける中学数学」
「白チャート数学1A」
「白チャート数学2B」
「白チャート数学3」
「数学ガール/丸い三角関数」

難易度
難易度は高だと感じました。理由としては他の授業と比べて圧倒的に課題図書のページ数が多く読み終えるまでに2、3日を使うことが多々ありました。関数電卓の使い方についても慣れる必要があります。

My電卓

教科書は公式を説明して終わりではなくすごく身につきやすい構成だと感じました。
概念についてざっくりした説明

公式

現実のケースに当てはめた説明

練習問題
このクラスに限らず全体的に現実では〜のように使われているといった説明が多いと感じました。UoPeopleの教育方針?

たまに全く聞いたことのないネイピア数のようなワードが出てきて身構えることがありましたが、教科書を斜め読みしない+参考問題や巻末問題を解く+参考動画にも目を通すことでなんとかなると思います。

同タイミングで受講していたCS1102(Java)もボリューミーだったので週によっては夜中2時まで作業していることもありました。。。
2科目で週に最低30時間は使っていたと思います。

Term4(データベース入門とJava2)

コース名
CS2203 Database 1

コース内容
こちらも毎週AssignementがあったのでCSの授業に関してPython以降は、下記のような課題量だと思います。先生による可能性があるのですが、Discussionの提出期限が大学の指定より早いこともありよりタイトに時間を気にする必要がありました。確か日本時間の月曜の終わりまでとかでした。

Reading:教科書
Discussion Forum:短い文章+ディスカッション
Learning Journal:レポートを書く
Assignement:SQLの実装、正規化など
Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
実務でストアドを組んだりとガッツリSQLを書いていたり、テーブル定義書を作ったりしていたので特に準備はせずに臨みました。

難易度・感想
データベースは2クラスありこちらは入門編のようなものなのでかなり簡単な方だと思います。ただ読書量はこれまで授業で一位を争えるほどの量でしたのでそれなりに知識をつけていかないと時間をかなり取られると思います。週によっては参考図書1冊読むような時もありました。
排他的ロック、正規化、基本的なSQLを理解されているのであれば身構える必要はないと思います。

コース名
CS1103 Programming 2

コース内容
CS1102と同じ教科書を用いてさらにJavaを用いた発展的な学習を行いました。

Reading:教科書
Discussion Forum:短い文章+ディスカッション
Learning Journal:レポートを書く
Assignement:Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
CS1102では教科書の半分ぐらいまでで終わったので、授業が始まるまで教科書の後半部分を読んでおりました。

難易度・感想
これまで受けた授業でダントツで高いです。

理由としては授業のカバー範囲が広いためです。ラッパークラス、インターフェース、コレクションFW、アルゴリズム、計算量、Webサーバーとソケットなどエンジニアとして必要とされる(だろう)知識が網羅されております。内容的には導入レベルになりますが、毎週テーマが変わる中でDiscussion課題と実装課題に取り組む必要があるので大変でした。

またCS1102の振り返りの通り教科書の視点が広いので気合を入れて読む必要があります。個人的には全体的に遠回しな表現の英語で書かれていることが時間を削られた要因だと思います。

一度読むだけだと理解が追いつかないので教科書を事前に読んでいて本当に良かったと感じました。

ソケットの実装やマインスイーパーの実装などがあり慣れるまでが大変でした。サンプルコードも毎週配られるのでコードとコメントをしっかり読むことで理解できるようになってました。これに気づかず初めの3週はかなり苦しみました。笑

実装課題ではクラスメート同士で相互評価が行われるので、きちんと提出方法も考える必要がありました。たまにノーコメントで0点をつけてくる人もいます。
3週目ぐらいからは、実装した意図、プログラムの動かし方、テスト結果を説明するように心がけておりました。

なんとか修了することができましたが、課題をこなすのでいっぱいいっぱいだったため消化不良感があります。木曜〜土曜でデータベースのクラスの課題を全て終わらせて、土曜の一部〜木曜はこちらの授業にリソースを割いておりました。
これは1クラスだけ取って集中しても良かったかなと思います。

Term5(コンピュータアーキテクチャと統計学)

コース名
CS1104 Computer Systems

コース内容
コンピュータシステムの理論と実装(オライリー)の英語版が配布されるのでそれともう一冊を元にCPUや機械語などについて学びました。

Reading:教科書
Discussion Forum:短い文章+ディスカッション
Learning Journal:レポートを書く
Assignement:回路の実装や機械語への翻訳など
Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
コンピュータシステムの理論と実装を購入して一読しておりました。エンジニアが読んでおくべき書籍としてよく目にしますが間違いなく名著だと思います。海外のCS学部では取り入れられている書籍のようです。

難易度・感想
Uopepleの授業の中で、私がこれまで受けた中でダントツに面白かったのがこの科目です。これまではRAMやCPUなどの単語を単純な一問一答形式で覚えていただけで、コンピュータの構成要素がお互いにどのように関連しているのか、つながりを理解するのが難しく、正直なところ苦手意識を持っていました。

この授業では苦手意識を克服できるようなアプローチを取られており、もっと早くこの授業に出会いたかったと思いました。

各週に課されるディスカッション課題によって、その週のテーマに関する特徴やポイントを深く理解し、クラスメイトと議論を交えながら学ぶことができます。

例えば、テーマがCPUだった場合、そのCPUを特定の用途にどのように活用できるか、その際のメリットやデメリットなどをディスカッションすることになります。これによって、単なる理論だけでなく、実際の活用シーンを想像することが出来ました。

実装課題もテーマに合わせた内容であり、理論だけでなく実際の手を動かして学ぶ機会が提供されています。実装は前の週に作った成果物に追加していく形だったのでありきたりですが点と点が繋がる感じでした。
AndゲートやOrゲートを1週目で作って、2週目ではそれを使ってALUを実装するといったイメージです。

全体を通して難易度は中ぐらいだと思います。教科書は簡単過ぎず難し過ぎずなので、一度で理解できない概念は何度も読み返すこと、作った成果物に対して修正とテストを繰り返すことで理解が深まると思います。

コース名
MATH 1281 Introduction to Statistics

コース内容
統計学の基礎について学びました。教科書は代数学の時と似た作りになっており概念→公式→実例→練習問題の順で書かれております。

Reading:教科書
Discussion Forum:短い文章+ディスカッション
Learning Journal:統計学の問題を解く
Assignement:統計学の問題を解く
Self-QuizもしくはGraded-Quiz:クイズ形式のテスト

事前準備
統計学は初めてだったので、事前に優しめの本を読みました。
「データ分析の先生! 文系の私に超わかりやすく統計学を教えてください!」

事前の準備は先輩学生であるokayuさんのブログを参考にさせていただいております。他の授業についても記事を書かれており、こちらで紹介されている本は基本的に全て目を通しております。
UoPeople AY2022-Term2 の振り返り。統計学とアルゴリズムに入門

難易度
代数学の時に比べてテキストの量が少なく、数学に少し慣れてきていた+UoPeople自体に慣れたのもあって簡単に感じました。
代数学の授業にしっかり向き合った人であれば問題なくこなせると思います。

1年間社会人大学生をやってみて

ここまで読んで頂きありがとうございます。
取っていた授業によっては夜中(最長3時)まで作業することもあり、生活がかなり変わりました。

Term2からは2科目受講しておりました。
平日は朝1.5~2時間、夜は2~3.5時間確保で平均で4時間/日ほど、休日は5時間~/日で毎週30時間はUoPeople(大学からの推奨時間通り)に費やしていたと思います。

以下の3点から始めの3学期はかなり精神的に疲れました。
・英語しか使えない環境に慣れていない
・日本で通っていた私の大学に比べて圧倒的に課題の多い
・当然ですがコンピュータサイエンスを学んだことがない

Term4以降は勉強のサイクルが確率し仕事との両立にも慣れてきました。
ただ今でも夜中までの作業が続くと「なんで睡眠時間を削って苦しんで勉強してるんやろ?「これは何かに繋がるのか?」って思うことはあります。

どうしてもオンラインだと1人で粛々と作業することになるのでうまく息抜きをすることや勉強を続ける刺激を見つける必要があると思います。自分の場合SNSにいる猛者を見て自分を奮い立たせております。笑

少し愚痴になりましたがここからはネットワーク、アルゴリズム、OSやデータマイニングなどより実施的な(CSっぽい?)授業に入っていきますので倒れない程度に頑張っていきたいと思います。

次は自分が苦手としているネットワークの授業をとります。

参考にしている先輩学生のブログ

改めて記事の中で紹介させて頂きましたブログの一覧を紹介します。今回の記事以外にもいつも勉強させて頂いております。

Sayaさん
https://sayah-media.com/

サクライパンダさん
https://kazakhjapan.com/

えんぴつさん
https://empitsu88.hatenablog.com/

Okayuさん
https://okauuu.hatenablog.com/

ここまで読んで頂きありがとうございました。

この記事が気に入ったらサポートをしてみませんか?