QiitaAPIにて、小学校の「プログラミング教育」におけるトレンドを考察してみた

#はじめに

Qiita初投稿です。30代（文系出身）にしてプログラミングに初挑戦中。
APIっていったい何？！プログラムなんて書いたこともない！という状態からスタートし、約１週間が経ちました。"小さなことでもアウトプット！"を目標に発信しています。これから学習される方に向け、少しでも参考になれば幸いです。

#目的
- QiitaAPIを使い、いま興味のあることを調べてみたいと思いました。
- 最近、「**プログラミング的思考を養う**」という学習系玩具をよく目にするようになりました。わが家の子ども（年長）にも購入し、すっかり夢中になっています。
- 「プログラミング教育」は2020年度より小学校でも必修となり、時代はどんどん進んでいるようです。親世代のプログラミング初心者にとっては、自分が未経験なのに大丈夫？！と疑問もあるのではないでしょうか？（私もその１人です・・・）

- そこで、「プログラミング教育の低年齢化はいつから進んだのか？」「どんな教材がトレンドなのか？」を、Qiitaの投稿記事から考察したいと思います。

##「プログラミング教育」とは？？（本投稿上は、以下の定義とします。）
学習指導要領の改訂に伴い、2020年度より小学校から必修化される情報教育のこと

#環境
Visual Studio Code  v1.55.2

#取得方法
以下、いずれもQiitaAPIを使用。
①「**プログラミング教育**」×「**小学生**」というワードの記事の日付（降順）を取得する。
※今回は低年齢化の傾向が知りたいので、小学生をターゲットに絞りました。

- 他ユーザーのQiita投稿記事（以下、参考記事）を参考に、[QiitaAPIの仕様](https://qiita.com/api/v2/docs)とも照らして解読しながら作成。コードの前提知識は、Javascriptの学習ツールも活用しました。
- per_page（1ページあたりに含まれる要素数）の最大値を100にしたものの、1回では全データが取れず苦戦・・・。（結果、2回処理を実行することで取得。）

```Javascript
// axiosモジュールを読み込む
const axios = require('axios');

// main()関数を定義する
async function main() {
    // QiitaAPIで「プログラミング教育＆小学生」という単語で記事を検索する
    let response = await axios.get('https://qiita.com/api/v2/items?per_page=100&query=' + encodeURIComponent('プログラミング教育'+'小学生'));
    // 結果を出力する（繰り返し）
    for (let i=0; i<response.data.length; i++) {
        console.log(response.data[i].created_at);
    }
}

main();
```

```Javascript
// axiosモジュールを読み込む
const axios = require('axios');

// main()関数を定義する
async function main() {
    // QiitaAPIで「プログラミング教育＆小学生」という単語で記事を検索する
    let response = await axios.get('https://qiita.com/api/v2/items?per_page=100&page=2&query=' + encodeURIComponent('プログラミング教育'+'小学生'));
    // 結果を出力する（繰り返し）
    for (let i=0; i<response.data.length; i++) {
        console.log(response.data[i].created_at);
    }
}

main();

```

②「**プログラミング教育**」×「**教材**」というワードの記事のタグ名を取得する。
（最近のトレンドを知るため、プログラム実行時点（2021年4月23日23時00分時点）で投稿日時が新しいものから100件を対象。）

```Javascript
// axiosモジュールを読み込む
const axios = require('axios');

// main()関数を定義する
async function main() {
    // QiitaAPIで「プログラミング教育+教材」という単語で記事を検索する
    let response = await axios.get('https://qiita.com/api/v2/items?per_page=100&query=' + encodeURIComponent('プログラミング教育'+'教材'));
    // 結果を出力する
    for (let i=0; i<response.data.length; i++) {
        console.log(response.data[i].tags[0].name);
    }
}

main();

```


#結果・考察
##①プログラミング教育はいつから進んだ（低年齢化した）のか？
「プログラミング教育」「小学生」という双方のワードを含んだ記事は、2014年から登場。2015年から徐々に注目され始めたようであり、件数が増加。
[文部科学省のサイト](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1403162.htm)によると、2018年に「小学校プログラミング教育の手引（初版）」が公示されており、Qiitaユーザーの間でも小学校での必修化（2020年）に向けて投稿件数が伸びているものと予想される。
![グラフ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1280625/20a2aa3e-5a50-9dc1-e29d-56ce05afc218.png)
（※2021年は4件（プログラム実行時点）だったが、集計対象期間が一致しないため、上記グラフからは対象外とした）


##②プログラミング教育で人気の教材（トレンド）は？
取得結果のうち、使用頻度の多かったタグ順に上位10個を抜粋。
すると、「Python」が圧倒的に多い！という結果が出ました。つまり、プログラミング教育で最近人気（トレンド）といえば、「**Python**」ということになるのではないでしょうか。（あくまでも予想ですが、小学生や教師にも親しみやすい？）


| タグ名 |件数 | 
|:-----------|------------:|
| Python       | 21        | 
| プログラミング教育     | 6     | 
| Elixir     | 5       | 
| HTML        | 4          | 
| Python3      | 4       | 
| 機械学習    | 4     | 
| Qiita    | 3     | 
| Ruby    | 3     | 
| Scratch    | 3     | 
| ポエム    | 3     | 

#まとめ
本当はcsv形式で結果を取得したい・・・など、コードに関してはまだまだ改善の余地はありますが、とにかくアウトプットを優先しました。分からないことを調べるプロセスは楽しく、プログラミング等の楽しさも少し分かってきたような気がしています。
今回の考察からも、情報技術の革新が日々進んでいることを実感し、結果的に自身のプログラミングスキルを向上したい！というモチベーションにも繋がりました。（子どもが小学生になったら、教えられるようになりたいです・・）引き続き、がんばります。

#参考記事
[「テレワーク」と「新型コロナ」には相関性があるのか確かめてみた。](https://qiita.com/twtjudy1128/items/836efaf748b8b76a6b82)