コンピューターの科学の自己教育
コースごとにコンピューターサイエンスコースを学ぶための完全に無料のプログラム
コンピューターサイエンスの紹介(1〜2週間)
- コンピューターサイエンスの概要
- プログラミングの紹介
- アルゴリズムとデータ構造の概要
- 基本的なコンピューター組織とアーキテクチャ
リソース:
- Edxのハーバード大学によるコンピューターサイエンスの紹介
- Codecademyのコースをコーディングする方法を学びます
プログラミングの基礎(4〜6週間)
- Pythonプログラミング言語の紹介
- 制御フローステートメント
- データ型と構造
- 関数とモジュール
- 入力および出力操作
- デバッグとエラー処理
- オブジェクト指向プログラミングの概念
リソース:
- ミシガン大学でコースラのミシガン大学によるPython
- Zed ShawのPython The Hard Wayを学びます
データ構造とアルゴリズム(12〜16週間)
- 基本的なデータ構造(配列、リンクリスト、スタック、キュー)
- 高度なデータ構造(ツリー、グラフ、ハッシュテーブル)
- アルゴリズム分析と設計
- アルゴリズムの検索とソート
- 再帰
- 動的プログラミング
- 貪欲なアルゴリズム
- アルゴリズムを分割して征服します
リソース:
- カリフォルニア大学サンディエゴのコースラのデータ構造とアルゴリズムの専門化
- MIT Pressによるアルゴリズムの紹介
コンピューターアーキテクチャとシステム(8〜12週間)
- コンピューターハードウェアとソフトウェアの概要
- オペレーティングシステム
- メモリ管理
- 入力/出力システム
- コンピューターネットワーク
- 分散システム
リソース:
- Courseraのプリンストン大学によるコンピューターアーキテクチャ
- オペレーティングシステム:Remzi H. Arpaci-DusseauとAndrea C. Arpaci-Dusseauによる3つの簡単な作品
データベースシステム(8〜12週間)
- データベースの紹介
- リレーショナルデータベースシステム(SQL)
- データベースの設計と正規化
- データのクエリと操作
- データベース管理
リソース:
- Courseraのスタンフォード大学によるデータベースの紹介
- SQLBOLT(オンラインインタラクティブSQLチュートリアル)
Web開発(8〜12週間)
- フロントエンド開発(HTML、CSS、JavaScript)
- バックエンド開発(Webフレームワーク、サーバー側のプログラミング)
- データベース統合(SQL、ORM)
- セキュリティと認証
リソース:
- Odin Project(無料のフルスタックWeb開発カリキュラム)
- FreeCodecamp(無料のWeb開発カリキュラム)
ソフトウェアエンジニアリング(8〜12週間)
- ソフトウェア開発ライフサイクル
- ソフトウェアプロジェクト管理
- 要件エンジニアリング
- テストと品質保証
- ソフトウェアのメンテナンスと進化
リソース:
- コロラド大学ボルダー校のソフトウェアエンジニアリングエッセンシャル
- フレデリック・P・ブルックス・ジュニアによる神話上の人間
人工知能と機械学習
- 人工知能と機械学習の概要
- 監視された学習アルゴリズム(線形回帰、ロジスティック回帰、決定ツリー、サポートベクターマシン、k-nearest neighbors、naive bayes)(4〜6週間)
- 監視されていない学習アルゴリズム(クラスタリング、次元削減)(4〜6週間)
- 強化学習
- ニューラルネットワークとディープラーニング(4〜6週間)
- 自然言語処理
- コンピュータービジョン
リソース:
- CourseraのAndrew Ngによる機械学習
- ヨシュアベンギオ、イアングッドフェロー、アーロンコースビルによる深い学習
コンピューターグラフィックと視覚化(8〜12週間)
- グラフィックパイプライン
- 幾何学的変換
- 2Dおよび3Dグラフィックスプリミティブ
- レンダリングテクニック(レイトレース、ラスター化)
- アニメーションとシミュレーション
- 視覚化技術
リソース:
- Edxの東京大学によるコンピューターグラフィックス
- Tomas Akenine-Möller、Eric Haines、Naty Hoffmanによるリアルタイムレンダリング
ヒューマンコンピューターの相互作用(8〜12週間)
- ユーザーインターフェイスデザインの原則
- ユーザー中心の設計プロセス
- ユーザビリティテストと評価
- インタラクションデザイン
- 情報の視覚化
- アクセシビリティ
リソース:
- カリフォルニア大学サンディエゴ校によるCourseraによる人間のコンピューターの相互作用
- スティーブ・クルーグが考えさせないでください
サイバーセキュリティ(8〜12週間)
- ネットワークセキュリティ
- 暗号化
- 認証とアクセス制御
- マルウェア分析と検出
- セキュリティリスクの評価と管理
リソース:
- ニューヨーク大学タンドンエンジニアリングのEDXによるサイバーセキュリティの紹介
- ロスJ.アンダーソンによるセキュリティエンジニアリング
ソフトウェア開発ツール(4〜6週間)
- バージョン制御システム(GIT)
- 統合開発環境(IDE)
- デバッグおよびプロファイリングツール
- 自動化と継続的統合を構築する(Jenkins)
リソース:
- GithubによるGitハンドブック
- VogellaによるEclipse IDEチュートリアル
コンピューターサイエンスの数学(8〜12週間)
リソース:
- MIT OpenCoursewareに関するマサチューセッツ工科大学によるコンピューターサイエンスの数学
- MIT OpenCoursewareのGilbert Strangによる線形代数
コンピューティングにおける倫理と社会(8〜12週間)
- コンピューティングにおける倫理的問題
- コンピューティングの社会的および政治的意味
- プライバシーとセキュリティの問題
- 知的財産と著作権
- コンピューティングのグローバルな影響
リソース:
- Edxのハーバード大学によるコンピューティングと社会
- コード:マーガレットオマラによるシリコンバレーとアメリカのリメイク
これが私にとっても有益である限り、これがすべての読者にとって有益であることを願っています。これらのコースを完了するために、推定されたすべての時間に留意してください。勉強中にフルタイムの仕事をすることに基づいています。