これがベトナム大学院の実態だ!

Trường Đại Học Bách Khoa Thành Phố Hồ Chí Minhの大学院修士課程に社会人入学

Nguyên lý ngôn ngữ lập trình Assignment 3 提出システム不備その後

これを書いている時点では2020年になりもう1週間ほどになるが、前回のエントリから書いていなかったので少しさかのぼって2019年12月22日のことだ。
19:30過ぎ時点では提出サイトが未だ開かず、だまし討ち的に23:50頃に開くことが予期されていた。
しかし、眠気もあり、22:00過ぎぐらいまではなんとか我慢できたが、もうこれ以上はというところまで来て、半ばギブアップ的に22:30にサイトを見た。すると提出が可能となっていた。
しかも、提出期限が翌12月23日の23:55となっている。
これなら別に深夜まで起きている必要はなく、翌朝頃に確認してもよかったわけだ。
ほっとしたという気持ちは一切なく、むしろ疲れがどっと出ただけだ。
と、何ともおそ松さんな結末、終わり良ければ総て良しどころかはじめも終わりもすべて最悪だ。

いろいろな変化

しばらく更新せず、と言っても高々2週間程度なのだが、このわずか2週間でいろいろな変化があった。
その一つは専門必修のうち2科目7単位を取得できたこと。
今期の登録は専門必修4単位15単位であり、その約半数を取得できた。科目率で言えばぴったり50%だ。
その辺の経緯は個別の科目で詳しく書くとして、7単位というのは史上最高の取得単位数だ。
その他、この3年間やりたかったHệ thống nhúngが3度目の正直的に開講しそうであり受講者名簿が出回るなどもあった。
あと、悪名高い例の科目では学生による採点サイトがまだ開かないというわけのわからない不備もある。
また、この間に2020年となっているなど、2019年ももうすぐ終わりという雰囲気は一切なく、むしろ気が付いたら終わっており、ふと目が覚めたら今日元旦じゃないか?のようなムードであった。
ひとまずは前回のエントリ以後を時系列的に書いていこう。

Nguyên lý ngôn ngữ lập trình 未だ不備で教員死亡か

現在2019年12月20日の19:30過ぎ、eラーニングサイトを見たところ提出のスレッドにのみ返信が2通ついていた。
このタイミングだし、遅すぎではあるが今更提出画面が準備できたと思うよな。
が、これを見て愕然。
f:id:k4h8:20191222213424p:plain
ほかの学生からの催促である。
前回のエントリで教員による嫌がらせ説が提唱されたが、さすがに嫌がらせにしては悪質すぎる。
もともとこの教員は再履修者(再々履修、再々々履修を含む)が約半数という異常な授業というか成績のつけ方を行うなど常軌を逸した奇行が目立っており、覚醒剤をやっていることを疑っていたが、いよいよ天誅が下って死んだのではないか。そうでなければ曲がりなりにも教師としてあまりにも責任感がなさすぎるというか、最低限の仕事すらできていない。
いずれにしても嫌がらせ説も依然として考えられるので23:30過ぎまであと4時間起きているのはつらすぎる。明日月曜日だし。

なお、この教員の死因だが覚醒剤のほかに学生から異常なまでの恨みを買っているので怨恨の線も非常に濃厚である。

Nguyên lý ngôn ngữ lập trình Assignment 3 提出システム不備

悪名高いの枕詞でおなじみの同科目だが、本日2019年12月20日の深夜11:55がAssignment 3の提出期限だ。
提出すべきファイルは2つあり、それぞれを別々の画面から提出するが、うち1個は正常に動いているがもう1個が動いていない。
f:id:k4h8:20191222141935p:plain
これについては何日も前からほかの学生がフォーラム上で指摘をしていた。
f:id:k4h8:20191222142011p:plain
これを見れば、さすがにその日の夜もしくは次の日には提出画面が準備されると誰もが思っていたが(Assignment 2でも教員の原因による同じ不手際があったが、別な学生の指摘により修正されていた)今回は何日も修正されず、結局今日となった。
ひとまず提出できるほうは提出したが、もう1個は提出できずじまいだ。
この教員のことだ、おそらく騙し討ち的に今日の深夜11:53ぐらいに提出画面を準備し、間に合わなかった学生に低評価をつけることは容易に予測できる。
というか、この2年間でこの教員がなぜそこまでやさぐれてしまったのか。
いずれにせよ、自分は普段21:00とか22:00には寝るようにしているが、今日のところは念のため23:30ぐらいまで起きておいて、F5連打で提出サイトが修正されているかの確認作業を余儀なくされることになる。
ヤフーオークションなんかだといきなり入札せず、まずはウォッチリストに入れておき、入札締め切り1分前ぐらいからF5連打で残り10秒を切った時点で入札ボタンを押すことで確実に、かつ値段が吊り上がらないように入札する方法が浸透しているが、同科目の宿題提出は1円の特もないのにも関わらずこのような不毛な作業をさせられることになる。
同科目には茶番、お為ごかしという言葉が似合っていただそれに不毛が加わった格好だ。

Mạng máy tính 期末試験

2019年12月20日、Mạng máy tínhの期末試験が行われた。
この期末試験という表記だが、最終試験とも訳される表記揺れ、翻訳揺れはある。
もともと多くの科目において中間試験があるのでそれで期末試験と表記していたが、人によっては最終試験と呼称することもあるかもしれない。
ベトナム語での正式名称はkiểm tra cuối kì、これを日本語にすれば期末試験。
外国人学生には英語版の問題用紙が配られることがあり、というかMạng máy tính以外は全部の科目で英語版の試験問題が配られたが、そこにはFinal examと書いてあったのでそれを日本語にすれば最終試験。

とにかくその期末試験だが、かねてから公開されていた昨年度の問題60問を全部暗記して臨んだ。
そのためのツールとしてpythonSQLiteで試験問題をPCで回答するシステムを作っていたわけだ。
試験は18:15からで、いつもとは違う教室だった。
エレベータの時点でいつもの試験監督、おそらく博士課程の学生だろう、2年前からのおなじみの人だ。
教室に入るとすでに数名の学生がいた。
やがて欠席君も来た。
まずはメモ用の白紙が配られ、その後問題用紙兼解答用紙が配られた。
昨年度同様全部で60問、A~Dまでの4択形式、正解と思われる選択肢を直接〇で囲む方式だ。
例によって例のごとく試験開始の合図はないので、配られた人から始める。
そうしているうちに遅刻君も入室、宿題提出を含め履修意思のある6名が全員来たことになる。一応名簿上は7名だったが。
先生はおらず博士課程の学生っぽい試験監督だけであったが、PCはもちろん紙の資料の使用も不可。一応電卓は使える。自分だけ外国人特権でベトナム語の辞書の使用も認められたが、ベトナム語の語彙がネックになる問題はなく、結局試験時間中1回も開くことはなかった。
問題そのものは半分ぐらいが昨年度と同じ。ただ、一部選択肢の順番が違っているところはあった。
それでも25問ぐらいは選択肢の順番を含めて昨年度と同じだ。
計算問題は解答を暗記しただけで一般的な勉強のようなものは一切していなかったが、幸か不幸か計算問題は昨年度とは全く違っていた。
そこで持ち込んだ電卓が役に立った。
何度も見直しをしたが、それでも18:45には終わって試験監督に問題用紙兼解答用紙を提出した。たったの30分で終わったことになる。
退室時、2019年度リーダーと目が合い軽く手を振る。自分が退室1番乗りだ。
試験時間の90分めいいっぱい使うと思って事前に夕食を済ませておいたが、こんなに早く終わるなら試験後でもよかったかも。
とはいえ早く入室してもただ待つだけだし、この日は夕飯を食べてから学校に行ったところちょうど試験監督ど同時に入室というジャストのタイミングであった。

その後、自宅についても19:15ぐらいであった。
普段の授業もこのぐらいの軽負担であれば体調にも悪影響はなかったであろう。
ひとまず、この問題であれば過半数は正解できていたと思われ、単位取得となる可能性は高いとみていいだろう。

Nguyên lý ngôn ngữ lập trình 15回目

2019年12月16日、Nguyên lý ngôn ngữ lập trìnhの15回目授業が実施された。
前回は珍しくグダグダがなかったが、今回はいつも通りグダグダで、結局18:20頃に小テスト開始。
前回はtypeの演習が終わりきらなかったので小テストはないか、あってもtypeの3回目かと思っていたが、まさかのJVM
こちらは2年前には小テストがなかった分野。模範解答もないのでとりあえず問題収集目的で。
そして小テスト終了後もグダグダ、無駄な時間を過ごした後に例によって例のごとくお為ごかしの答え合わせだ。
ひまなのでそもそもお為ごかしって正確にはどういう意味かを調べた。
てっきり、お為ごかしという言葉は形だけとか、中身を伴わないアリバイ作り的な意味合いなど、茶番の類義語かと思っていたが、辞書的な定義としては、「相手のためを思っていると見せかけて実は自己の利益になる発言や行動」だそうだ。
なので今まで思っていたのは厳密には間違いということになるが、いずれにしても学生にとってはクソの役に立っていないという意味では近いものがあった。
まあ茶番も見せられている側には何の役にも立たないが、見せる側には何らかのメリットがあるのかもしれないという意味では茶番≒お為ごかしと言えなくもないが、どちらかと言うと茶番はくだらないこと、お為ごかしは首謀者だけが得することという使い分けなのだろう。声に出して読みたい日本語。

さて、その後例によって全員が前の方の座席に強制的に移動させられるかと思ったが、なんとその後は教員は何もせず、ひたすら自習が続いた。
おそらく宿題3の締め切りが今度の日曜日なので、各自その宿題の時間に充てろということなのだろう。
また、これまただまし討ち的に宿題の仕様がこっそりと変更されており、eラーニングサイトに新仕様がこれまたこっそりとアップされていた。
こういうのを茶番というのだろう。
それにつけても、この科目は茶番であり、お為ごかしである。いいとこ全然ない。

しかし、全部で3問あるtype演習のうち、結局まともにやったのは問1だけで、問2と3は結局授業では取り上げなかった。
自分はもともと宿題の提出期限の延長はないものと思って準備していたので問2と3だけでなく他の箇所も全部自力で進めていたので良かったものの、この日の授業で問2と3をやると期待して出席したら完全にアウトだった。まさに茶番。

顧客である学生、今期履修し、かつて履修し、やがて履修する方、全員がこう言われる。「この科目は茶番であり、お為ごかしである。」

Nguyên lý ngôn ngữ lập trình Assignment 3 締め切り延びる

今週から授業が週1回体制になった。
まだ実感としては火曜日の授業がなくなっただけだが、それだけで体調が全然違う。非常に快適で、朝も5時ぐらいに起きれる。そして夜はすぐ寝付けると好循環だ。
さらには金曜日と土曜日の授業もないので、しばらくは健康状態を保てる。

さて、月曜の授業で前触れはあったが、本日正式にNguyên lý ngôn ngữ lập trìnhのAssignment 3の締め切りが延びたと連絡があった。
今朝時点で締め切りが2019年12月15日の表示であり、今日の昼頃に変わったようだ。
画面ではSunday, 22 December 2019, 11:55 PMと表示されており、一週間延びたことになる。
また、コーディングの方もほぼ全部でき、あとはテストケースを100個作るだけ。今のところ30個できたのであと70個だ。

Nguyên lý ngôn ngữ lập trình 14回目

2019年12月9日、Nguyên lý ngôn ngữ lập trìnhの14回目授業が実施された。
最近いつもグダグダであったが、この日の朝時点で小テストの入り口だけがアップロードされており、18:00開始となっていたのでもしかしてこの日はグダグダがないかもしれないと思った。
結局入室は18:03頃だったが、持参したPCを用意するのと同じぐらいのタイミングで教員が小テストのログインパスワードを板書した。
すると、教員がなぜか後ろの席の方に来て、ある学生を監視し始めた。
基本みんな1人で1つの机を使っているのに、そこだけ1つの机に2名座り、しかも密着している。
別に男同士で密着して気持ち悪いということではなく、単純にカンニングを疑っているのだと思いたい。
とはいえこんな問題誰にも分るわけがなく、したがって他の学生の画面を見ても全く参考にならないどころかかえって不正解になる確率の方が高い。
その後教員は他の学生の画面も監視していたが、この間過去問の画面を出すのに若干躊躇はした。
結局、過去問の模範解答自体が間違っており、全5問中正解率は20%にとどまった。つまり1問正解。逆にどこが当たったのか知りたいぐらい。
その後例によって例のごとくお為ごかしの答え合わせがおこなわれたが、どうでもいい問題なのにやたら長い。

その後全員が強制的に前の席に移動させられたが、いつもの問題演習ではなく、先ほどの問題をさせられる。AdvancedTypeQuiz03に相当する。
解説聞いてなかったので(厳密には聞いてもホーチミンのフニャフニャ発音、分かるわけがない)、この問題もよく分からないがひとまず戦利品だ。
f:id:k4h8:20191210110741j:plainf:id:k4h8:20191210110746j:plain
よく分からないうちにいつもの問題演習に入ったが、前回終わったはずの問1だ。
f:id:k4h8:20191210110828j:plainf:id:k4h8:20191210110832j:plain
てっきりこの日で問3まで終わると踏んでいたが、少なくとも問2が終わらなければAssignment 3はできない。
学生からの指摘により、Assignment 3の締め切りは1週間延びるとの噂だが、どうなるやら。

Mạng máy tính Bài tập lớn 2 校舎調査

Mạng máy tínhではBài tập lớnが2つ課され、それぞれが15%で計30%の成績割合となっている。
すでにBài tập lớn 1は提出およびデモも完了しているが、Bài tập lớn 2の提出期限が本日2019年12月10日の深夜23:55となっている。
ぎりぎりに提出しようとすると万が一インターネット回線やPCの不調があったときに提出できないので、その10時間前には提出するつもりである。
もっとも、今朝起きて6:30ぐらいに確認したところ、必要なファイルは厳密には本日2019年12月10日の日付が変わった1:00ぐらいにそろっていたことが分かった。
遅刻君と欠席君というチームを組むにはあまりに不利なメンバーであったが、締め切りのほぼ1日前に全部そろったのはこれまででは考えられない快挙だ。
というのも、もともとは締め切りは2019年12月10日24:00となっており、これは非常に紛らわしい表記である。
2019年12月10日になった瞬間に締め切り、つまり実質2019年12月9日いっぱいと解釈できるからだ。
実際は2019年12月10日いっぱい、つまり2019年12月11日になった瞬間に締め切りということだろう。
今朝起きてみたら締め切りは2019年12月10日23:55と表記されていた。
結果としてこれで正解。もし初めからこの表記なら、遅刻君と欠席君は今日の22:00とか23:00にファイルを送るどころか、着手するのがそのタイミングであったに違いないからだ。

さて、このBài tập lớn 2をするにあたってB4の教室をくまなく調査したのでその成果を張り付けておこう。

f:id:k4h8:20191210101929j:plainf:id:k4h8:20191210101935j:plainf:id:k4h8:20191210101942j:plainf:id:k4h8:20191210101948j:plainf:id:k4h8:20191210101954j:plainf:id:k4h8:20191210102001j:plainf:id:k4h8:20191210102007j:plainf:id:k4h8:20191210102014j:plainf:id:k4h8:20191210102020j:plainf:id:k4h8:20191210102027j:plainf:id:k4h8:20191210102033j:plainf:id:k4h8:20191210102039j:plainf:id:k4h8:20191210102044j:plainf:id:k4h8:20191210102053j:plainf:id:k4h8:20191210102100j:plainf:id:k4h8:20191210102106j:plainf:id:k4h8:20191210102112j:plainf:id:k4h8:20191210102118j:plainf:id:k4h8:20191210102125j:plainf:id:k4h8:20191210102132j:plainf:id:k4h8:20191210102138j:plainf:id:k4h8:20191210102145j:plainf:id:k4h8:20191210102151j:plainf:id:k4h8:20191210102157j:plainf:id:k4h8:20191210102203j:plainf:id:k4h8:20191210102209j:plainf:id:k4h8:20191210102216j:plain
B4調査

画像ついでにこれはおまけ。
自動ドアから入るとわずか3メートル先に自動ドアから出るという。「なんて気持ちの悪い建物だ!」
f:id:k4h8:20191210102344j:plainf:id:k4h8:20191210102350j:plain

Mạng máy tính 期末試験対策

過去問は配布されているんで自動化ソフトを作ろう。
まずはsqliteでデータベースを準備しておく。
ファイル名はMa_exam.dbとする。

テーブル作成

create table exam(
	 id integer
	,question text
	,japanese text
	,selectionA text
	,selectionB text
	,selectionC text
	,selectionD text
	,answer text
);

データ挿入

insert into exam values(1, 'Trong các ứng dụng hội thoại trực tuyến (video conferencing), thông số nào là quan trọng nhất để đảm bảo chất lượng dịch vụ tối ưu?', 'ビデオ会議アプリケーションでは、最適なサービス品質を確保するためにどのパラメーターが最も重要ですか?', 'Độ tin cậy (Reliability).', 'Phần mềm tiện lợi (Software).', 'Thiết bị chất lượng tốt (Devices).', 'Độ trễ của dữ liệu (Delay).', 'D');
insert into exam values(2, 'Phương pháp nào dùng để ngăn chặn các thâm nhập trái phép từ mạng và có thể lọc bỏ các gói tin?', 'ネットワークからの不正アクセスを防ぐためにどのような方法が使用され、パケットをフィルタリングできますか?', 'Encryption', 'Bảo vệ hạ tầng vật lý', 'Firewall', 'Login/ password', 'C');
insert into exam values(3, 'Giả sử ta có một gói tin truyền từ host A đến host B thông qua bộ chuyển mạch (switch). Tốc độ truyền dữ liệu từ A đến switch là R1 và từ switch đến B là R2. Tổng thời gian để chuyển hết gói tin có chiều dài là L từ A đến B là bao nhiêu ? (bỏ qua tất các thời gian trễ tại switch và thời gian lan truyền tín hiệu trong dây dẫn)', 'スイッチを介してホストAからホストBに送信されたパケットがあるとします。 Aからスイッチへのデータ転送速度はR1で、スイッチからBへのデータ転送速度はR2です。 AからBまでの長さLのパケットを完了するための合計時間はどれくらいですか? (スイッチでのすべての遅延時間とコンダクターでの信号伝搬時間を無視します)', 'L /(R1+R2)', 'L/R1 + L/R2', '(R1 + R2) /L', 'R1/L + R2/L', 'B');
insert into exam values(4, 'Mạng chuyển mạch có ưu điểm gì so mới mạng chuyển gói?', 'パケットスイッチングネットワークを超えるスイッチングネットワークの利点は何ですか?', 'Không có ưu điểm gì nổi trội so với mạng chuyển gói', 'Có khả năng đảm bảo lượng băng thông nhất định cho mỗi kết nối', 'Có thể cho phép số lượng người sử dụng lớn hơn', 'Có khả năng bảo mật cao', 'B');
insert into exam values(5, 'TDM ưu điểm gì so với FDM trong mạng chuyển mạch?', 'スイッチドネットワークでTDMがFDMより優れている点は何ですか?', 'Không đòi hỏi yêu cầu cao về phần cứng so với FDM', 'Không có ưu điểm gì so với FDM', 'Tốc độ truyền dẫn nhanh hơn', 'Đảm bảo được độ trễ', 'A');
insert into exam values(6, 'Giả sử ta có host A gửi một file 4000000 byte đến host B. Đường đi từ A đến B gồm 3 liên kết (link) tương ứng với tốc độ truyền dẫn R1 = 500 kbps, R2 = 2 Mbps và R3 = 1 Mbps. Bạn hãy cho biết mất bao lâu để gói tin đi đến B (trong điều kiện không có host nào khác tham gia đường truyền, bỏ qua thời gian đợi ở các router và thời gian lan truyền dữ liệu trong dây dẫn)?', 'ホストAがファイル4000000バイトをホストBに送信するとします。AからBへのパスは、伝送速度R1 = 500 kbps、R2 = 2 Mbps、R3 = 1 Mbpsに対応する3つのリンク(リンク)で構成されています。 パケットがBに到達するまでにかかる時間を教えてください(他のホストがリンクに参加しない場合、ルーターでの待機時間とワイヤでのデータ送信時間を無視します)?', '64 giây', '20 giây', '256 giây', '16 giây', 'A');
insert into exam values(7, 'Hãy cho biết đâu là thứ tự các tầng theo thứ tự từ trên xuống dưới (top-down) trong mô hình Internet:', 'インターネットモデルのトップダウンの順序は何ですか?', 'Message, Segment, Datagram, Fragment, Physical', 'Application, Transport, Network, Data Link, Physical', 'Physical, Link, Network, Transport, Application', 'Physical, Fragment, Datagram, Segment, Message', 'B');
insert into exam values(8, 'Phát biểu nào sau đây SAI khi đề cập đến ứng dụng chia sẻ file P2P:', 'P2Pファイル共有アプリケーションを参照する場合、次のステートメントのうちどれが偽ですか', 'Các máy trong mạng P2P không có vai trò server hay client một cách rõ ràng', 'Các máy trong mạng P2P có vai trò tương tự nhau, nhưng phải có một số máy chạy thường trực', 'Các máy trong mạng P2P đều có server process và client process', 'Cả (A), (B) và (C) đều sai', 'B');
insert into exam values(9, 'Lý do nào trong các lý do sau giải thích cho Câu hỏi “Tại sao các ứng dụng sử dụng giao thức HTTP, POP3, SMTP ở tầng ứng dụng phù hợp hơn với giao thức TCP ở tầng Vận chuyển so với giao thức UDP?”', '次のうち、「アプリケーション層でHTTP、POP3、SMTPプロトコルを使用するアプリケーションが、UDPプロトコルと比較してトランスポート層でTCPプロトコルにより適しているのはなぜですか」という質問の説明はどれですか。', 'Tất cả các ứng dụng trên đều đòi hỏi dữ liệu phải Vận chuyển theo thứ tự và không bị mất gói', 'Tất cả các ứng dụng trên do người lập trình tạo ra', 'Dữ liệu của tất cả các ứng dụng trên cần được bảo mật', 'Cả (A), (B) và (C) đều sai.', 'A');
insert into exam values(10, 'Giả sử rằng bạn An đăng nhập vào email của trường ĐH Bách khoa thông qua trình duyệt Web để gửi thư cho Bình, Bình thường đọc mail trên điện thoại thông qua ứng dụng sử dụng giao thức POP3 để kết nối với mail server. Bạn hãy cho biết đâu là giao thức ở tầng Vận chuyển (Transport) được sử dụng trong tình huống trên?', 'An氏がWebブラウザ経由でPolytechnic Universityの電子メールにログインしてBinhにメールを送信したと仮定すると、通常、POP3プロトコルを使用するアプリケーションを介して電話でメールを読み取り、メールサーバーに接続します。 上記のシナリオで使用されるトランスポート層プロトコルは何ですか?', 'UDP', 'TCP', 'Cả UDP và TCP', 'Không dùng UDP lẫn TCP', 'B');
insert into exam values(11, 'Giao thức TCP có thể kế hợp với giao thức SSL để cung cấp dịch vụ bảo mật thông tin từ tiến trình đến tiến trình (process to process) bằng cách mã hóa thông tin. Bạn hãy cho biết SSL được hiện thực tại tầng nào trong các tầng sau:', 'TCPをSSLと組み合わせて、情報を暗号化することでプロセスごとに情報セキュリティを提供できます。 次のレイヤーに実装されるSSLのレベルを指定してください', 'Tầng ứng dụng', 'Tầng vận chuyển', 'Tầng mạng', 'Tầng data link', 'A');
insert into exam values(12, 'Một TCP server cần bao nhiêu socket để có thể hỗ trợ đồng thời N kết nối từ N client khác nhau?', 'TCPサーバーは、異なるNクライアントからのNの同時接続をサポートするためにいくつのソケットを必要としますか?', '1', 'n', 'n + 1', 'Không xác định', 'C');
insert into exam values(13, 'HTTP Client muốn tải nội dụng của một trang Web theo địa chỉ URL với tên miền xác định, nhưng địa chỉ IP tương ứng với URL chưa được xác định. Bạn hãy cho biết giao thức nào được sử dụng ở tầng Vận chuyển trong trường hợp này để xác định địa chỉ IP tương ứng với trang Web?', 'HTTPクライアントは、指定されたドメイン名を持つURLにWebページのコンテンツをダウンロードしようとしていますが、URLに対応するIPアドレスは決定されていません。 この場合、Webサイトに対応するIPアドレスを決定するためにトランスポート層で使用されるプロトコルを教えてください。', 'UDP', 'TCP', 'Có thể UDP hoặc TCP', 'DNS và TCP', 'C');
insert into exam values(14, 'Dịch vụ DNS sẽ được sử dụng khi bạn sử dụng trình duyệt Web để truy cập vào trang Web theo một địa chỉ URL lần đầu tiên. Giả sử rằng n DNS server được truy vấn trước khi trình duyệt của bạn nhận được địa chỉ IP từ hệ thống DNS với thời gian truy vấn lần lượt là RTT1, RTT2,…RTTn và RTT0 là Round Trip Time (RTT) giữa trình duyệt Web và server chứa trang Web. Bạn hãy cho biết sau bao nhiêu lâu bạn sẽ có được nội dung của trang Web nếu trên trang Web đó chỉ có một đoạn văn nhỏ với 20 ký tự?', 'DNSサービスは、Webブラウザーを使用してURLのWebサイトに初めてアクセスするときに使用されます。 ブラウザがRTT1、RTT2などのクエリ時間でDNSシステムからIPアドレスを受信する前に、n DNSサーバーが照会されると仮定します。RTTnとRTT0はブラウザ間の往復時間(RTT)です。 WebおよびサーバーにはWebページが含まれています。 20文字の小さな段落しかない場合、Webサイトのコンテンツを取得するのにどれくらい時間がかかりますか?', 'RTT0 + RTT1 + …+ RTTn', '2RTT0 + RTT1 + .. RTTn', 'RTT1 + RTT2 + …+ RTTn', 'RTT0', 'B');
insert into exam values(15, 'Chọn phát biểu ĐÚNG:', '正しいのはどれか。', 'Khi người dùng sử dụng Web browser để truy cập vào một trang Web có một vài dòng văn bản và 4 tấm hình thì Web browser chỉ gửi một nội dung yêu cầu đến server và sẽ nhận được 5 nội dung phản hồi từ server tương ứng với các đối tượng trên trang Web đó.', 'Nội dung phản hồi trong gói tin HTTP trả lời từ server (HTTP response) đến Web browser sẽ luôn luôn có nội dung (phần body sẽ luôn luôn có dữ liệu).', 'Nội dung của hai đối tượng khác nhau của một trang Web có thể được gửi từ Web server về Web browser trên cùng một kết nối TCP .', 'Cả (A), (B) và (C) đều sai.', 'C');
insert into exam values(16, 'Hãy cho biết những giá trị của địa chỉ IP và cổng trong gói tin trả về từ phía server đến client A?', 'サーバーからクライアントAに返されるパケットのIPアドレスとポートの値は何ですか?', 'cổng nguồn: 80, IP nguồn: B; cổng đích: 26145, IP đích: A', 'cồng nguồn: 26145, IP nguồn: A; cổng đích 80, IP đích: B', 'cổng nguồn 80, IP nguồn: A; cổng đích: 26145, IP đích: B', 'cổng nguồn 80, IP nguồn C; cổng đích: 7532, IP đích: B ', 'A');
insert into exam values(17, 'Giả sử host A gửi 2 TCP segment kế tiếp nhau cho host B. Segment thứ nhất có SEQ là 120, segment thứ 2 có SEQ là 140. Bạn hãy cho biết có bao nhiêu byte dữ liệu trong segment thứ nhất?', 'ホストAが2つの連続したTCPセグメントをホストBに送信するとします。最初のセグメントのSEQは120、2番目のセグメントのSEQは140です。最初のセグメントには何バイトのデータがありますか?', '120 byte', '20 byte', '140 byte', 'Không xác định', 'B');
insert into exam values(18, 'Giả sử host A gửi 2 segment kế tiếp nhau cho host B theo qua kết nối TCP. Segment thứ nhất có SEQ là 100, segment thứ 2 có SEQ là 110. Gói tin thứ nhất không đến được B, nhưng gói tin thứ 2 đến được B. Bạn hãy cho biết giá trị ACK được host B trả về cho host A khi nhận được gói tin thứ 2 là bao nhiêu?', 'ホストAがTCP接続を介して2つの連続したセグメントをホストBに送信するとします。 最初のセグメントのSEQは100、2番目のセグメントのSEQは110です。最初のパケットはBに到達できませんが、2番目のパケットはBに到達します。 受信した2番目のパケットは何ですか?', '100', '101', '110', '111', 'A');
insert into exam values(19, 'Chọn phát biểu ĐÚNG trong các phát biểu sau:', '正しいのはどれか。', 'Host A gửi dữ liệu cho host B thông qua kết nối TCP. Nếu host B không có dữ liệu gửi cho host A thì sẽ không có bất kỳ gói dữ liệu từ host B gửi về host A.', 'Kích thước của gói tin TCP (segment) không bao giờ thay đổi trong suốt thời gian kết nối.', 'Khi gửi dữ liệu từ host A đến host B thông qua kết nối TCP thì kích thước của gói dữ liệu (segment) không được lớn hơn kích thước bộ nhớ đệm dùng để tiếp nhận dữ liệu của host B.', 'Khi gửi dữ liệu từ host A đến host B thông qua kết nối TCP, nếu số SEQ của segment X là m thì số thứ tự của segment tiếp theo X phải là m + 1.', 'C');
insert into exam values(20, 'Host A và host B trao đổi dữ liệu thông qua kết nối TCP và host B đã nhận được tất cả các byte dữ liệu từ 0 cho đến byte thứ 126 từ host A. Giả sử rằng host A sau đó gửi 2 segment kế tiếp nhau cho host B chứa lần lượt 80 byte và 40 byte dữ liệu. Trong segment đầu tiên có số SEQ là 127, số cổng nguồn là 3033 và số cổng đích là 80. Bạn hãy cho biết segment thứ 2 từ host A gửi về cho host B có chứa SEQ, cổng nguồn, cổng đích là bao nhiêu?', 'ホストAとホストBはTCP接続を介してデータを交換し、ホストBは0からホストAから126番目のバイトまでのすべてのデータバイトを受信します。その後、ホストAは2つの連続したセグメントを送信するとします ホストBには、それぞれ80バイトと40データバイトが含まれます。 最初のセグメントには、127のSEQ番号があり、送信元ポート番号は3033、宛先ポート番号は80です。SEQ、送信元ポート、宛先ポートを含むホストAからホストBに送信される2番目のセグメントを教えてください。', 'SEQ: 207, cổng nguồn: 3033, cổng đích: 80', 'SEQ: 207, cổng nguồn: 80, cổng đích: 3033', 'SEQ: 247, cổng nguồn: 3033, cổng đích: 80', 'SEQ: 247, cổng nguồn: 80, cổng đích: 3033', 'A');
insert into exam values(21, 'Host A và host B trao đổi dữ liệu thông qua kết nối TCP và host B đã nhận được tất cả các byte dữ liệu từ 0 cho đến byte thứ 126 từ host A. Giả sử rằng host A sau đó gửi 2 segment kế tiếp nhau cho host B chứa lần lượt 80 byte và 40 byte dữ liệu. Trong segment đầu tiên có số SEQ là 127, số cổng nguồn là 3033 và số cổng đích là 80. Nếu host B nhận được phân đoạn thứ 2 trước khi nhận phân đoạn thứ nhất thì trong gói tin trả về cho host A có ACK bằng bao nhiêu?', 'ホストAとホストBはTCP接続を介してデータを交換し、ホストBは0からホストAから126番目のバイトまでのすべてのデータバイトを受信します。その後、ホストAは2つの連続したセグメントを送信するとします ホストBには、それぞれ80バイトと40データバイトが含まれます。 最初のセグメントには、127のSEQ番号があり、送信元ポート番号は3033、宛先ポート番号は80です。ホストBが最初のセグメントを受信する前に2番目のセグメントを受信すると、ホストAに返されるパケットのACKは いくらですか?', '127', '207', '247', '167', 'A');
insert into exam values(22, 'Giả sử ta có 3 giá trị tương ứng của SampleRTT theo thứ tự lần lượt là 106 ms, 120 ms, 140 ms. Bạn hãy cho biết giá trị EstimatedRTT của lần sau cùng là bao nhiêu, nếu ta biết được giá trị alpha = 0.125, EstimatedRTT của lần gửi trước khi gửi gói đầu tiên trong 3 gói trên là 100ms?', 'SampleRTTに対応する3つの値、それぞれ106ミリ秒、120ミリ秒、140ミリ秒があるとします。 アルファの値= 0.125がわかっている場合、前回のEstimatedRTT値を教えてください。上記の3つのパッケージの最初を送信する前のEstimatedRTTは100ミリ秒ですか?', '106,71 ms', '105,45 ms', '107,67 ms', '103,15 ms', 'A');
insert into exam values(23, 'Giả sử ta có 2 giá trị tương ứng của SampleRTT theo thứ tự lần lượt là 106 ms, 120 ms. Bạn hãy cho biết giá trị DevRTT của lần sau cùng là bao nhiêu, nếu ta biết được giá trị alpha = 0.125, beta = 0.25, EstimatedRTT, DevRTT của lần gửi trước khi gửi gói đầu tiên trong 2 gói trên tương ứng là 100ms và 5 ms?', 'SampleRTTに対応する2つの値、それぞれ106ミリ秒、120ミリ秒があるとします。 alpha = 0.125、beta = 0.25、EstimatedRTT、2つのパッケージの最初を送信する前の最初の送信のDevRTTの値がそれぞれ100ミリ秒であることがわかっている場合、前回のDevRTTの値を教えてください 5 ms?', '8 ms', '5 ms', '0,12 ms', '10 ms', 'A');
insert into exam values(24, 'Giả sử server A nhận được một yêu cầu từ client B thông qua UDP datagram và server cũng phản hồi lời yêu cầu đó bằng một gói tin thông qua UDP datagram. Nếu client B sử dụng IP giả mạo Y thay vì sử dụng IP thật là X thì server A sẽ gửi gói tin phản hồi về IP nào?', 'サーバーAがクライアントBからUDPデータグラムを介してリクエストを受信し、サーバーがUDPデータグラムを介してパケットでそのリクエストに応答するとします。 クライアントBが実際のIP Xを使用する代わりに偽のIP Yを使用する場合、どのIPサーバーが応答パケットを送信しますか?', 'IP Y', 'Server không gửi được gói tin về client vì xác định được IP giả mạo', 'IP X', 'Server không phản hồi yêu cầu vì đó là gói tin UDP', 'A');
insert into exam values(25, 'Hãy cho biết sự khác nhau cơ bản giữa router và link-layer switch:', 'ルーターとリンク層スイッチの基本的な違いを教えてください', 'Trong router gói tin được chuyển đi dựa vào địa chỉ IP, trong link-layer switch gói tin được chuyển đi dựa vào địa chỉ MAC.', 'Bảng định tuyến trong router do người quản trị thiết lập, bảng định tuyến trong link-layer switch do nhà sản xuất thiết lập.', 'Trong router có bảng map giữa cổng ra và IP, trong link-layer switch không có bảng map giữa MAC và cổng ra.', 'Router và link-layer switch là một.', 'A');
insert into exam values(26, 'Host A kết nối với host B thông qua 3 router. Một gói tin IP datagram được gửi từ host A tới host B sẽ đi qua bao nhiêu network interface nếu bỏ qua việc phân mảnh IP daragram.', 'ホストAは3つのルーターを介してホストBに接続します。 IPダラグラムの断片化が無視された場合、ホストAからホストBに送信されるIPデータグラムパケットは、いくつのネットワークインターフェイスを通過します。', '8', '6', '4', '2', 'A');
insert into exam values(27, 'Host A kết nối với host B thông qua 3 router. Có bao nhiêu bảng định tuyến (forwarding table) được sử dụng để chuyển một gói tin IP datagram được gửi từ host A tới host B.', 'ホストAは3つのルーターを介してホストBに接続します。ホストAからホストBに送信されたIPデータグラムパケットを転送するために使用される転送テーブルの数。', '1', '2', '3', '4', 'C');
insert into exam values(28, 'Phát biểu nào sau đây SAI khi nói về IPv6 header:', 'IPv6ヘッダーについて話すとき、次のステートメントのどれが間違っているか', 'Độ dài của IPv6 header thay đổi tùy theo kích thước gói tin.', 'Header của IPv6 có ít trường dữ liệu hơn header của IPv4.', 'Header của IPv6 sử dụng 128 bit để chứa địa chỉ của nguồn.', 'Cả (A), (B) và (C) đều đúng.', 'A');
insert into exam values(29, 'Phát biểu nào sau đây ĐÚNG khi đề cập đến các router trong cùng một AS (Autonomous System):', '同じAS(自律システム)内のルーターを参照する場合に当てはまるのは次のうちどれですか', 'Các router dùng chung giao thức định tuyến trong nội bộ AS (intra-AS routing protocol).', 'Các router có chung giao thức định tuyến đi ra ngoài AS (extra-AS routing protocol).', 'Các router có chung chi phí khi đi ra ngoài AS.', 'Cả (A), (B) và (C) đều sai.', 'A');
insert into exam values(30, 'Phát biểu nào sau đây là ĐÚNG khi đề cập đến giao thức định tuyến OSPF:', 'OSPFルーティングプロトコルを参照するときに、次のステートメントのいずれがTRUEであるか', 'Router sẽ gửi gói tin quảng bá thông tin định tuyến đến tất cả các router khác trong cùng AS', 'Router chỉ gửi gói tin quảng bá thông tin định tuyến đến các router hàng xóm của nó', 'Router sẽ gửi gói tin quảng bá thông tin định tuyến ra các router ngoài AS', 'Router chỉ gửi gói tin quảng bá thông tin cho những router nào mới gia nhập vào AS', 'A');

同じフォルダにma_exam_gui.pyという名前でプログラムを作成。

'''
python ma_exam_gui.py
'''
import sqlite3
import random
import tkinter
from tkinter import messagebox

# function
def getQuery(seq):
	cur = con.cursor()
	sql = "select * from exam where id = " + str(seq);
	cur.execute(sql)
	result = cur.fetchone()
	return result
# OKボタンを押した時 --- (*3)
def clickNext():
	quizNumber = random.randint(1, 30)
	question = getQuery(quizNumber)
	textQuestion.delete('1.0', 'end')
	textQuestion.insert(tkinter.END, question[1])
	if(textTranslation.get("1.0","end-1c") != ""):
		textTranslation.delete('1.0', 'end')
		textTranslation.insert(tkinter.END, question[2])
	buttonA["text"] = question[3]
	buttonB["text"] = question[4]
	buttonC["text"] = question[5]
	buttonD["text"] = question[6]
	textAnswer.delete('1.0', 'end')
	textAnswer.insert(tkinter.END, question[7])
def clickA():
	if(textAnswer.get("1.0","end-1c") == "A"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
def clickB():
	if(textAnswer.get("1.0","end-1c") == "B"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
def clickC():
	if(textAnswer.get("1.0","end-1c") == "C"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
def clickD():
	if(textAnswer.get("1.0","end-1c") == "D"):
		textRecord.insert(tkinter.END, "〇")
	else:
		textRecord.insert(tkinter.END, "×")
# main
con = sqlite3.connect('./Ma_exam.db')
# ウィンドウを作成 --- (*1)
win = tkinter.Tk()
win.title('Mạng máy tính - ĐỀ THI CUỐI KỲ 2 NĂM HỌC 2018-2019')
win.geometry("900x480") # サイズを指定
win.option_add('*font', ('Times New Roman', 14))
textTranslation = tkinter.Text(win, height=6)
textTranslation.insert(tkinter.END, '日本語訳')
textTranslation.pack(fill = 'x')
textQuestion = tkinter.Text(win, height=6)
textQuestion.insert(tkinter.END, 'chuyển gói')
textQuestion.pack(fill = 'x')
okButton = tkinter.Button(win, text='Read', command=clickNext, anchor='w')
okButton.pack(anchor='w')
buttonA = tkinter.Button(win, text='A', command=clickA, anchor='w')
buttonA.pack(fill = 'x')
buttonB = tkinter.Button(win, text='B', command=clickB, anchor='w')
buttonB.pack(fill = 'x')
buttonC = tkinter.Button(win, text='C', command=clickC, anchor='w')
buttonC.pack(fill = 'x')
buttonD = tkinter.Button(win, text='D', command=clickD, anchor='w')
buttonD.pack(fill = 'x')
textRecord = tkinter.Text(win, height=2)
textRecord.pack(fill = 'x')
textAnswer = tkinter.Text(win, height=0, width=0)
textAnswer.pack()
# ウィンドウを動かす
win.mainloop()
con.close()

HỌC KỲ 2/2019-2020の科目登録で大学院事務局の不手際が(前々から由々しき問題であったがまたまた)浮き彫りに

実はHọc kỳ 2/2019-2020の科目登録は先月あるいはその前から始まっていたが、書いたかどうか記憶にない。
少なくともHọc kỳ 2/2019-2020がいつから始まるか把握していなかったので今書いておく。
表記によると03/02/2020、つまり2020年2月3日の月曜日からだ。
授業は一切かぶってはいないが、悪名高いあの科目の期末試験が2月10日の月曜日であるから、月曜日実施の科目は取らない方がいい。
もっとも、専門悲愁もとい専門必修科目はHọc kỳ 1にしか開講しない上、選択科目は3科目9単位を取っているので、Học kỳ 2/2019-2020は平日の夜に移動してまで受講する必要はないどころか、何も登録しなくてもよい。
一応制御系、組み込みシステムは3年前からやりたかったので成績や出席関係なく登録している。

と思っていたら、驚きの事実が発覚!
なんとHọc kỳ 1にしか開講しない専門悲愁もとい専門必修科目がある!
具体的にはMạng máy tínhとCấu trúc dữ liệu và giải thuậtの2つだ。
これらの共通点は、2019年度にも続行されているという点だ。
特に、Cấu trúc dữ liệu và giải thuậtは2年に1回、つまり4期に1回しか開講しないのに、なぜかHọc kỳ 1/2019-2020からは2期連続で開講しているということになる。密度4倍。
この措置をなぜ2017年度から、遅くとも2018年度から取らなかったのだ。
ここの大学院事務局の不手際が(前々から由々しき問題であったが改めて)浮き彫りになったわけだ。
仮に2018年度からこうしていれば、1科目3単位しか登録しなかった2/2018-2019でこれら2科目8単位も登録、あるいはどっちか1科目でも登録できていれば今期が楽になっていたはずだ。
さらに言えば1/2018-2019で単位取得数6単位、単位取得率100%で自信が付いたので、2/2018-2019ではこれら2科目8単位も含め3科目11単位を登録、単位取得となっていた可能性は高い。
そうすると今期は2科目7単位ということで負担は少なかった。
返す返すも大学院事務局の不手際、さらに今年度からの「だれも得しない」カリキュラム変更が級数的に悪い方向に作用している。
2019年度から専門悲愁もとい専門必修科目が毎回開講なんて遅すぎる。3年目の後半なんだから。
仮にこれが事前にわかっていたとしても、修士論文や研究を1年で終わらせられるか分からないので、1年半をまるまる充てる方針は変えなかったろうし、まったくもって無駄である。

Cấu trúc dữ liệu và giải thuật 13および14回目(最終回)

2019年12月7日の14:00から17:00までCấu trúc dữ liệu và giải thuậtの13回目および14回目ともいえる授業が実施され、同日を持って最終回となった。
授業時間は3時間なので1回分に毛が生えた程度だが、延長による利息的なものか、そもそも時間変更に対応してくれたことへのボーナス的な意味合いなのか、2回分にカウントされるようだ。
最大限好意的に解釈してもそれでも14回にしからない。
もともと2017年度カリキュラムだと20回であり、それば2019年度カリキュラム適用で15回に減り、さらに結果としてほぼ13回に減ったわけだ。
これが英会話スクールとかなら、金を払った回数分授業をやってくれないと困るが、そもそも授業自体は目的ではなく手段に過ぎない。最終目的には修士の学位があり、その前の目的が単位だ。
だから既定の回数より少なく単位が取れるのであれば逆にありがたいとすらいえる。
これで、この週に3科目の授業を終えたことになる。

一応この日出席したメリットとしては、宿題2はTrie、日本語でトライ木というのを使うらしい。
幸い、宿題2も期末試験も1月なので時間はある。

Mạng máy tính 15回目(最終回)

2019年12月7日、Mạng máy tínhの最終回となる15回目授業が実施された。
この日はいつもの時間とは違い8:00開始であり、かつ前日の夜に急に言われた。
前日同様教室につくと先生しかおらず、自分が学生で一番乗りとなった。
この時間を利用して一応宿題2のデモを行った。
そうしているうちに学生も集まり、大幅な遅刻者も含めれば宿題1と2を提出する意思のある6名全員が出席となった。
また、同日が最終回であることも明確となった。
今後の山場としては、実質の宿題2の提出は12月9日であることと、2週間後の期末試験(翻訳の表記ゆれで最終試験とも訳される)がある。
ひとまずはこれで平日夜週に3回の往復が週1回に減ったことは大きい。

Mạng máy tính 14回目

2019年12月6日、Mạng máy tínhの授業が実施され、今までの順番で言えばこれは13回目に相当するのだが、14回目になるようだ。
というのも、きっと誰も来ない一人きりのMạng máy tínhでボイコットされた授業が休講ではなく、代理の先生を手配して臨んだが学生が全員欠席という扱いになるためのようである。
実際には自分は行ったが、40分遅れだし授業を受ける意思がなかったと思われても仕方ない。
また、後述するがこの日の翌日の朝に急遽授業をすることになり、それが最終回であったことからもこの日を14回目とするのが妥当と思われる。

さて、内容自体だがこの日に言った意味はあまりなく、一応昨年度の試験問題をいち早く知ることができたことぐらいか。
実は自分は18:10ぐらいに入室したが、先生だけがいて学生は誰もいない。
この日は教室変更があり、それも前回の授業に出席した者にだけ知らされていたから、先週休んだ者がいつもの教室で待っていることも考えられる。
それに、マンツーマンだと授業が行われないリスクもあるので、先生にはいつもの教室に学生を探しに行くと言って教室を出た。
案の定、いつもの校舎に2名ほどいたので、その2名を伴って今回の教室に行く。これで学生は3名だ。
そうして、翌日の朝8時にこの場所で授業が行われること、宿題2のデモをするためPC持参が必要であることを知らされた。

Phân tích thiết kế giải thuật 15回目(最終回)

2019年12月3日、Phân tích thiết kế giải thuậtの最終回となる15回目授業が実施された。
この日の参加学生数はおそらく過去最多の15名。15回目に15名というのも偶然だ。だからどうしたと言ってしまえばそれまでだが。
名簿上は18名なので、最終回ということで期末試験の情報が得られるのではと思いほぼ全員が参加したのだろうか、あいにくと冒頭に6章の問題演習を1問行ったのみ。
実は自分の入室時に昨日別科目で組んだマガミ君とほぼ同時ではあったが、彼がいち早く回答した。
f:id:k4h8:20191204101727j:plain
その後、7章の続きから始め、休憩を経て第8章の途中にて終了時刻の20:30を回り、それでも悪あがきで20:40まで延長した挙句結局第8章の途中で尻切れトンボ、第7章はもちろん第8章の問題演習が一切ないままこの授業自体は不完全燃焼で終わった。
ということで最終回ではあるが来た意味はあまりなく(上記の写真を撮影したのみ)、期末試験の過去問が回ってきてからカンペ作りということになる。