とてつもなく高速で、人を超えるまでに賢くなったコンピュータは、実際には、数100程度の単語しか理解できない子供です、と言ったら驚くでしょうか。たった数100単語で、どのようにして、あれほど複雑なことを実現しているのでしょうか。コンピュータに、手取り足取り何をしたら良いか指示を出すのがソフトウェアです。単純なブロックをうまく積み重ねて、壮大なオブジェを作りあげるように、ソフトウェアは、数100の単純な命令を組み合わせて、人間のお供をするロボットを操ったり、表情豊かに音楽を演奏したり、また、不思議な円筒形の道具で人の意図を読み取ったり、大規模で複雑なデータに対してその要点を的確にグラフ表示するなど、様々な仕事を見事に達成します。
ソフトウェアサイエンス主専攻では、このようなソフトウェアの科学と技術について、基礎理論から応用
まで学びます。たとえば、現実の物理現象や化学反応をコンピュータの中で再現して何が起きるか見るためには、現象を数理的なモデルで置き換え、シミュレーションをするソフトウェアを作ります。また、ソフトウェアが意図通り正しく動くか調べるためには、ソフトウェア自身をモデル化し、テストや検証のためのソフトウェアを構築して動かします。
非常に巨大なデータを扱うためには、現代コンピュータと言えども膨大な時間がかかるので、「アルゴリズム」とよばれる命令手順の改良が必要となり、数学的・論理的思考力が培われます。ロボットや音楽演奏、そして人にやさしいソフトウェアを作るためには、新しいアイディアを生み出す発想力が必要となります。これらを通じて、「情報」と「計算」の本質を理解し、未知の問題に対処する力を備えた人材を育成します。