まさに「あるある」ですね.
あえて追加するなら,ループのことをroopと書く学生が,ときどきおります.演習の巡回中とか,卒論プログラムのコードレビューの際に,「動作とは関係ないけど」と断った上で,loopにするよう指示しています.
それで,読んでいて気になったのは,「programにingをつけるときにmを重ねるのはなぜか?」です.理由を,学生に説明できるか!?*1
高校のときに教わったのは,「短母音+子音字で終わる動詞にingをつけるときは,最後の子音字を重ねる.ただし短母音にアクセントがなければ,重ねない.」というルールでした.末尾がrのときは,子音字とみなします.
このルールから,swimやreferやoccurはそれぞれswimming*2, referring, occuringになるし,screamは長母音だからmを重ねずscreaming,differはeにアクセントが来ないのでここもrを重ねずdifferingが正解*3,と説明できます.
ところが,programは,説明できません.ひょっとして,この単語は「名前動後」なのかとか,aのところにもアクセントがつくのかとか,もとの語がprogrammeだからかとか思いながら,Merriam-Webster Onlineで調べてみました.
この単語については,アクセントも2種類あるということですね.第1アクセントは必ず最初の音節ですが,第2音節に第2アクセントを置く発音と,そこはあいまい母音にする発音があるようです.
それと,動詞の変化でmを重ねる表記,重ねない表記が見つかりました.
結局,programingという綴りを見つけても目くじらを立てず,自分で書く場合には普及度からprogrammingにするほうがよい,といったところでしょうか.
余談1: differを例にする前に,transferを例に出そうと,辞書を引いたところ,これはtransferringでした.典型的な「名前動後」の単語でした.
余談2: visitはtを重ねない有名な単語ですが,commit, omit, vomitあたりまで調べることで,重ねる重ねないというよりは,アクセントを一つひとつ確認することができました.