わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

資料の補足(と,昔話)

 本日の資料を見て,「『直線』と書かれているけれど,実際に描画するのは『線分』ではないか?」と思った人は,いませんか?
 その通りです.コンピュータを用いた描画では,数学でいう「線分(line segment)」を,「直線(line)」と呼ぶ慣習があります.
 SVGという画像フォーマットの説明の中にも,「line要素は点から点への線分を定義する。」,英文では“The ‘line’ element defines a line segment that starts at one point and ends at another.”と,書かれています(日本語英語).

 今回,「なぜ『お絵描きツール』なのか?」ですが,2015年度から,この科目で作成・動作してもらっていたのでした.
 数値や文字,またタプル・リスト・辞書といった少し高度なデータ構造も理解しながら,「計算や整形を行うプログラムをPythonで記述する」ためのスキルを身につけることは,もちろん大事なことですが,「プログラミングを通じて楽しむこと」も同じくらい大事であり,その一端が,「お絵描きツール」というわけです.
 長くなりますが昔話を書きます.2014年度の入学まで,システム工学部は「5学科制」でした.受験では出願時に学科名まで書いてもらっていました.当時は本学でクォーター制は採用しておらず,前期は「情報処理Ⅰ」,後期は「情報処理Ⅱ」という科目名で(各科目15コマ),学科ごとに開講し異なる内容でした.
 2015年度から「1学科(システム工学科)・10メジャー制」になり,1年の履修科目は共通となりました.情報処理科目は私ともう一人(他大学で活躍中)で授業内容を決め,他の教員にも授業担当を依頼し,60名(+再履修)×5クラスの授業を実施しました.後期「情報処理Ⅱ」のプログラミングでは,いくつかの言語を学習してもらいました.2019年度には,C言語が7コマ,VBAExcelマクロとして実行)が5コマ,JavaScriptを使用したお絵描きツールが3コマという構成でした.
 2020年度にはクォーター制(情報処理ⅠAからⅡBまで.和歌山大学の4学部で,この科目名に統一されました),クラス編成の変更(シス工1年生は2クラス),そして新型コロナ対応が重なって,遠隔オンデマンド型の授業となりました.
 情報処理ⅡA・ⅡBで,プログラミングを行うのは変わりませんが,プログラミング言語を統一することができず,先に記したもう一人の先生がPython,私がC言語を担当し,受講登録時に選んでもらいました.人数調整はせず,結果として一方の受講者数が他方の倍近くになることもありました.3年間です.Pythonコースの主担当の先生は,毎年変わり,授業資料も引き継がれていました.
 2023年度より,「1学科・3領域・8メジャー制」に伴うカリキュラムの見直しにより,システム工学部の1年科目で学ぶプログラミング言語は,Pythonに統一となりました.
 このような経緯のため,私は2020~2022年度のPythonによる授業の内容を知らなかったのですが,JavaScript由来の「お絵描きツール」も,継承されていたのでした.
 C言語も,Pythonと同様に基本的には文字ベース(Character User Interface; CUI)で記述し実行するプログラミング言語です.2020~2022年度の3年間は,お絵描きツールではなく,SVGの出力を行うプログラムを,作ってもらいました.出力は文字のみですが,ファイルに保存してから開くと,ブラウザ上で画像として表示されます(もちろん出力が間違っていると,意図しない表示になったり,エラーと表示されたりします).発展課題として自由に絵を描いてもらい,提出されたプログラム,SVG画像は,多彩でした.
 SVGはWeb技術の一つとして生まれたベクタ型の2次元画像フォーマットです.上のリンクで,SVGの解説と画像例を見た人は,動画,3D画像,また2次元の中でもDALL-EやChatGPT-4に問い合わせて生成する画像などと比べて,「単純すぎる」と感じたかもしれませんが,その単純さゆえに,面白く,実用的と言えます.データ量を小さくしながら,他と識別できる「絵」を創作するというのは,ニッチ(万人受けしない)かもしれないけれど,これもまた,コンピュータを使った楽しみと言えるのです.
 とはいえ残念なお知らせもあります.「ベクタ型画像」をプログラミングで直接扱う科目はなく,シラバスで明示していませんが私が担当しているWebアプリケーション構築演習という科目では,1コマだけ,JavaアプリケーションでSVGを生成する課題を取り入れています.Webアプリケーション構築演習は,「1学科・3領域・8メジャー制」のカリキュラムに入っておらず,10メジャー制の学生向けに来年度,開講して廃止となる予定です.

なにこれ

 先週の授業で,Teamsに投稿した文章に,少し手を加えました.
 プログラミング授業課題のお絵描きについては: