自学自習に配慮したPython
プログラミング教科書
京都大学 国際高等教育院 喜多 一

2024/2/7

NII DXシンポジウム1報告の概要• 教科書：プログラミング演習 Python• 教科書作成の背景• 教科書開発と編集のポイント• 電子版での配布と公開• 今後の課題

2024/2/7

NII DXシンポジウム

2教科書：プログラミング演習 Python• 教科「プログラミング演習 (Python)」 用に
2019 年に開発，以後，毎年改訂• 公開：2019年版, 2021年版（和英）, 2023年版（和英）

2023 年版は京都大学学術情報リポジトリで公開
和文版 http://hdl.handle.net/2433/285599,
英文版 http://hdl.handle.net/2433/285600
2024/2/7

NII DXシンポジウム

3教科書作成の背景

2024/2/7

NII DXシンポジウム

4科目開設と担当の背景• 2016 年に京都大学の教養・共通教育の科目再編• 情報系の演習科目として「情報基礎演習」を開設．
内容は学部・学科に応じて調整• 文科系を中心に履修する科目用に 2017 年度に教科書を作成．プログラミングの単元に Python を採用．

• 2018年度に Python の授業を開設• Java, Lisp, Ruby などのプログラミング科目をすでに開講、計算機科学系の教員はこれらの担当で多忙．
• 科目の設計と担当が喜多に要請された.

2024/2/7

NII DXシンポジウム

5プログラミング演習 (Python) : 科目の概要• 京都大学の全学共通教育科目，選択科目• 文科系を含む全学部の学生を対象に開講• 後期開講，週１回２時間，２単位の演習科目• 2019 年度から教科書を開発して使用• 科目の到達目標• Python によるプログラムの実行についての基本操作ができるようになる。
• Python プログラムを構成する基本的要素の機能と書式について説明し、例題を用いて実行例を構成できるようになる。
• Python を用いて簡単なプログラムを自ら設計、実装、テストできるようになる。

2024/2/7

NII DXシンポジウム

6

開講状況
年度クラス

備考2018 喜多

スライド教材2019 喜多教科書 2019

2020 喜多・森村

教科書 2020
オンライン実施

2021 喜多・森村／岡本・喜多

教科書 2021, 2クラス化
単元構成見直し2022 喜多・森村／喜多

教科書 2022

2023 喜多・森村／岡本・喜多

教科書 2023

2024/2/7

NII DXシンポジウム

7

大学の授業での自己学習• 日本の大学での２単位科目:

授業30h• 学修内容 : 90 時間.
• 授業 (通常):
2 時間/週 × 15 週/半期 =30 時間• 60 時間の自己学習を求めている.

自己学習
60h

２単位科目

• プログラミングの自己学習を支援するか• プログラミングの学習は躓きやすい• 授業構成＋教材で支援

2024/2/7

NII DXシンポジウム

8英国 Open University を訪問（２００２）• Dominic Newbould, Visitor and Community
Relation Manager, at OUにインタビュー• 彼の説明, "OU には教員は居るが, 教師はいない"教材としての表現学習のための情報資源の提供

学習内容と学習成果の評価

自己学習の促進

編集者

図書館
チューター

教員
学習者
2024/2/7

NII DXシンポジウム

教科書が教師9

プログラミング科目の反転授業• 自己学習で躓かせない• 予習：教科書を読んできて，教科書の例題のコードを作成し実行できることを確認する．宿題として課題提出．

• 授業：反転授業 ― 予習した例題のコードをベースに改変等の課題に取り組む• 授業時間中なら教師やＴＡが個々の学生の支援できる．
• 学生の多様な躓きを教師が把握できる．

• 提出された課題への素早いフィードバック• LMS で提出された課題は次回の授業までに（必要なら）コメントを付けて採点する．
2024/2/7

NII DXシンポジウム

10動機付けへの配慮: ARCS モデル
John M. Keller: Motivational design for learning andperformance Model of learners motivation, Springer (2010)• 鈴木訳：学習意欲をデザインする : ARCSモデルによるインストラクショナルデザイン，北大路書房 (2010)

項目

我々のアプローチ

ATTENSION

導入科目，公開の教科書

RELEVANCE

学習者の背景知識への接続
グラフィカルな応用

CONFIDENCE

毎週の課題と個別コメント付きの採点のフィードバック

SATISFUCTION

自由度のある３回の力試し課題とその採点

2024/2/7

NII DXシンポジウム

11

SECIモデルと教室・教科書
SECI モデル: 野中，竹内の知識創造モデル

Socialization

Externalization

授業
暗黙知

明示知
教科書

Internalization

Combination

教室での質疑や課題の採点を暗黙知のままにせず，教科書として明示知化し授業を改善する
2024/2/7

NII DXシンポジウム

12

授業計画 (2021 に一部組み替え)
Week

～2020

2021～

1

導入，プログラミング環境←2

変数，代入，順次実行，制御構造

変数，代入，順次実行，リスト

3

タートルグラフィクスと関数

制御構造

4

タートルグラフィクスと関数

力試し演習

5

GUI とクラス

タートルグラフィクスと関数

タートル

6

GUI とクラス

GUI とクラス

7リスト

GUI とクラス

8ファイル

←

9, 10

設計，実装，テスト

←

11

学術利用

←

12

振り返り←

13, 14

自由課題

←

15

まとめ←

2024/2/7

NII DXシンポジウム

Project自由課題

13

教科書開発と編集のポイント

2024/2/7

NII DXシンポジウム

14教科書開発の意図• 科目目標は Python 言語ではなくプログラミング• 受講者の多くは文科系を含む学部１年生• プログラミング経験は乏しい．
• 特定の専門性・応用を仮定できない．
• 高校での知識と接続し興味を持てる内容にしたい．

• 大学設置基準の想定する自学自習を支援• プログラミング学習における躓きの低減．
• 自由課題に取り組むための参照情報の提供．

• 市販のテキストは条件に合致しないので独自開発
2024/2/7

NII DXシンポジウム

15

初学者への配慮（１）• Python に限定• 他の言語的要素を混在させない• 授業での対応（暗黙値）の形式知化• 数学や英語などの既習の知識との接続• シンボルの読み方などコミュニケーションへの配慮• エラー対応の明示的経験• グラフィカルな課題で動機付け，学習を可視化• タートルグラフィクス，GUI アプリケーション，グラフ描画
2024/2/7

NII DXシンポジウム

16初学者への配慮(2)• 2重の for ループは初学者には難物• 例題に馴染みのある文脈を与える• 京都の交差点を作る• トランプのデッキを作る

2024/2/7

NII DXシンポジウム

17初学者への配慮（３）• 関数（＋クラス）：定義の仕方を教える前に使うことを先行させる．
• プログラム開発のプロセスの提示• 三目並べを例に設計，実装，テスト• 関連する話題はコラム編にまとめた• 2021 年からは英訳も作成：留学生への配慮

2024/2/7

NII DXシンポジウム

18

コラム編としての関連する話題
教科書の本編

コラム
コラム
コラム
コラム

0. 0 始まり
1. Float って?
2. ニュートン法
3. 相対精度
4. 仮引数と実引数
5. 変数のスコープ
6. 乱数
7. 再帰8. GUI
9. プログラムと日本語
10. 名前空間
11. プログラムの文書化
12. 三角関数13. 参照と複製
14. 擬人化15. 逃げる

プログラミングと計算の背景概念
2024/2/7

NII DXシンポジウム

19

組版とフォント開発• 書籍形式 (PDF) の採用：手離れがよい• 紙数，カラー利用から出版ではなく電子版の無償配布• 組版：Word のスタイル，テンプレートを開発• Python の特性を反映した２種類のコードの記述• シェルでの対話，• 完全なソースコードの記述• 専用フォント K2PFE の開発• インデントの可視化，全角半角の区別，ＰＤＦからのコピー＆ペーストの支援

2024/2/7

NII DXシンポジウム

20

電子版での配布と公開

2024/2/7

NII DXシンポジウム

21

電子版での提供，ライセンス，公開• 教科書は電子版を学生に無償提供• 学生の費用負担への配慮• 履修できない学生への学習機会の提供• 公開• 京都大学の学術情報リポジト
リ KURENAI で公開• CC ライセンスの付与(CC-BY-NC-ND)
著作権への心配を払拭• 累積ダウンロード数 110 万件以上（～ 2024/1)

2024/2/7

NII DXシンポジウム

22

今後の課題• 多様な Python の応用への接続• 「プログラミング」，「プログラムの動作」という動的なプロセスの学習支援• 教科書という静的メディアの限界• 授業では動画を併用• プログラミングとその学習における生成 AI の活用

2024/2/7

NII DXシンポジウム

23