あなたの「プログラミング的思考度」は?解けば身に付く8つの問題集
詳細はこちら
巣ごもりを余儀なくされる今年のゴールデンウイークは、AI時代に必須のスキル、プログラミングの知識を身に付けるチャンス。特集『今こそ!プログラミングのすすめ』(全13回)の#9では、問題形式であなたの「プログラミング思考度」をチェックする。「問題」を順に解いて、解説文を読み進んでいけば、見る間にプログラミング的思考が身に付くはずである。
拡大画像表
【問1の答え】
3と4
【解説】
奇妙に思えるかもしれないが、コンピューターが処理できるという意味での論理性と、処理する内容の合理性は別次元の話だ。
選択肢を「プログラミングが可能かどうか」と「その内容が合理的かどうか」の二つの面から考えてみよう。なお、面白いときに笑うのは合理的という前提に立つ。
「プログラミングが可能」とは、「AならBを実行する」という命題があるとき、条件Aと処理Bの両方が客観的に明確なことだ。選択肢1と2は、条件Aに当たる「面白い」についての定義がなく、処理B(笑う、服を着る)をいつ実行するのかを判断できない。
これに対し、選択肢3と4は、「面白い」を「登場人物が笑った」というふうに、客観的に判断できるよう定義している。処理B(笑う、服を着る)を実行するための判断ができるので、プログラミングが可能だとなる。
選択肢4を見ると、「登場人物が笑う」と「服を着る」には脈絡がなく、処理内容は明らかに不合理だが、実行は可能だ。コンピューターの処理を信じ込むことは、時として危ういことが分かるだろう。
拡大画像表示
【問2の答え】
(a)2月は30日でも31日でもない。2月にこの処理を行うと、どちらにも条件分岐できずフリーズする。
(b)口座から繰り返し1万円を引き出す処理だが、最後に引き出すときに残額がきっちり1万円になっていないと、引き出しが実行できずフリーズする。
【解説】
いずれも条件の考慮不足から、コンピューターが固まってしまう。
(a)2月は28日か29日の2通りで、30日、31日に当てはまらず、条件分岐できなくなる。
修正方法としては、「分岐条件に28日、29日を追加する」「≦30(30日以下)」を追加するなどが考えられる。
(b)この処理は、残高が1万円の整数倍のときだけ正常に行われる。それ以外のときは、残高が1万円を切った(当初を含む)時点で引き出しが実行できなくなる。コンピューターは「引き出す」という指示があればその通り実行しようとするが、そのときに引き出しが可能かどうかを考慮しない。
修正方法としては、「毎回の引き出し実行前に残高が1万円以上あるかを確認する」「"引き出せた""引き出せなかった"と応答を受ける処理を追加し、引き出せなかった場合に終了する」「当初残高が幾らかを確認し、繰り返しが可能な回数を前もって決める(例えば当初3万5000円なら、繰り返しの回数は3と最初に決める)」などがある。
記事一覧
今こそ!プログラミングのすすめ、デジタル時代の必須スキル
2020年4月27日
#1大前研一氏が指南、「AIに代替されない、AIを味方にする力」の身につけ方
2020年4月27日
#2超エリート向けから文系社員まで、プログラミング教室が活況の理由
2020年4月28日
#3デジハリ学長が勧める社会人の学び直し「ITエンジニアは最高の職業」
2020年4月29日
#452歳週刊ダイヤモンド編集長の挑戦、「プログラミング・ブートキャンプ」の顛末
2020年4月30日
#5求人倍率16倍の意外な希少職種も、「高市場価値エンジニア」の特徴
2020年5月1日
#6管理職にとって部下が「人間だけ」の時代は終わった、南場智子の警告
2020年5月2日
#7「できるって言ったよね?」エンジニアに絶対言ってはいけない5つの台詞
2020年5月3日
#85分でわかる!コンピューターの基本「プログラミング的思考」の核心
2020年5月4日
#9あなたの「プログラミング的思考度」は?解けば身に付く8つの問題集
2020年5月5日
#10身近なExcelから始めよう!実務で使えるデータ分析の極意
2020年5月6日
#11「Excel VBA」から始めるプログラミング初体験、大量作業を瞬殺する技
2020年5月7日
#12初心者に贈る「プログラミングの始め方」、理解よりまず実践!
2020年5月8日
#13プログラミング入門講座、「メールを一斉送信」のコードを書いてみよう
2020年5月9日
あなたにおすすめ