別館サイバー大学 別館サイバー大学

テクノロジー 2020.03.17

『写経』のすすめ

松本 幸子 松本 幸子 准教授
『写経』のすすめ

「プログラミングが出来たら楽しそう!」とは誰しも考えたことがあると思いますが、いざ、学習を始めようとすると、ネット上にはいろいろな勉強法が紹介されているものの 挫折した話もあふれており、どう取り組んだら良いのか悩むところですね。そこで、皆さんに実践していただきたい『写経』と呼ばれるプログラミング学習法と、それを元にした私の授業での取り組みを紹介したいと思います。

『写経』とは

初めてプログラミング言語を学習する場合、命令や文法を学習しただけで自らコードを考えて一からプログラムを作成するのは難しく、多かれ少なかれ手本となるプログラムのコードを「丸写し」して入力し実行結果を確かめるという「模倣」の過程が必要です。この簡単にコピー&ペーストが出来る時代に、既に手本となるコードがあるのに、わざわざ手入力するのはバカバカしいと感じるかもしれませんが、外国語の学習と同様、まずは自ら真似してみることは上達への近道であり、こうした手本を「丸写し」して実行してみる作業は『写経』と呼ばれています。

効果的な『写経』にするには?

この『写経』をたくさん行うことによりプログラミング言語を習得しようという学習法は、学んだ文法を元に自らコードを考えるより、些細なミスでプログラムが動かないというトラブルを減らせ、余計な時間をかけずに学ぶべき内容の理解に注力できるため、大変、効率的です。しかし、プログラムの記述には厳密な正確さが要求されるため、「丸写し」だけでも意外に難しいものです。コードの意味を常に考えていないと、「丸写し」に成功してプログラムが動いたことに満足し、実はコードの意味は全く分かっていないという状況になりかねません。つまり、盲目的な『写経』とならぬよう、意味を考えつつ『写経』に取り組むことが肝心なのです。

「模倣」から「改変」へ

そして、さらに実力をつけるには、『写経』という単なる「模倣」から一歩進めて、コードの一部を「改変」して結果を確かめる作業の繰り返しも欠かせません。この繰り返しは、理解を深められるだけでなく、コードを変更するたびに次々と結果が得られるので楽しく没頭でき、学習のスピードアップにもつながるでしょう。

文法の学習は後回し!

では、どうしたら盲目的でなく意味を考えながらの『写経』を行い、改変を楽しむ段階に到達できるのか、とっておきのコツを紹介しましょう。それは「文法学習を後回しにする」ことです。

先に文法を詳しく学習してしまうと、コードの意味が「分かったつもり」となり、盲目的な『写経』に陥りがちです。しかし、細かな文法学習を後回しにすると、コードの意味を考えながら『写経』するので、実行結果の意味を理解しようとします。その後で行う文法学習は答え合わせのようなものなので、文法の理解も速くなります。

ただし、プログラミングでは、日常では登場しない、変数、繰り返し、条件分岐などの概念を把握していることが重要です。私の担当するC言語の授業では、『写経』による演習に先立ち、まずプログラミング言語特有の概念を講義形式で学習します。そのうえで謎解き感覚でコードの改変による結果の変化を考えていけるよう、いくつかの書換えや追記のプロセスを提示し、『写経』による「模倣」から「改変」までの経験を積んでもらいます。そして最後に詳しい文法学習を行って、コードの意味を確実に理解します。

プログラミング学習では、対話の相手はコンピュータであり、24時間いつでもコードを打ち込めば反応してくれます。忙しい方も、自分の都合に合わせて好きな時に楽しめますので、この機会に、皆さんも『写経』によるプログラミングを始めてみませんか?

松本 幸子
松本 幸子
MATSUMOTO Sachiko
  • 准教授
  • 専門科目

慶應義塾大学理工学部物理学科卒。慶應義塾大学大学院理工学研究科物理学専攻修士課程修了。在学中にはコンピュータシミュレーションによる高分子系の統計力学的研究を行う。卒業後は、3次元CADシステム、構造解析ツール等の開発に従事。2008年4月よりサイバー大学IT総合学部において情報基礎教育、プログラミング教育に携わる。2016年4月より現職。