1. kkeethのエンジニア雑談チャンネル
  2. No.290 「プログラミンク..
2023-10-11 19:19

No.290 「プログラミングの講師の前半を追えて」

はい!第290回は,ここ数年KADOKAWAドワンゴ情報工科学院(旧:バンタンテックフォードアカデミー)というところでプログラミングの講師をさせていただいているのですが,今年の前半も一本講義を持たせていただいたので,その振り返りのお話をしました💁


情報系の教育に携わる方なら同じようなことを感じたり,共通の悩みや気付きもあるかと思いますので,もし近しいことをされている方,ぜひお話ししましょう❗


ではでは(=゚ω゚)ノ


ーーーーー

🔗 LINKS

・KADOKAWAドワンゴ情報工科学院

https://techford.jp/lp/lecturer/programming/03/


🎵 BGM

・騒音のない世界「春らんらん」

https://soundcloud.com/baron1_3/trx257vswdz9

See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

00:09
はい、9月30日土曜日ですね。僕は朝9時30分になっていたはずです。
はい、すいません。今回また私が配信の設定をミスしまして、今これは後付けで撮っております。
はい、でまた今回の配信ですけども、今回は「プログラミングの講師の前半を追えて」みたいなタイトルで喋っていると思います。
えー、私がですね、バンタンテックフォードアカデミー、あ、これは旧称ですね、今は角川土案語情報効果学院という名前で再スタートを切ったというようなところですね。
この教育機関で一つプログラミングの講師をさせていただいているんですけども、今年ですね、もう上半期させていただいてて、
今回は昨年にも続き、P5JSをベースにしたMAMのクリエイティブコーディングの講師をさせていただきましたと。
でもそれの前半を終えて、まあいろいろ喋っていると。
で、この講師も何年目ですかね、2年か3年くらいやってるんですけど、はい。
で、今年もさせて、1本持たせていただくので、それの振り返り的なお話を今回はしているかなと思っております。
それでは本編をどうぞ。
1年目?違う2年目かな?3年目かな?もう忘れました。
まあ何年目かでやってるんですけど、最初はJavaScriptを教えてたんですね。
JavaScriptっていうか厳密に言うとVue.jsまで行って、
で、なんかToDoリストみたいなのを作るっていうところまでやるみたいな講師を1年目にやってて、
2年目も同じような内容をやってたんですけど、3年目にして、
僕が最近何度か喋っているGenerative Artっていうものですね。
去年の10月くらいから始めていったGenerative Artですね。
P5JSっていうライブラリを使って、デジタルなアートを描きましょうみたいなやつですね。
そういうツールの1つなんですけど、使ってわちゃわちゃやってて、
それの人に教えることもできますよっていうふうな相談をしたら、
アカデミーの方で、じゃあそれもやってもらったら面白そうですねと。
そんなにプログラミングでものを作るだけじゃなくて、
そういうアートの世界に行けたりとか、まさに今NFTの話が結構出ているので、
自分で販売することも一応できますよっていう夢の話もできたりするので、
そういう手段っていうか武器を身につけるのどうですか?
ぜひやってくださいということをさせていただきます。
今年3年目の前半も同じようにP5JSを使ったクリエイティブコーディング、
Generative Artの話をしてて、
昨日がまさに最後の授業だったんですね。
上半期15週の講義をやってて、それでちょうど終了したんですね。
もし興味ある方とか見てみたいなって方はですね、
スライド自体は実はもうインターネットに公開をしていて、
僕のGitHubアカウントをガーッとリポーチドリームで探せば出てくるんですけど、
リポーチドリームにバンッと普通に入ってますから見てますけど、
興味ある人は後でメッセージいただければURLを送ります。
簡単なJavaScriptを書けたりとか、
Webの基本が分かっている人、いわゆるHTMLで施設JavaScriptで動いていて、
03:03
CDNとかでライブラリ読み込んで補強系とか、
JavaScriptを基本文法を書ける人ですね、
ファンクションが分かってますとかスコープが分かってます、
あとクラスが分かっている人ですね。
クラス構文を実は使うんですね。
ちょっと古典的な書き方なんですけど、PHY.jsっていうのは。
もちろん今のモダンなハロー関数を使ったりとか書き方も全然できるんですけど、
なんだかんだ関集としてちょっと古典的な書き方をしたりします。
ES5ですかね。
クラスは6か。
なんですけど。
の書き方をしたりしますけど、
基本的にはWebの基本が分かっている人は全然読めると思います。
多少ちょっと数学チェックなお話も出てくるんで、
そこで抵抗感ある人はうーんってなるかもしれないですけど、
なるべく分かるような解説をしているつもりではあるので。
やっぱり人に物を教える中でいろいろ感じるものとかすごくある。
今日はそういう話をしようかなと思ってます。
自分が授業を受ける側ではなくて教える側に立ったら、
やっぱり分かることとか見えてくることとか感じることっていっぱいあるんですね。
そして一番はやっぱり学びが大きいんですよね。
人に物を教えることが一番の学びになるって本当にその通りだと通観してて、
毎年毎年思ってるんですけど。
15週やってて、一番最初は概論とか環境をやって、
Generative ArtとかP5.jsなんぞやとかやって、
JavaScriptの基礎から入ったんですね。
JavaScriptの基礎なんですけど、
もう僕あれですね、JavaScriptを教えるときに資料あんま作らなくて、
AZさんって方がいらっしゃるんですけど、
AZさんが書かれているJS Primerっていう書籍があります。
これは達人出版会で出版されてますけど、
オンライン上でも全然見れます。
インターネットでJS Primerで調べてみてください。
この書籍がですね、JavaScriptに関してここまで丁寧かつ詳しく書かれている書籍が
他にはないと思ってて、
これを超えるものがないので、
自分が作るのは何番千字なんやねんぐらいだと、
かなり劣化版みたいになってしまうので、
あんまりもう資料を作らなくて、
この教科書にのっとって教えているって感じですね。
とても素晴らしいもので皆様も見てみてください。
そこからちょっと数学基礎をやったんですけど、
数学基礎って言っても、
数学をどこまでやるかちょっと悩ましいんですけど、
今回は本当に簡単なもの、単純なものだけでいったので、
座標系ですね、いわゆる。
僕らが世界で知っている直行座標ってあるじゃないですか、
縦と横が90度に交わる直行座標ってあるんですけど、
現物でいうとデカルト座標って言っていて、
デカルト座標の交わるところの角度が90度っていう特殊な場合のことなんですよ。
それが特殊だから名前がついて直行座標って言ったりするんですけど、
正式名称はデカルト座標ですね。
フランス人だっけ?
デカルトさんが名前つけたみたいなことを言ってた気がしますけど、
もう忘れました。
いわゆる座標系の話と、
あと速度と加速度ですね。
今回の講義で使ったのはほぼほぼ速度、加速度ばっかりです、
数学といっても。
途中で三角関数も使いますけど。
この辺の話をしてました。
僕らが一番馴染みのある数学の数式とかっていうのは、
多分速度と加速だろうなと思ってて。
06:00
特に加速度に関しては意識できてないかもしれないんですけど、
重力って正式名称重力加速度って言ったりしますからね。
重力自体も加速度なので、
同じように数式で表せるし、
それをプログラミングにも落とし込むことができると。
そんな話ですね。
あとはベクトルの話ですね。
数学界のベクトルとプログラミングのベクトルはちょっと違うかもしれないですけど、
概念的には結構同じようなものを、
毎ことプログラミングとコンピューターに表現させるような感じになってます。
数学のベクトルっていわゆる向きと量ですね。
どれぐらいの量があるのかと。
どっちの方向なんですかっていうのを表しますけど、
その方向っていうのを座標で表しますよね。
2次元平面だったらXとYとか、
3次元だったらXYZっていう、
3つの座標を使って方向を表します。
それの原点からの距離ですね。
とかを取ると量が分かります。
原点って言っても基準点がどこにあるかによってまちまちなんですけど、
基本的にはスタートは原点ですね。
原点Oからやるので、
そこからの距離とか量のことをベクトルの量と言ったりしますけど、
そんなような話をしたりします。
そういうことを使って、
例えば画面上でボールを表現するんですけど、
そのボールが画面上で物理的に跳ねるような感じの表現をするんですよね。
それは重力加速度を使って、
跳ね返り係数とかもあったりして、
それをうまいこと表現をするんですよね。
あ、うちも今まさにプログラム授業やってます。
2時間かける5日。
こっちは解説するが分かってないのもあって、
数学要素はほぼゼロで。
難しいですよね。
日本の詰め込み教育の数学って多分面白くないんですよね。
基本的に文科省が決めたカリキュラムを
淡々とやってるって感じで、
しかもまずこういう公式とか定理とか何とかあります。
これはこういうものです。
具体的にはこうやって計算して使います。
はい皆さんやって復習してくださいみたいな感じなので、
これが何が面白いのとか、これがどうすごいのとか、
全然語られない授業とか、
僕は結構多かったので、
数学っていう時点でなかなかね、
みんなが聞いてくれない感はありますし、
実際僕の授業でも、
かなり簡単なものにしたんですけど、
かつ皆さんの馴染みがあるものっていうところの
具体例とか出したんですけど、
あんま話聞いてくれなかったです。
さておき、そういう加速度とか重量加速度を使って、
物理的にボールが跳ねるようなものを
画面上で表示させましょうと。
1個やったらそれをボールを複数個やったりとか、
横からこう風が吹いて、
壁にもぶつかったりして、
その跳ね返りとかっていうのを
表現するとかをやったりしましたね。
加速度とか重量加速度って結局1方向しかなくて、
どっかから力を加えない限りは
基本的には遠足リザーと動く感じですよね。
それをいろんな方向に
動かしたりするということを表現するために
やっぱり三角関数が必要で、
そこから三角関数やったんですね。
といっても三角関数も
難しいというか、
数学でみんなが挫折する
最大のところって多分三角関数なんですよね。
でもこれもすごい難しいこと
やっちゃいけないし、
難しいことをやるときっていうのは
難しい表現をするために使うのであって、
簡単な表現であれば
三角関数って本当に簡単ものしか使わなかったんですよね。
数学ってよく
聞かれる質問で、
毎回数学の話を講義でやると
毎回聞かれるんですけど、
09:00
何の役に立つんですかって
時代を越えてみんな聞くんだなと思って
逆に言うと時代を越えて
この国はちゃんと数学の面白さとか
魅力とかどういうところで使われているか
っていう話を誰もしてないんだな
みたいな感じがしますね。
誰もっていうのは多分公立校みたいな感じですけど。
数学なかったら皆さん携帯電話とか
存在しませんからねみたいな
ちょっとたまにしたりしますけどね。
三角関数ですね。
三角関数やる前にまずは三角の話をしなきゃいけないので
三平方の定理とか
二等辺三角形とかでちょっと復習したりしますね。
斜辺と底辺と
高さみたいな話があるんですけど
あれをちゃんと画面上で
もう一回意識しますっていうので
当たり前に思ってるかもしれないですけど
ちゃんと言葉として概念として思い出すことは結構大事なので
そこからやったりしてます。
僕の講義って結構座学が多かったので
座学が多いと皆さん聞かないっていうか
眠くなるんですよね。
そこが結構難しくて
原理から入ってそこを理解して
じゃあ実際に使ってみようっていう講義と
先にとりあえずやり方とかは
覚えてやり方とか
書いてみて実物なものを作りながら
後で補填する意味で
原理とかを理解するって
どっちがいいのかなっていうのを悩んでたんですけど
今回の授業ではオーソドックスに
まずは原理を教えてみて
こういうもんだって理解した
じゃあそれを使って具体的に身につけましょう
っていう風にやったんですけど
今回はほぼついてこなかったですね
僕の講義で私が45人受講したんですけど
最終的に
昨日最終講義だったんですけど
最終発表まで残ったのは8名だったんですよね
まあでも8名残ったっていうのは
結構大文字だったり
言うことも確かにできなかったんですけど
まあ大変なんですよね
数学は末端の人が役に立たなくても良いように進歩してきたのが重要だと思ってます
なので何もしない人が数学に役立ちたいと思うのは
まあでも確かにそうですね
難しいと思うのは
抽象度を高くしていったっていうのは正直あって
抽象的にするってことは
皆さんが汎用的に誰でも使えるようにするとか
意識しなくてもできるために抽象化をするので
確かにまあ
みんなが分かんないって思うのは
逆に言うとそれだけ
当たり前になったってことだというのは
すごく良い話ではありますよね
でもそれを自分で使うって意識するときに
初めてやっぱり理解しなきゃいけないよね
ってのはあるので
ここがちょっと今回の壁だったって感じですけど
まあそういう話をもうしてて
なんで算額関数をやるかっていうとですね
そういうのとかをプログラミングを使って表現すると
多少の数式を使ったりとか
数学のテクニックを使う必要があって
逆に言うとそれを使うと
ものすごく面白い表現とか
特にアニメーション周りとかっていうのは
ほぼほぼ算額関数を使うと
いろんな表現力が一気に増すので
やっぱこれ外せなかったんですよね
で算額関数を使うんですけど結構
よく使うのが極座標って言われるものなんですよね
皆さんご存知ですかね
極座標っていう別の座標系があって
これ何かっていうと
原点からX軸方向を押せとしたときに
そこを軸に角度どれくらい回ってますか
っていう角度と
原点からの距離ですね
っていう長さ
この2つを座標系に取ったものを極座標と言ったりします
要素1は距離Rで
要素2はシータなんですね
Rとシータで
12:00
表現される数式みたいなものがあるんですね
これをうまいこと使っていくと
美しい表現がたくさんできるんですけど
でもRとシータだと
画面上にプロットできないので
それを画面上にプロットするために
XYZっていう直交座標系に
変換する必要があるんですね
それを変換するときに
三角関数とかサインコサインを使うんですよね
っていうことを
お話をしなきゃいけなくて
逆に言うとそこだけです
三角関数を使ったのはサインコサインだけを使いました
とにかく美しい表現とかアニメーションするのに
三角関数を使っていて
それは極座標を直交座標系に
変換するときに使いますと
XイコールRかける
コサインシータで
YイコールRかけるサインシータ
みたいなのが極座標の直交座標に
変換する数式ですね
これ図に書いたほうが分かりやすいんですよね
円があってその半径Rのところから
X座標って横軸なんですよね
横なので
斜辺分の底辺だからコサインを使われる
なのでRかけるコサインシータが
X座標に変換されると
Y座標は底斜辺分の高さなので
サインなのでRかけるサインシータで
高さY座標が出るみたいな感じです
一応3次元だと
Zも一応出ます
Zの場合はサインとコサインが
もう1回ずつかけられるみたいな感じになって
ちょっと複雑なのではしょげますけど
そんな感じで極座標の数式を
直交座標に変換するっていうことをやって
プロットしていくと
美しいものが絵を描けるようになって
面白いんですよね
でもこういうのもやっぱり口では伝えられないので
見てもらうのが一番分かりやすいんですよね
もしこれ実際にこの講義再現してほしい
ってあれば全然しますし
その辺見てもらってもいいと思いますけど
この辺の基本的なもののテクニックですね
ツールっていうのを渡ししたので
あとはそこからもう
皆さんで好きに描いてくださいねみたいなことを
結構やってきたって感じですね
今回でもクリエイティブコーディングの話なので
コードリーディングすることはすごく大事だと思って
他の方々が実際にオープンにされている
作品のソースコードを眺めていって
それを社境したり
これ何やってるんだっていうのをトレースをしていって
テクニックですね
そのテクニックをここで学んでいったっていうようなことを
やったりしましたね
そんなことをずっと15週に分かってやってて
最後に皆さんで成画物を作ってきて
それの発表会をして
皆さんでフィードバックをしちゃって
クロージングみたいなことをやったんですけど
難しかったのは
座学とハンズオンの
バランスとアカデミックな内容を
どこまで含めるかっていうのがすごく難しくて
結果論からすると
ハンズオン全振りで
よかったんだろうなって思いました
そのプログラミングの授業の内容ですね
今までみたいに
JavaScriptとかReactとかVueとかを使って
ブログを作ったり
Tudoアプリを作るところまでを完成として
それの講義をするっていうのは
話は変わるかもしれないですけど
完全にデジタルアートをするっていうものであれば
とにかく物ができる方が
楽しいっていう風にまず思ってもらうのが
一番大事なので
その楽しさを体感するためには座学じゃなくて
やっぱ物だよねっていう感じは正直して
割と反省ではありましたし
次回からやるときは
15:00
ハンズオン全振りで
ロジックとか理論みたいなところは
後から補填するか
聞かれない限り言わなくてもいいかなって思いました
皆さん自分で調べてねってことにしようかなと思ってます
僕塾の講師も今まで
大学からやってきたりとか
ずっとやってるわけじゃないんですけど
ちょいちょいやらせていただいたりとか
一回学校退学して
そういう人たちが社会復帰するための学校みたいなのがあるじゃないですか
そこに学習ボランティアで
英語とか数学とか教えに行ったこともあったり
割とだから
人に物を教えるの結構大好きなんですよね
でもまぁ教えるっていうとすごく
上から目線であんまり好きじゃなくなってきたんですけど
教えるというか
自分が結果学んでる感じはすごく強いんですけど
とはいえ僕も学びになるし
教わる側の方も学びになるって
お互いが学びの場になるって意味ではすごい価値的なので
物を教えるってのはすごくいいなと思いましたし
そういうチャンスがあったら手を挙げていきたいんですけど
教える側に立った目線と
教わる側の目線って
なかなかリンクしないなって
痛感しましたね
これはもうずっと今まで思ってるんですけど
これはなんか
十何年やってきて変わんないなっていうのは一つ思いましたね
自分も教わる側に立ったこともあるし
未だにいろんなところに
お金出して実際に
セミナー行ったりとか
講師してくれる方のところに
学びに行くことはあるんですけど
同じ体験してるはずなのに
いざ教える側に立ってみると
できないことって本当にたくさんあって
これができるようになったらまた
違うものが見えてきたりするんでしょうけど
なんかここが僕が超えられない壁として
すごく難しかったなってやっぱりありますし
一番はですね
これ言い方悪いんですけど
全員にちゃんとものを教えてみんなが身につけられるっていうのを
諦めるしかないなって正直思いました
もっと言うと1割ですね
10%の人がついてくれば
もう多分同じなんだろうなと思ったりします
で義務教育はやっぱ義務なので
やらなきゃいけないみたいな感じでやるので
勉強の
域を超えないんですよね
勉強つまり強いて勤めるとかじゃないですか
強いなきゃいけないんですよね
学習とか学びっていうのは
自発的にやるものなんですよね
そこまで消化するには
最後自分の意欲に頼るしか
正直僕はないと思ってますし
そういう意欲がない人は多分
学習が続かないと思うんですよね
特にプログラミング的なお話とか
IT業界の話って
僕ずっと使ってる大好きな言葉に
習うより慣れろって言葉が
言い方とか表現はいっぱいありますけど
とにかく自分で手を貸して
身につけたものが自分のスキルになる
っていうお話ですね
僕らができることはその手助けだったり
その手段とかの最初の手ほどき
ぐらいしかできなくてあとは皆さんに
自走してもらうしかなく
僕ら教師は何をするかというと
リファレンス的にとか
メンターとして存在するのが
一番正しいと思ってるんですよね
受ける学生さんがいかに先生とか教師を
使い倒すかっていうところが結構大事だと
僕は思ってて
それが一番いいなと思ってはいたりするんですよね
今年の後期もまた
後期一歩戻せてもらうんですけど
その時は教えない授業を
今回やってみようかなと思ったりしました
教えないというのは最初に成果物と
今回のゴールこれですと
18:00
それを皆さんが岩からググったり調べて
何とか表現してくださいっていうのをやって
僕はその中ずっと
教室をうろうろ歩いてて質問対応したりとか
途中時間が経過したら
こういう風にやりますよって
例えばの僕の例としてのコードを書いて
渡すというのをやってみようかなと思ったり
してます
超実践の授業になりますし
逆に言うと僕は資料をそこまで作らなくて
よくなるので準備は楽なんですけど
質問に対応できるかって
僕の技術力を求められたりするので
割とハードルは高くなるんですけど
これも実験だなと思って
10月2週くらいからやってみたいと思ったり
してます
だらだら喋ったりつまらないから10時近づいてきたので
今日はこの辺で終わりたいと思います
またでもこういう教え方の
変化をつけてどういう
気づきとか学び合ったかっていうのは
どっかでお話しできたらなと思ったりしますので
お楽しみいただければなと思います
じゃあじゃあぼちぼち終わっていけたらなと思います
ちょっと最近なかなか技術の勉強ができてないので
技術の発信ができてなく
なんか僕の思っていることとか
考えていることばっかりであれですけど
まあでもこういう話は僕は好きなので
またこういうちょっと抽象的な話ですけど
お話しできたらなと思います
じゃあ土曜日ですね
また9月最後ということでのんびり休んでいただければなと思います
それでは終了したいと思います
お疲れ様でした
19:19

コメント

スクロール