将棋で学ぶプログラミング基礎

将棋を題材にプログラミングの基礎と様々な工夫を学ぶ、初級者向けのコースです。プログラムの実行環境として、MATLAB版の将棋プログラム「MT将棋」を使用し、コードの要点をピックアップした解説を通してプログラミングの基本や考え方の一端を学びます。

2022年3月29日 から 2022年9月27日
2022年3月29日 以降
期間 / DURATION
5週間
学習時間 / TIME COMMITMENT
2~3時間/週
費用 / FEE
無料
学習ペース / LEARNING PACE
自分のペースで
分野 / SUBJECT
コンピュータサイエンス
言語 / LANGUAGE
日本語
難易度 / DIFFICULTY
初級
前提知識・技能 / PREREQUISITES
特になし
  • プログラミング経験:不問
  • 将棋の知識:不問
    将棋の事前知識があると理解が早いですが、内容を理解するために必要なルールはコース内で説明されます。
  • 修了認定 / CERTIFICATION
    なし

    コース概要

    将棋を題材にプログラミングの基礎と様々な工夫を学びます。

    本コースではプログラムの実行環境として、MATLAB版の将棋プログラム「MT将棋(※)」を使用します。MATLABは数値計算を扱うことが得意なプログラミング言語で,MATLAB版の「MT将棋」は、その特徴を生かしながらコーディングされています。

    本コースでは「MT将棋」のすべてのコードを詳細に説明することはしませんが、コードの要点をピックアップした解説を通してプログラミングの基本や考え方の一端を学ぶことができます。

    本コースの標準学習期間は5週間です。MATLAB環境がない方でも、受講期間中(+α)はMathWorks社によりライセンスが発行され、MATLABを利用いただくことが可能です。

    3月末まで東京工業大学(学内限定)で公開していたコンテンツに「Week 4:コンピュータ対局(概要)」 「Week 5:コンピュータ対局(実装)」を追加し、クイズ等をアップデートしました。 

    東京工業大学の学生・教職員は無制限にMATLABおよびToolboxを利用することができます。詳しくは「MATLABの配布について」を参照してください。

    (※)MT将棋:約50の関数ファイルからなる、合計で約2100行、約9500単語、ファイルサイズ約86KBのMATLABコードです。2018年に実施された「小学生向け将棋プログラミング講習会」(主催:東京工業大学工学院、共同主催:電子情報通信学会東京支部、後援:日本将棋連盟、協力:大田区立清水窪小学校・東工大将棋部)に向けて開発が開始され、その後、更新されてきました。

    本コースは東京工業大学 超スマート社会卓越教育院が制作し、提供しています。

    学習内容

    •  プログラムの基本
      • 変数・配列
      • 演算と関数呼び出し
      • 制御文
    • プログラミングの様々な工夫
    • ゲーム木の探索
      • ミニマックス法
      • 将棋の局面評価
    • MATLABによる基本的なプログラミング

    シラバス

    •  Week 1:駒の表示
      •  駒の表示
      • MT関数:駒表示
      • MT変数:駒
      • 配列
      • 関数
      • 制御文:for
      • MATLAB関数・演算子
    •  Week 2:駒の動き
      • 駒の動き
      • MT関数:周り候補マス
      • 駒移動ベクトル
      • MT関数:候補マス
      • 制御文:while, if, switch
      • MATLABの特徴
      • MATLAB関数
      • MATLABの演算
    •  Week 3:人対人の対局
      • 人対人の対局
      • 対局の流れ
      • MT将棋盤
      • MT関数:選択と駒移動
      • MATLAB関数:入出力
      • 変数値の様々な設定方法
    • Week 4:コンピュータ対局[概要]
      • コンピュータ対局
      • 局面評価
      • コンピュータ対局の流れ
      • コンピュータによる局面評価
    • Week 5: コンピュータ対局[実装]
      • MT関数:自動選択
      • MT変数:点数行列・動き配列
      • 関数解説:自動選択
      • MATLAB関数:ソート・乱数・ファイル入出力
      • 関数の様々な記述方法

    講師 / Instructor

    髙橋篤司

    工学院 教授
    東京工業大学