R7名古屋大学情報学部CS科編入合格体験記

皆さん、こんにちは。留学生のトートです。古屋大学情報学部の三年次編入(コンピュータ科学科)に合格しました。以下の内容はもともと華語で書かれており、日本語に翻訳されたものです。うちの作文はまだ流暢とは言えず、不明瞭な表現や意味が曖昧な箇所があるかもしれません。どうかご容赦ください。本記事や編入に関してご不明な点がございましたら、どうぞお気軽にご連絡ください(できる範囲でお答えいたします)。そのほか、編入に関する情報に興味がありましたら、ぜひ Blueskyツイッターをフォローしてくださいね。よろしくお願いします 🙇‍♀️。

筆試で参考した資料

下記の本(主に使用した本は太字で示しています)は、ほぼすべて大学図書館で借りたり、メルカリで購入したりしました。大変感謝しています。私立や国公立の大学講師や教授が、講義資料やノート、録画をオンラインで公開し、多くの学生や研究者がそれを閲覧している姿勢には、尊敬の念を抱きます。

筆試の参考書籍

情報理論

楫勇一『情報・符号理論』(二〇一三、ISBN:9784274213175、OHM 社リンク)は愛読書で、企画および執筆を担当した楫勇一教授が主導する『情報理論』の教材としても使用されています。この本はまず、記号の表現形式が確率論の約束に基づいており、手書きでは少々複雑すぎると感じるほど厳密です。確率分布やエントロピーの計算対象などの情報が一目で理解できるため、自学自習に適しています。うちは大学の情報理論の授業を三、四週間サボって、この本を一気に読み進め、線形符号の章(厳密に言うと符号理論の内容に該当)まで到達しました。

符号化定理と通信路容量は、以前には出題記録がありませんでした。八〇年代以降、シャノンの最初の論文『通信の数学的理論』(A Mathematical Theory of Communication、一九四八)の議論と比較して、ほとんどの日文教材は通信路容量や伝送速度といった概念を調整しており、その結果、符号化定理にはさまざまなバージョンが存在しています。

エントロピーを計算するときに、二値エントロピー関数 h2(p):=plog1p+(1p)log11ph_2(p) \mathrel{\mathop:}= p \log \frac{1}{p} + (1 - p) \log \frac{1}{1 - p} を使うことができます。この関数の利点は、全体が時々相殺される(または係数の加減として処理される)ことです。以前の問題では、この関数のグラフを分析することがありました。また、通信路容量を計算する際に、導関数 ddph2(p)=log1pp\frac{\mathrm{d}}{\mathrm{d} p} h_2(p) = \log \frac{1 - p}{p} を暗記しておくと、極値を求めるときに時間を節約できるかもしれません(pp1p1 - p の比率関係を示唆しています)。(ちなみに、log\logloge\log_e として扱うのはちょっと変だと思います。計算機科学の学生にとって、最もシンプルで曖昧さを避けられるのは、log:=log2,  ln:=loge\log \mathrel{\mathop:}= \log_2,\; \ln \mathrel{\mathop:}= \log_e ではないでしょうか?)

若し映像で学ぶ方がより適している場合は、楫勇一教授も奈良先端科学技術大学院大学の digital library にて講義の録画を公開しています。うちはざっと目を通しただけですが、とても感謝しています。また、

論理回路

今年の試験にはこの科目が含まれていなかったため、学習の成果を評価することができませんでした。教材にはそれぞれ特徴があると思いますが、ここではうちが目にした範囲の資料を列挙します。二年生の『論理設計及び演習』の教科書『ビジュアルに学ぶ ディジタル回路設計』(築山修治、二〇一〇、ISBN:9784339008111、コロナ社リンク)の演習問題はやる価値があります。また、高木直史(元名古屋大学教授)の教材の新旧版も少し読みました。実際のところ、教材を少し見るだけで、著者や出版社がどれだけ気を配っているかが分かると思います。真理値表やカルノー図(Karnaugh map)に過剰な装飾や二色刷りがされているかどうかも、そういった気配りの一例です。

一つの有効な復習方法として、カルノー図やデ・モルガンの法則をよく理解した後、よく見かける回路をすべてまとめ、その真理値表、カルノー図、積和形論理式を列挙することが考えられます。対象となる回路には、半加算器から始まる nn ビット加減算器(過去問に出題)、(優先順位付き)符号化器(過去問に出題)、パリティチェッカー(過去問に出題)、(ディ)マルチプレクサ、コンパレータ、多数決回路などが含まれますが、これらに限定されるものではありません。作成した後は、Logisim-evolution でシミュレーションして検証することができます。キャリー先読み加算器(桁上げ先見加算器)は多くの資料で言及されていますが、証明や実装が簡単ではないため、出題されるかどうかは分かりません。

範囲は順序回路の前までかもしれません(名古屋大学では二年生の秋に順序回路を扱うようです)。うちの大学でも二年生の時に順序回路を学び、期末試験の重点内容でした。そのため、教授が二十年近く使い続けた問題を一生懸命に解きましたが、編入には全く役に立ちませんでした。

線形代数

皆さんの推薦の中で、共通の意見として挙げられるのは、MITで Gilbert Strang 教授が教えている線形代数の講義(一九九九)です。試験前の数日間の夜に、まるで連続ドラマのように見たことがあります。Gilbert 教授は数十年にわたりこの講義を教えており、彼の情熱がうかがえます。四つの部分空間(行と列ベクトルの像と核)間の関係や、固有値が応用の観点で持つ意味など、内容は非常に深いです。もしかすると、Gilbert 教授の教えを受け継いだ Grant Sanderson 氏の線形代数シリーズも皆さんはすでにご存知かもしれません。

二三年にマルコフ過程(Markov process)を計算する課題では、一般的な対角化や固有多項式を使って高次項を消す(Cayley–Hamilton の定理)方法がありますが、他にも @cunitac さんが提供した二つの確率に関する視点や、3×33 \times 3 のマルコフ行列を等比数列として求める方法web archive)も非常に優れています。また、Gilbert 教授の Anx=λnxA^n\mathbb{x} = \lambda^n \mathbb{x} に関する指摘も、これらの計算を簡略化する助けになります。この変換は非常に重要で、今年の第一問はその証明についてでした。似たような問題としては、二〇年の実数行列 BB が存在するかどうかを説明する A=B2A = B^2 や、二二年の A1A^{-1} の固有値の計算などがありました。したがって、この点は線形代数の復習の入り口として非常に有用だと考えています。

二三年のマルコフ過程の計算

それ以外にも、うちは理学部の山上滋教授の講義(『行列代数あれこれ』の最新版は 2024 年 4 月 27 日のもので、非常に面白くてわくわくしましたが、内容が多すぎてまだ全部を読み終えていません)を読んだことがあります。また、雅利賀・惹玖教授(ジャック・ガリグ教授)の問題にも取り組んだことがあります。

微分積分

起点は、どのようにして 0α1+x2dx\int_0^\alpha \sqrt{1 + x^2} \,\mathrm{d}x を計算するかを学ぶことでしょうか。これには多くの方法があり、放物線やアルキメデスの螺旋なども関係してきます。

南和彦の『微分積分講義』(二〇一〇、ISBN:9784785315528、裳華房リンク)は非常に丁寧に書かれており、独特の雰囲気を持っています。たとえば、一般的には重点的に扱われない Landau 記号に言及している部分があります。計算理論においてよく知られている O(logN)O(\log N) のような記述で、(うちが触れてきた)計算機科学の多くでは、元の時間関数 T(N)T(N) における影響の小さい項や定数係数を省略する、抽象的な形で定義する傾向があります。理解が正しければ、O(logN)O(\log N)T(N)=O(logN)  (N)T(N) = O(\log N)\; (N \to \infty) を意味し、つまり T(N)logNCR  (N)\left|\frac{T(N)}{\log N}\right|\leq C \in \mathbb{R}\; (N \to \infty) ということです。

東京大学工学教程のシリーズは、広範で落ち着いた内容です。しかし、うちの日本語の読解力と脳みそでは少々厳しいところがあります。また、一年生の頃に線形代数と微分積分を学び始め、編入を決意する前に、九〇年代の多くの培風館の参考書で訓練を受け、大いに役立ちました。培風館は、美しいタイポグラフィと充実した内容を持つ素晴らしい出版社です。

大学の過去試題

名古屋大学の教務学生係には、試験前に二度ほど問題を確認しに行きました(愛知県外に住んでいたため、三月初めの帰省や六月末の TOEIC 受験の際に中部国際空港を利用しました)。一時間ほどしか時間がなかったので、要点をメモするだけに留めました。学生係の方は試験場の準備や規律の説明、案内も担当しており、事前に顔なじみになっておくことができました。

筑波大学のウェブサイトには、情報学群の直近三年間の試題と解答(出題意図を含む)が公開されています。内容には線形代数、微分積分、C言語プログラミングが含まれています。少し古い試題は、Internet Archive で好事家が保存したものが見つかることもありますが(最も古いものは平成二十三年)、解答は提供されていません。

名古屋工業大学の情報工学科では、近三年分の過去試題を提供しており、情報理論や論理回路に関する問題が出題されています。形式は固定されていて比較的取り組みやすく、基本的な理解ができたら挑戦する価値があるでしょう。解答は事前に大学に郵送で請求する必要があり、約二週間ほどかかります。また、金沢大学の理工学域の試題も直近三年間のもので、解答が付いています。数学だけでなく、なんとC言語や Fortran で手書きのプログラムを書く問題も含まれています!また、名古屋大学の博士前期課程入学試験に関する少数の試題も公開されています。

一九年の試題:原点の極値の解析(Desmos で作成)

最後は、自分で解答を検証する方法です。問題に解答が提供されていないと、正誤がわからず非常に困ります。線形代数では Python の sympy ライブラリを使用し、微分積分の関数グラフには Desmos(三次元版もあり)を使っています。また、より人気のある GeoGebra も、ほぼ十年近く使ってきましたが、いまだにあまり得意ではありません!

改組の影響は終わりを迎える

二〇一七年に情報文化学部が情報学部に改組されてから、現在の形式の試題が作成されるようになり、専門的な科目の多くの知識が試題に反映されています。これらは再び出題されることはなさそうなので、残された範囲はそれほど多くありません。たとえば、今回のプログラミング問題については、二年生のアルゴリズムの授業()のシラバスや平田富夫教授の教科書に基づくと、過去の試題には扱われていなかったヒープやヒープソート、文字列処理などが含まれています。今回のプログラミング問題は文字列の検索と置換に関するアルゴリズムが出題されました。出題範囲が限られてくる(おそらく来年か再来年までには)前に、出題者の意図を推測しようとすることが、執着に変わる可能性があり、過去問への過度の依存は必ずしも有益ではないということです。

『徹底研究』『過去問特訓』……崇拝?

出題傾向は混沌としています。なぜなら、具体的な範囲が定められていないため、多くの練習が最終的な試験の効果に直結しないことが多いからです。標準試験を受けて、うまくいかなかった方もいるかもしれませんが、練習不足以外にも、特定の分野の細部を理解し、その関連性を把握できなかったことを後悔する場合が多いです。試題が「多様」であることの源は、この関連性にあります。

もし出題者と受験者を対立関係として捉えるならば、公開されているリソースでは両者は平等です。市場で販売されている書籍は、出題者も参考にしています。これは次のことを意味します:

『徹底研究』は復習の指針として使えるものの、『過去問特訓』のBランク以上の問題を練習問題として大量に解くのは少しもったいないと思います。うちにとっては、それらは不安を解消するための良い方法です。うちは毎日、BランクやCランクの問題を三問選び、試験の形式(表紙、問題用紙〔A4〕と解答用紙〔B4の大きな用紙〕。特にコンピュータ基礎の試験では、解答を分けて提出し、数学の問題は一括して提出する形式が採用されています。これが誰が採点を担当するかによって異なるようです)に従って、NAPS2 を使ってデジタル化し、印刷して時間を測って解いています。これにより、初見の問題に対する驚きと緊張をシミュレーションしています。

雑談:TOEIC の冒険

以下は完全に個人的な体験で、誰にも当てはまらないと思います(冒険的な部分は誰にも勧められるものではありません)。TOEIC の準備方法に関する見識がある方や、事前に計画を立てている方は、この節を飛ばしてください。

地元には英語を話す外国人もおらず、英語圏に住んだ経験もありません。しかし、アメリカ中心主義の影響もあり、コンピュータサイエンスを学ぶ個人的な経験は、英語学習の歴史とほぼ同じ長さになります。小さい頃から数えれば、ぼんやりと十年は過ぎているでしょうか?そのため、ビジネス向けの TOEIC L&R は、英語の外部テストとして最も簡単な選択肢のように感じました。ですが、この「簡単な」道も、通り抜けるのは簡単ではありませんでした。

頭の中は完全に TOEFL の準備モードでした。五月の中下旬に TOEIC の準備を始めた時点で、試験の申し込みには2ヶ月前の予約が必要だと気づきました。つまり、最も近い試験日は七月で、資料の提出期限には間に合いません。代替案として、TOEFL は何度か受けたことがあり、高得点を取るにはしっかりとした準備期間が必要です。焦りと戸惑いの中で、少しだけ Duolingo の問題を試しましたが、結果がすぐ出る一方で、難易度は確かに高めでした。最終的に TOEIC が最も安心できる選択肢だと判断しました。大学一年生の時にIPテストを強制的に受けた経験があり、自分のスコア範囲は分かっていたからです。

唯一の選択肢は、六月二十二日に別の場所で TOEIC を受けることでした。調べたところ、中部国際空港から香港まで直行便があり、飛行時間は四時間でした。大学の授業もあるため、あまり時間を浪費したくなく、一日半の短い旅行を計画しました。以前に香港を訪れたことはなく、広東語のラジオ番組を聞く習慣はありましたが、現地の口語はまったく理解できませんでした。

唯一残っている写真(理由は不明)

確認の手続きを経て、三週間かけて『公式 TOEIC® Listening & Reading 800+』のリーディング部分を解きました(メルカリでちょうど出品していたものです)。以前、IPテストではリスニングが比較的良かったので、油断してリスニング対策は一つのセットしかやりませんでした。ともかく、ビザなしで税関に止められ、英式プラグの準備不足、香港ドルの現金が手に入らない(Apple Pay とオクトパスが助けてくれました)など、いくつかの冒険を経て、南国の湿気を含んだ空気を吸いながら、九龍のある中学校で着席しました。日本人の学生も数名見かけました。おそらく、うちと同じように何かの期限に間に合わなかったのでしょう。

最終結果は、リスニングで少し点を落としてしまいました。香港から送られてきた成績証明書が無事に届きました。教務課が後日送付のオプションを提供してくれたことに感謝しています。最終スコアは950点でした。満点を取った友人が、「後ろから解き始めると良い」とアドバイスをくれたのを思い出しましたので、次回はそうしてみようと思います。