Recursionコース一覧表

現在、Recursionでは、プログラミング初心者から上級者まで、幅広いレベルの学習者が参加できる様々なコースを公開中です。有料会員になると、公開中の全てのコンテンツにアクセスできるだけでなく、チーム開発やコミュニティ参加などの特典もあります。Recursionは、高品質なコンピュータサイエンスの教育を提供することを目指しています。

コーディング問題

使用可能言語 学習目安時間(hr) 無料会員 有料会員

Python, JavaScript, PHP, Java, C++, TypeScript, C#, Ruby, Go

25問 550問

コンピュータサイエンスの基礎

レッスン 学習目安時間(hr) 無料会員 有料会員

初級

関数とデータの基本を学び、データがコンピュータサイエンスにおいてどのような意味を持つかや、関数を使って問題を解く方法を身につけます。データ型の入力と出力のコンセプトを理解することが必要です。

30

中級

オブジェクトやリストを使ってデータを表現し、コースの最後にはトランプゲームをスクラッチから設計し、ブラックジャックやポーカーを実装する方法を学びます。コース修了後、多くのコーディング問題を解決でき、簡単なソフトウェアの開発も可能になります。

80

上級

データ構造を中心に学び、独自のデータ構造を作成し、自由にデータを表現する能力を身につけます。また、ラムダや高階関数の学習により、関数を入力または出力として扱うことができるようになります。

95

プログラミングパラダイム

コース名 学習目安時間(hr) 無料会員 有料会員

オブジェクト指向プログラミング

OOPでは全てがオブジェクトとして型付けされ、セキュリティや再利用性に役立ちます。カプセル化、継承、ポリモーフィズムなどのOOPの概念や、クラス設計、可視性修飾子、関係、オーバーライド、動的バインディング、抽象メソッド、インターフェースなども学びます。

50

アルゴリズム&データ構造

コース名 学習目安時間(hr) 無料会員 有料会員

データベース

関係モデルの特性、定義、演算子、関係代数についても学びます。さらに、DDLの基礎であるテーブルの作成や更新、削除に関するクエリや、DMLの基礎であるデータベースにおけるCRUD処理に関するクエリも学びます。集計関数やGROUP BY、HAVING、結合のような中上級者になるための知識も習得します。

50

アルゴリズム&データ構造

アルゴリズム&データ構造について学習します。このレッスンは将来追加される予定で、現在は受講することができません。

数学

コース名 学習目安時間(hr) 無料会員 有料会員

離散数学I

離散数学の基礎を学習します。このコースを修了すると、集合、論理、ブール代数、数学的帰納法の知識が身につき、コンピュータサイエンスを数学的な観点からより深く理解できるようになります。また、集合やビット演算の知識を使い、コーディング問題をより効率的に解けるようになります。

40

離散数学II*

漸化式について深く学び、再帰や動的計画法に応用する方法について、さまざまな例を用いて学習します。また、関数の数学的な定義や性質を詳しく学習し、コンピュータサイエンスの世界に応用します。

25

ソフトウェア開発

コース名 学習目安時間(hr) 無料会員 有料会員

デザインパターン*

オブジェクト指向プログラミングでよく使われる再利用性の高い設計について学び、低結合、高凝集のシステムの実装に役立つ考え方や記述方法を身につけることができます。また、生成パターン(ファクトリメソッド、抽象ファクトリ、ビルダー、プロトタイプ)について詳しく学習します。

40

オペレーティングシステム*

OSについて学びます。アプリケーションはOSのAPIを使用し、ネットワーク、セキュリティ、並列・分散計算など、コンピュータサイエンスの基礎を学ぶことができます。基本的なコンピュータアーキテクチャから、OSの中核となる機能まで、プロセス・スレッド、メモリ管理、CPUのスケジューリング、ファイルシステムなどを幅広く学習します。

20

ソフトウェア開発

アジャイル開発、要件モデル、ソフトウェア設計、アーキテクチャパターン、デザインパターンなどについて学び、ソフトウェア開発プロセス、アジャイルフレームワーク、アジャイル原則を理解します。ソフトウェア要件と設計に反映させる方法を学び、ソフトウェア工学の原則と実践の基礎を身につけます。

20

フロントエンドプロジェクト

コース名 学習目安時間(hr) 無料会員 有料会員

User Card App

JavaScriptのDOMライブラリの使い方とGUI作成方法を学ぶプロジェクトです。修了後はJavaScriptでHTMLを作成し、ウェブページを表現できます。また、ブラウザ上の特定の場所に要素を追加、情報を入れ替えることができるようになります

20

Sliders

このコースでは、GUIの作成方法とDOMについて詳しく学び、Project1よりもさらに上級レベルに進みます。修了後は、ユーザーのアクションに応じてウェブページを変更し、データを処理することができます。

25

Banking App

User Card App、Slidersで学んだことを活用し、銀行口座アプリを作成します。入出金機能を持ちます。フレームワークを使用せず、モノポリーのような簡単なソフトウェアをスクラッチから自力で開発できるようになります。

40

Library App

APIとサーバの仕組みを理解し、fetch関数、Promiseオブジェクト、JSONを使って情報を取得する方法を学び、本の情報を提供するAPIを利用して、タイトルやISBNで本を検索できるアプリを作成します。このプロジェクトを修了すると、APIを利用した簡単なアプリケーションを作成できるようになります。

20

Black Jack

このプロジェクトでは、MVCを含む設計について学び、拡張性の高いコードを書くことができるようになり、時間と労力を節約できるようになります。Black JackをMVCに従って実装する方法を学び、モデル設計、スケルトン設計を考慮してコード化します。このコースを修了すると、ゼロからソフトウェアを開発する基礎力が身につきます。

50

File Directory

このプロジェクトは、コマンドライン上でファイルディレクトリシステムを操作するためのソフトウェアを作成することを目的としています。コマンドとしてpwd、mkdir、cdなどを使用し、ディレクトリを操作することができます。また、通貨変換アプリとCLIアプリを開発し、APIを使用することも目的としています。

40

バックエンドプロジェクト

コース名 学習目安時間(hr) 無料会員 有料会員

File Manipulator Program

Linuxファイルシステムに格納されたデータにアクセスして操作するアプリケーションプログラムがオペレーティングシステムとどのように相互作用するかを学びます。メモリベースの手法とストレージベースの手法を使用して、プログラムを構築することができます。また、開発環境の構築と使用方法についても学ぶことができ、ソフトウェアエンジニアにとって重要なスキルを身につけることができます。

25

Video Compressor

このコースでは、コンピュータネットワークの世界に飛び込み、クライアントサーバ分散型アプリケーションを作成します。プロセス間通信の仕組みやインターネットの機能、プロトコル層アーキテクチャなどについて学びます。独自のリモートプロシージャコールを利用したクライアントサーバアプリケーションを作成し、リアルタイム通信サービスを作成します。このコースは、システムとネットワークを扱う基礎を築くのに役立ちます。

40

Static Web Servers

このコースでは、ウェブベースのアプリケーションの背後にある技術について深く探ります。仮想マシン、Ubuntu、Amazon EC2を使用して自身のウェブサーバをセットアップする方法を学びます。また、ウェブサーバの役割とHTTP通信の基本を理解し、NGINXを活用したリクエストのハンドリング方法についても学びます。さらに、インターネットの基盤であるDNSについて理解し、TLSによるセキュリティ確保の重要性を学びます。最終的には、これらの知識を活用して自身の静的なウェブサイトをデプロイします。このコースは、ウェブ技術とネットワークについての理解を深めるための一歩となるでしょう。

50

Dynamic Web Servers

このコースでは、動的コンテンツを生成し提供するウェブサーバの概念と技術を学びます。コースを通して、PHPを用いて自身の動的ウェブサーバを作成しデプロイし、リアルタイムでカスタマイズされたコンテンツを生成する方法を理解します。OOP(オブジェクト指向プログラミング)の知識をフル活用して、ランダムユーザー生成の模倣アプリ、markdownからHTMLへの変換、テキストからUML画像を生成するアプリを作成します。このコースはLinuxベースのマシンを使いこなせる方、自分自身で本番環境のウェブサーバをセットアップできる方、プログラミングとOOPの経験が豊富な方を対象としています。

40

クイックスタート&ツール

コース名 学習目安時間(hr) 無料会員 有料会員

HTML & CSS

このコースでは、HTML、CSS、Bootstrapを学び、ウェブサイトやアプリの見た目を作成することができるようになります。Bootstrapを使用することで、高速かつレスポンシブなデザインを作成できます。

30

Git

このコースを修了すると、Gitの内部構造について理解を深めることができ、ファイルの管理や変更履歴のバックアップの保持などができるようになります。また、Gitを使って、チームメンバーが作成した新しいコードをマージしたり、継続的に統合したりすることができるようになります。

10

Laravel*

Laravelについて学習します。Laravelを使って簡単なウェブアプリケーションを作成します。

10

Vue.js

Vue.js公式ドキュメントをベースに、複数のプロジェクトを開発しながら、Vue.jsの機能や構文を解説します。このコースを終了すると、Vue.jsの機能を使用して、ユーザーインターフェースの複雑な表現を簡単に構築できるようになります。コード量を減らすこともできます。

40

Django

このクイックスタートでは、Djangoの公式ドキュメントを使って、複数のプロジェクトを開発しながら機能を説明します。コース修了後は、Djangoの機能を活用し、少ないコードで複雑なWebアプリケーションを開発できるようになります。簡単なソーシャルメディアや食事評価アプリを作成します。

45

Unity

このクイックスタートでは、Unityを使った複数のプロジェクトを開発しながら、物理エンジンや機能を学び、少ないコードで複雑なゲームを作成する方法を学びます。Collider2D、Material2D、プレハブ、アニメーション、タイルマップ等を学習し、最終的には、これらを活用して複数のゲームを作成します。

55

Angular

Angular公式ドキュメントをベースに、複数のプロジェクトを開発してAngularの機能を解説し、SPAの開発をスムーズにできるようにします。基本的な仕組みを理解し、サービスプロバイダを使って共有リソースを提供し、RxJSを使って非同期処理やイベントに基づくコードを組み立てます。

40

Ruby on Rails

Ruby on Rails公式ドキュメントを使用して、複数のプロジェクトを開発し、このコースを修了すると、Railsの機能を利用して、より少ないコードで複雑なWebアプリケーションを開発できるようになります。静的ページから始めて、paramsメソッド、ActiveRecord、そして便利な機能やライブラリを学びます。

50

SwiftUI

公式ドキュメントを基に機能を解説し、複数のプロジェクトを通じて基本的な機能を学びます。Viewのレンダリング方法やData Binding、Life Cycleの基本要素、MapKitを活用した天気予報アプリ開発など、様々な機能を練習します。3つのプロジェクトを通じて、モバイル開発に役立つ機能を開発します。

30

React

React.js公式ドキュメントを使用して、JSX、Props、データフロー、ライフサイクル、React Routerなどの機能と構文を学び、複数のプロジェクトを開発します。このコースを修了すると、React.jsを使用して、簡単に複雑なUIを構築できます。プロジェクトには、ToDoアプリや予約管理アプリ、Eコマースサイトが含まれます。

40

UIKit

このクイックスタートでは、UIKitを使ったモバイルアプリ開発の基本的な機能を解説し、複数のプロジェクトを開発することで、UIKitのセットアップや画面レイアウト、MVCの概要、永続化方法、GPSや加速度センサーを利用したアプリケーション開発などを学ぶことができます。

30

既存のコースにレッスンがさらに追加される予定です。