本授業は前半と後半の二部から構成される。
前半では、競技プログラミングの問題を題材として、アルゴリズムと計算量、各種のアルゴリズムやメタヒューリスティクスについて学び、問題を与えられた時間と精度で解くためのプログラミング技法を習得する。
1. 良いコードとは
2. アルゴリズムと計算量
3. 全探索アルゴリズム
4. 二分探索アルゴリズム
5. 動的計画法
6. 貪欲用・最適化
後半は、Pythonの技法と称して、プログラミング言語Pythonを題材として、現代的なプログラミング言語のより進んだ機能について学び、それらを活用するプログラミング技法を習得する。
7. Pythonの様々なデータ
8. オブジェクト指向プログラミング
9. イテレータとジェネレータ
10.関数プログラミング
11.ネットワークプログラミング
12.並行プログラミング
最後に全体のまとめを行う。
13.全体のまとめ
各回の内容は履修学生の理解度や授業の進捗によって変更する可能性がある。