Compare commits
14 Commits
3e067a2465
...
v4
Author | SHA1 | Date | |
---|---|---|---|
c52875ef03 | |||
b1cc13e269 | |||
eace359d3d | |||
6dc8f99779 | |||
b7458b9624 | |||
2b432e09cc | |||
a4845999d3 | |||
8f6c49a810 | |||
34e8986521 | |||
053551727b | |||
52f7f26c8b | |||
e141c73697 | |||
b371c26dce | |||
7aa25750f7 |
8
content/Ad-Astra.md
Normal file
8
content/Ad-Astra.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
date: 2025-09-20 11:59
|
||||||
|
---
|
||||||
|
#programming-language
|
||||||
|
|
||||||
|
[[Lady Deirdre]]を作ってる人のスクリプティングプログラミング言語。[[Rust]]で実装されてる
|
||||||
|
|
||||||
|
[Introduction - The Ad Astra Book](https://ad-astra.lakhin.com/)
|
8
content/Critical Engineering Manifesto.md
Normal file
8
content/Critical Engineering Manifesto.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
date: 2025-09-16 16:36
|
||||||
|
---
|
||||||
|
#aesthetics
|
||||||
|
|
||||||
|
日本語訳は[[牛込陽介]]さんが書いている
|
||||||
|
|
||||||
|
[The Critical Engineering Manifesto \| jp](https://criticalengineering.org/jp)
|
4
content/JavaScript.md
Normal file
4
content/JavaScript.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
date: 2025-09-17 09:55
|
||||||
|
---
|
||||||
|
#stub
|
10
content/Lady Deirdre.md
Normal file
10
content/Lady Deirdre.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
date: 2025-09-17 09:51
|
||||||
|
---
|
||||||
|
#programming
|
||||||
|
|
||||||
|
インクリメンタル、並列対応の[[パーサジェネレータ]]。[[Rust]]のマクロで型安全に文法の定義をできる。
|
||||||
|
|
||||||
|
[Introduction - The Lady Deirdre Guide](https://lady-deirdre.lakhin.com/)
|
||||||
|
|
||||||
|
ただ、オープンソースだがプロプライエタリなライセンス
|
@@ -11,5 +11,6 @@ date: "2023-09-01T19:08:25+0900"
|
|||||||
- [[Rhai]]
|
- [[Rhai]]
|
||||||
- [[Moonbit]]
|
- [[Moonbit]]
|
||||||
- [[Gream]]
|
- [[Gream]]
|
||||||
|
- [[Ad-Astra]]
|
||||||
|
|
||||||
[[RustでGUIを作る選択肢]]
|
[[RustでGUIを作る選択肢]]
|
29
content/Tree-Sitter.md
Normal file
29
content/Tree-Sitter.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
date: 2025-09-17 09:53
|
||||||
|
---
|
||||||
|
#programming-language
|
||||||
|
|
||||||
|
[Introduction - Tree-sitter](https://tree-sitter.github.io/tree-sitter/)
|
||||||
|
|
||||||
|
モダンな[[パーサジェネレータ]]。
|
||||||
|
|
||||||
|
[[Rust]]で実装されているが、Cライブラリを経由して様々な言語のバインディングが用意されている。
|
||||||
|
|
||||||
|
ただ、言語の文法定義は[[JavaScript]]で行うなどちょっと複雑な作りをしている。
|
||||||
|
|
||||||
|
インクリメンタルな構文解析に対応していることが特徴。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 実際に使おうとしてみての感想
|
||||||
|
|
||||||
|
カスタムの構文解析エラーメッセージの定義とかが難しい。これは長年問題になっているみたい
|
||||||
|
|
||||||
|
[Helpful parser error messages · Issue #255 · tree-sitter/tree-sitter · GitHub](https://github.com/tree-sitter/tree-sitter/issues/255)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Rustのバインディングの問題。
|
||||||
|
|
||||||
|
`kind_id`など多くのAPIがu16でのIDを返す
|
||||||
|
|
@@ -76,4 +76,47 @@ impl Machine{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## 用途
|
||||||
|
|
||||||
|
例えばcatさんに作ってもらったこの辺の再帰を用いたコードがあるとする
|
||||||
|
|
||||||
|
```rust
|
||||||
|
fn gen_metalic_rec(times,freq,oscproto){
|
||||||
|
if(times>0){
|
||||||
|
let next = gen_metalic_rec(times-1,freq*1.176,oscproto)
|
||||||
|
let osc = oscproto();
|
||||||
|
| | { osc(freq) + next() }
|
||||||
|
}else{
|
||||||
|
| | 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn gen_metalic(times,freq){
|
||||||
|
let gen = gen_metalic_rec(times,freq,| | square_0);
|
||||||
|
| | gen() / times
|
||||||
|
}
|
||||||
|
let lowest_freq = 200.0
|
||||||
|
let myoscbank = gen_metalic(6,lowest_freq)
|
||||||
|
```
|
||||||
|
|
||||||
|
こういう組み込み関数を与えて、
|
||||||
|
|
||||||
|
```rust
|
||||||
|
extern enumerate_by: (times,init:float,(x:float,acc:float)->float)->[float]
|
||||||
|
```
|
||||||
|
|
||||||
|
```rust
|
||||||
|
|
||||||
|
fn metalic(times,lowest_freq){
|
||||||
|
let freqs = enumerate_by(times,lowest_freq, |_x,acc| acc*1.167)
|
||||||
|
let res = map(freqs,|f| `square_0(liftf(f)))
|
||||||
|
|> foldl(_, |x,acc| `{ $x + $acc } )
|
||||||
|
`{$res / liftf(times)}
|
||||||
|
}
|
||||||
|
fn dsp(){
|
||||||
|
metalic!(6,200)
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
Submodule content/private updated: feb4ef4114...16aae05f00
89
content/コードとデザイン 授業設計の覚書.md
Normal file
89
content/コードとデザイン 授業設計の覚書.md
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
#writings
|
||||||
|
|
||||||
|
※この文章は、AMC JOURNAL(東京藝術大学芸術情報センター紀要)2025への掲載を目的として執筆する草稿である。
|
||||||
|
|
||||||
|
## Abstract
|
||||||
|
|
||||||
|
本稿は、2023年度から2025にかけて実施されたAMC開設授業「コードとデザイン」(前期金曜4・5限)の授業設計および実施記録である。本授業は、美術・音楽を専門とする学生を対象とした電子工作とプログラミングの知識習得を中心とした演習授業である。本授業ではその知識習得過程自体をパーソナル・パーソナルコンピューティング:誰もがコンピューターをただ使うだけでなく、自分(たち)のための計算機を自らの手で作れる技術環境づくりのひとつと位置づけ、電子計算機の原理や歴史的発展にも時間を割いている。
|
||||||
|
本稿では、その授業設計の背景や、カリキュラムの具体的な内容を記述した上で、改善しうる点について述べる。
|
||||||
|
|
||||||
|
## はじめに
|
||||||
|
|
||||||
|
本稿では、2023年度から2025年度にかけて筆者が担当したAMC開設授業「コードとデザイン」の授業設計とその反省について記述する。
|
||||||
|
|
||||||
|
本稿の第一の目的は、近しい領域における授業の実施を検討している教員への参照点を示すことだ。
|
||||||
|
|
||||||
|
本授業の設計でも大きな参考とした"Code as Creative Medium"においても、デザイナーやアーティストがプログラミングやコンピューティングを学ぶためのリソースはあっても、それを教える人のための指針やドキュメントは多くない。
|
||||||
|
|
||||||
|
- 授業の設計の参考資料が存在しないこと
|
||||||
|
- アメリカとかでは人文系、芸術系でも教員個人のWebサイトにシラバスや参考資料がまとめてあることが少なくない
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
|
||||||
|
2022年度以前から芸術情報センターで「コードとデザイン」はデザイン科共催授業を基にして継続的に実施されてきた。内容としてはArduinoの使用方法やレーザーカッターを用いた造形のような、アーティストとして役に立つプログラミング、電子工作、デジタルファブリケーションの知識の習得を目指すものであった。2022年度後半に、それ以前授業を担当していたデザイン科の鈴木太朗教授との相談の上、基本的な目的は維持したうえで新たにゼロから授業を設計することになった。
|
||||||
|
|
||||||
|
授業設計上の制約としては、まずあらかじめ決まっている時間の長さ(90分×2コマx15回)がある。また、他のAMC開設授業の中には映像表現、音楽等を取り扱う授業はあるものの、電子工作のようなハードウェア要素の強い授業は他にないため、全体のバランスとしてハードウェアの取り扱いを中心に据える必要もある。
|
||||||
|
|
||||||
|
さらに特徴的な制約としては、想定される対象履修者の幅広さがある。芸術情報センターには直接学生が所属せず、美術、音楽、映像問わず全学科の学生が任意で芸術情報センター開設授業を履修できる。学部1年生から大学院博士課程まで履修する可能性がある。それゆえ全くプログラミングをしたこともない学生、Arduinoだけは軽く触ったことのある人、既にモーターなどを使用した工作の経験まである人など、前提知識には例年大きなばらつきがある。また技術的な知識の差ほかにも、芸術学科、楽理科や音楽環境創造科の学生のように、必ずしも作品制作を主軸に置かない学生も存在するため、それぞれの目的意識にも広がりがある。
|
||||||
|
|
||||||
|
### 授業設計の指針
|
||||||
|
|
||||||
|
授業全体の副題を「パーソナル・パーソナルコンピューターをつくる」と設定した。
|
||||||
|
|
||||||
|
授業を設計するにあたって意識的に行ったことの一つが、既存の授業資料やワークショップを積極的に活用することである。特に、前半の授業は筆者が2018年に参加したニューヨークのアーティスト・ラン・スクールであるSchool for Poetic Computation(SFPC)のカリキュラムである。
|
||||||
|
|
||||||
|
|
||||||
|
## 到達目標の設定
|
||||||
|
|
||||||
|
パーソナル・パーソナルコンピューターをつくる
|
||||||
|
|
||||||
|
最終課題の自由度
|
||||||
|
|
||||||
|
- 完全自由制作
|
||||||
|
- 他の授業における前期の課題制作に、授業で学んだ要素が生かされているならば重複してもよい
|
||||||
|
- 授業内小課題(後述)の発展
|
||||||
|
|
||||||
|
全員が作品制作を最終ゴールとしていないこと。作品そのものではなく自分の製作に役に立つツールを制作する
|
||||||
|
|
||||||
|
AMC解説の演習授業は必ずしも卒業要件に関わらない自由科目として選択されることも少なくないため、最終課題制作期間に自分の専攻の課題制作が重なることで忙しくなり、履修を継続できなくなることが往々にしてあることへの配慮である。
|
||||||
|
|
||||||
|
|
||||||
|
## カリキュラム
|
||||||
|
|
||||||
|
シラバスより転用
|
||||||
|
|
||||||
|
1. Conditional Design Workshop
|
||||||
|
2. Victorian Synthesizer/ Tympanic Alley
|
||||||
|
3. インバーターの製作
|
||||||
|
4. 2進数カードゲーム(浦川通)
|
||||||
|
5. NAND回路と全加算器
|
||||||
|
6. Arduino基礎
|
||||||
|
7. 秋葉原に買い物
|
||||||
|
8. 雑マウス
|
||||||
|
9. Processingとの連携/ピンポンゲーム
|
||||||
|
10. サウンド
|
||||||
|
11. モーター
|
||||||
|
12. 課題制作打ち合わせ
|
||||||
|
13. デジタルファブリケーション(手作り電子部品)
|
||||||
|
14. 課題制作打ち合わせ2
|
||||||
|
15. 最終課題発表
|
||||||
|
|
||||||
|
## 前半
|
||||||
|
|
||||||
|
デザインとは?:Conditional Design Workshop
|
||||||
|
|
||||||
|
脱電子工作入門:Victorian Synthesizer/ Tympanic Alley
|
||||||
|
|
||||||
|
Handmade Computer(3,5回)
|
||||||
|
|
||||||
|
バイナリーカードゲーム
|
||||||
|
|
||||||
|
## 後半:Arduinoの実用
|
||||||
|
|
||||||
|
Arduinoの選定
|
||||||
|
|
||||||
|
Leronardoか、Arduino Uno R4
|
||||||
|
|
||||||
|
これらだとUSB HIDエミュレートができる
|
||||||
|
|
||||||
|
ただし、ADCTouchなど普通のライブラリで使えるものが使えなくなる
|
4
content/パーサジェネレータ.md
Normal file
4
content/パーサジェネレータ.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
date: 2025-09-17 09:55
|
||||||
|
---
|
||||||
|
#stub
|
Reference in New Issue
Block a user