Courseraでコンピュータサイエンス学位を修了する
(notesbylex.com/completing-a-computer-science-degree-on-coursera)- 学位を持たずに約21年にわたり技術職のキャリアを積んできたソフトウェア開発者/MLEが、University of London BSc Computer ScienceをCourseraで受講し、フルタイム勤務と両立しながら約3年9か月で修了
- 課程は100%リモートだが、Courseraは講義・クイズ・課題提出を担当し、University of London WorldwideとGoldsmithsが運営・採点・試験を分担
- 総費用は居住国と学習ペースによって£14,666〜£21,829で、オーストラリア在住の筆者の実支出は約**£17,000/A$33,000**。Courseraの資格証明で3モジュールを置き換え、費用と時間を削減
- オンライン学位でも中間課題、期末試験・期末課題、遠隔監督、6年以内修了制限があり負担は大きく、後半は自由時間のほとんどを学業に充てる必要があった
- 最大の不満は成績確認に約3か月かかり、フィードバックを活用しにくく、再試験が最大1年先にずれ込む可能性がある点。LLM普及後は監督とAIポリシーも強化
学位前の経歴と始めた動機
- 筆者は約21年の技術職経験があり、そのうち約14年はソフトウェア開発者とMLEとして勤務
- 高校を早くに離れた後、MCP、MCSA、A+といった資格で18歳からヘルプデスクの仕事を始め、その後ソフトウェアエンジニアリングと機械学習へ移行
- 学位がないことは、これまでのキャリアでは大きな障壁ではなかった
- オーストラリアでは正式な学歴より経験と姿勢を重視する傾向があると聞いていた
- 自分は“self-taught”というより、MOOCs、資格、書籍、Kaggleで必要なスキルを集めたself-educatedに近いと考えている
- CS50、Andrew NgのML講義、fastaiが主な学習経験として挙げられている
- ただし海外就職の選択肢には制約があった
- 若い頃、米国企業の最終面接段階まで進んだが、オーストラリア-米国E-3ビザには最低でも学士号が必要だと知った
- 学ぶこと自体が好きで、知識の空白を確認しながら実際の学習課題にZettelkasten Methodを試してみたかった
Courseraベースの遠隔学位の構造
- この学位は100%リモートで進行する
- Courseraは講義視聴、ラボノートブック、クイズ、フォーラム、課題アップロードを担当
- フォーラムは講師陣と会話できる場だが、ほとんど使われなかった
- プログラム運営主体はUniversity of London Worldwideで、課題と試験の採点はGoldsmiths, University of Londonが担当
- 試験はInspera proctoring softwareを使った遠隔監督方式
- 他の学生によれば、COVID以前は現地の教育センターで受験していた
- 2022年には短期間、監督なし・4時間制限・オープンウェブ/オープンブック形式で試験が実施されたことがある
- LLMの成功が監督導入を後押しした可能性があると見ている
- 筆者は多くの代替案を比較したわけではないが、すでに慣れていたCourseraのプラットフォームが生活様式によく合っていたと評価している
入学条件とPerformance-Based Admission
- 基本の前提条件は高校卒業証書
- 代替ルートとしてPerformance-Based Admission(PBA)がある
- Introduction to Programming Iと数学モジュール1つを履修
- 2モジュールとも合格すれば学位課程全体に進める
- これらのモジュールは最終成績に反映されるため無駄な時間にはならず、プログラムが自分に合うかも確認できる
費用、モジュール課金、税務処理
- モジュールごとに費用を払う方式は筆者に合っていた
- オーストラリア在住基準で、現在の1モジュールの費用は**£823**、約A$1,600
- 最終プロジェクトはダブルモジュール扱いで、少し追加費用がある
- Universityが案内するプログラム全体の費用は、居住国と学習ペースに応じて**£14,666〜£21,829**
- 筆者の総費用は約£17,000、約A$33,000で、3.5年にわたって支出した
- Courseraサブスクリプションだけで取得できる認定資格で3モジュールを置き換え、追加費用を抑えた
- オーストラリアでは、現在の業務に必要な特定の技術や知識を維持・向上させる学習なら、self-education expensesの控除が可能
- ソフトウェアエンジニアとして働きながらコンピュータサイエンス学位を学ぶことは、会計士の判断ではこの条件を満たす
学業負担と進行ペース
- オンライン課程だからといって簡単な学位ではなかった
- ソフトウェア職の経験は慣れた科目の理解には役立ったが、課題や試験の負担そのものが軽くなるわけではなかった
- 各モジュールには必須の中間課題があり、その後に期末試験または期末課題が続く
- 課題は長く、難しいことが多かった
- 試験もかなり難しい部類だった
- セッションごとに最大4モジュール、または2モジュールと最終プロジェクトを並行受講できる
- 再受験1件を追加することも可能
- 全課程は6年以内に修了する必要があり、そのためには1セッションあたり約2モジュールが必要
- 筆者はPBA後、1セッションあたり平均約3モジュールを履修し、セッション間にはRPL資格を取得した
- 最後のセッション群では4モジュールを履修し、負担が大きかった
- 多くの学生は4モジュールを継続して受講しており、最短修了期間は3年のようだ
- 中間試験や本試験前の数週間は、学位が自由時間のほとんどを占めた
- 後半のモジュールほど学習量が大きく増えた
- 最後の2セッションが最も厳しかった
- 朝4時に起きて4時間の試験を受け、昼は働き、夜は課題をこなす時期もあった
Recognition of Prior Learningで置き換えたモジュール
- Universityは、他所で同等のモジュールを学んだ場合にRecognition of Prior Learningによる置き換えを提供している
- 一部のCoursera資格証明はモジュール全体を置き換え可能で、Courseraサブスクリプションだけで取得できる
- 筆者は次の資格証明で3モジュールを置き換えた
- How Computers Work → Google IT Support Professional Certificate
- Data Science → IBM Data Science Professional Certificate
- Machine Learning and Neural Networks → IBM AI Engineering Professional Certificate
- Google資格証明は最初のセッションが終わる2023年4月に完了
- 週10時間換算で約3か月かかった
- IBMの2つの資格証明は、2024年7月の中間試験後の空き期間に続けて完了
- 当時は通常モジュール3つも並行して受講していた
- これらの置換資格証明により、学位全体の期間を1セッション分短縮できた
- 認定資格の一覧はその後変更されているため、最新ページの確認が必要
履修科目とプロジェクト
- 科目構成は一般的なコンピュータサイエンス学士と大きくは変わらなかった
- 数学は含まれるが、工学系学位ほど多くはない
- 大半は実践重視だった
- courseworkには興味深いプロジェクトがいくつも含まれていた
- オーディオビジュアライザー
- JavaScriptゲーム群。そのうち1つはpool simulation
- JUCEで作ったDJシミュレーター
- Karl Simsの1994年のEvolving Virtual Creaturesに着想を得た進化アルゴリズムのプロジェクト
- 信号処理の演習集
- Webデータのスクレイピングと分析に基づく研究プロジェクト群
- Apple Siliconで学習から実行まで完結できる乳がん検出用mammography classifierの最終プロジェクト
- 最終プロジェクトのコードはcm3070-final-projectにある
- 筆者の学習ルートは次のとおり
- 2022年10月: Introduction to Programming I, Discrete Mathematics / Google IT SupportでHow Computers Workを置き換え
- 2023年4月: Introduction to Programming II, Computational Mathematics, Web Development
- 2023年10月: Fundamentals of Computer Science, Algorithms and Data Structures I, Software Design and Development
- 2024年4月: Object-Oriented Programming, Programming with Data, Graphics Programming / IBM Data ScienceとIBM AI Engineeringで2モジュールを置き換え
- 2024年10月: Computer Security, Algorithms and Data Structures II, Databases, Networks and the Web
- 2025年4月: Professional Practice for Computer Scientists, Databases and Advanced Data Techniques, Artificial Intelligence, Intelligent Signal Processing
- 2025年10月: Natural Language Processing, Final Project
- 学生コミュニティの資料も有用だった
- world-class/notes: 学生が講義ノートを投稿するリポジトリ
- world-class/REPL: 講義資料とリソースのまとめ
- 学生たちが科目別の難易度や指標を整理したspreadsheet
一緒に学んだ学生たち
- 最も良かった点の1つは、他の学生たちと一緒に学んだ経験だった
- Courseraは学生向けSlackワークスペースに招待する
- 公式担当者の存在がはっきりしない、かなり自由な空間に近かった
- 一部の学生はチャンネル利用を強く管理していた
- 一部の卒業生は残って学生を助け、質問に答えていた
- 他の元学生が時おり荒らし気味の投稿をすることもあった
- 成績優秀な学生が課題の動画やスクリーンショットを共有する文化があり、印象的な成果物がモチベーションになった
- 世界中から多様な経歴を持つ学生が参加していた
- ウクライナ戦争の最中に学位を修了した学生
- Web開発を独学し、自分のスタジオで学費をまかなった学生
- 学位課程中に2度出産し、フルタイム教師として働きながらBScと修士まで終えた学生
- ウガンダの難民キャンプで太陽光パネルでノートPCを充電し、モバイルデータで学んでいたDjango
- Djangoの話はShipping a Laptop to a Refugee Camp in Ugandaへと続く
成績遅延、グループプロジェクト、プラットフォームの問題
- 最大の不満は、成績確認に約3か月かかること
- 中間課題の成績が期末提出の直前に返ってくることが多く、フィードバックを反映しにくかった
- モジュールに落ちても、不合格だった部分だけ再受験できる
- 最終成績が次のセッション開始後に出るため、再受験まで1年待つことがありうる
- これが受講者にとって最も大きなフラストレーション要因だった
- グループプロジェクトもよくある不満点だった
- グループは無作為に割り当てられるが、参加者が実際に課程を進めているのか不明なことが多かった
- 完全にゴースト状態のグループも多かった
- 筆者は一度のグループプロジェクトでまずまずのメンバーに当たったが、最終週に現れたメンバーを事実上ただ乗りさせるしかなかった
- その後カリキュラムが変わり、必須のグループプロジェクトは1科目の中間課題にだけ残った
- Courseraプラットフォームにはユーザビリティ改善の余地が大きかった
- 実際のプログラム進行と同期しないことが多かった
- 試験がCoursera外で終了したことを認識しない
- 提出時に複数ファイルや動画のアップロードが必要
- 提出物を修正するには全部を再アップロードする必要があり、動画アップロード後にレポートの誤字を見つけると最初からやり直しになる
- Insperaも扱いづらいソフトウェアだった
- false positiveで試験中に突然終了することがよくあった
- 試験時間は4時間しかなく、再試験まで1年待つ可能性もあるため、非常に不安な体験になる
- 試験中は追加サポート要員が配置される
- それ以外の場面では、実際の担当者と連絡を取るのに時間がかかることがある
- 筆者は他人の結果が出ているのに自分の結果だけ出ないことがあり、解決まで数週間かかった
学習運営のコツ
- 課題は早めに始め、こまめに提出するやり方が効果的だった
- まず合格できそうなend-to-end版を作り、その後改善を重ねる
- 課題内容がわかったらすぐ着手して下書きを提出し、締切ストレスを減らす
- 提出物は繰り返し確認すべき
- 提出漏れはよくあるミス
- プロジェクト提出チェックリストを作り、提出画面のスクリーンショットを撮り、アップロードした資産のS3 URLまで記録した
- 自分に合った勉強時間を見つけ、一貫して維持する必要がある
- 筆者には早朝が合っていた
- 仕事が長引くことが多く、退勤後の勉強時間はほとんど確保できなかった
- 進行を止めるblocker科目を先に片づけるべき
- Level 5ではObject-Oriented ProgrammingとSoftware Design and Developmentが中核科目
- 再受験が必要になると進行が止まり、不要なセッションが追加される可能性がある
- 規定は細かく読むべき
- 特にAdmission Noticeはメールでしか届かず、各試験の更新ルールや試験日など重要情報を含んでいる
- Slackのpinnedメッセージも重要
- 問題が起きたときの対処法に関する有用な案内が多く共有されていた
LLM普及とAIポリシーの変化
- 筆者はChatGPT公開の1か月前に学位を始め、学位課程がLLMの性能変化に合わせて変わっていく様子を見てきた
- 初期にはChatGPTで駐車違反の異議申し立てをする投稿を面白がっていたが、今ではとても些細に思えるほど基準が変わった
- 試験監督は導入後、次第に厳格化された
- 最近ではcheatsheetが廃止された
- LLMでcheatsheetを生成したり、2つ目の画面を隠れて使ったりすることを防ぐ措置だと推測している
- 以前は24時間の枠内で都合の良い時間に受験できたが、最近は各半球の学生が同時刻に試験を受ける方式に変わった
- LLMは講義チャンネルの会話量にも目に見える影響を与えた
- 初期には資料への質問や理解確認が活発だった
- その後は会話が減り、人々は質問をLLMに聞くほうを好むように見えた
- 2025年2月、学位開始から約2.5年後にUniversityは公式のAIポリシーを導入
- 申告なくLLM生成物を提出することはcontract cheatingとして扱われる
- これは金を払って他人にエッセイを書かせるのと同じカテゴリー
- 評価でのAI利用は3段階のフレームワークに分かれる
- Level Zero: AI使用不可
- Level One: ブレインストーミングや構成整理のような補助的利用は可能。ただし申告が必要
- Level Two: AI利用が求められ、たとえばAIで結果を生成し、その結果を批評する
- 教育者は、学生が学習全体をLLMに丸投げできないようにすることと、AIが職業生活の一部になる可能性が非常に高いという現実の間でバランスを取らなければならない
修了後の評価
- 全体の課程は3年半にわたって大変で、特に妻や友人たちをないがしろにしてしまう時期もあった
- 学位を得られたことは純粋にうれしいこととして残っている
- 自分なら勉強しなかったかもしれない数学のようなテーマを学べた点がとりわけ良かった
- 一緒に学んだ学生たちは非常に興味深い人たちで、筆者は生涯の友人ができていたらと思っている
- いくつか不満はあるものの、時間とともに改善されることを期待しており、全体としては良い経験だった
1件のコメント
Hacker News のコメント
似たような道を歩みました。ブラジルで競争の激しい軍学校に2校通いましたが卒業せずに米国へ移り、今はFAANG企業のシニアソフトウェアエンジニアです。
学位がないことは実際の障壁ではなく、社内でジュニアからシニアまで4年で急速に昇進しました。それでも常に弱点であり限界のように感じていたので、COVID期間中にブラジルの大学のオンライン計算機科学学位を始め、先週修了しました。
履歴書にもっと強い学校名を載せたくて、Johns Hopkins Masters in AI のオンライン課程に合格したのですが、このプログラムを経験した人がいるか気になります。
工学部やカリキュラムと直接関係はありませんが、医学部や公衆衛生大学院ほど有名ではないかもしれないとはいえ、全体としてかなり良い学校です。
Johns Hopkinsがそうなのかは分かりませんが、Georgia TechのOMSCSはそうなっています。
ただ、すでにFAANGのシニアなら、追加の正当性が本当に必要なのかは分かりません。
Georgia TechとUT Austinはそれぞれ約6千ドルと1万ドルで、OMSCSの評判が良いです。オンラインの計算機科学学位の中で、トップクラスの教授陣が積極的に教えていて、費用も過大ではないところとしては、GT、UT Austin、UIUCあたりが思い浮かびます。
今はStanfordやMITのような大学出身の優秀な人たちでさえ、小さな会社にすら入れないことが多いので、「学位がなくても問題ない」という話は、自分の幸運をあまりに軽視しているように聞こえます。
20年たってもグループプロジェクトはそのままのようです。
対面で授業を受けても、普通は1〜2人が全部やって、残りは消えるかただ遊んでいました。
電話もメールも何も返事がなく、1か月以上連絡が途絶えた後、教授に知らせる方法を相談していたところ、教授からその人は実際にトラックにはねられてまだ入院中で、医学的理由で履修を取り消すと知らされました。
提出1週間前に統合することにしていて、プロジェクト期間は6週間でしたが、最後の1人はずっと作業中だから心配するなと言うだけで、提出1週間前まで何も見せられませんでした。結局私が急いで処理しましたが、時間が足りずAではなくBを取り、それ以降はすべてのプロジェクトを1人でやりました。
5〜6人規模の大きなプロジェクトも教授たちと少し揉めて1人で進め、毎回最高評価のプロジェクトになりました。
当時はMCSEがあればどこでも採用され、A+は競争相手より前に出してくれましたし、その頃は生涯有効でした。
2000年代初頭は確かにそういう時代で、私もそうやって始め、最近学士を終え、今は修士をやっています。
私も同じように、資格を整え、穴を埋め、新しいことを学ぶために修士を取りました。
夜に勉強して課題をすることには、かなりロマンチックな理想主義があり、こうしたオンライン学習の仕組みは意志の強い人に向いています。しかし一方で、不正行為やAIの使用があるため、その資格が実際に証明するものは多くないという点は憂鬱です。
結局、確かなシグナルは「この人は途中で投げ出さず、レポート作成と参考文献の使い方を知っている」程度なので、資格を完全に検証するには別途テストが必要です。
予想より高いです。南アフリカ共和国では、そのくらいの費用があれば、現地基準で最上位クラスかつ世界300位圏の大学で3年制の学位を取得でき、住居費・食費・その他の費用まで含まれます。
ただし外国人ではなく、税金による補助を受ける現地人基準です。
衝動的な決断だったにもかかわらず、最後までやり遂げてfirst classを取ったのは称賛に値します。
コンピューターサイエンスの学士、修士、博士まで合計 11年 学んだが、自分の人生で最大の時間の無駄だった
経歴を積むほど、技術分野のほぼすべては実務で学ぶもので、大学は社会的なクラブに近いという確信が強くなった。今では大学で学ぶこと、そしてそれ以上のことをオンラインで無料で学べる
大学、特にエリート大学はまだ就職に価値のある資格を与えてくれるが、それがあとどれだけ続くかは分からない。今の時代に業界へ入るなら、数年かける学位よりも、自分で作りながらポートフォリオを積むほうがよさそうに見える
今なら世界的レベルの大学でない限り技術系の学位は勧めないし、そういう大学であっても成績より ネットワーキング と、似た関心を持つ人を見つけることに集中すると思う
計算可能性理論、グラフ理論、離散数学、形式論理といったものだが、世の中はコンピューター科学者よりも JavaScript を知っている人をはるかに多く必要としている
時間がたつにつれ、多くの CS 学位はソフトウェアエンジニア育成寄りに変わってきたが、工学分野としてのソフトウェア工学は非常に期待外れだ。普遍的に尊重される設計のベストプラクティスも、管理機関も、安全限界の計算もほとんどない。npm から left-pad を持ってきて済ませるか、今では Codex が代わりにそうしてくれる
だから CS は Google に入るにはやるべきもののように見なされているが、実際の有用性は低く、「十分に真剣か」と課題を期限どおり終えられるかを確認するための、高価で非効率な方法になっている
博士は内容を学ぶ過程ではなく、研究の独立性、自信、強い批判能力を得る過程だ。本当に難しい問題を前に身を削り、極端に非生産的な時間に耐える、特別な種類の苦痛であるべきだ
そうしたものを得たものの職場で使っていないのなら、博士号が必要なかったのかもしれないが、それは学位そのもののせいではない
かなり反復的で、優れた判断力と最新の流れについていく能力は必要だが、普通は最先端アルゴリズムを研究する仕事ではない。新しいボタンを追加し、分析呼び出しにパラメーターを入れ、ダークモードを実装することが、6桁年収の技術職で大半の人がやっていることだ
面接で必要な理解に役立ったり、ネットワークを広げる可能性を高めたり、別の無形のシグナルになったりしたなら、言うほど無駄ではなかったのかもしれない
私には学位がなく、沿岸部の技術業界ではこうした背景の人がますます珍しくなっていて、むしろ不利になることもある。一方でキャリアのかなりの部分を、ソフトウェア運用上の問題を解決するアプリケーションを書くことに費やし、大きなチームより小さなチームで働き、プロダクトやプロジェクトの支援なしに動くことも多かった
以前はその時期を苦行としてしか記憶しておらず嫌っていたが、最近でははるかに 自立的 になり、長く働いてきたエンジニアとして、より大きなチームを率いる能力と慣れを身につけたと見ている。経験や物事の価値は、すぐに現れたり認められたりしないことが多い
ほとんどの分野では学位なしで就職するのは事実上不可能で、技術分野でも難しい。大手テック企業で働いているが、私の見る限り、ほとんどの ソフトウェアエンジニア は何らかの形で学位を持っている。例外はあるだろうが、まれだ
Coursera 経由のオンライン課程が今でも 3年で17,000ポンド、約22,000ドルだというのは、思ったより高い
興味深いことに、The Open University の費用とも似ているように見える: https://www.open.ac.uk/courses/computing-it/degrees/bsc-comp...
そしてオフラインで同じプログラムを受けるよりは、依然として安い可能性が高い
この人が 数学知識の穴 をどう埋めたのか本当に知りたい
以前こういう課程に挑戦できなかった最大の理由がその部分だった
線形代数と微分方程式まで扱っているし、Coursera にも受講できる数学講座がかなりある
この特定の課程をしばらく検討してきた
ときどき、これを「キャリア」のためにやりたいのか、それとも本当に 自分自身のため にやりたいのか考えてしまう