edX COURSE

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

プログラミングの基礎を将棋×MATLABで学んでみませんか?

東京工業大学 工学院 髙橋篤司教授とMATLAB TAによる、プログラミング初級者向けのコース(2022年T3版)です。将棋を題材にプログラミングの基礎と様々な工夫を学びます。基本的な将棋のルールはコースで説明がされるので、将棋の経験がない方も最初から安心して受講できます。

受講期間中(5週間+α)はMathWorks社よりラインセンスが発行され、MATLABを利用いただけます。普段はMATLABの利用環境がない方もコースをお楽しみいただけます。

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

    コース概要

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

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

    2022年3月末まで東京工業大学(学内限定)で公開していたコンテンツに「Week 4:コンピュータ対局(概要)」 「Week 5:コンピュータ対局(実装)」を追加し、クイズ等をアップデートしました。 東京工業大学の学生・教職員は無制限にMATLABおよびToolboxを利用することができます。詳しくは「MATLABの配布について」を参照してください。

    本コースは日本語の開講です。 本コースの受講にはedXのアカウントが必要となります。アカウントをお持ちでない方はまずはアカウント作成をお願いします。 https://www.edx.org/ 

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

    (※)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

    髙橋篤司

    工学院 教授
    東京工業大学