Rebuild FMでhigeponさんが、子供の中学受験の手続きの管理のために擬似コードを使ったというエピソードを聴いたので便利そうだと思い自分も実践した。
 
 
時系列ごとに中学受験の手続きを親が行う必要があって、それがすごく複雑で管理するために擬似ゴードを書いたといった内容だった。 結果とかによってやらないといけないことが分岐することを、自分がインタプリタになったつもりで上から見てくだけでよく、またifがあればelseがあるはずだと思うので考慮漏れが発生しにくいと言った話をしていた。
エピソードで例として話していた擬似コードを下に書いた。
 
12月1日 A中学校出願 12月5日 if A中学校の受験票が届かなかったら{ 電話で問い合わせ } if A中学校合格している & B中学校合格している{ B中学校支払い }
(上のコードは最初notionのコードブロックに書いていたのだが、React Notion Xでレンダリング時にエラーが起きたので引用ブロックに入れている。React Notion XはOSSなのでエラー内容を確認してデバッグしたいと思う。)
 
自分の実生活にも役立ちそうだと思い、やらないといけないことを擬似コードで実際に書いてみた。
最初は大学の編入活動のためにやらなければいけないことで擬似コードを書いてみたがうまく書くことができなかった。その理由としては考えないといけない期間が長過ぎるだと思う。10ヶ月間もの長いスパンの間に課外活動とか準備とかを終わらせるといったタスクを管理するのはガントチャートとかのほうがいい気がする。ただ直近にやらないといけないこととかはうまく書けたと思う。
// 寮への引っ越し 希望の日にち = ホストファミリーに希望の日にちを聞く if(希望の日にち){ 希望の日にちと「きれい好きで静かなルームメイトがいる部屋がいい」と連絡 } // 医療関係 SCCの歯医者あるか = SCCのは医者が現在オープンしてるか問い合わせ if(PCCに定期検査の申込み){ コンタクトのため眼医者の紹介を頼む if(花粉症がひどいか){ 花粉症の薬について質問 } if(!SCCの歯医者がオープンしているか){ 歯医者の紹介を頼む }else{ SCCで予約 } } result = カウンセラーにメール(寮の最低単位, トランスファーカウンセラー) if(result.寮の最低単位 == 考慮する){ 卒業時期を遅らせるとどのような影響が出るのか聞く } if(result.トランスファーカウンセラー){ どのような活動をすればいいか? 質問チェックリストを作っておきそれについて聞く }
最初のブロックはホームステイ先から寮への引っ越しの手続きについてで、すでに終わったので打消し線を引いてある。
2つめは医療関係で、PCPと呼ばれるかかりつけ医にかかってから眼科とか紹介してもらうシステムらしく、今度定期検査の申込みをしなければいけないので書いておいた。大学の歯医者がオープンしてなかったら歯医者も頼まないといけないのでそのことについても書いた。
 
 
僕は手続きとか並行して行っていくのがすごく苦手なので、考慮漏れが起きにくい擬似コードを手続き関連の実生活で書いてみるというのは便利だと思う。
依存関係があるけれど時系列順じゃないものとか、スパンが長く並行して行わないといけないことをうまく管理する書き方が思いつかないのでそこはもう少し考えたい。
実生活で書いていくには時間がかかりすぎる気がするが、重要な大学の編入活動とかは擬似コードで管理してみようと思う。