初心者がScratch(スクラッチ)言語およびPython(パイソン)言語によるプログラミングをやさしく学べるサイトです。Take it easy!

2020年度から小学校でプログラミング教育が必修化されます!

プログラミング教育必修化は世界的潮流です。アメリカを始めとしたIT の先進国では、プログラミング教育の流れが加速しています。

たとえば、アメリカでは、(前)オバマ大統領自らがプログラミング教育の必要性を訴えました(字幕を日本語に変更できます)。

【ご注意】動画再生後は、本動画とは直接関係がないオススメ動画が再生されます。もう一度再生したい場合は、左下のをクリックしてください。

プログラムとは、コンピュータに指示を与えるための命令を書いたものです。楽器を演奏するための楽譜に似た役割があります。楽譜そのものは記号の集まりのようなものですが、その内容に従って楽器を演奏すると音楽が奏でられます。それに似て、プログラムも英単語や記号の集まりですが、その内容に従ってコンピュータを動かすといろいろな仕事をしてくれます。

たしかにプログラミング(プログラムを作ること)は、初心者にとっては敷居が高い側面がありますが、算数や数学などと同じで、道具として使えるようになることが求められます。このサイトでは、入門時の敷居を下げる手段を提供します! ちなみに先駆者は、「Coding is not difficult」と述べています。 ※「Coding」(コーディング)とは、プログラムを書くことです。

基本的に「人間ができないことは、コンピュータはできない!」です。その意味は、コンピュータは自分で勝手に動くのではなく、人間が作ったプログラムの指示どおりに動くだけである、ということです。 「アルファ碁(AlphaGo)というコンピュータ囲碁プログラムが人間に勝った」=「コンピュータが人間に勝った」のように騒がれましたが、そうではありません。アルファ碁というプログラムを開発した技術者が、コンピュータという道具を使ってプロの棋士に勝っただけです。

プログラミングの学び方は、やはり「真似る(まねる」ことが基本です。例となるプログラムを少しずつ変えて動かしてみることがスタートです。

  1. 簡単なプログラムを入力し、実行し、エラーが出たらエラーを修正する、までの一連の流れになれてください。
  2. プログラムの動きを図に表して理解することが効果的です(人間ができないことは、コンピュータはできません)。

 学習環境は、スマホやタブレットでも可能ですが、効率的に学ぶためにはパソコンがおすすめです。このサイトではWindows 10を搭載したパソコンを標準にしています。

プログラミング言語にはいろいろな種類がありますが、このサイトではScratch(スクラッチ)とPython(パイソン)を取り上げています。まったくの初心者はScratch(スクラッチ)でプログラミングのイメージをつかんでからPython(パイソン)に進むとよいでしょう。高校生以上ならいきなりPython(パイソン)でもかまいません。

  • Scratch(スクラッチ)
    プログラムの基本要素をビジュアルに学習できる子ども向けのプログラミング言語です。
    公式サイト:Scratch – Imagine, Program, Share
  • Python(パイソン)
    本格的なプログラミング言語ですが、学習しやすい環境が整っていること、豊富なライブラリがあるので応用がしやすい、のでおすすめです。
    公式サイト:Welcome to Python.org

 ScratchとPythonとの違いは、ゴーカートと普通の自動車との違いに似ています。ゴーカートはだれでも簡単に操作ができますが実用は難しく、普通の自動車は運転できるまでには相当の知識と熟練が必要です。

 注目されているキーワードに「アンプラグド」学習という言葉があります。アンプラグドとは、電源プラグ(コンセント)を抜く、つまりコンピュータに電源を入れずに学ぶ方法です。小学校で学ぶ教科のほとんどは、鉛筆や紙などを使って学びますので、元々「アンプラグド」です。
 実は、コンピュータを使ったプログラミング学習においても「アンプラグド」が本質的に重要です。
 コンピュータ上で実際にプログラムを作る前に、机上で図解(ワークシート)などによりプログラムの構成や動きをあらかじめ考えておくことが真の理解につながります。

 最初の段階では、やや難しいのであまりこだわる必要はありませんが、プログラムはデータの入れ物である「変数」と問題を解く手順を示した「アルゴリズム」(算法)という2つの要素から成り立っています。数式風には次のように表現されます。
   アルゴリズム + データ構造 =プログラム
 Scratchの場合は、コードのブロックの中の「変数」が「データ構造」に対応し、それ以外のブロックが「アルゴリズム」を構成するための部品となっています。


Copyright (C) 2019 Easy Programming