1st semesterの紹介【ELTEのCS】ハンガリーの大学でコンピュータサイエンス

ハンガリーCS留学

たまご夫です。私は今ドイツで大学院生をしていますが、去年までハンガリーのEötvös Loránd University(ELTE)Computer Science(CS)を学んでいました。3rd semesterまでは在学していたので、今回はまず2021年に受けた1st semesterの紹介をします。

カリキュラム概要

詳細なカリキュラムはこちらのリンクからご覧いただけます。

LecturePracticeの大きく2パターンで授業が行われていました。留学生は大体80〜120人程度。Lectureは2クラス、Practiceでは6〜7クラスに分かれて授業が実施されています。1st semesterは授業の割り当ては自動的に行われます。ハンガリー語の授業カリキュラムとは異なるため、ハンガリー人の学生とは同じクラスになることはありません。

授業の質と落第のリスク

先生によって授業の質に一定のばらつきがあるように感じました。特にプログラミングを初めて学ぶ学生にとっては、先生によって授業内容の理解が難しい場合が多々あります。また、一つの授業を3回落第するか、合計で6回落第すると退学となるため、その点には十分注意が必要です。授業によっては前提条件となる授業があり、ある授業を落とすと次の授業が取れないという事態がおこるので、落としたら自動的に留年となる授業もあります。詳細なルールはこちらで確認できます。

評価方法

評価は主にMidterm(中間テスト)Endterm(期末テスト)の2回を基に行われます。もしテストでの成績が良くなかった場合、Retake(再テスト)の機会があります。この再テストには特にデメリットはないため、学生には2回のチャンスが与えられています。

1st semesterではLectureとPracticeで一つの単位取得となり、Lecture単体のテストは実施されていませんでした。Lectureのテストに関する詳細はまた次回のブログで取り上げます。

科目別の感想

1. Learning Methodology

難易度: ★☆☆☆☆

内容:新入生のためのイントロダクション的な授業。自己紹介や異文化理解、勉強のやり方などのワークショップを行う。

ポイント:ここでの交流を通じて友達を作る人が多い。出席してアクティブに参加すれば単位獲得は問題なし。

2. Basic Mathematics

難易度: ★★☆☆☆

内容:日本の高校数学+αの内容で数Ⅲまで習っていればほぼ復習。文系出身でも十分追いつけるようなカリキュラム。

ポイント:テキストの説明と練習問題ををしっかりと理解すれば、落第のリスクは低い。

3. Computer Systems L+P

難易度: ★★★☆☆

Lecture:
Computerの歴史やOSの基本を学ぶ。期末試験は選択問題。比較的難しくはないがたまにマニアックな問題を出題されるため、体感で1〜2割の人は落としていた。先生が定年で自分の時と変わっている可能性が高い。

Practice:
LinuxやPowershellの基本コマンドを学習。先生によって難易度やテストの方式にばらつきがある。授業内容をしっかりと理解し、演習の対策を行っていれば比較的合格は簡単。

4. Programming (L+P)

難易度:★★★★☆

この授業は多くの学生が落とされるものの一つで、実際に3〜4割の学生が落第しているように見受けられる。他の授業と比較すると課題が非常に多く、適切な計画なしで進めると、テスト期間と課題の提出期限が重なってしまい、非常に厳しい状況になることも。

Lecture:
ここでは、NSチャートと呼ばれる図を使用して、コードを書くための情報の読み取り方や表現方法(例:カウント、ループ等)を学ぶ。日々の授業の内容に追いつけなければ、内容が次第に理解できなくなる恐れがあるので注意が必要。Endtermの試験では、NS図や前提条件などを紙に書いて提出する形式。

Practice:
授業内容は先生により異なる場合がある。C++を用いて、とにかく動くコードを書くことが中心。MidtermとEndtermの試験は、自分のコードを自動採点ツールにアップロードして採点される方式。

5. Imperative Programming (L+P)

難易度:★★★★☆

こちらもProgramming同様、多くの学生が難しいと感じる授業。課題やテストが他の授業と比べて少ないが、逆に期末テストで何もできずに落第ということが起こり得る。

Lecture:
授業では、”Imperative programming”というプログラミングの方法を学ぶ。出席は特に取られていないようだが、非常に興味深くて学ぶ価値のある授業。

Practice:
こちらも先生により内容が異なる可能性がある。C言語を使ってImperative programmingのスタイルに基づく可読性の高いコードを書くことが重要(ただ動けばいいわけではなく、関数やファイルを適切に分けることができないと加点されない)。
日々の小テストがあったりMidtermとして課題が出題されるが、合否がほぼEndtermの結果で決まるので要注意。

6. Functional Programming (L+P)

難易度:★★★★★

1st semesterで一番の要注意授業。Cleanと呼ばれるマイナー言語を使用してFunctional programmingを学ぶ。先生曰く7割は落とすらしく、再履修や再々履修の人が多い。
ネットでサンプルコードが見つからず、公式マニュアルもわかりづらかったので、毎週ある質疑応答の時間で適宜わからないところを解消していくことが重要。

Lecture:
知識の問題として全10回の小テストが行われるが、その半分を合格しないと落第。紛らわしい問題も出されるため、半分といってもそこまで余裕はなく、授業で口頭ではいわれたが、スライドにかかれていないことも出題されるので要理解。

Practice:
全10回の小テストとしてのコーディングの授業があり、これも半分解けない時点で落第。時間がシビアで10分の間に2問解かねばならず、応用問題が出るので授業でやったコードはそのままでは使えない。MidtermとEndtermは各10問でこれも合格点は半分必要。

7. Business Fundamentals (L+P)

難易度:★☆☆☆☆

この授業はCS関連ではなく、ビジネス現場のリアルな経験や知識を学べる。

Lecture:
実際のビジネスの現場や事例を学べるので、興味深い授業だった。

Practice:
4〜6人のグループに分かれて新しいビジネスアイディアを考案するワークショップ形式の授業となる。Lectureで習ったビジネスのテクニックや知識をもとに、ビジネスプランを考える。私のチームは6人中3人しか積極的に参加してくれなかったため、自分がチームに貢献して形にしていくことが大変だった。

●まとめ

今回はELTE CSの1st semesterについての情報や感想を書きました。カリキュラムの内容や難易度は2021年の受講時と変わっているかもしれませんので、参考までに留めておいてください。

次回は2nd semesterについての情報を共有しようと思います。