プロジェクトではWebアプリケーションの開発を中心に学習します。オブジェクト、データ構造、アルゴリズム等、コンテンツで学んだコンピュータサイエンスの知識をアプリケーションへ適用します。
例えば、一番最初のプロジェクトではJavaScriptのDOM(Document Object Model)というデータ構造を使って、プロフィールカードをJavaScript側から作成し、Webページに表示します。
DOMは Webページのそれぞれの要素(ノード)を木構造で表すことによって、プログラム側から管理、アクセス、操作、保存を容易にすることができます。
document.getElementById(id)
// Documentオブジェクトの中にある文字列idに一致するelementオブジェクトを返すメソッド
// Documentオブジェクトはページのブラウザ上に存在する全てのelementオブジェクトの根ノード
// document変数はグローバル変数なのでどこからでもアクセス可能
またプロフィールカードについては、firstname, lastname, job, skill, country, urlをメンバ変数とするEmployeeクラスを作成することで、それぞれの人物をインスタンスとして管理することができます。
class Employee {
// コンストラクタ、初期値の設定
constructor (firstName, lastName, job, skill, country, avatorUrl) {
this.firstName = firstName;
this.lastName = lastName;
this.job = job;
this.skill = skill;
this.country = country;
this.avatorUrl = avatorUrl;
}
// フルネームを返すメソッド
getFullName() {
return this.firstName + " " + this.lastName;
}
}
let employee1 = new Employee("Elizabeth", "Dunn", "Accountant", "Excel, Word, Quickbooks", "England", "https://randomuser.me/api/portraits/women/76.jpg");
最後にEmployeeオブジェクトを受け取り、プロフィールカードを子要素に含んだdiv要素を返すcreateEmployeeCard
関数を作成します。複数のオブジェクトを配列に格納し、以下のようにmap関数を実行してそれぞれの要素に対してcreateEmployeeCard
関数を実行して、複数のプロフィールカードをレンダーします。
employees.map(employee => profileDiv.append(createEmployeeCard(employee)));
このようにプロジェクトではコンテンツで学習したコンピュータサイエンスの知識をあらゆる場面で活用します。プロジェクト1だけでも以下の知識が必要になります。
- 初級: データ、変数、関数
- 中級: オブジェクト、リスト
- 上級: ノード、木構造、ラムダ関数
コーディング問題を用いてコンテンツの知識をアウトプットで定着させ、プロジェクトでその定着させた知識を応用させます。各プロジェクトはコーディング問題と同様、アウトプット中心の構成になっています。
メソッドの使い方や、画像のレンダリング、JavaScriptを使ってHTMLを作り上げる方法など、詳しい解説とともにアウトプットで練習しながら徐々にステップアップしていくため、効率的で無理なくスキルをを定着させることができます。各コースの最後には、学んだ内容を用いてヒントなしでソフトウェアを開発する複数の最終課題があるので、是非チャレンジしてください。
プロジェクト課題例:
コマンドを受け取り、ファイル管理を行うファイルディレクトリシステムの作成
アウトプット学習でフレームワークの知識を身につけよう
またこの他にもRecursionではフレームワークのコースを複数用意しています。ほとんどのフレームワークのコースは、オブジェクト指向言語コースとデザインパターンコースの修了が条件になります。プロジェクトと同様、各コースには複数の課題が用意されており、アウトプットを通してソフトウェア開発力を身につけます。
Unity課題例:
Vue.js課題例:
ユーザーが作成した成果物を見てみよう
Recursionの最終課題では、自分で設計を行い、ソフトウェアを開発することになります。以下、ユーザーの作成したプロジェクト例を見てみましょう。
Black Jack
トランプゲームのブラックジャック。ディーラーとBotを含んだ複数プレーヤーのゲームを1から自力で設計し、開発します。
Click Empire Game
仕事や投資、不動産等でお金を稼ぐシミュレーションゲーム。ゲームの目的は、一攫千金を目指し、街に帝国を築くことになります。
Calculation App
電卓のアプリケーション。 四則演算(足し算、引き算、掛け算、割り算)および剰余の計算ができます。 計算は、優先度の高い演算子(×、÷)から行います。データ構造「スタック」を使ったアルゴリズムによって実装されています。
ユーザーの開発したプロジェクトはコミュニティのプロジェクトシェア
チャンネルで閲覧することができます。