セガは4月27日(月)、同社公式の技術ブログを更新し、プログラミング言語「Python」(パイソン)の勉強会に関する事例を紹介している。
プログラミング「Python」をご存知ですか?
— セガ公式アカウント🦔 (@SEGA_OFFICIAL) April 27, 2020
学びたいと思っているPython超初心者のセガ社員向けに社内勉強会が開かれました。ビジュアルプログラミングや作業分解した様子をお届けします。
【#セガ技術ブログ 更新!】#Python の勉強会(入門編)の事例紹介
⇒https://t.co/Iy8V6ACLBz #SEGATECHBLOG pic.twitter.com/haWmUxquQM
勉強会はPythonを学びたいと思っている初心者のセガ社員に向けて開催されたもので、きっかけとなったデザイナーとプログラマーの橋渡し役となるテクニカルアーティスト(TA)やゲームの動作設定を行うスクリプターなどの役職に「Pythonを使える人材を増やしたいと考えている人」をはじめ、「興味があって学習したいと考えているが何から手をつけてよいかわからない」人や「プログラミング言語の勉強会をこれから開こうと考えている」人へ向けて実施された。
全4回開催予定の勉強会における「入門編」となる第1回ではプログラミングの経験がない、あるいは浅い人にとっては絵や図を用いて視覚的に理解できる「ビジュアルプログラミング」や、目的を達成するために必要な作業をわかりやすく洗い出す「作業分解」が教材として有効である点を最初に挙げている。
そして、“いきなりPythonに手をつける”ことはあえてせず、プログラミングの基本となる「順次処理」、「条件分岐」、「繰り返し」を学ぶことを「Pythonを覚えるための近道」として挙げた。これは先にたっぷりと自信をつけることで、少し困難なことにチャレンジして成功体験を得られるサイクルになるよう、なるべく道筋を整える狙いがある。
当日はキャラクターをコマンド操作にとって宝箱まで導く「ビジュアルプログラミング」の教材を用意。向いている方向へ進む「矢印」、90度づつ方向を転換する「時計回り」と「反時計回り」のコマンド3種類を使って宝箱までキャラクターを移動させる方法を学んでいた。また、「コマンドを9つぴったり使う」や「3種類すべてのコマンドを使う」などの条件を設けて難易度を上げる方法も提示されている。
つづくふたつめの課題では、新しいルールとして通行不可の「岩」マスが追加され、参加者は岩を避けるような形でのプログラミングを要求された。また、勉強会では下の画像のような「岩で完全に塞がれた」配置の図も示されたうえで、「どのようなプログラムを書けば宝箱へ到達できるか」という思考問題も出題。
ひとりの回答者が(“マスの外は歩けない”というルールは聞いていないので)「“マスの外に出て迂回して移動するように”コマンドを書けば良い」との柔軟な回答を提示した。
この回答はルール定義の不足から導き出されたものであり、実際のプログラミングで同様のことが起きればルール抜けや欠陥、すなわち「バグ」として取り扱われることとなる。出題者はこのエピソードを「色々な状況や問題を事前にすべてもれなく想像できるようになれることが最高」と振り返っている。
後半では「作業分解」からプログラミングの基本となる「順次処理(シーケンス)」、「繰り返し(ループ)」、「条件分岐」について学んでいる。例としてあげたのは「カレー作り」の図だ。この図において順次処理はカレー作りにおける「手順」を、条件分岐は「具材が生煮えしていないかの判断」を、そして繰り返しは「具材の煮込み直し」を表している。
出題者は「手順3と手順4の間に“アクをとる作業”を追加で入れる」可能性や「手順2と手順3の間で隠し味を加える」可能性、またそもそもとして「一口大に切る前の野菜を洗う手順」が抜けている点を挙げ、丁寧な作業分解の必要性を示している。
勉強会では実際に「洗濯」をグループごとに作業分解することでどのような「作業分解表」ができるのか試みたようだ。
出題者は「日頃の業務において何か改善したいと思ったときに、どういう手順でどの作業を行って解決するか、その一連の流れを考えることがとても大事」としめくくっている。結果的にセガ社内での潜在的な需要は高く、本勉強会は100人以上が参加し、「次回も楽しみ」などの好評を得たようだ。
ライター/ヨシムネ