私のCourse-Swappingサイトを削除しなければ退学処分にすると言われました
(linkedin.com)- UWの学生JD Kaimは、定員に達した科目で学生同士が受講枠を交換する相手を見つけられる HuskySwap のMVPを作成し、春学期の履修登録前の公開を準備していた
- このプロジェクトは CSE 403の授業課題 から始まり、最新の.NETとAngular、データベース抽象化、リアルタイムチャット、ロールベース権限を学ぶフルスタック実習でもあった
- UWの登録システムのSwaggerドキュメントには、Student Web Serviceが講義・登録・セクション・人物・学期データへのアクセスを案内しており、まずは読み取り専用トークンで 講義カタログの取得 を自動化しようとしていた
- トークンをリクエストして数時間後、Registration Tampering Abuse Policy違反通知 を受け取り、ダミーのデモ講義を含むサイトを削除しなければ、退学につながりうる手続きが開始される可能性があると告げられた
- デモサイトの削除自体よりも、学校体験を改善しようとした試みが即座に強い制裁で返ってきた点が核心であり、JD Kaimは数か月後に卒業予定で、6月からフルタイムのソフトウェアエンジニアとして働けると伝えている
HuskySwapが解決しようとした履修交換の問題
- HuskySwap は、定員に達した主要授業で学生同士が受講枠を交換する相手を見つけられるようにするシンプルなアプリだった
- UWにはこの目的の代表的な解決策がなく、JD Kaimは皆の役に立つサービスを作りたいと考えていた
- 前四半期の CSE 403 の授業課題として初期版が作られ、デモを見た人々は実際に使いたい意向を示した
- その後、冬学期の時間の一部を使って、春学期の履修登録前により堅牢に磨き上げて公開しようとしていた
実装過程と学習目標
- 初期MVPは、最新の .NET とAngularに追いつくための練習という性格もあった
- 実装過程で扱った主な機能は次のとおり
- データベース抽象化
- リアルタイムチャット
- ロールベース権限
- もともと作る可能性があったプロジェクトであり、同時にCSE 403の単位も取得できるため、適切な機会だった
UW登録システムAPIへのアクセス要求
- JD Kaimは、登録システム連携のためのSwaggerドキュメントを見つけた
- ドキュメント上では Student Web Service がアプリケーションにStudentデータベースのさまざまな情報を提供するとされていた
- 講義データ
- 登録データ
- セクションデータ
- 人物データ
- 学期データ
- 一般的な学務データ
- この説明によって、学校がHuskySwapのようなシナリオを支援していると受け取った
- 最初に求めた範囲は大きくなく、すべての授業を手入力する代わりに 講義カタログの取得 を自動化するための読み取り専用アクセストークンだった
- うまくいけば、プロセスをさらに自動化したり、コミュニティ体験を改善する別の隙間も見つけたいと考えていた
違反通知とサイト削除要求
- トークンをリクエストして数時間後、「Notice of Violation of Registration Tampering Abuse Policy」という返答を受け取った
- 学校はデモサイトと、その中にあるダミーのデモ講義いくつかを削除するよう指示した
- サイトを削除しなければ、退学で終わる可能性のある手続きを開始するという内容が含まれていた
- JD Kaimは、学校での体験を皆にとってより良くする意図で連絡したが、学校はすぐに強硬に対応したと受け止めている
その後の計画と求職メッセージ
- 退学の脅し自体は、デモサイトを削除すればよいため、あまり心配していないという
- ただし、学校が自分を見る姿勢には失望しており、試みそのものに学校が関心を示すか、喜んでくれると期待していたと述べた
- 数か月後に卒業予定であり、UW Registrarの承認を受ける必要がないプロジェクトへ移りたいと考えている
- フルタイムのソフトウェアエンジニアを探している人がいればつないでほしいとし、6月からフルタイムで始められると伝えた
- プロジェクトのリポジトリとして HuskySwap を共有した
1件のコメント
Hacker News のコメント
更新:昨日、最後通告を受けてすぐに授業プロジェクトのサイトを取り下げた
単なるデモサイトが履修登録規定の文言や趣旨に違反していたとは、今でも思っていないが、誠意を持って行動したかったので取り下げた
今日、大学側は取り下げてくれてありがとうと言いつつも、アカウントには保留措置をかけると言ってきた。その結果、最終学期の履修登録ができなくなり、今学期末に事実上除籍される状況になった
ただし、HuskySwapで解決しようとしていた根本的な問題について、大学向けに似た解決策を作ることに同意すれば、保留を解除して卒業できるようにする、という含みもあった。知的財産権は大学が取得し、報酬はないとはっきり言われた
UWのことは本当に好きだったし、良い時間を過ごしてきたが、これはあまりにも意欲をくじかれる
更新2:助言には感謝している。このプラットフォームは収益化を意図したことはなく、UWのリーダーシップが最終的に正してくれると信じているので、弁護士を巻き込むつもりはない
今はこのプロジェクトを続ける予定もない。最初から一緒にやろうと提案されていれば違っただろうが、これまでの扱い方のせいで、ただ身を引きたくなった
弁護士に助言を求めることは、ただちに大学を相手に法的措置を取らなければならないという意味ではない。相談はエスカレーションではないし、大学は相談した事実すら知る必要がない。弁護士は法的措置が必要かどうか、その前に取り得るより友好的な代替策があるかを教えてくれる
一部の必修科目の枠を確保する唯一の方法は、優先登録日を持つ上級生の中から時間割に空きがある人を見つけ、代わりに押さえてもらうことだった。フラタニティに入っていればいいが、キャンパス外に住む内向的な学生なら打つ手がなかった
UWもこの問題をよく分かっているはずなのに、今でも問題がひどく、アイデアのデモをしただけで除籍までしようとしたというのは本当にひどい
実際のUWの文書を共有していないので、外から判断するのは難しい
LinkedIn投稿の末尾にある「数カ月後に卒業予定で、UW Registrarの許可を得る必要のないプロジェクトに移りたい。シニアリーダー層の関心を引く才覚のあるフルタイムのソフトウェアエンジニアを探している人がいれば紹介してほしい。6月からフルタイムで勤務可能」という部分は、削った方がよさそうだ。注目を得るために誇張しているように見える可能性がある
LinkedInプロフィールでは、2023年半ばに高校を卒業し、2023年後半にUWを始めたとなっているが、どうやって数カ月後に卒業できるのかも気になる。一般的な4年ではなく、2年で終えるという意味なのか?
大学には学生を卒業させたい強い動機があり、正式に除籍されたのでなければ、授業を手動で登録してくれる方法がある可能性が高い。アドバイザーには選択肢があるはずで、履修登録サイトを運営する側の制約をそのまま受けるわけでもない
それでもだめなら、UWの上層部へ持っていくべき。上に行くほど、技術部門の肩を持つ動機は小さくなる。ただし、この件が技術部門ではなくそちらから始まったのでなければ、だが
逆に、大学と共同で行った仕事を履歴書に書けるなら、完全な損ではないかもしれない。弁護士は検討すべきだが、現実的には得られるものを得て卒業する方がよいかもしれない
10年前にUWに通っていたが、当時でもソフトウェアや履修登録システムに手を出してはいけないというのは、かなり常識だった
履修登録の競争は非常に激しく、コードを書けるという理由で誰かが優位に立てないよう、大学は厳格だった。希望する授業に空きが出た瞬間にスクリプトで押さえようとして除籍になった、という噂も多かった
学生が履修登録を「取引」することも、禁止されていたか、少なくとも嫌がられていたと記憶している。価値の高い授業を商品みたいに確保して交換しようとする人がさらに増えることを望んでいなかったからだ
だから自分が通っていた頃の基準では、ほぼすべてのCS学生が、このWebサイトは問題を招くひどいアイデアだと言ったはず
登録時間を数日に分け、20分ほどごとに新しいグループを開放すれば、全学生ではなく一部の学生とだけ競争することになるので、スクリプト問題はほとんど解決する。定員が埋まったら、空きが出た瞬間に登録できるようにするのではなく、待機リストを設ければ取引も不可能になる。取引できるなら、そもそもその科目に登録できていたはずだからだ
登録システムが古く、同じく古い管理ソフトウェアに縛られている可能性は理解できるが、大学が本当に気にしているなら解決策はあるはずだ
事前登録を受け付ければ、あとから追加授業を慌てて編成する代わりに、需要を前もって把握できる。コンサートツアーの日程、航空便、PS5の在庫なども同じだ
譲渡不可能ということは、抽選が継続するという意味だ。誰かが授業を放棄した瞬間に再抽選して再配分しなければならず、それを毎日行うこともできる
技術的には機能する解決策だが、資源配分者がその資源に対する話題性と需要を作り出し、大きなイベントのように盛り上げたうえで「記録的な時間」で売り切れにしたがる文化的側面を見落としている。大学のマーケティングの大きな部分が、実際には同意していなくても、できるだけ人気があり需要超過であるように見せたいものだというのは理解できる
最後に、公開乱数生成の部分が一番面白い。UW Red Squareの真ん中に巨大な連続サイコロタンブラーを置くのはどうだろう? タンブラーは簡単そうに見えるが、サイコロの結果を自動記録する物理的な台帳はどう作れるだろうか?
そしてアクセスを復旧してやるという約束と引き換えに、無給の強制作業をさせようとしているということなのか?
大学というのはもともとああいうものだ。昔、母校に、やや目立たないものの明らかに公開されているリンクが、特に理由もなく学生の詳細情報のZIPダウンロードを引き起こすようだと知らせたら、即座にFBIに通報すると脅された
ただ笑って流したが、どうしても必要でない限り、二度とこちらから連絡しないと心に決めた
だからCSサーバー上の全世界から読み取り可能なファイルにLDAP管理者パスワードが保存されているのを見つけたときも、その方針をそのまま貫いた
推測だが、父親がLinkedInにこうコメントしていた:
「今すべてのメールを見たが、描写されているのと同じくらいひどい。誇張があるかもしれないと思っていたが、『University Registrar and Chief Officer of Enrollment Information Services』が明確に『我々と一緒にこれを無料で作らなければ卒業できない』と言っている。しかも、2025年春学期の登録が2月13日に開始されるずっと前に会議を設定しなければならないと明記している。そうしなければ在学を続けさせないという意味だ」
https://www.linkedin.com/posts/edkaim_github-jdkaimhuskyswap...
個人的には、すでに全面戦争に出て、すべての証拠を公開し、大学に圧力をかけていただろう。すでに事実上除籍された状態なら、大きく失うものもないので、公に爆発させていたはずだ
報復を受けていると言いながら何も公開しないのは奇妙で、完全に真剣に受け止めにくくしている
大学が反応するまでは分からなかったのかもしれないが、除籍の脅しを受けたあとでも大学の立場を理解できないのなら、認知的共感能力が大きく欠けているか、正直でないかのどちらかだ
だから、その後の主張や議論も疑わしく見ている
それ自体が間違いというわけではないが、父親がこの子に深く入れ込んでおり、有利なスタートを与えるために積極的に動く意思があることを示している。だから個人的には、この話を裏付ける追加証言とは見ていない
父親の証言が真実である可能性を下げるものではないが、肯定的な証拠としての質は高くない
反対票は構わないが、なぜ同意しないのか説明してくれるとありがたい。松明を持って突撃しないコメントがどれも理由なく押し下げられるのは、少し気が滅入る。もっとうまくやれるはずだ
登録システムと統合してほしいという依頼に、大学事務がなぜここまで極端に反応するのか分からない。このシステムはそもそもアプリケーションが使うために作られているように見える。
「Student Web Service は、アプリケーションが Student データベース内の科目データ、登録データ、セクションデータ、個人データ、学期データといった一般的な学務データにアクセスできるようにする。」
つじつまが合わない。話から抜け落ちていることがあるのだろうか? 野心あるソフトウェア開発者を見つけて除籍するために、この Web サービスをおとりサービスとして提供しているのか?
一方で、たいていの大学の「エンタープライズ」ソフトウェアは、膿み切ったゴミの山だ。
恐喝めいた試みにはとても驚いたが、大規模な過剰反応そのものは、残念ながらそれほど驚きではない。
大学が管理していないサービスがこれを使おうとしても、承認を得るのは難しいだろう。学生データは法律上強く保護されているため、別のアプリケーション経由でアクセスされ、その運営者が他の学生のデータを見られるなら問題になる。
官僚は、失敗すれば自分の職を失う可能性がある一方、うまくいっても得る利益はゼロなので、「はい」とは言わない。
例えば DDoS が起こり得る。API エンドポイントに誤って DDoS を仕掛けてしまった回数は少なくない。あるいは、サービスが人気になりすぎて結果的に DDoS になることもある。
その組織の中で、自分の職務が嫌いで、自分だけの縄張りと裏取引のチャンネル以外にはほとんど何もコントロールできない。そうした役割を離れない人は、権力を集めたり行使したりするのを楽しんでいるか、そういう組織の外の役割では苦労する可能性が高い。
そこで、ほとんど権力のない人物が、昔から知られていた問題なのに誰も強制できず何年も放置されてきた自分の領域の仕事を、公に問題化したとしよう。
すると、その人物があえて挑んできたという理由だけで、直接処罰される可能性がほぼなくても、この話を潰すために過剰反応に出る可能性が高い。学界では直接の処罰は非常にまれだからだ。
この話が事実だと言っているわけではない。判断するデータは足りない。ただ、学界の有害な部分を長く見てきて、0 から 11 まで暴走する人たちを十分に見てきたので、あり得る話だとは思う。
大学事務側に友人が何人もいるが、知っておくべきことが二つある。大学には事務職員がものすごく多く、彼らは極めて縄張り意識が強い。
誰かの船を揺らし、その人が怒ったのだ。事務人員はとにかく多いので時間があり、今や自分の仕事として食いついている。
この件を広く知らせるのは正しい方向だと思う。冷静に落ち着いて、できるだけ事実に即しているべきだ。ソーシャルメディアやニュースメディアに広がり始めれば、PR やイメージという自分の領域を持つ別の事務担当者にとっても問題になり、彼らが自分の仕事として収拾しようとするだろう。
だから大きく知らせるべきだが、礼儀は守るべきだ。
「大きく知らせるが礼儀正しく」には全面的に同意する。学界では、問題を直さないことが直すことより面倒になるまで修正されない。注目が大きくなるほど、責任者より上にいる別の小心な官僚が、自分の一日がずっと面倒になったことに気づき、静かに素早く押さえ込む可能性が高まる。
問題の Student Web Service: https://ws.admin.washington.edu/student/swagger/index.html
UW が最初にサイトを閉じるよう求めた背景には、おそらく FERPA が大きな要因としてあったのだろう。機関は今やどこも自己防衛に必死だ。
脅迫の部分は少し誇張されているように見える。UW とこの個人の間の書簡を見てみたい。話全体は十分にあり得るが、他の人たちが指摘しているように、いくつか不整合もある。
大学にいたとき、似たようなことを経験した。大学の中央 IT サービスチームが学生ポータルの代替品を不要な機能満載で展開しようとしていたので、私たちが実際に欲しかったものだけを入れた簡単なサイトのモックアップを作った。
後には学生会の Web サイトも再実装して、イベント会場の予定や営業時間のような、より有用な情報を提供した。
どちらの場合も、大学が管理できない形で私たちが学生データを扱う可能性、特にユーザーの代わりにパスワードを受け取る可能性があるとして調査を受けた。
一つ目はモックアップで、二つ目は最初は公開 LDAP サーバーで大学認証を付けたが、すぐに独自認証へ切り替えた。私たちのドメインにパスワード入力欄があること自体が、大学にとって絶対に受け入れられない条件だとはっきりしたからだ。
何をして何をしていないのか、境界がどこにあるのか、データをどう扱うのかを慎重に伝えることで、生産的な議論へと説得できた。
関係した大学職員の多くは、安全でない LDAP サーバーに認証をつなげられるといった技術的内容を理解できるレベルではなく、それを私たちがしてよいのかというポリシーにだけ関心があった。
ソフトウェアエンジニアがよく陥る失敗パターンは、あることが技術的に禁止されておらず、禁止することもできるのに塞がれていないから許可されている、と仮定することだ。実際にはそうではない。
このプロジェクトで不明なのは、大学が学生プロジェクトがサービスを提供するという発想そのものに根本的に反対しているのか、それとも未承認のシステムが学生のパスワードを受け取るかもしれないと誰かがパニックになったのかだ。前者なら明らかに馬鹿げており、大学は特に学生によるこうしたイノベーションに開かれているべきだ。後者なら理解できるし、かなり合理的な反応だが、学生がうまく乗り切るには慎重な対応が必要だ。
この1日の間に、UW Registrar の Policies & Procedures ページの「Tampering and Abuse」セクションに次の文言が追加された:
「また、上記の行為のいずれかを可能にするサービスを作成することは厳しく禁止されており、このポリシー違反に該当する。」
行政規則のほうがより重要である可能性が高く、関連条項は以下のとおり。
WAC Aiding, assisting, and attempting: https://app.leg.wa.gov/WAC/default.aspx?cite=478-121-113
WAC Computer abuses: https://app.leg.wa.gov/WAC/default.aspx?cite=478-121-117
Registrar 変更前: https://web.archive.org/web/20241208123609/https://registrar...
Registrar 変更後: https://web.archive.org/web/20250109203004/https://registrar...
興味深い。私は別の UW、つまり University of Warsaw を卒業したのだが、私たちの大学では University Study Service System である USOS の中に科目交換機能が組み込まれている。
ちなみにポーランドの公立大学教育は全額政府資金で運営されており、学生には無料だ。
1 - https://usosweb.mimuw.edu.pl/kontroler.php?_action=news%2Fde...
うちのポーランドの大学がそれを使っていなくてよかった。
履修登録はある時点で一斉に開き、開講後の締め切りまでの数か月の間、いつでもログインして入力すればよかった。一部の専攻は定員が限られており、関連科目もその専攻の学生に制限されているが、科目単位で席が足りず、急いで科目選択を提出しなければならないことはなかった。