Vol.93

CON T E N T S【コラム】数えられることの幸せ─コンピュータ教師の父親に息子がくれたプレゼント─… 斎藤 俊則【解説】高大接続改革と e ポートフォリオ─資質・能力を多面的・多角的に評価し育成していくために─… 森本 康彦【解説】プログラミング入門科目の指針と実践例（後編）… 久野 靖

COLUMN基 応
専 般

数えられることの幸せ─コンピュータ教師の父親に息子がくれたプレゼント─

SNS での情報発信は時に事故ともハプニングともつかない展開を生み出します．たとえばある SNS に私が書いた文章は，コメント欄でのやりとりを経てここに公開される運びとなりました．それは 6 歳の息子とのやりとりを記したこんな文章でした．
──
1）

阿部先生の『わくわくプログラミング』を読んで FizzBuzz を気に入った息子にせがまれて，こども園の行きに 1 から 10 までを数え上げて遊んだら，帰りも続きをせがまれて，30 まで一緒に数え上げることができました．割り算（正確には割り切れるかどうかのチェックのみでしたが）は掛け算ができればよいこと，掛け算は足し算を繰り返せばできること，30 までに Fizz（3 で割り切れる数）の方が Buzz（5 で割り切れる数）よりも多く出てきて，それは 3 の方が 5よりも小さいからだと思われること，などなど，彼は行き帰りの間に随分いろんなことを発見して面白がっていました．
さて，さらに家に帰ってからピアノの先生のところに向かう道すがら，FizzBuzz で遊ぶ息子にふとした出来心が生じた父親は……
父「実はね，1 と自分以外で割れない数ってのがあってね……」と，悪魔の囁きのごとく，例の「あいつ」の扉を開くことに．2, 3, 5, 7, 11, 13 まで，一緒に数えてみました（そこで時間切れ）．キラキラした目でこちらを見ながら「数って面白い！」と笑顔の息子に向かって，
父「こういう数のことを，“ そすう ” っていうんだ」と言い残し，じゃ，ピアノ頑張ってねと彼を先生のもとに置いていきました．悪魔はいろんなところに潜んでいます
ね（笑）
．息子の笑顔を思い出して，これって最高の誕生日プレゼントじゃん，と思った次第です．
このとき息子は前日に誕生日を迎えた父親に，ある発見をプレゼントしてくれました．それは数える力を行使できることはそれ自体が幸せである，ということです．この「幸せ」を共有することは，計算機を教える者として最も大切にすべきことの 1 つであるように思いました．
──
この書き込みに「できすぎで実話とは思われません（笑）
」と即座に反応された久野靖先生（電気通信大学）は，
この話を「『一杯のかけそば』みたいに日本中に流行らせたい！」と仰り，このコラムが誕生しました．
参考文献
1） 阿部和広：小学生からはじめるわくわくプログラミング，日経 BP 社 (2013).
斎藤 俊則（星槎大学）

LOGOTYPE DESIGN...Megumi Nakata, ILLUSTRATION&PAGE LAYOUT DESIGN...Miyu Kuno

ぺた語義は pedagogy（教育学）を元にした造語です．常設の教育コーナーとして教育や人材育成に関する記事を広く掲載しています．
ぺた語義に掲載された記事は，情報処理学会 Web ページの「教育・人材育成」からどなたでもご覧いただけます .

情報処理 Vol.60 No.6 June 2019

535

ARTICLE

基 応
専 般

高大接続改革と e ポートフォリオ─資質・能力を多面的・多角的に評価し育成していくために─
森本康彦

東京学芸大学高大接続改革とは1）

育成すべき資質・能力の 3 つの柱2020 年度に実施する 2021 年度入学者選抜から大学

学力の 3 要素で育成すべき資質・能力の 3 つの柱

入試が大きく変わる．これに伴い，今，高等学校では，として，1）個別の知識・技能，2）思考力・判断力・

学習指導の方法や評価の在り方などの議論が盛んに

表現力等，3）学びに向かう力・人間性等，があり ，行われている．この背景には，戦後最も大きな教育

これらは氷山に例えられる．氷山は，水面から見え改革と言われる「高大接続改革」
がある．これは，単にる部分は小さいが，水面下はその何倍もの大きな塊

大学入試の方法を変えるという単純なものではない．

からなっており，この部分が大きければ大きいほど高等学校と大学での学びを一貫して，「知識・技能」「，思安定する．資質・能力では，「知識・技能」
が水面の上

考力・判断力・表現力」，「主体性を持って多様な人々の部分に例えられ，テストで容易に測ることができと協働して学ぶ態度」といった学力の 3 要素を確実にるものである．実は，この「知識・技能」
を実際に学び育成し評価することを目指した，高等学校教育─大に活かしていく（活用する）
ためには，水面下の大きな

学入学者選抜─大学教育の各改革を三位一体で進め塊の部分にあたる資質・能力をしっかりと有してい2）る大改革である ．

3）

ることが不可欠であり，それが「思考力・判断力・表高等学校教育では，カリキュラム・マネジメント

現力等」と「学びに向かう力・人間性等」である．これを通して，主体的・対話的で深い学び（いわゆる，アらは，テストだけでは評価しにくい資質・能力であり，

クティブ・ラーニング）を充実させ，多面的・多角的

e ポートフォリオを用いることで多面的・多角的に評に評価することが改革として行われる．

価することが可能となる（図 -1）

大学教育では，選抜（アドミッション・ポリシー），
教育（カリキュラム・ポリシー），卒業（ディプロマ・ポリシー）の各段階の一体的な策定を行い，それに基知識・技能づいた改革が行われる．また，高等学校教育での学びを踏まえ，学生を 3 つのポリシーに基づいて，学

思考力・判断力・表現力等

力の 3 要素で育成されるべき資質・能力をさらに高める必要がある．
そして，大学入学者選抜では，これらの 2 つの改

学びに向かう力・人間性等

革を接続する役割があり，大学が定めたアドミッショ
ン・ポリシーと高等学校教育での学びの評価を基に選抜されることが改革として行われる．

図 -1

資質・能力の氷山モデル-【解説】高大接続改革と e ポートフォリオ─資質・能力を多面的・多角的に評価し育成していくために─ -536情報処理 Vol.60 No.6 June 2019e ポートフォリオとは各教科等で育成すべき「知識・技能」のほか，「思考力・判断力・表現力等」と「学びに向かう力・人間

生徒・学生自らが，学習を振り返って次につなげ性等」に関する記述を抽出したところ，全 8,782 件

る主体的な学びの過程では，さまざまな学びの記録の項目が得られ，〈思考力〉は 2,048 件，〈判断力〉はが生成されるが，これら記録を電子的に蓄積したも275 件，〈表現力〉は 579 件，〈課題解決〉は 937 件，〈主のすべてが「e ポートフォリオ」である．学習過程に体性〉は 1,367 件，〈協働性〉は 1,300 件，〈多様性〉

おいて蓄積された e ポートフォリオは，生徒・学生

は 956 件，
〈豊かな心〉は 1,320 件分類され，それぞの学びの教材として，それ自体が活用できるだけでれ表 -1，2 の通りに整理された．各表の小カテゴリ

なく，継続して蓄積・活用していくことで，過去とは，学習指導要領の文言を参考に「力」と「態度」でま

現在の学習状況を把握・評価し，未来の伸びしろま

とめている．なお，〈豊かな心〉の小カテゴリは，平で見える化できる「学びのアルバム」となる．特に，成 29 年改訂小学校及び中学校学習指導要領解説「特生徒・学生は，いつでもどこでも e ポートフォリオ

別の教科 道徳編」を参考に「力」と「態度」を包括したを記録し，見返して活用することができるため，自表現としてそのままの形とした．これにより，「生問自答による学びの振り返り（自己評価）が促され，徒に対してどのような資質・能力の育成を目指すの仲間同士で時空を超えて相互に学び合ったり（相互かを指導のねらいとして設定」し ，生徒一人ひと評価），教員などからアドバイスがもらえたりする

りが「前の学びからどのように成長しているか，よ3）（教員評価，他者評価）．つまり，e ポートフォリオは，
アクティブ・ラーニングを行う“必須のツール”であり，学びを促進させるとともに，学力の 3 要素で育表 -1 「思考力・判断力・表現力等」に含まれる資質・能力
大枠

中カテゴリ

小カテゴリ
考えをひろげる力成すべき資質・能力を多面的・多角的に評価するこ

ひろげる力

発展的に考える力
創造する力とを容易にする．
予想する力

予想する力
推論する力
考えをまとめる力

育成すべき資質・能力とは
中央教育審議会答申では，「教育課程全体を通じ

思
考力てどのような資質・能力の育成を目指すのかは，各まとめる力抽象化する力順序づける力関連づける力分析する力

学校の学校教育目標等として具体化されることになが現状である．
そこで，本稿では，平成 30 年改訂高等学校学習指導要領解説（国語，地理歴史，公民，数学，理科，
保健体育，芸術，外国語，家庭，情報，総合的な探究の時間，特別活動）から，育成すべき資質・能力に関する記述を抽出・整理することで，具体的な育成すべき資質・能力を明らかにすることを試みた．

比較する力
具体化する力

要領解説では，育成すべき資質・能力は，文章中のるため，具体的にそれらを把握することは難しいの分類する力理由づける力4）る」とされている ．しかし，各教科等の学習指導
さまざまな箇所に埋め込まれて記述・表現されてい構造化する力

とらえる力
判
断
力

選択する力

多面的・多角的にとらえる力
批判的にとらえる力
選択する力
判断する力

決定する力

意思決定する力

検証する力

検証する力
文字で表現する力

表
現力

伝達する力・発信する力

図で表現する力
身体で表現する力

プレゼンテーション力課
題解決

言葉で表現する力

課題設定を行う力

プレゼンテーション力
課題を発見する力
課題を設定する力方略を立てる力

方略を立てる力

解決の検証をする力

解決の検証をする力

情報処理 Vol.60 No.6 June 2019537

り深い学びに向かっているか」を評価し見取る際の質・能力を多面的・多角的に評価するために，e ポー

4）

トフォリオの活用が有効的であるということが読み参考になると考えられる ．

取れる．しかし，生徒の学習活動の，どういったタ

e ポートフォリオを活用した資質・能力の評
価方法（1）
資質・能力の多面的・多角的な評価方法

イミングで，どの e ポートフォリオを用いて，どのように評価するかを明らかにする必要がある．
そこで，本稿では，この解決の手立てとして，資質・能力の評価については，「単元や題材など

e ポートフォリオを活用した学習評価の方法（以内容や時間のまとまりを見通しながら評価の場面や下，アセスメント方法）をまとめた（表 -3）．アセ

方法を工夫して，学習の過程や成果を評価する」とスメント方法は，生徒の学習活動の何に焦点を当し，「指導と評価の一体化を図る中で，論述やレポーて，どの e ポートフォリオを用いて，資質・能力トの作成，発表，グループでの話合い，作品の制作の育成状況を把握し，どう学習支援するかの方法で等といった多様な活動を評価の対象とし，ペーパーあり，これらはハンドブックとして公開している ．

テストの結果にとどまらない，多面的・多角的な評

これらのアセスメント法を組み合わせて用いること

3）

価を行っていくこと」とされている ．つまり，資表 -2 「学びに向かう力・人間性等」に含まれる資質・能力
大枠

中カテゴリ

小カテゴリ

5）

により，あらゆる学習活動に対して，適切な e ポー
トフォリオを蓄積・活用しながら多面的・多角的な評価を実施していくことが可能になると期待できる．

主体的に学習に 主体的になる態度
主体的 取り組む態度
学に学習 粘り強く学ぶびに 主 に取り 態度
向 体 組む態
自らの学習を調
か 性 度
整する態度
う
力
キャリアを形成する態度
コミュニケーション力協働
性 協働する力

関心を持つ態度
粘り強く取り組む態度
学習を見通す態度
学びを振り返る態度
次につなげる態度
キャリアを形成する態度
自己実現する態度
伝え合う力
交流する態度チームワーク力
リーダーシップ力
合意形成する力
よりよい人間関係を形成する態度
集団・社会に貢献する態度

アセスメント方法

説明

テスト法

テストを受け，テストの解答と解き直しから学習状
況を把握する方法．

質問法

質問（アンケート等）の回答から学習状況を把握す
る方法．

作品法

学習成果としての作品から学習状況を把握する方法．

レポート法

レポートやエッセイ，小論文の記述から学習状況を把握する方法．

日誌法

日々の出来事やその活動，思いの記述などから学習
状況を把握する方法．

実技法

実技の記録などから学習状況を把握する方法．

体験法

体験の記録などから学習状況を把握する方法．

プレゼンテーショ プレゼンテーションの記録などから学習状況を把握
ン法
する方法．

思考・判断法

思考・認知過程を文章や言語で言語化・図式化することで外化させ，その内容から学習状況を把握する
方法．

ノート法

気づきや思考が外化されたノートの記述から学習状
況を把握する方法．

演習法

演習した解答等の記述などから学習状況を把握する
方法．

節度，節制

実習法

実習の記録から学習状況を把握する方法．

思いやり，感謝

課題解決・探究法

課題解決や探究の遂行過程の記録およびその結果か
ら学習状況を把握する方法．

観察法

学習過程における生徒の活動を観察することで，学習状況を把握する方法．

面談法

教員と生徒（ただし，保護者や第三者が加わることがある）との面談（カンファレンス）から学習状況を把握する方法．

ショーケース法生徒の特徴的な学びをまとめたショーケース・ポー
トフォリオを用いて学習状況を把握する方法．

他者を理解する態度
歴史や伝統，文化を理解する態度
自己を尊重する態度
他者を尊重する態度
歴史や伝統，文化を尊重する態度
感性

礼儀
家族愛，家庭生活の充実
生命の尊さ
自然愛護
感動，畏敬の念
よりよく生きる喜び

創造性

5)

議論や討論の過程の記録およびその結果から学習状
況を把握する方法．

自主，自立，自由と責任豊
か 豊かな心な心e ポートフォリオを活用したアセスメント方法

議論法

自己を理解する態度
理解する態度多様
人 性
尊重する態度間性等

表 -3

新たな意味や価値を創造する態度-【解説】高大接続改革と e ポートフォリオ─資質・能力を多面的・多角的に評価し育成していくために─ -538

情報処理 Vol.60 No.6 June 2019

（2）横断的な学びにおける資質・能力の評価方法

る学習活動を各教科等の学びの中に散りばめ，バラ「『主体性を持って多様な人々と協働して学ぶ態

ンスよく埋め込み，e ポートフォリオを活用し実施度』など，筆記試験や技能試験によって評価しにくしていくことで，「各教科等の教育内容を相互の関係

い資質・能力については，特に日々の高等学校の学で捉え，学校教育目標を踏まえた教科等横断的な視2）

習活動等を通じて多面的な評価を行う」とし ，「こ点で，その目標の達成に必要な教育の内容を組織的れからの時代に求められる資質・能力を育むためにに配列していくこと」
によるカリキュラム・マネジメ

は，各教科等の学習とともに，教科等横断的な視点

ントを実現するための一助になると考えられる ．

4）に立った学習が重要であり，各教科等における学習の充実はもとより，教科等間のつながりを捉えた学4）習を進める必要がある」としている ．つまり，特に「学びに向かう力・人間性等」の育成とその評価は，横断的な学びの視点が必須であることが分かる．
各教科等では主に「知識・技能」の育成とその評価

高大接続改革における e ポートフォリオの役割
高大接続改革において，高等学校教育，大学入学者選抜と大学教育をつなげることができるツールが
e ポートフォリオである（図 -3）．

が重要となるが，たとえば，各教科等の学びの中に，生徒は，高等学校のすべての学びを通じて e ポー

授業の内容を変えずに「協働する力」の「チームワー

トフォリオを蓄積・活用し，その多くの e ポート

ク力」や「合意形成する力」を養うための学習活動とフォリオの中から自ら精選したものの一部を大学入して【学び合い／議論】を定期的かつバランスよく埋学者選抜で活用する．また，それに引き続き，大学

め込み，実施していく際に学んだ成果や振り返りの教育でも e ポートフォリオを活用し , さらに，学生記録を e ポートフォリオとして蓄積・活用していく．

は，新たな学びを通して，e ポートフォリオを蓄積・その後，蓄積された e ポートフォリオを用いて，生活用し，学びを深めていく．そうすることで，e ポー

徒の学習活動を時系列でつなげて見直すと，一連のトフォリオは，高等学校教育から大学教育の 7 年間学びが浮かび上がる（図 -2）．さらに，上手く e ポー

を通した学びを，あたかも 1 つのシームレスな学び

トフォリオにより見える化することで，「生徒一人のようにつなげることができ，生徒・学生のすべて

ひとりの持つよい点や可能性などの多様な側面，進の学びを支えることを可能にしてくれる．

歩の様子などを把握し，学年や学期にわたって生徒

特に，大学教育においては，高等学校教育とつながどれだけ成長したかという視点」で評価することがることにより，従来のように入試という見えない

3）ができるようになる ．

壁によって学びが切り離されることなく，高校教育

このように，求める資質・能力とそれらを育成す

での学びを引き継いで，資質・能力をさらに向上さ横断的な学び

探究
３学年

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

学び

教科A

教科B

教科C

教科D

教科E

学び

学び

学び

学び

アクティブ・ラーニング

カリキュラム・マネジメント

学び

学び

学び

2学年

主体的・対話的で深い学び（アクティブ・ラーニング）

学び

学び

学び

学び

学び

大学教育

ディプロマ
・ポリシー

学び

学び

学び

学び

高等学校教育学び

学び

学び

学力の3要素学び

学び

カリキュラム・ポリシー
アドミッション
・ポリシー

学び

１学年
学び

学び

図 -2 横断的な学びにおける資質・能力の育成・評価のイメージ

eポートフォリオ

図 -3

eポートフォリオ

e ポートフォリオがつなぐ 7 年間の学び

情報処理 Vol.60 No.6 June 2019539

せ，著しい成長を遂げることが可能になると期待でそのものである．e ポートフォリオは，生徒・学生

きる．まさに，この 7 年間の学びは，キャリア形成の学びを深め，学びの軌跡とその成果を見える化しそのものであり，大学卒業時点で，社会の各分野でてくれる，とてもポジティブなものである．

活躍できる人材に成長できるだろう．

い点，その先の可能性まで見える化できるようにな

参考文献
1） 森本康彦：高大接続改革における e ポートフォリオの役割と活用方法，情報処理学会研究報告，Vol.2018-CLE-26, No.4,
pp.1-6 (2018)．
2） 高大接続システム改革会議：高大接続システム改革会議「最終報告」(2018)．
3） 文部科学省：高等学校学習指導要領解説 総則編 (2018)．
4） 中央教育審議会：幼稚園，小学校，中学校，高等学校及び特別支援学校の学習指導要領等の改善及び必要な方策等について（答申）(2016)．
5） https://sun.u-gakugei.ac.jp/ePortfolio/assessment/（ 参 照2019.02.22）

る．これが，高大接続改革における e ポートフォリ（2019 年 2 月 25 日受付）

生徒・学生は，e ポートフォリオをツールとして活用することで，7 年間を通して，見通しを持ち，粘り強く，振り返りながら主体的に学び続けることができ，さらに，蓄積された多量の e ポートフォリ
オを用いることで，7 年間を通した進歩の状況やよオを活用した学びのカタチである．
よく，大学入試の出願書類，または，そのための記録を e ポートフォリオと呼ぶケースが見受けられるが，それは e ポートフォリオのごく限定された一側面にすぎない．e ポートフォリオを貯めることが目的であってはならない．それは，手段であり学び

森本康彦（正会員） morimoto@u-gakugei.ac.jp

1991 年三菱電機（株）・情報技術総合研究所．1996 年広島市立牛田中学校 教諭（数学），2004 年千葉学芸高等学校 教諭（情報），その後，富士常葉大学・准教授を経て，2009 年東京学芸大学・准教授，
2017 年同大学・教授．博士（工学）．e ポートフォリオ，ICT 活用教
育，教育 AI 活用を専門とする．

-【解説】高大接続改革と e ポートフォリオ─資質・能力を多面的・多角的に評価し育成していくために─ -540

情報処理 Vol.60 No.6 June 2019

ARTICLE

基応
専般

プログラミング入門科目の指針と実践例
（後編）
久野 靖

電気通信大学

前編のあらまし前編

1）とを活かし，なじみのある数学に関係する題材を積極的に取り入れた．構成で工夫したのは，「離陸

では大学のプログラミング科目についてファースト」のためにその回の基本的な例題を学ん「単位を取得したのにプログラミングができない」とだらすぐに演習に入れるように題材を組み合わせたいう問題意識と，これを克服する指針「離陸ファー

点と，中間部分については個々の内容が「行き止まスト」「多様な水準の演習問題」「演習の重視」「苦り」になっていて，そこが理解できなくてもその先の

手な人の学びを促す」「プログラムが書けるという学習に支障がないようにした点である（詳細は後述）．

目標の明示」「プログラミングに唯一の正解はない」

もう 1 つの特徴は，全体として入門科目にしては「プログラムは自分の頭で作り出す」を提案し，FP異例にコンピュータサイエンス（CS）の内容を多く（電気通信大学初年次科目「基礎プログラミングおよ

盛り込んだ点である．これは東京大学が初年次プロ

び演習」）
でそれをどう具体化したかを解説した．本グラミング科目で取り入れた方針であり ，筆者も稿ではこれらの指針に基づいた FP の具体的なカリ

非常勤講師としてその内容を教えた際 ，「CS のキュラム，実施時の知見，結果について述べる．

さまざまな題材こそ知的関心につながり学ぶ価値の2）

3）ある内容である」と思うようになった．

使用言語とカリキュラム構成

学内でシラバスの承認をもらうときに「この内容は 2 年次以降で扱うのでは」という意見もあったが，前編で述べた通り，FP では最初の回ですぐ離陸「全員が必須内容として身につけるのは 2 年次以降

でき演習に取りかかれるように Ruby を採用していとしても，興味の持てる題材として触れてもらうのるが，後半は C 言語を使用している．これは，本は構わないはずで，複数回触れてもらう方が後の科学の 2 年次以降の各科目が C 言語を採用している

目にとっても好ましい」と述べて了承を得た．

ため，C 言語も学んでおく必要があったことによる．
入門科目であるのに言語を 2 つ学ばなければならないことは学習者にとって大きな負担となるが，一方で複数の言語を学ぶことの有用性は一般に言われている．そこで FP でも，何とか工夫して「Ruby から C」を実現することにした（詳細は後述）．
表 -1 に FP のカリキュラムを示す（2017 年度と2018 年度で同一，ただし細かい改良はある）．＃ 11〜 15 が C 言語の内容となる．理系の大学であるこ＃ 1 プログラミング入門 ; 様々な誤差＃ 2 分岐と反復 ; 数値積分
＃ 3 制御構造 (2); 配列とその利用＃ 4 手続きと抽象化 ; 再帰呼び出し＃ 5 2 次元配列 ; レコードと画像＃ 6 画像の生成 ( 総合実習 )＃ 7 整列アルゴリズム ; 計算量＃ 8 計算量 (2); 乱数とランダム性＃ 9 オブジェクト指向＃ 10 動的データ構造 ; 情報隠蔽
＃ 11 C 言語入門 ; f (x) = 0 の求解＃ 12 様々な型と配列 ; 動的計画法＃ 13 文字列の操作 ; パターン探索＃ 14 構造体 ; 表と探索
＃ 15 チームによる開発（総合実習）

表 -1

各回の内容

情報処理 Vol.60 No.6 June 2019541

正確などではない」という基本的な事項を記憶にと＃ 1 〜 4：入門部分

どめるだけで価値はあると考える．

入門部分の目標は，まずは普通にプログラムが書＃ 2 と＃ 3 では if 文と繰り返し（while ループ，

けるだけの材料を身につけることとした．中でも計数ループ）を一通り学び，これらを組み合わせて＃ 1 の役割は重要である．この回は「三角形の面積」

コードを構成する課題（fizzbuzz

から始めて，直線的なコードだけで書けるさまざまてもらう．制御構造を工夫するとそれに応じて動作なプログラムを課題として演習してもらう．初心者が作り出せることは多くの学生の関心を引いていた．

の学生でも 4 行のプログラムを打って動かすことは配列についてはカリキュラムの都合上ここで一度取すぐにでき，また理解もできるので，それなりに熱り上げているが，あまり重きは置いていない．

など）を演習し＃ 4 は手続きが題材であるが，初回から「プログ心に演習に取り組んでいた．
後半の題材として実数計算の誤差を取り上げ，さラム」と称して手続き（Ruby では「メソッド」）を作

まざまな誤差の出方を観察する課題を含めている．

成している．ここではそれを見直し，手続きにま普通であれば初心者が初回から学ぶことはない内容

たがったデータ（広域変数）や再帰の話題を取り上であるが，一直線のコードで扱え，また「なぜそうげている．RPN（逆ポーランド記法）電卓の例題なるのか」を考える題材になることから，このよう（図 -1）などは呼び出し時のかっこが省略できるとにした．プログラミング経験者である学生にとっていう Ruby の特性上それらしく見えるため，多くのも，この内容は初めてのようで，興味を持って取り

学生の興味を引いていた．再帰は「数式の定義をそ組んだ様子である．この内容を十分理解するまでにのまま再帰プログラムに対応づける」形で導入する至らなくても，「コンピュータによる計算は 100%

ことで多くの学生が自然に受け止めていた．

$s = []
def e(x) $s.push(x); return $s end
def addy = $s.pop; x = $s.pop; $s.push(x+y)
return $s
end

図 -1

作り出す」
体験を持てる題材としてできるだけ早い回

ル 24 ビットカラーの PPM（Portable PixMap，Unixのツールで多く使われる簡潔なフォーマット）
形式の画像を出力できるようにする（図 -2）．すべて自前でRuby による RPN 電卓と実行例

書くことで，画像の原理や扱いを「謎」なしに理解し

def writeimage(filename)open(filename, ’wb’) do |f|f.puts("P6\n300 200\n255")$img.each do |a| a.each do |p|f.write(p.to_a.pack("ccc")) end end
end
end
Ruby による画像の表現と出力

前編でも述べたように，画像の生成は「自分の頭でド型の 2 次元配列」として導入し，200 × 300 ピクセ

Pixel = Struct.new(:r, :g, :b)$img = Array.new(200) do Array.new(300) do
Struct.new(255, 255, 255) end end

図 -2＃ 5 〜 6：2 次元配列と画像の生成に設定している．＃ 5 で画像を「RGB 値を表すレコー

irb> e 1=> [1]
irb> e 3=> [1, 3]
irb> add=> [4]と実行例てもらうことを目指した（実際には writeimage の動作は謎のままという学生も多かった）．
その上で基本的な線分，円，長方形，三角形などの塗りつぶしを例示し，＃ 6 でそれらを利用して（または類似のものを自分で独自に作って）「美しい画像」を生成する総合課題を課している．
☆1

1, 2, 3……と数値を表示する．ただし，3 の倍数なら fizz，5 の倍数
なら buzz，両方なら fizzbuzz と（数値の代わりに）表示する．

-【解説】プログラミング入門科目の指針と実践例（後編）-

542

☆1

情報処理 Vol.60 No.6 June 2019

レポートとともに提出された作品の一部を図 -3ていた（ヒントは与えている）．

に示す．技術的な難しさのレベルは学生によりさま

疑似乱数は「サイコロやコインの利用をシミュ

ざまだが，どの学生もそれなりに工夫して「自分がレーションする」題材が直観的に分かりやすかった

作ろうと思う絵」を作っていると感じる．

ようで，多くの学生が楽しんで実施していた．
クラス定義はクラス中にメソッドを置くという構＃ 6 〜 10：中間部分

造を知ってもらうことに力点を置き，「値を put すると覚えていて get で取り出せる」などごく簡単な

中間部分は「整列（と時間計算量）」「疑似乱数」「ク

課題を含めた結果，学生からも「構造は目新しいがラス定義」「単連結リスト」とそれぞれ異なる題材をプログラムを作ることができた」と肯定的なコメン取り上げている．どれもやや高度だがその回で完結

トを多くもらうことができた．

し，次回に影響しないため，できなかった場合でもあまりダメージはない．
整列は問題設定が「小さい順に並べる」と明快で，多様なアルゴリズムがあること，またそれらで大き単連結リストは Ruby の最終回であり，やや高度
でもチャレンジと思って取り入れた．2017 年度はテキストがやや難しい内容から始まり，例題も再帰が分からず苦戦した学生が多かった．

く速度が違ってくることを体験する題材として適し

そこで 2018 年度は，まず irb でリストのセルのている．例題としてバブルソートを提示した後，選連鎖を作り，途中に nil を入れて短くしたり 2 つの択ソート，挿入ソートを誘導つきで書くことを課題

リストをつなげるなどの体験をしてもらった（図 -4）．

としたが，配列に十分慣れていない学生が多く苦戦

その後「数値のリストで合計」「文字列のリストで全していた．選択ソート用の「指定範囲での最小値の連結」など単純な課題を含む形で演習したが，学生の位置を返す」メソッドの作成が一番やさしい問題で得手不得手に対応するため例題コードでループ版とあり，これは配列の回に「最大値の位置を返す」演習

再帰版を併記した上，両方でリストをたどって処理が既習のため，苦手な学生でも大半がなんとかできするコードのテンプレートもヒントとして提示した．
この結果，多くの学生はこれら基本的な課題がこな
せ，肯定的なコメントをもらうことができた．2 つの版の併記については「ループ版なら分かった」等のコメントもあったが，「再帰を理解する題材となり良かった」というものも多数あった．

＃ 11 〜 15：C 言語
Ruby で入門後，途中で C 言語に移行することが，本カリキュラムの最大のチャレンジの 1 つである．
特に，Ruby では irb のおかげで入出力を書かなくても済んだが，C ではそうはいかない．
2017 年 度 は main で コ マ ン ド 引 数 を 受 け 取 りatoi や atof で数値に変換する形で例題を作ったが，これまでと大幅に構造が違うため混乱があった．
図 -3

提出された画像の例

また，コマンド引数の個数検査や，呼び出される関情報処理 Vol.60 No.6 June 2019543

数を下に置くためのプロトタイプ宣言の記述を含め

もう 1 つの課題として，C 言語はメジャーなのでたことも混乱を増大させた．＃ 11 と＃ 12 の間に既習者も混在している点がある．そこで総合課題を冬休みが 3 週間入るため，＃ 12 のときに＃ 11 の除く＃ 11 〜 14 では内容を「基礎的な前半」「高度

内容を覚えていないことも問題だった．

な後半」に明確に分け，後半は試験範囲外で経験者

2018 年度はこの反省に立ち，図 -5 を提示してのみでよいと明示することで，初級者が挫折を感じ「いままでは本体の関数だけ書いたが，C 言語でないようにしつつ，経験者にもチャレンジしがいのは main で入力と出力をする，ただし main の内ある演習を提供した（予習は全範囲で義務づけてい容はどのプログラムでも類似」と説明し，scanf とるので，初級者でも関心を持ち後半の演習に取り組

printf で入出力する形とした．当面は main を最んでもらえることは多くあった）．

後に置かせることで，プロトタイプ宣言を＃ 14 の

＃ 11 は C 言語の初回なので図 -5 を提示した後「三角形の面積」を最初の例題とし，Ruby で学んだ題材

分割コンパイルの説明まで保留した．

を C でも書いてみるという演習を中心とした．ルー
プや枝分かれ等の制御構造は C と Ruby の対比を示

irb> Cell = Struct.new(:data, :next)irb> p = Cell.new(1, Cell.new(2,Cell.new(3, nil)))irb> p実行例
p.nextpp.next.next

し，機能は同じで書き方だけ変えれば済むという形でまとめて説明した．そして「冬休みに忘れる」問題に対処するため，Ruby ですでに取り上げたやさしp.next.next.next

1

2

3

p.datap.next.data

p.next.next.data

い課題を多く用意し，通常は「1 個以上提出」である
レポートをこの回のみ「10 個以上提出」とし，冬休

irb> p.next.next = nil
irb> pp

p.next

み中に練習するよう呼びかけた．
＃ 12 は配列が中心だが，C 言語では配列アクセ

p.next.next

1

2

スがポインタ演算に基づくため，ポインタも併せて

p.datap.next.data

扱う．この内容は一般に「難しい，分かりにくい」とirb> q = Cell.new("A", Cell.new("B",Cell.new("C", nil)))irb> qqq.nextq.next.next

"A"

"B"

q.dataq.next.data

されており，学生にもそのような意見が多かった．
配列の扱い自体は Ruby と同様でできるが，Ruby

q.next.next.next

部分での配列の練習が不足で身についていない学生"C"が多いという問題があった．

q.next.next.data＃ 13 は文字列の内容で，文字列がナル文字で終irb> q.next.next = p
irb> qqq.next

端された文字の配列であることを説明した後，「文q.next.next.nextpq.next.next

"A"

"B"

q.dataq.next.data

q.next.next.next.next
p.next"C"
q.next.next.data

12

p.datap.next.data
q.next.next.next.data

Quiz: 次のようにできますか ?

qq.next"A"

字列の長さを求める」「文字列中の文字 c1 を c2 に置き換える」など基本的な演習を中心に行った．文
字列はイメージしやすく分かるとの感想もあったが，課題は（ヒントを活用して）できても，配列が不得

q.next.next.nextpq.next.next"B"p.next.next"C"p.next

手で自信がないという感想も多かった．

1
Ruby

q

引数を
入力 渡す

p
"A"

"B"

triarea

1
表示

図 -4

irb を用いた単連結リストの練習

図 -5

結果を
受け取る

irb

Ruby と C の対比の図-【解説】プログラミング入門科目の指針と実践例（後編）-544情報処理 Vol.60 No.6 June 2019

C

triarea
引数を
入力 渡す

表示

結果を
受け取る

main

自分で
書く部分

＃ 14 は 構 造 体 で，Ruby の 画 像 で も 使 用 し たは＃ 6 と変わらないことに納得し，グループで作RGB 値を表す構造体を定義し，複数の色を混ぜる

品内容を話し合って取り組む様子が見られ，多く関数を例題として示した後，1 つの色を受け取り明の力作が提出されている．

るく／暗くした色を返す，補色（実際には RGB それぞれを 255 から引く）を返すなどの演習問題を課した．16 進 6 桁の RGB 値を入力するとその色が結果とまとめ

見られる実習ページを用意して実際の色を確認する

表 -2，表 -3 に，2018 年度授業最終回のアンケート

ことで，演習の内容が分かりやすいようにした．学（n=709）
結果抜粋を示す．多くの学生がこの科目を有用

生の感想は，よく分かったという意見と（おそらくと考え，（プログラミングの科目なのでプログラミン

C 言語の構造体の書き方になじんでいないため）難グについて）多く学んだと回答している．
期末試験はすべて CBT（Computer Based Test）によしいという意見とに二分されていた．
＃ 15 は 2 回目の総合課題で，2 ～ 3 名のグルーる短冊問題で，80 分の試験で 28 問を課した．採点はプで分担してアニメーションを製作する内容であ

全問，正解（複数の場合もある）と一致で 2 点，1 カ所る．例題として，図 -2 と同様の機能を C 言語のの欠落，余分，入れ替わりで部分点 1 点とした（素点API として実装したものを提供し，ただしファイ

満点 56 点）
．素点合計を算出後，ある程度できた学生

ルは書き出すごとに連番のファイル名で作成されが 50 点になるように換算を行い，レポート点と合算るようにし，多数のファイルを生成した後，ツーしている．図 -6 に 2017・2018 年度の試験素点合計のル で 動 画 表 示 さ せ た． 説 明 時 は ア ニ メ ー シ ョ ン

分布を示す．前述した授業内容の手直しと，2017 年度という高度そうな内容に不安を示す学生もいたが，にやや難しい問題があったものをやさしい問題に変更

授業時に例題をコピーして動かすことで個々の絵したことから，全体に成績は向上している．たとえば，

表 -2

とても
そう思う

そう思う どちらで
もない

186
26.2%

331
46.7%

表 -3

95%の学生が8点（4 問相当）以上，77%の学生が16点（8

学習内容は今後自分の役に立つと思うか ?

145
20.5%

思わない

まったく
思わない

未回答

20
2.8%

12
1.7%

15
2.1%

279
39.4%

283
39.9%

140

92
13.0%

くの学生について「基礎的なプログラムが書ける」とい

少しだけ

まったく
ない

未回答

一方で，2018 年度の内容についても「配列の練習が

26
3.7%

15
2.1%

14
2.0%

不足」など，改良が必要な点は複数見つかっているた

2017（n=766）

120

グラムが書けなければ得点は難しいため，本科目は多う目標を達成したものと考えている．

どれくらい多く新たなことを学んだか ?

多数学んだ まあ学ん どちらでだもない

問相当）以上の得点を得ている．短冊型の試験はプロ

2018（n=773）

100
80

め，科目内容は今後とも手直ししていきたい．
参考文献
1） 久野 靖：プログラミング入門科目の指針と実践例（前編），
情報処理 , Vol.60, No.3, pp.244-247 (2019)．
2） 森畑明昌：東京大学における全学プログラミング教育，情報
処理，Vol.57, No.4, pp.362-365 (Apr. 2016)．
3） 久 野 靖：Ruby に よ る 情 報 科 学 入 門， 近 代 科 学 社 (June2018)．

60（2019 年 2 月 5 日受付）

40

久野

20

0-3

図 -6

4-7

8-11

16-19 24-27 32-35 40-43 48-51
12-15 20-23 28-31 36-39 44-47 52-55

靖（正会員） y-kuno@uec.ac.jp

1984 年東京工業大学理工学研究科情報科学専攻博士後期課程単位取得退学．同大学助手，筑波大学講師，助教授，教授を経て現在，
電気通信大学情報理工学研究科教授．筑波大学名誉教授．理学博士．
プログラミング言語，プログラミング教育，情報教育に関心を持つ．

試験素点の分布情報処理 Vol.60 No.6 June 2019545