アルゴリズムとデータ構造
20 問計算量の考え方や二分探索、ソート、ハッシュテーブルなど、効率的なプログラムを書くための基礎を学びます。
アルゴリズムとデータ構造 II(応用編)
20 問平衡木、ヒープソート、グラフの最短経路、動的計画法の応用、貪欲法、計算量の空間効率など、基礎の先にある応用的なアルゴリズムとデータ構造を学びます。
アルゴリズムとデータ構造 III(発展編)
20 問文字列アルゴリズム、最小全域木、最大流、数論的アルゴリズム、確率的アルゴリズム、償却計算量など、さらに発展的なアルゴリズムを学びます。
アルゴリズム IV(実務と設計判断)
20 問適切なデータ構造の選択、計算量の現実的な見積もり、近似・ヒューリスティック、キャッシュ効率、ストリーミング/外部メモリ、並列化など、実務でアルゴリズムを選び・設計するための判断力を学びます。
データ表現と数値
20 問2進数や2の補数、浮動小数点、文字コード、論理演算など、コンピュータが情報を0と1で表す基本の仕組みを学びます。
計算理論と形式言語
20 問有限オートマトン、正規表現、文脈自由文法、チューリングマシン、計算可能性、P対NPなど、「計算とは何か」を扱うコンピュータサイエンスの理論的な土台を学びます。
計算理論と形式言語 II(発展編)
20 問計算量クラスの関係、近似アルゴリズム、ランダム化、情報理論とエントロピー、符号化、文法の階層など、計算と情報の理論をさらに深く学びます。
プログラミング言語のしくみ
20 問コンパイラとインタプリタ、型システム、メモリ管理とGC、再帰とスタックなど、プログラムが動く土台になる言語の仕組みを学びます。