「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態 [少考さん★]
レス数が950を超えています。1000を超えると書き込みができなくなります。
「京大生でも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を変数として使うことには慣れている。まず「これは方程式ではない」というところから解説していくという。
https://cdn-xtech.nikkei.com/atcl/nxt/column/18/02629/110200002/02-02.jpg
「x=x+1」の問題を示したスライド
(写真:喜多教授のスライドを日経クロステックが撮影)
[画像タップで拡大表示]
また、繰り返し構文に使われる「for i」という表現に学生が戸惑うことも例として挙げた。「for you」という英語を連想してしまうからだ。ただ、学生が学習を進めることで、こうした問題はいずれ解決する。
コースでは「エラー」の問題にも力を入れている。この問題を取り上げた教科書は少ないという。「エラーが発見された場合に、その原因を見つけるのは実は難しい」(喜多教授)。エラーに遭遇した学生の反応は「エラーメッセージを読まない」「学習をやめてしまう」に二分されるという。こうした事態を避けるために、典型的なエラーをわざと起こして学生に体験してもらうようにしている。知っているエラーであれば、エラーメッセージを読むことで理解できる。これにより学生が「デバッグは普通のことだ」と捉えられるようになるという。
この記事は有料会員限定です。次ページでログインまたはお申し込みください。
次ページ
学生への心からの贈り物 >>824は現役の京大生じゃないってだけだろ
どちらかというと新規に教えこむ意味のない枯れた世代 演算子を再定義して使い回すってだけなのに所詮高校生に毛が生えた程度ということか いちいちコード見て文法がおかしいとか言うのかよ
頭おかしい >>50
プログラミング言語の黎明期には、文字数を少なくする必要があったのさ Power Automateみたいに変数への代入ひとつで大仰なものを書かないといけないほうが○意が湧くけどな
可読性がなさすぎる >>845
思い込みで書くなよ、どアホ
東大大学院は、内部受験者の1-2割が落ちるぞ
外部受験者の方が合格し易い let命令を使えるようにすれば解決
let x=x+1 >>849
それも数学の方程式を表す=とは別のものだな 数学ができることとIT関連の知識があることを
同じと考える人が多過ぎる。
たまに両方とも高い水準でできる人がいるが、
日本では極めて珍しい存在だ。
普通はどちらかしかできない。
例えば、実数論をまともにわかっている人が
ほとんどいない事実から推測すると、
コンピュータプログラマの解析学の知識は、
大学受験レベルの数Vだろう。
この教授もそのレベルかも知れない。
いや、さすがにそれは言い過ぎか。
実数論をまともにわかっていなくても、
工学部の応用数学レベルが計算手法として
操作できる人は、それなりにいるか。
いずれにしても、
「コンピュータ強い」=「数学強い」という
誤解、文系の人に多い誤解だが、
これを払拭しないと
この国の理系は崩壊すると思う。 >>859
だからロンダが簡単という話なんだが
大バカ野郎だなお前w x=x+1の文法に引っ掛かる方が正常だろ。
やはりプログラミング初学者にはPASCALが良い。 >>866
昔、ざべで、三角関数を知らなくても3Dプログラマは勤まると書いている筆者がいたな....
それはその部分を他人が書いているだけだろと思った ルール理解すれば直ぐに終る話
こんなの切り取って「分からない」とか
単にdisりたいだけで意味ねーわ んなこたぁない
プログラムの話といえば京大生がわからないわけがない
ミスリードやろ 数学が大好きでプラグラムが嫌いな人は割といる
一般と比べたら少数派かもしれないが >>873
どうだろうなあ
京大も今は早慶未満だから
つまりマーチレベル
早慶は東大落ちだらけだしなあ 記事書いてるのが無知無能だからこういう内容になるわけよ 京大ならプログラマーの扱い方を覚えさせたほうがよいのでは? いや、アスペか
自分の知っていることは他人も当然知っている
他人の立場になってどうして知らないのか理解できない 値段は、50円。
なでしこの文法で書けば初見でもわかるだろうけど、京大生がそこではつまづかない ちなみに京大で情報科学といえばSEバイト
PCを社内LANに接続するアレなw
プログラムとかまず無理 >>880
土方が買うミドルウェア以下の層を将来作る側だろ なんでキーボードのキーを押すと文字が表示されるのか >>886
昔、タイプ間違えてBS押したら更に記号が増えたとき俺は混乱した xじゃなくてせめてiとかにすりゃとっつき易いだろうに
なぜ誤解しやすいxにしてマウント取ろうとするんだ
変数教えるなんざaho = aho + 1 でもいいだろ >>855
FORTRAN初期でも中間コードを使っていたみたいだけどな 説明したら意味は分かるだろ。プログラミングの基本中の基本なんだし。プログラム言語に関係なく
この式は使うだろ。 pythonなんてchatGPT先生に書いてもらえば余裕だし イコール記号を使うから混乱する
左矢印の方が意味が近い
=は判定だけに使うべきだな Cみたいに、 X++ってかけないの?
BASIC先にやらせたほうがいいかも>< IT専門学校だと座学で疑似言語、アルゴリズム、CASL2やってからだな
いきなり打ち込みはやらない 「京大生でもケーキが三等分できない」ぐらい書かないとインパクトがない >>897
今でもVBAを使うけど、結構便利なんだよな。 代入の話だよね。説明を端折るから意味がわからなかったわ。 >>12
Cだと if文のとこに if( x = 0 ) ってかけちゃうからやばい><
条件式がありそうなとこでも代入ができちゃう、xが0になっちゃう上に値が0だから条件は常にfalse
コンパイラでわーにんぐでるかはしらん>< pythonってインクリメント演算子ないの?ダサが答え x = x + 1の「=」の読み方が日本語で確立されていないのが問題
イコールなんて読んでる限りは数学の記号と混乱して当然
向こうのプログラマーは先輩からgets the value of と聞いて耳から覚える
英語の下手くそな日本人にプログラミングなんか向いてないってことだ >>905
0 == x
のように左辺に代入できないものを書くようにしておくと防げるけど可読性は下がるな >>7
プログラミングって言われずにx=x+1とか言われたら、はぁ?ってなるよな
プログラミングなら全然理解できるけど >>903
微妙に違う。
例えば x=x+2 もあるからね。
コンピュータ用語だと 代入 と言ってる。
確かBASIC も初期は代入を明記するため、
LET X=X+1 としてたはず。
途中からLETは省略可になった。 砕けた言い方をすると
今の京大生は新カリキュラムには対応をしてないってだけの記事だろ なにかと思ったら記法の話か
そりゃズブの素人はそうだろうとか >>910
COBOLは、
ADD 1 to X だっけ? >>913
確か COMPUTE。
COMPUTE A = A + 1. 10 LET X=1
20 print X
30 X=X+1
40 goto 10 最近は関数型言語を意識したお洒落なコードを書くやつが多いから
この手の再代入は言語仕様ではできてもあまりみかけなくなってきたな >>877
東大落は早慶に入る余裕はない
なぜなら、東大含む国立はセンター試験で高得点を取れるほど全教科勉強しなければならない
理系専攻であっても古文も歴史地理も高得点出来なければならない訳で
単純に選考の勉強時間が減る
私立最難関の早慶に受かる勢は受験科目のみ猛勉強してくるわけで
国立の二次試験に落ちるような専攻の得点力では立ち打ちできない
(高得点取れるなら国立落ちてない)
というわけで早慶には東大オチは殆おらず早慶本命だったやつばかり通ってる
東大の滑り止めは二次試験日の違うだろ国公立かマーチ辺り >>911
ADDもCOMPUTEもどっちもなかったか? 会社に残ってるCOBOLの古いプログラムは
ほとんど英文みたいだったぞ。 そもそも代入をイコールにしたやつが
数学バカにしてるやろ 10 PRINT"ウンコ"
20 PRINT"チンコ"
30 PRINT"オマンティス"
40 GOTO 10 >>917
>>915は『Xの初期値に1を入れて、1つずつ増やしながら表示しろ』って意味だぞ。終了が分からないから
パンクするけど。 >>920
=じゃなく←だったら少しはイメージしやすいかな。キーボードに←がないから、=で代用したんだろうけど。 定義が違うものを比較しても意味が無い
等号と代入は全然違う MOV B,x
LD A,[B]
INC A
LD [B],A 京大教授すらプログラミング言語理解してないんか、ヤバイな どうせプログラム教育なんかしたところで
一般人の99%はプログラムなんかとは無縁な生活をするんだから
構造化とか数学的な正しさ云々とかGOTOがうんたらとか完全無視で
CじゃなくてBASICをもっとしっかり教育しとけば
プログラムを書ける人はもっと多くなってた一方で
もっとカオスになっててそれはそれで面白かったと思う。 >>1
数式とプログラムの両方を知る人間以外分からんだろアホか
一回教えたら済む話だろ それが分からんコイツが悪い まあプログラミングとか全く触ったことも無いけど立場だけは偉いおっさん向けの記事だなw
プログラミング言語ってのは数学記号や英語が使われてるけど、数学や英語の知識では理解出来ない特殊なものですよって話
この記事を金払って読んでるような偉い役職者みたいな人達が若い社員に「これExcelでちゃちゃっとやって、マクロとかってので簡単に出来ると聞いたぞ、京大出てたら簡単だろ」みたいなロジハラやらないようにって事だろ >中学校では2012年頃からすでに技術・家庭科の授業のなかで
>「情報の技術」としてプログラミングを取り入れています。
受験・進学に必要じゃない学科は 捨てろ って事 京大生でも分からないと喜んでるバカ教授
方程式とは意味が異なることを説明してないだけだろ
錯覚させる文言で問題出して混乱させて喜ぶアホ文系並みだ >>932
大昔の事で悪いが、小3でなぜかマイコンを買い与えられた俺はすがやみつるとベーマガでプログラミングを勉強したぞ
今にして思うと英語や数学の知識が無いからすんなり入ったとは思う 数学じゃなくてPythonの話だから、変数Xに1を足した値を変数Xに代入する、要するにインクリメント
マジレスしてしまった まあ文句言ってる奴も社会出てコンピュータに不慣れな上司ってのに遭遇したら分かる
「ちょっとちゃちゃっと作ってよ」
「何でも出来るって聞いたよ」
「ついでにゲームとか作って」
「俺は分からないけどさぁ、出来るでしょ、若いんだから」
「ちらっと見たけど数式とか英語とか使ってるし、そっちやってたんでしょ?大学とかで」
「大学出て頭良いんでしょ?」
そんな事言ってくる上司、思ってるより世の中には大勢居ますw
とりあえず皆さんは一般社員で企業に入った時には上司には「プログラミングとか分かる」なんて発言しないようにしましょう
そんな上司に見つかると、ゲーム会社なんて比じゃないレベルのデスマーチとかやらされることになります >>926
それで『x=x+1』と同じ意味になるんだ。x-=1もあるのか?
>>936
大学の学部によったらプログラミング学習があるぞ。 >>948
そりゃいきなりこんな式を見たら、誰でも困惑する。定義を意味を教えてあげれば理解はするだろ。 レス数が950を超えています。1000を超えると書き込みができなくなります。