コンピュータサイエンスは今や我々の生活のあらゆる面で活用されている不可欠な学問です。その学習をオンラインで可能にしたRecursionをご紹介します。
Recursionは、オンラインでコンピュータサイエンスを習得するためのプラットフォームとして、以下の三つの主要な特徴を持っています。
- 日本語のカリキュラム
- 多数の実践的なアウトプット課題
- 充実した学習サポートと学習者同士のコミュニティ
本記事では、そのRecursionについて詳しく説明します。カリキュラム内容、料金や登録方法、そしてRecursionで学習することのメリットまで、詳細にわたり解説していきます。コンピュータサイエンスを学びたい方、オンラインでの学習に興味がある方は、是非一読してみてください。
目次
オンラインで学べるコンピュータサイエンスカリキュラム
コンピュータサイエンスとプログラミングの違い
Recursionは、プログラミングだけでなく、その上位概念であるコンピュータサイエンスを理解するための学習プラットフォームです。プログラミングは、コンピュータサイエンスの広範な領域の一部に過ぎません。
関連記事:コンピュータサイエンスとプログラミング、その両者の違いとは?
アメリカにおけるコンピュータサイエンス教育の重視
アメリカではプログラミング教育がコンピュータサイエンス学習の入り口とされています。日本でもプログラミング教育に対する関心が高まっていますが、教育内容はプログラミング中心であり、コンピュータサイエンスへのアプローチが少ない傾向が見受けられます。
コンピュータサイエンス未理解の危険性
コンピュータサイエンスの基礎理解なしにプログラミングを学ぶと、以下のような問題が発生する可能性があります。
- プログラミングを深く理解していないため、フレームワークが自由に扱えない
- ドキュメンテーションの理解が難しく、情報検索に時間がかかる
- 新しい言語学習に際し、基礎知識の不足による学習コストの上昇
プログラミングを書くスキルだけでは、プログラミング学習者が増加している現在社会で競争に勝ち抜くことは困難になるかもしれません。
コンピュータサイエンス理解のメリット
コンピュータサイエンスの理解が深まると、以下のような利点が得られます。
- 特定のフレームワークに依存せず高度なソフトウェア開発が可能に
- 専門書やドキュメンテーションの理解が容易に
- 言語に依存しない基礎力を身につけられる
これらの知識は、自社開発企業や有名企業への就職、自力でソフトウェア開発など、さまざまな可能性を広げます。
「データ」から始まるコンピュータサイエンス学習
Recursionでは初心者でもコンピュータサイエンスが学べるよう、「データとは何か」から始めるカリキュラムを提供しています。これは一般的なプログラミング学習サイトが「Hello World」から始めるのとは対照的なアプローチです。
Recursionのカリキュラムは、データや変数、再帰、制御フロー、オブジェクト、配列、木構造、連結リスト、ラムダ関数、オブジェクト指向、デザインパターン、オペレーティングシステム、データベースなど、コンピュータサイエンスの基礎から難解な領域まで理解できるよう設計されています。
Recursionのオンラインプログラムでのアウトプット課題
アウトプットの重要性とラーニングピラミッド
動画視聴や書籍読解によるインプット学習だけでは、知識は5%程度しか定着しないと言われています。自分で思考し、手を動かすアウトプット学習が欠かせません。テニスを例にとると、ルールブックを読んだだけではプレイはできません。ラケットを振り、ボールを打ち返す実践が必要です。これはプログラミング学習にも共通する事実です。
Recursionでは、インプット学習の後には必ずコーディング問題やプロジェクトといったアウトプット課題に挑みます。具体的な学習方法を、「ブラックジャック」の開発工程を通じて紹介します。
コンピュータサイエンスの基礎を理解する
Recursionでは関数の抽象化、制御フロー、配列、オブジェクトなどについてのインプット学習を行います。コードの書き方、文法はプログラミング言語によって変わりますが、その背後にある概念の理解が重要です。
オンラインエディタでのアウトプット学習
新しい構文やメソッドが登場する度に、Recursionの専用エディタで確認します。ここで学んだことをすぐにアウトプットできます。Recursionは環境構築の必要なく、コンテンツ、練習問題、プロジェクトなど全ての学習を行えるシステムを提供しています。
オンラインで解決するコーディング問題
コーディング問題では、ブラックジャックの勝利アルゴリズムのようなロジックを自分で記述する練習を積みます。学んだfor文、配列、関数の分解などを活用して勝利判定の関数を作成します。
トランプゲームの開発
学習した知識を用いて、トランプゲームの開発を細かく分けて進めていきます。この段階では見本コードを参考に学習します。理解したら、手本を見ずに自分で考えながら作成を進めます。
プロジェクトで基礎知識を応用
プロジェクトではソフトウェアの設計を学び、ブラックジャックを実際にWebアプリとして遊べるように完成させます。Recursionのプロジェクトは、ポートフォリオとして活用することができます。
上記が、Recursionの学習プロセスです。アウトプットを重視し、基礎から応用までを確実に学び、実際に成果物を作成することで、より深い理解とスキルの定着を目指します。
オンラインでのコミュニケーションの場
プログラミングの学習は、独学の場合挫折を経験する人が多いのが実情です。Recursionは、学習者たちが孤独にならず、困ったときに質問できるような環境を作り出すことを目指しています。そのためにはコミュニティが重要です。
プログラミング疑問解決の場:Discordコミュニティ
Recursionは、Discordコミュニティを通じて、プログラミングに関する疑問を解決します。コースごとにチャンネルが分けられているので、何か問題に直面したら適切なチャンネルに質問を投稿すれば、ユーザーからわかりやすいヒントやアドバイスが提供されます。
さらに、カリキュラム以外の情報交換も活発で、ハッカソンやisuconに参加するメンバーの募集、おすすめのキーボードやモニターについての質問など、ユーザー同士の交流が盛んに行われています。
オンライン学習成果の共有:Twitter
Twitter上で#RecursionCSのタグをつけることで、Recursionユーザー同士が簡単に見つけられ、互いにフォローして学習の成果を共有したり、何気ない会話を楽しんだりできます。
オンラインでの会員同士の交流:oVice
バーチャルルームは自習室として会員に24時間開放されています。静かに一人で作業するサイレントルーム、会話するチャットルーム、音楽を聴きながら作業できる部屋など、自由に利用することができます。特にミーティングルームでは、チーム開発プログラムのメンバーが集まり、画面共有しながらチーム開発を行います。
ポートフォリオ作成:チーム開発プログラム
チーム開発プログラムは、1つのプロジェクトを1ヶ月半かけて3人のメンバーで完成させます。Recursionで交流関係を作り、モチベーションを保ちながら上級者への道を目指します。
特に大規模なプロジェクトではチームワークが重要であり、就職活動でもコミュニケーション力が重視されます。チーム開発の経験を積むことは、あなた自身のアピールに繋がるでしょう。
以下に、チーム開発プログラムで作成された作品例をいくつか紹介します。
- 作品例1:https://youtu.be/p6WR1MUiECg
- 作品例2:https://youtu.be/gGG4L3vEOao
- 作品例3:Mindjam
Recursionの登録方法と料金
Recursionの全てのサービスを活用するためには、まず会員登録が必要です。
無料会員の特典
登録に必要な情報は、ユーザー名、Eメールアドレス、パスワードの3つだけです。無料会員として登録すると、初級コースとHTML&CSSコースの全カリキュラムを体験することができます。これら2つのコースだけで、カリキュラムページ数は80ページ、コーディング問題25問となり、学習時間の目安は約45時間です。
有料プランの詳細
Recursionでは現在1100時間分のカリキュラムと530問のコーディング問題があり、さらに対応言語の追加やフレームワークのコース開設など、新たなコンテンツの追加を計画しています。
有料会員は月額プランと年額プランの2つから選択できます。これらのプランに登録すると、全てのコンテンツが無制限に利用可能となります。
- 月額プラン:61ドル/月
- 年額プラン:588ドル/年
特に年額プランは、月額換算で49ドルとなり、年間で144ドルの節約が可能です。無料会員と有料会員で利用できるサービスの詳細は、指定のページでご確認いただけます。
オンラインコンピュータサイエンス学習プラットフォーム – Recursion
Recursionは、初級者から上級者までの多様な学習者に対応した、広範で深遠なオンラインコンピュータサイエンス教育を提供するプラットフォームです。カリキュラムは、Meta社の経験豊かなソフトウェアエンジニアの知見に基づき、各学習者のスキルレベルに応じた内容を提供しています。
自己進度型の学習体験は、オンラインでのコンピュータサイエンス学習を一段と有益にします。カリキュラムは、基本的な概念から始まり、アルゴリズム、データ構造、オペレーティングシステム、ネットワーク、データベースに至るまでの広範な知識領域をカバーします。
さらに、Recursionは理論だけでなく実践的な学習に重点を置いています。プログラミングの実習やプロジェクトベースの課題を通じて、理論知識を具体的なコーディングスキルへ直接応用する機会を提供します。この包括的なアプローチにより、Recursionは学習者がオンラインコンピュータサイエンスの深層を理解し、新たな技術問題に対する解決能力を獲得する手助けをします。