「第63回 プログラミング・シンポジウム」 プログラム

日程
2022年1月7日(金) 13:00 開場
2022年1月7日(金) 13:30 開会
2022年1月8日(土) 17:30 閉会
会場
オンライン (チャットとして Slack を,プレゼンテーションと映像コミュニケーションに ZoomGather.town を使用します.)

第1日: 2022年1月7日 (金)

Zoom 開場 13:00
オープニング 13:30 - 13:40

セッション1 13:40 - 15:00 座長: 谷 聖一 (日本大学・文理学部)

小学校の授業でCSを教える
原田康徳 (合同会社デジタルポケット)
概要
小学校でも講師が遠隔で授業を行うことに抵抗がなくなってきた。デジタルの日を記念して、全国の小学校向けに遠隔授業を実施したところ、ライブ参加、動画参加合わせて77クラスに参加してもらえた。入門用の授業の他に、ビスケットを使った「パスワードのひみつ」を実施したところ3年生でも「文字の種類が多いほど、桁が多いほど当てにくい」といった感想をもらえた。同様の授業のアイデアはいくつかあるので、年内にあと2、3の遠隔授業を開催し、その結果について報告する。
[口頭発表] ビスケットにおける自由制作環境「はらっぱ」の活用の変化
渡辺 勇士, 原田 康徳 (合同会社デジタルポケット)
概要
合同会社デジタルポケットでは,コロナ禍においてビスケットの自由制作環境「はらっぱ」を2020年3月より提供をスタートした.子供達が十分に外で遊べない状況のなか,インターネット空間において「はらっぱ」で遊ぶようにビスケットで創作を楽しんでほしいという願いを込めていた.一方で,GIGAスクール構想によってタブレット端末が小学校に急速に普及する中で,ビスケットの導入も進み,2020年末には250万ダウンロードを突破した.そのような背景で「はらっぱ」多くの児童に利用され,従来のビスケットの使い方を大きく超えた活用のされ方をしている.その中ではステージやメガネの使い方の工夫だけでなく,「はらっぱ」をSNSのようにオンラインコミュニケーションツールとして活用する例も見られた.本発表ではこの「はらっぱ」の活用のされ方の推移と,実際に作られた作品を紹介する.
休憩 15:00 〜 15:20

招待講演 15:20 - 16:50

テキスト言語まで学べるコンピュータサイエンス教材「Playgram」開発秘話
西澤 勇輝, 岡本 雄太 (Preferred Networks)
概要
Preferred Networksは、2020年7月より教育事業を開始しました。大手私塾とタッグを組み、独自に開発したプログラミング教材Playgramとタイピング教材Playgram Typingを通じて、日本のプログラミング力の底上げに日々取り組んでいます。Preferred Networksが考えるこれからのプログラミング教育に求められるものと、その課題をご紹介します。
休憩 16:50 - 17:00

夕のセッション 17:00 - 18:00

夕のセッション 「ソフトウェア・エンジニアと学術系コミュニティ」 17:00 - 18:00

各種報告 18:00 - 18:20

情報科学若手の会,GPCC など各種報告 18:00 - 18:20
Gather.town 開場 18:20
このあとのイベントは 19:00 からで予定しておりますが,会場となる Gather.town は早めに開ける予定です.参加者と話しながら夕食などをとりたい方はこの時間からご参加ください.

GPCC,ポスター・デモセッション,自由討論 19:00 -

すべて同じ Gather.town の空間の中で行います.各セッションやデモをやっているところに「近づく」と声が大きく聞こえ,離れると声が聞こえなくなっていくので,興味のあるところへ適宜「移動」してください.

ポスター・デモ

「情報Ⅰ」において取り扱われる用語間の関係性に関する考察
柴田 雄登, 山根 一朗, 赤澤 紀子, 赤池 英夫, 角田 博保, 中山 泰一 (電気通信大学大学院 情報理工学研究科 情報・ネットワーク工学専攻)
概要
2022年から高等学校で科目「情報Ⅰ」が必履修となる。この科目で情報の科学的な理解を目的とした学習を行う。さらに、2025年から大学入学共通テストにおける出題科目として「情報Ⅰ」が定められる。このことから、複数の大学が大学入学共通テスト「情報Ⅰ」を入学試験として課し、また大学入学個別試験においても科目「情報」を出題する大学も現れるようになっていくと考えられる。これらの試験において、どこまでの学習範囲の内容を取り扱うかについての認識が出題者側と解答者側で一致する必要がある。そのため、本研究では「情報Ⅰ」の教科書に掲載されている用語および学習指導要領解説に掲載されている用語を調査し、科目「情報」についての知識体系に関する考察を行う。さらに、用語間の関係性に着目し、用語についての上位概念の用語、下位概念の用語、関連語を調査する。これにより、ある用語と別の用語を関連付けることで、より効果的な学習を行えるようにする。
ビスケットにおける自由制作環境「はらっぱ」の活用の変化
渡辺 勇士, 原田 康徳 (合同会社デジタルポケット)
「情報Ⅰ」でのプログラミング言語の扱いについて
中野 由章 (工学院大学附属中学校・高等学校)

自由討論 20:00 -

第2日: 2022年1月8日 (土)

セッション2 9:20 - 11:20 座長: 寺田 実 (電気通信大学)

実世界地理情報を利用したMinecraftでのマップ生成の試み
栗原 司, 横山 大作 (明治大学大学院)
概要
Minecraftは世界が全てが立方体のブロックで構成されており、このブロックを自由に配置して建築を楽しめるゲームである。 このMinecraftのマップ生成に関する研究は盛んに行われており、街を自動的に生成し、そのリアリティや景観の美しさを競うという大会も毎年開かれている。 今回は特に、初期マップとして与えられた地形を活かして農地や人工構造物を構築するタスクに取り組む。ここで、現実にあり得るリアリティのある土地利用を行うことを目指し、現実世界の土地利用状況を参考にすることを試みた。本発表では世界中の土地の利用状況を網羅するCopernicus Global Land Serviceの提供する衛星からの観測データを利用したマップ生成手法の検討とその問題点について議論する。
攻撃側が置くタイルの数を選択できる対戦型2048に対するニューラルネットワークプレイヤの学習
小田 駿斗, 松崎 公紀 (高知工科大学)
概要
対戦型2048は,確率的一人プレイヤゲーム「2048」を二人プレイヤゲームに拡張したものである.松崎らは,Nタプルネットワークおよびニューラルネットワークを利用したプレイヤ作成について過去のプログラミングシンポジウムにて発表した.しかし,それらの研究では,攻撃側プレイヤの置くタイルの数に関して異なるルールが採用されていたため,得られた結果について直接比較することができなかった.本研究では,第62回プログラミングシンポジウムで発表したニューラルネットワークプレイヤをもとに,ゲームのルールをNタプルネットワークプレイヤで用いていたもの(攻撃側プレイヤが 2 と 4 のタイルを自由に選べる)に統一して学習した結果について報告する予定である.
大学入試共通テストを想定した高等学校「情報I」試行テストの実施とその結果に関する考察
竹中 章勝 (奈良女子大学)
概要
2020年より小学校から順次新学習指導要領が施行され2022年より高等学校が新学習指導要領に移行する。令和7年度から実施予定の共通テストにおいて「情報I」の実施が予告された。独自に作成した試行テスト問題を現在の高等学校で実施した。小学校で必修となったプログラミング的思考の学びから高等学校のコンピュータとプログラムで学ぶ内容までの学びとともに「試行テスト」の結果をもとに「情報科」の学びと試験結果の分析と考察を報告する。
休憩 11:20 - 11:30

スポンサーセッション 11:30 - 12:00

ビジネスを加速するソフトウェア高速化の世界
冨田 明彦 (フィックスターズ)
概要
フィックスターズは、ビジネスで生じる様々な課題を解消するため、 ソフトウェアの力で高速化する事業行っています。 ソフトウェアとコンピュータアーキテクチャの両方を 熟知するからこそできる世界がそこにはあります。 ソフトウェアで高速化するとは何か?という説明から、 現在当社で取り組んでいる量子コンピューティングの研究開発までをご紹介します。

山内奨励賞表彰・受賞講演 13:00 - 14:00

ReDoS 検出プログラム recheck の開発
藤浪 大弥 (日本大学文理学部情報科学科)
概要
recheck は発表者の開発している,正規表現の脆弱性 ReDoS を検出するプログラムで,オートマトン理論に基づく検出アルゴリズムとファジングを用いた検出アルゴリズムの両方を実装し,さらに与えられた正規表現に応じて時間的・精度的に適切なアルゴリズムを選択する機能を備えていることが特徴である.今回の発表では,前回の発表内容の概略に加えて,発表以降に行なったファジングに対する改良などについても紹介したい.
立体連結ゲームBridget のプログラミング ー 古典的手法再び+√α
竹内 郁雄 (東京大学名誉教授), 天海 良治
概要
昨年のプログラミングシンポジウムで発表した「立体連結ゲームBridget のプログラミング ー 古典的手法再び」にαの平方根ぐらいを足した内容を簡単に紹介する.発表後しばらくの間,もっぱら定跡の整備を行ったが,まだ完全ではない.定跡を登録する過程で新たなロジックを追加したりする必要も多々あった.なお,指してはいけない手(人が指したらラッキーというわけで,コンピュータがほぼノータイムで喜んで指す)も「裏定跡」としてたくさん追加した.また,このプログラムの開発を通して得られた「共通言語の重要性」の教訓についても紹介する.講演の付録として,いくつかの興味深い「次の一手問題」をダウンロード可能な形で紹介する.
休憩 14:00 - 14:20

セッション3 14:20 - 15:40 座長: 中野 圭介 (東北大学)

Gears Agda による Red Black Tree の検証
上地 悠斗, 河野 真治 (琉球大学大学院理工学研究科工学専攻)
概要
OS やアプリケーションの信頼性を高めることは重要な課題である。 信頼性を高める為にはプログラムが仕様を満たした実装を検証する必要がある。 具体的には「モデル検査」や「定理証明」などが検証手法としてあげられる。 当研究室では Continuation based C (CbC) という言語を開発している。 CbC とは、 C言語からループ制御構造とサブルーチンコールを取り除き、 継続を導入した C 言語の下位言語である。 その為、それを実装した際のプログラムが正確に動作するのか検証を行いたい。 検証には定理証明を用いるため、 定理証明支援器のAgda を用いる。 agdaが変数への再代入を許していない為、ループが存在し、かつ再代入がプログラムに含まれるデータ構造である red black tree の検証を行う
[口頭発表] 制約オートマトン:理論と実装
新屋 良磨 (秋田大学)
概要
制約オートマトンとは有限オートマトンに「数を数える能力」を付加した拡張モデルであり,例えば { a^n b^n c^n | n > 0 } のような非正規言語(かつ非文脈自由言語)を認識することができる.数を数える仕組みはPresburger算術という値の足し算と比較のみを備えた算術体系によって実現される. 本講演では制約オートマトンの基礎理論について紹介し,制約オートマトンを用いて「数を数えることのできる正規表現エンジン」の実装や工夫について議論する. また,制約オートマトンのさらなる拡張についてもいくつか提案を行う.
休憩 15:40 - 16:00

セッション4 16:00 - 17:20 座長: 前田 敦司 (筑波大学)

Raku のサーバーを用いた実行
大蔵 海斗, 河野 真治 (琉球大学大学院 理工学研究科 工学専攻)
概要
最近のスクリプト言語ではコンパイラが自身で書かれているケースが多い. 例えば, PyPy や Go 言語, Haskell などである. 現在開発の進んでいる言語に Raku がある. Raku はコンパイラが Raku 自身で書かれてるため, 起動時に毎回コンパイラのロードとコンパイル, JIT コンパイルを繰り返すことになる. そのため, 起動時間及び処理速度が Perl5 や Python, Ruby など比較し非常に低速である. そこで, この問題を解決するために, 既にコンパイラをロードしてあるサーバーを同一 ホスト内に用意し, このサーバーに実行するファイル名を転送し, サーバー上でコンパイルを行う手法を提案している. Raku に対しては, 当研究室にて Abyss サーバーを開発している. 本稿では, Abyss サーバーの抱えるいくつかの問題の改善を図った.
Future Possibilities and Effectiveness of JIT from Elixir Code of Image Processing and Machine Learning into Native Code with SIMD Instructions
山崎 進 (北九州市立大学)
概要
Nx is a multi-dimensional tensor library for Elixir with multi-staged compilation to the CPU or GPU, similar to NumPy and TensorFlow in Python. Nx is expected to be applied in image processing and machine learning. Code used by image processing and machine learning in C or C++ is often optimized for CPUs into native code with SIMD instructions. In this paper, we will show that native code with SIMD instructions is 1000x+ faster than equivalent Elixir code with Nx, to evaluate future possibilities and effectiveness of such code generation and optimization. Our future works are to implement and evaluate our proposal: a backend of Nx generating SIMD instructions by NIFs and/or BeamAsm using our compiler and/or OpenBLAS or cuBLAS.
クロージング 17:20 -

照会先