あなたの「プログラミング的思考度」は?解けば身に付く8つの問題集

ダイヤモンド編集部
有料会員限定
記事をクリップ
URLをコピー
記事を印刷
Xでシェア
Facebookでシェア
はてなブックマークでシェア
LINEでシェア
noteでシェア
プログラミングのすすめ#Photo:PIXTA

巣ごもりを余儀なくされる今年のゴールデンウイークは、AI時代に必須のスキル、プログラミングの知識を身に付けるチャンス。特集『今こそ!プログラミングのすすめ』(全13回)の#9では、問題形式であなたの「プログラミング思考度」をチェックする。「問題」を順に解いて、解説文を読み進んでいけば、見る間にプログラミング的思考が身に付くはずである。

「週刊ダイヤモンド」2018年5月12日号の第1特集を基に再編集。肩書や数値など情報は雑誌掲載時のもの。
あなたの「プログラミング的思考度」は?解けば身に付く8つの問題集
拡大画像表

【問1の答え】

3と4

【解説】

奇妙に思えるかもしれないが、コンピューターが処理できるという意味での論理性と、処理する内容の合理性は別次元の話だ。

選択肢を「プログラミングが可能かどうか」と「その内容が合理的かどうか」の二つの面から考えてみよう。なお、面白いときに笑うのは合理的という前提に立つ。

「プログラミングが可能」とは、「AならBを実行する」という命題があるとき、条件Aと処理Bの両方が客観的に明確なことだ。選択肢1と2は、条件Aに当たる「面白い」についての定義がなく、処理B(笑う、服を着る)をいつ実行するのかを判断できない。

これに対し、選択肢3と4は、「面白い」を「登場人物が笑った」というふうに、客観的に判断できるよう定義している。処理B(笑う、服を着る)を実行するための判断ができるので、プログラミングが可能だとなる。

選択肢4を見ると、「登場人物が笑う」と「服を着る」には脈絡がなく、処理内容は明らかに不合理だが、実行は可能だ。コンピューターの処理を信じ込むことは、時として危ういことが分かるだろう。

あなたの「プログラミング的思考度」は?解けば身に付く8つの問題集
拡大画像表示

【問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日

#4

52歳週刊ダイヤモンド編集長の挑戦、「プログラミング・ブートキャンプ」の顛末

2020年4月30日

#5

求人倍率16倍の意外な希少職種も、「高市場価値エンジニア」の特徴

2020年5月1日

#6

管理職にとって部下が「人間だけ」の時代は終わった、南場智子の警告

2020年5月2日

#7

「できるって言ったよね?」エンジニアに絶対言ってはいけない5つの台詞

2020年5月3日

#8

5分でわかる!コンピューターの基本「プログラミング的思考」の核心

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日

あなたにおすすめ

特集

アクセスランキング

  • 最新
  • 昨日
  • 週間
  • 会員

最新記事

AltStyle によって変換されたページ (->オリジナル) /