Programming Oriented Thinking Online Workshop

This workshop is only available in Japanese.

「プログラミング的思考」というものをご存知ですか?

プログラミング的思考は、ソフトウェア開発者が開発時に使用するツールを使って、課題解決を行うという思考方法の一つです。プログラミングそのものではありません。日本では2020年度から小学校におけるプログラミング教育が必須化されました。小学校でのプログラミング教育では、プログラミングそのものも行うようですが、このプログラミング的思考という論理的な思考方法を身につけることも目的の一つです。

そのような背景もあり、大人もこのプログラミング的思考や論理的思考を学びたいというニーズが高まっています。

日本経営協会様からのご依頼により、自治体職員様を対象のオンライン研修において、プログラミング的思考をテーマに講師を務めました。

この研修は複数回開催です。また、オンラインであるという特徴も活かし、大勢の方がそれぞれの職場や自宅からご参加頂きました。物理的には離れていますが、会場に集まって受けているのと同様に、グループワーク、発表、ディスカッションを行っていただきました。

TOC

オンライン研修でもグループワーク

座学の他、グループワークにも取り組んでいただきました。オンラインでグループワークというと驚く方もいらっしゃると思います。Zoomのブレイクアウトルーム機能を使い、グループに分かれていただき、各グループで課題に取り組んでいただきました。

ブレイクアウトルームはグループごとに独立したミーティングルームを作る機能です。オンラインであってもグループごとの作業が可能となります。グループごとにホワイトボードやチャットボード、画面共有などが可能です。講師は各ルームに出入り可能なので、巡回しながら、適時、相談に乗ったり、アドバイスを行うことが可能です。当日もそのような運用で、各グループを巡回しました。どのグループも特色が有り、活発に議論されていました。

グループワークの課題はScratchのコーディング、アルゴリズムの考案、世の中にあるサービスの分析、イベントの作業や状態遷移の可視化です。

グループごとに成果物をWordやExcel、PowerPointなどで作成するほか、議論もそれらのツール上で作図しながら行っていただきました。画面共有しながら慣れ親しんだツールを使うことで、ホワイトボード機能を使うよりも素早く作業できたようです。また、Scratchの演習では画面共有しならScratchのコーディングを行っていただきました。

演習後は講師からグループを指名して、画面共有して各グループの成果物を発表していただきました。本来は全部ループに全演習を発表していただきたいというのが本音です。しかし、時間の制約もありますので、演習ごとに代表していくつかのグループに発表していただきました。

Scratchのコーディング

Scratchはビジュアルプログラミング言語です。視覚的にブロックを組み立てるようにコーディングを行います。Webブラウザだけで使用可能で、操作方法の習得も容易であり、考えることに集中できるツールです。

本研修の参加者はScratchに初めて触れる方も多いため、入門編として、基本操作や基本的な処理を全員で一緒に操作しました。

アルゴリズムの考案

本研修の演習用に作成した迷路を解くアルゴリズムを考案するという演習です。次の2つの演習に分けました。

  1. 個別の迷路を解く手順を箇条書きにし、Scratchで実装する。
  2. 複数の迷路を解くアルゴリズムを考案し、Scratchで実装する。

前者は単純に個別の迷路をハードコーディングで解くだけです。Scratchで実装していただき、実際にスタート地点からゴールまで辿り着ければOKです。

後者は用意した迷路を解いていただくアルゴリズムを考案し、UMLでドキュメント化、ディスカッションしていただき、Scratchで実装していただくという演習です。複数の迷路を解くことができれば、より良いのですが、1つだけでも良いので、選択していただき、考案していただきました。

ハードコーディングで簡単だった迷路が、アルゴリズム化しようとすると、如何に大変かや人間が考えていることを、コンピュータに考えさせることの大変さなども体験していただきます。また、アルゴリズムで一般化するという考え方なども体験していただきます。

サービスの分析

日常的に使用しているWebサービスやアプリを、もし、自分たちが担当者として実装する・実現させるとしたら、どういったシステムや設備、仕組みが必要かということを、論理的に分析し、UMLでドキュメント化・可視化するという作業を通じて、プログラミング的思考を体験していただきました。

事象の可視化

状態遷移という考え方も追加し、あるイベントをプログラミング的思考を使って、手順や流れなどを可視化し、論理的に記述、説明するという演習を行っていただきました。イベントの説明文には書かれていない、隠れた要素が分析することで論理的に導けることなども体験していただきました。

本研修のお問い合わせについて

本研修に興味があり、開催を希望される自治体様や企業様は日本経営協会の東京本部までお問い合わせください。

日本経営協会 東京本部

Authored Books

Let's share this post !

Author of this article

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

TOC