「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態

「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態
1 :少考さん ★:2023/11/07(火) 23:35:35.04 ID:156vH5X39.net
「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態 | 日経クロステック
https://xtech.nikkei.com/atcl/nxt/column/18/02629/110200002/

大森 敏行 日経クロステック
2023.11.07
有料会員限定 全2851文字

 プログラミング言語「Python」の大規模イベント

「PyCon APAC 2023」が2023年10月27日と28日の2日間にわたって開催された。1日目に行われた京都大学国際高等教育院の喜多一教授による基調講演を中心に、イベントの内容をリポートする。

 PyCon APAC 2023は、1日目の基調講演「Why University Teachers Wrote a Python Textbook?」で幕を開けた。京都大学でPythonを使ったプログラミング教育を担当している喜多教授が、その実態について英語で講演した。

 喜多教授は、主に大学1年生向けの教養教育の一環として、Pythonを使ったプログラミングコースを2018年に始めた。そのための教科書をつくり、2019年に公開した。誰でも無償でPDFをダウンロードできる。教科書は毎年改訂しているが、一般向けに公開したのは2019年版と2021年版。加えて、最新の2023年版を2023年10月中旬に公開している。

 90時間のコースのうち、授業が30時間で自習(宿題)が60時間。授業は通常の講義形式ではなく、学生がやってきた宿題を一緒に検討する「反転授業」を採用している。「教科書が教師」(喜多教授)だという。提出された宿題を1週間で採点し、次週にフィードバックする。

 わざわざ教科書をつくった理由は、Pythonではなくプログラミングを教えることが目標だからだ。学生のことをよく理解していたということもあった。また、出版社がつくる教科書はどうしても高くなってしまうので、学生がお金を使わなくて済むように無償で提供したいという思いもあるという。

 受講する学生の多くは1年生であり、ほとんどがプログラミングの経験がない初心者。高校時代に使っていたのはスマートフォンで、パソコンの経験も限られている。こうした学生に対し「Pythonプログラムを実行する基本操作ができるようになる」「Pythonプログラムを構成する基本要素や書式を学ぶ」「簡単なプログラムを自ら設計・実装・テストできるようになる」という3つの目標を設定して取り組んでいる。

 学生は、最初は「*」を「アスタリスク」と読むことも知らないため、やり取りに苦労することもあるという。

 そうした例として喜多教授は「x=x+1」というコードを挙げた。プログラミングを知っていれば変数の実装だということが分かるが、初めてプログラミングに触れる学生はこれを方程式だと考え、解けないと悩む。一方、数学を知っているため、xを変数として使うことには慣れている。まず「これは方程式ではない」というところから解説していくという。

「x=x+1」の問題を示したスライド
(写真:喜多教授のスライドを日経クロステックが撮影)
[画像タップで拡大表示]

 また、繰り返し構文に使われる「for i」という表現に学生が戸惑うことも例として挙げた。「for you」という英語を連想してしまうからだ。ただ、学生が学習を進めることで、こうした問題はいずれ解決する。

 コースでは「エラー」の問題にも力を入れている。この問題を取り上げた教科書は少ないという。「エラーが発見された場合に、その原因を見つけるのは実は難しい」(喜多教授)。エラーに遭遇した学生の反応は「エラーメッセージを読まない」「学習をやめてしまう」に二分されるという。こうした事態を避けるために、典型的なエラーをわざと起こして学生に体験してもらうようにしている。知っているエラーであれば、エラーメッセージを読むことで理解できる。これにより学生が「デバッグは普通のことだ」と捉えられるようになるという。

この記事は有料会員限定です。次ページでログインまたはお申し込みください。

次ページ
学生への心からの贈り物

7 :ウィズコロナの名無しさん:2023/11/07(火) 23:38:47.08 ID:bnd4hbid0.net
要するに
プログラミングを知らない
っていうだけなのにX=X+1とか言い出す意味とは?
118 :ウィズコロナの名無しさん:2023/11/08(水) 00:00:02.43 ID:fjUymoyP0.net
>>7
それがプログラムだからだよ
275 :ウィズコロナの名無しさん:2023/11/08(水) 00:34:39.23 ID:9r6HZBag0.net
>>118
こんな意地悪な奴がいるから日本のITは遅れたんだろうな
11 :ウィズコロナの名無しさん:2023/11/07(火) 23:39:23.90 ID:PoZyPgd70.net
何が問題なんだ
知ってるかどうかのことだけだろ
223 :ウィズコロナの名無しさん:2023/11/08(水) 00:23:38.13 ID:AG2CnfWt0.net
>>11
なかなか理解出来ないって事じゃね?
552 :ウィズコロナの名無しさん:2023/11/08(水) 01:42:58.08 ID:bsifnkpo0.net
>>11
最近の若者ガー
ゆとりがー
Zがー
日本語教育が大事!!
39 :ウィズコロナの名無しさん:2023/11/07(火) 23:45:02.49 ID:lGUqQl3e0.net
機械に命令を与えるための基礎だけど
その意味が理解できない層はいるだろうな
48 :ウィズコロナの名無しさん:2023/11/07(火) 23:46:31.20 ID:iVGqNzgA0.net
i=i+1
71 :ウィズコロナの名無しさん:2023/11/07(火) 23:51:29.83 ID:N/WcJS690.net
そりゃ知識なくいきなりx=x+1って言われたら方程式で考えるのが普通だし何もおかしくはない
これを問題視する方が頭どうかしてるんじゃね
73 :ウィズコロナの名無しさん:2023/11/07(火) 23:51:59.89 ID:Kt7GpSIz0.net
そりゃあ分からんだろうよ
この教授はバカなのか?
98 :ウィズコロナの名無しさん:2023/11/07(火) 23:55:56.87 ID:674x3mib0.net
>>73
小学生ですらプログラミングを勉強している時代だぞ?
Z世代より下のα世代小学生に笑われるぞ。
95 :ウィズコロナの名無しさん:2023/11/07(火) 23:55:38.21 ID:aPmvIeDr0.net
30年近く昔の数セミにもまったく同じ等号の事が書いてあったぞ…
101 :ウィズコロナの名無しさん:2023/11/07(火) 23:56:22.47 ID:DyUCv3Q70.net
>プログラミングを知っていれば変数の実装だということが分かるが、
>初めてプログラミングに触れる学生はこれを方程式だと考え、解けないと悩む。

単に知らないだけなのに、なにを言いたいんだ?

112 :ウィズコロナの名無しさん:2023/11/07(火) 23:59:05.68 ID:CMwSRRlj0.net
ルール知らんのやからわからんに決まっとるやん
126 :ウィズコロナの名無しさん:2023/11/08(水) 00:01:11.25 ID:xiLkfvVc0.net
x=x+1 → x−x=1 → 0=1

つまり何もないところからでも1からスタート出来るということかな

135 :ウィズコロナの名無しさん:2023/11/08(水) 00:03:09.38 ID:LPqAwTeW0.net
国立の総合大学か、国立高専がいいって。
139 :ウィズコロナの名無しさん:2023/11/08(水) 00:05:08.47 ID:PeHTMRqs0.net
プログラムの=は右辺を左辺に代入するって最初に習うやろ
教え方が悪いわ
144 :ウィズコロナの名無しさん:2023/11/08(水) 00:05:31.95 ID:nfJRTFX90.net
変数の実装ってなんだよ
0点

昔の京大は scheme で言語処理系を作れないと単位もらえなかった
と聞いたが全然レベルちがうな…

145 :ウィズコロナの名無しさん:2023/11/08(水) 00:05:36.21 ID:8F8IC0JQ0.net
知ってるか知らないかだけの違いだろ
誰でも最初は知らんわ
176 :ウィズコロナの名無しさん:2023/11/08(水) 00:10:48.08 ID:ajtFIodL0.net
FortranかBASICからやり直し
プログラムの勉強なんて基本見様見真似
教えてもらうもんじゃない
181 :ウィズコロナの名無しさん:2023/11/08(水) 00:12:12.51 ID:7miCShJh0.net
上書きしただけかw
198 :ウィズコロナの名無しさん:2023/11/08(水) 00:14:57.41 ID:CTm05fSy0.net
1+1=1
242 :ウィズコロナの名無しさん:2023/11/08(水) 00:27:35.08 ID:b4wm/hz50.net
旧帝大卒だけど、俺も学生の時、x=x+1の意味わからなかったぞ。情報工学科からFORTRANによる情報処理の授業で教えに来ていた講師が授業そっちのけで自分の自慢話ばかりする屑野郎だった。で、この馬鹿講師は肝心の「x=x+1の、=は等しいという意味ではなく、右辺で計算した結果を左辺の変数に代入する意味だよ」という一言を言わなかった。ほんとにしょうもない糞野郎だったわ。
264 :ウィズコロナの名無しさん:2023/11/08(水) 00:32:49.83 ID:8SAoXdKW0.net
APLは矢印だな
unicodeあるし英語圏のキーボードをなんとかしやがれ
339 :ウィズコロナの名無しさん:2023/11/08(水) 00:46:33.72 ID:gTZlcNqe0.net
increaseと言えば良いのか?
371 :ウィズコロナの名無しさん:2023/11/08(水) 00:52:04.49 ID:Sk7OkvXq0.net
変数命名のセンスが重要
373 :ウィズコロナの名無しさん:2023/11/08(水) 00:52:59.84 ID:P1pW44KU0.net
for文ってなんて読むの?
ふぉーぶん?(´・ω・`)
389 :ウィズコロナの名無しさん:2023/11/08(水) 00:56:17.53 ID:ncR1aAHW0.net
パイソンってニシキヘビなん?そこ知らないんだけど
395 :ウィズコロナの名無しさん:2023/11/08(水) 00:58:23.51 ID:gTZlcNqe0.net
無修正エロ動画を適当に暗号化して解読したらタダでソープへ状態するよと言えば賢い京大生なら勉強して頑張るだろ
431 :ウィズコロナの名無しさん:2023/11/08(水) 01:06:28.59 ID:S3E1efgF0.net
xがx+1ってイミフ
破綻してんだろ
469 :ウィズコロナの名無しさん:2023/11/08(水) 01:17:19.80 ID:TYiYhIZZ0.net
変数は箱
497 :ウィズコロナの名無しさん:2023/11/08(水) 01:23:20.70 ID:NACWs7EQ0.net
知識がないだけで一度教えたら覚える定期
515 :ウィズコロナの名無しさん:2023/11/08(水) 01:28:29.30 ID:9cO1tk5S0.net
for文は慣習的に使い捨ての一文字変数使うやろw
521 :ウィズコロナの名無しさん:2023/11/08(水) 01:32:21.75 ID:Z7HAaFUY0.net
>>515
最底辺環境は使い捨てとわかる様にtmpVarと命名しろとw
532 :ウィズコロナの名無しさん:2023/11/08(水) 01:34:42.88 ID:GTGtdl6v0.net
>>521
使い捨てられる ijklmn さん
519 :ウィズコロナの名無しさん:2023/11/08(水) 01:31:26.84 ID:JGeQZBM/0.net
変数をブロックごとに使い捨てできて再定義しても別物扱いになるとかも
慣れるまでは難しいからなあ
529 :ウィズコロナの名無しさん:2023/11/08(水) 01:34:35.57 ID:joL2+++u0.net
インクリメントの事じゃないのか?
569 :ウィズコロナの名無しさん:2023/11/08(水) 01:49:37.13 ID:PSyhkqv00.net
>> 0064
Dim Unko As Scatology = new Scatology(“Unko”)
574 :ウィズコロナの名無しさん:2023/11/08(水) 01:51:09.77 ID:JsVM5oow0.net
pythonのクラス、selfをいちいちつけるの面倒なんだけど
626 :ウィズコロナの名無しさん:2023/11/08(水) 02:10:02.43 ID:eUfAxJR30.net
イコールじゃねーし
627 :ウィズコロナの名無しさん:2023/11/08(水) 02:10:02.58 ID:HsqhEGMH0.net
このコードが正解してたら終わってるわ
656 :ウィズコロナの名無しさん:2023/11/08(水) 02:24:05.61 ID:df76bIqZ0.net
数学の等式ではなくプログラミング言語における代入式だと理解してないからどうしょうもない
答えだけ求める現代教育のマイナス面だよ
658 :ウィズコロナの名無しさん:2023/11/08(水) 02:25:29.31 ID:Si44+Gck0.net
知らないからできないんじゃなくて、説明しても理解できないんだよな
それを指摘すると説明が下手だと逆ギレする
才能ないやつにやらせても覚えないし時間の無駄なのよ
661 :ウィズコロナの名無しさん:2023/11/08(水) 02:27:11.09 ID:fXYPjSIS0.net
Python重くね?
686 :ウィズコロナの名無しさん:2023/11/08(水) 02:40:37.62 ID:OiVAjNSh0.net
若干雑ではあるが
x(n+1)=x(n)+1
の意味だと言っておけばまあなんか分かる気がしてくるはずだ
代入うんたらと説明されてもたぶん初めはしっくりこない

引用元:http://ai.2ch.sc/test/read.cgi/newsplus/1699367735