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

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

Nguyên lý ngôn ngữ lập trình期末試験やっと実施!

2020年5月11日、Nguyên lý ngôn ngữ lập trình期末試験がやっと実施された。
中国を発生源とするコロナウイルス(正式名称:中国肺炎、武漢肺炎、中国ウイルス、武漢ウイルス、英語名:Wuhan virus、ベトナム語名:virus Vũ Hán)の影響で何度も何度も延期になり、最終的に3カ月延期になっていたものだ。
自宅のカレンダーには今も当初の試験日であった2月10日に〇がつけられている。まあいちいち消さないからそのままで変わらないんだろうけど。
それもやっと終わったということで、Học kỳ 1/2019-2020の学校はすべておわりということになる。もっとも同日からHọc kỳ 2/2019-2020が始まったんだけど。

肝心の試験内容だが、全体の50%が予期不可能な問題、残りは幸い流出過去問と同一だ。数字がちょっと変わったぐらい。
ただ、過去問は公式には配布されず、たまたま身内に学部生がいたので学部の過去問をもらったということになる。
その50%を占める予期不可能な問題がこれだ。
f:id:k4h8:20200512111541j:plain
Ⅰの1、最初のifを記述する問題は当然分かるはずもないので、部分点狙いでvisitLoopの文章をそれらしく一部変えてみた。
配点2点中の1点でも取れれば御の字だ。
次にⅡは6問から5問を選択するのだが、見事に5問が流出過去問と同一なのでそれを選択、5点は固い。
最後にⅢの8はscalaの問題だ。
なお、問題文をそのまま実行するとエラーになるので、下記のように補足する。

object Main extends App{
	def main = {
		var a = 7
		var b = 1
		var c = 4
		def sub2(b: =>Int, c: Int, f: Int => Int) = (f(c) - f(b)) * 2
		def sub1(b: Int) = {
			def sub3(c: Int) = {
				a = a +1
				b * c + a
			}
			a = sub2(a-c, 1, sub3)
		}
		sub1(3)
		print(a)
	}
	main
}

これをpaiza.ioで実行すればよい。
pass by なんとかは全然分からないので、これもとりあえず図を描き部分点狙いだ。
配点が3点と大きいので、なんとか1.5点に結び付けたい。
そうすると10点満点中7.5点は取れるだろうか。
試験自体も重要だが、最終成績が10点満点中5点を超えるかどうかが一番重要だ。