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

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

20160331 Nguyên lý ngôn ngữ lập trình

package exercisepackage exercise
trait FP {
// Q1  def recLstSquare(n:Int):List[Int]={    if(n==1) List(1)    return recLstSquare(n-1) ++ List(n*n)  }   def recHelpLstSquare(n1:Int,n2:Int):List[Int] = {    if(n1==n2) List(n2*n2)    else (n1*n1)::recHelpLstSquare(n1+1, n2)  }  def higLstSquare(n:Int):List[Int]{    //return (1 to n).map(n => n*n).toList  }// Q2  def recPow(x:Double,n:Int):Double = {      if(n==0) 1      else x * recPow(x, n-1)  }  def higPow(x:Double,n:Int):Double = (1 to n).toList.foldLeft(10)*1((x,y)=>y::x)  }// Q4  def LessThan(n:Int,lst:List[Int]):List[Int] = null  def recLessThan(n:Int,lst:List[Int]):List[Int] = {    if(lst.isEmpty) lst    else{      if(lst.head < n) lst.head::recLessThan(n, lst.tail)      else recLessThan(n, lst.tail)    }  }  def higLessThan(n:Int,lst:List[Int]) = null
// Q5  case class A(n:String,v:Int)  case class B(x:Int,y:A)  def lookup[T](n:String,lst:List[T],f:T=>String):Option[T] = {    if(lst.isEmpty) null    else{      if(f(lst.head)==n) Some(lst.head)      else lookup(n, lst.tail, f)    }  }}
object Main {  def main(args: Array[String]) {    //debug message    println("This is a main functuion")    val LnSqare = new Array[Int](10)  }}

*1:a,b)=>a*n)// Q3  def recAppend(a:List[Int],b:List[Int]):List[Int] = {    if(a.isEmpty) return b    else return a.head::recAppend(a.tail,b)  }  def recReverse(a:List[Int]):List[Int] = {    a match {    case List() => a    case head::tail => recReverse(tail):+head    }  }  def higAppend(a:List[Int],b:List[Int]) = null  def higReverse(a:List[Int]):List[Int] = {    a.foldLeft(List[Int](

20160328 Nguyên lý ngôn ngữ lập trình

package exercise

trait FP {

// Q1
def recLstSquare(n:Int):List[Int]={
if(n==1) List(1)
return recLstSquare(n-1) ++ List(n*n)
}
def recHelpLstSquare(n1:Int,n2:Int):List[Int] = {
if(n1==n2) List(n2*n2)
else (n1*n1)::recHelpLstSquare(n1+1, n2)
}

def higLstSquare(n:Int)= recHelpLstSquare(1,n)
// Q2
def recPow(x:Double,n:Int):Double = 0
def higPow(x:Double,n:Int) = null
// Q3
def recAppend(a:List[Int],b:List[Int]):List[Int] = null
def recReverse(a:List[Int]):List[Int] = null
def higAppend(a:List[Int],b:List[Int]) = null
def higReverse(a:List[Int]):List[Int] = null
// Q4
def recLessThan(n:Int,lst:List[Int]):List[Int] = null
def higLessThan(n:Int,lst:List[Int]) = null

// Q5
case class A(n:String,v:Int)
case class B(x:Int,y:A)
def lookup[T](n:String,lst:List[T],f:T=>String):Option[T] = null
}

object Main {
def main(args: Array[String]) {
//debug message
println("This is a main functuion")
val LnSqare = new Array[Int](10)
}
}

 

Nguyên lý ngôn ngữ lập trình初課題提出

 chương trình đào tạo định hướng ứng dụng(Coursework)とchương trình đào tạo nghiên cứu(Research)のいずれでも必修科目となるNguyên lý ngôn ngữ lập trìnhの初回課題提出期限が今週末に迫った。
なお、同科目は珍しく4単位であり、回数も毎週水・土の10週、20回となっている。授業料は不明だが、3単位科目よりは高いかもしれない。いずれにしても金の問題よりも20回通うという肉体的負担の方が大きいのでできれば再履修は避けたい。
と思っていたらクラスの中に妙にやる気のある角刈りの奴がいて、授業の3週延長を申し出た。つまり6回追加になるわけだ。出席表が回ってきたのでサインしたら、なんとそれが授業延長の署名であった。かくしてその角刈りはクラス全員の署名を先生に渡し、その後ポータルサイトでも全授業回数が週2回の13週、合計26回となっているのが確認できた。ちなみに先生が若い女だから延長を希望したとかではない。40代ぐらいの男の先生である。授業も最新設備を利用した実習とかではなく、何もない教室での座学である。角刈りがなぜ延長を希望したのかはよく分からない。

さて、課題の提出は特設サイト
www.cse.hcmut.edu.vn/onlinejudge
において行われる。ここから以下の3ファイルを送信する。
MC.g4
LexerSuite.scala
ParserSuite.scala
当然、何も提出しないと0点となる。実は課題は今回の課題Aと次回の課題Bの2回あるが、単なる両者の合計点ではない。数式にすると
課題点数 = 2 * A * B / ( A + B )
となり、どちらかが0点だと自動的に課題全体が0点という理解に苦しむルールになっている。
なお、同科目全体の成績のつけ方は以下の通り。
Tutorial/Lab/Online(授業中の小テスト): 10%
Assignment(課題): 30%
Midterm(中間試験): 20%
Final(期末試験): 40%
科目の成績が50%以上なら単位取得となる。なお、MidtermやFinalはノートや自分で印刷してきた紙を見ながら問題を解くことが認められていが、PCの使用ができる科目は全体の3割ぐらい。ただし、たとえPCが使えても、そもそも試験問題は何パターンもあるので他の奴に答えを聞いても有利になることはないだろう。また、授業中の小テストも出題順序が人によって違う上に前の問題には戻れない仕様となっているので隣の席の奴のPCを覗き見るというカンニング防止になっている。

授業の時間帯は?

ベトナムの大学院の授業は平日の夜と土日を中心に行われる。2016年までは平日の昼間に必修科目があったようだが、2018年現在は存在しない。おかげで会社を休むことなく通える。このため、日本にように純粋な大学院生という人はあまりおらず、平日の昼間働いている人が多い。もちろん23歳で大学院に通っている人もいるが、全体の半分以下。30代ぐらいなら普通だ。40代ぐらいでも修士課程なら目立つようなものでもない。

なお、具体的な時間割は以下の通り。
6:30~8:55(土日のみ)
9:05~11:30(土日のみ)
12:30~14:55(土日のみ)
15:05~17:30(土日のみ)
18:15~20:40

授業回数は15回。週に1回で15週だが、たまに週2回で8週の科目もある。

ベトナム大学院の学費は?

ベトナムの大学院の授業料は日本のように年間定額ではなく、登録した科目ごとの課金である。しかも、同じ単位数であっても科目ごとに金額が違うので、値段は実際に登録して、1か月ぐらい経ってみないとわからない。時価のすし屋に行ったような気分だ。

具体的な科目名(単位数)金額としては
Đổi mới sáng tạo & Khởi nghiệp (2) 1,485,000₫
Quản lý và lãnh đạo (2) 1,485,000₫
Triết học (3) 1,560,000₫
Phương pháp nghiên cứu khoa học nâng cao (3) 1,860,000₫
Hệ cơ sở dữ liệu nâng cao (3) 2,280,000₫
Lập trình nâng cao (3) 2,280,000₫
Kiến trúc máy tính nâng cao (3) 2,280,000₫

のように、同じ3単位科目でも1,560,000₫~2,280,000₫の開きがある。なお、成績のつけ方も詳しくは別ページで述べたいが、日本のようにとりあえず出席すれば、あるいはそもそも出席しなくても単位取得できるというものではなく、再履修もあり得る。というか、大半が初見殺しだ。その場合、また上記の授業料を払わなくてはならない。学生側も考えたもので、登録せず(=課金せず)教室に入り何食わぬ顔で授業に参加している者もいる。半分以上過ぎたところで姿を消すのだが、おそらく1発で単位取得できるように授業の内容を前もって知っておくのだろう。

コース選択に気を付けて!

ベトナムの大学院において、以下2つのコースがある。
chương trình đào tạo định hướng ứng dụng(Coursework)
chương trình đào tạo nghiên cứu(Research)

ググるとOZの大学院が同じような仕組みのようだ。イギリスにもTaughtとResearchの2つがあり、ほぼ同等とみていいだろう。なお、日本の大学院はnghiên cứu(Research)に近いようだ。

ứng dụng(Coursework)…座学50単位、修士論文10単位。合計60単位

nghiên cứu(Research)…座学30単位、修士論文兼出版による報告30単位。合計60単位

2つのコースが「ある」のであって、「選べる」ではない点に注意したい。というのも、入学手続きをすると自動的にというか勝手にứng dụng(Coursework)にさせられてしまう。それだけならまだしもứng dụng(Coursework)の必修科目まで勝手に登録させられてしまう。それらはnghiên cứu(Research)では必要のない科目だ。挙句の果てに不要な科目の授業料が課金される。1科目1万円以上で、3科目。具体的な授業料については別な機会に詳細を書きたい。

わざわざベトナムくんだりまで来て大学1年生のように授業を受けるのもなんだし、大学院なら研究メインだろう。入学手続き後は、「nghiên cứu(Research)を選択する」と早めに事務所に伝えておいた方がいい。あとあと無駄な金と時間を使わずに住む。

ベトナム大学院のレベルは?

あいにくと設備はなく、黒板(ホワイトボード)と机といすがあるだけ。申し訳程度に半世紀前のプロジェクタがあるぐらいだが古すぎて持ち込んだPCを繋げない人も多い。ここで「持ち込んだPC」という文言を見て気づいた人、正解。大学にPCないんだ。日本ほどの設備ではないのは仕方ないが、これはタンザニアジンバブエエチオピア、モザンピークに劣る。ウガンダあたりと比べてどうかなってレベル。

ただ、逆に一回りして、学生として通っているやつらは金持ちばかり。そう、教室にPCが1台もなくても、一人1台のPCをもってきている。というか、授業がその前提で行われ、各自持ち込んだPCをインターネットに接続し、オンライン上で小テストが行われたりする。つまり、ノートPCが買えない奴は入れない。一応国家大学なので学費自体は安いが、設備が全部持ち込みっていうのはつらい。

ちなみに、国家大学というのはベトナムにある大学の分類で、国立大学の中でも特に予算が多く配分されている(=授業料が安い)のが国家大学と呼ばれる。なお、授業料は日本で一般的な年間定額ではなく、登録した科目に応じて異なる。なのでその時々で違うが、一般的な年間学費はノートPCより安い。下手すりゃ月の家賃よりも安いかも。これは教育にかかるコストが安い国とみることもできるが、不動産価格が不当に高い国と考えることもできる。ベトナムの不動産については議論をすると長くなってしまい本来の趣旨である大学院の話題から外れるのでこの辺で。