授業を受けながら更新しようと思っていましたが、あまりに過酷な日々で結局一度も更新できずに終わりました。

日曜日(!!)に最後の試験が終わって、次の学期が始まるまで1ヶ月ほど時間があるので復習も兼ねて振り返っていきたいと思います。

各授業の話をする前に、私の所属するMaster of Software Engineering (MSE) プログラムを紹介したいと思います。

MSEプログラムの目的

2〜5年の業務経験をもつ若手エンジニアが1つ上のステップに行くために必要なスキルを提供するプログラムです。実際、Software Developer IやSystem Adminといったポジションで数年経験を積んだ人たちが、卒業後、Software Engineer IIやSenior Software Engineer、Project ManagerといったポジションでIT業界に戻っていきます。

MSEプログラム構成

MSEプログラムは CoreコースStudioプロジェクト の2つからなります。Coreコースは講義形式で行われるので、宿題が多すぎるということを除けば、日本の大学の授業とそれほど変わりません。Studioプロジェクトは、Coreコースで学んだ内容を実践する場で、実際に、クライアントと要件定義から始めて、開発、納品を1年間で行います。修士課程では修士論文をゴールに置くプログラムも多いですが、本プログラムでは修士論文を書くことはなく、Studioプロジェクトでの納品と講師陣へのプレゼンテーションをもって修了となります。

Coreコース

アカデミックな内容というよりは、ソフトウェア工学の中で実際の現場で役立つものを中心に勉強します。下記の5つのコースがCoreコースに指定され、必修科目となります。

  • 形式手法:17-651 Models of Software Systems
  • 要件定義:17-652 Methods: Deciding What to Design
  • プロジェクト管理:17-653 Managing Software Development
  • ソフトウェア品質管理:17-654 Analysis of Software Artifacts
  • ソフトウェア設計:17-655 Architectures for Software Systems

各コースの内容は別の機会に書きますが、全体的な特徴として、コーディングよりもリーディングやライティングが重視され、また個人課題と同時にグループワークが頻繁に行われます。

コーディングに関しては、既にできることを前提としているためCoreコースでは扱われないのだと思います。実際、MSEプログラムの入学試験にはコーディング試験が含まれており、そこでフィルタリングしていると考えられます。代わりに、リーディングやライティングが重視され、毎週100ページを超えるリーディング課題と、4〜5ページのエッセー課題が出されます。これは、プログラムの目的である1つ上のステップでは、技術スキルに加えて、読み書きなどのコミュニケーションスキルが重要であると考えられているためです。

また、Coreコースでは個人課題に加えて、グループ課題が出され、週2,3回学生たちがチームミーティングを開いています。コンピュータサイエンス系の授業では個人でプログラミングを行うところが多いですが、就職後はチームで開発することになるため、MSEプログラムでは就職後スムーズにチーム開発に入れるよう、毎週のようにグループ課題がだされます。チームは国籍や勤務年数を考慮して、なるべく公平になるように決められます。

Studioプロジェクト

Studioプロジェクトは、学生を4〜5名のグループに分け、ソフトウェアを必要としている組織・企業が割り当てられ、1年間そのクライアントのために開発を行います。公式サイトではクライアントの例としてNASA JPLを紹介してます。

プロジェクトにはソフトウェア開発経験の豊富な2名のメンターがつき、毎週クライアントと打ち合わせをもち、メンターとの相談を通して進めていきます。私はまだチームが決まったばかりで実際に進めるのは来年からなのでまた後日アップデートしたいと思います。

最初の学期を振り返って

渡米前に、Carnegie Mellon大学は大変だと聞いていましたが、予想よりもはるかに大変でした。イメージとしては、大学入試直前の高校3年生といった感じでしょうか。週末も含めほとんどの時間を宿題に費やさないとついていけない…という状態でした。

最初の1ヶ月は英語に慣れるのが大変でした。大量のリーディング課題が出るのに読むのが遅く、エッセーも日本語で下書きしたものを翻訳して書くため、いつも時間が足りないと思っていました。1ヶ月も経つと、エッセーにも慣れ、2時間で2ページぐらいのエッセーは書けるようになり、またスキミングもできるようになり、20ページぐらいの記事であれば1、2時間で読めるようになりました。

英語に慣れてきたと思った頃、グループワークが始まり、また大変な日々が始まりました。グループワークは課題のゴールはあるものの、どう進めていくかはチームで決められるので自由度が高く、徹夜してチーム全員で一緒にやるチームもあれば、たった2時間のミーティングで後は個人作業で進めるチームもあります。全員が他の宿題で忙しい中、どのようにタスクを割り振るか、また自分たちで決めた期限を守れないメンバーをどうするかなど…頭を悩ませることが多かったです。さらに、ほとんどが非ネイティブの学生であるためコミュニケーションに苦労し、締め切り間際になってミスコミュニケーションが発覚し、成果物に一貫性がないということもありました。

ただ、クラスメイトが40名程度と比較的小さく、毎日授業で顔を合わせるため、お互い励ましあえる良い環境でした。また、出欠を取るのがメインの日本のTA (Teaching Assistant)と異なり、こちらでは成績上位者のみがTAとして採用されるので、TAは非常に優秀で困ったときに頼りになりました。

次の学期も大変だと聞いていますが、しっかり休んで頑張っていこうと思っています。