準備はいい あなたのキャリアを進めますか?

私たちのプログラムは、OOP(Java)、Webアプリケーション、そしてデータサイエンスを使ったソフトウェアシステムとソフトウェア開発の分野を専門としています。 主な研究分野は次のとおりです。高度なソフトウェア開発、Webアプリケーションのプログラミングとアーキテクチャ、ビッグデータの分析と技術、機械学習、およびいくつかの重要なアプリケーション分野。

すべてのコースはあなたがあなたのキャリアを向上させるのを助けるように設計されており、各コースは実用的な課題を含んでいます。 見る 卒業要件。

新しい! 賞を受賞 データサイエンストラック

標準コアコース

  • 現代のプログラミング実践(Javaプログラミング)(CS 401)

    このコースでは、オブジェクト指向プログラミングの基本原則について説明します。 学生は、再利用可能でよりよく維持されたソフトウェアを書く方法を学び、この知識を実験室の課題やプロジェクトと統合するでしょう。 トピックには、オブジェクト指向プログラミングの基本原則とモデル、UMLクラス図、およびソフトウェアの再利用性と保守容易性を促進する設計原則が含まれます。 (4ユニット)

  • 高度なソフトウェア開発(CS 525)

    このコースでは、ソフトウェアシステムの優れた設計のための現在の方法と慣行を検討します。 トピックには、ソフトウェア設計パターン、フレームワーク、アーキテクチャ、およびこれらのマルチレベル抽象化を適用するための設計システムが含まれます。 (2 - 4クレジット)前提条件:CS 401または部門の教員の同意。

  • アルゴリズム(CS 435)

    このコースでは、アルゴリズムの効率を分析する方法(最悪ケースと平均ケースの分析を含む)を紹介し、さまざまな既知の非常に効率的なアルゴリズムを紹介します。 アルゴリズムの分析、設計、および実装にも同様に重点が置かれています。 トピックには、検索とソート、データ構造(リスト、ハッシュテーブル、バランスのとれた二分探索木、優先度キューを含む)に対する操作の効率化、グラフアルゴリズム、組み合わせアルゴリズム、再帰関係、動的計画法、NP完全問題、およびいくつかの特別トピックが含まれます。許可します。 (特別なトピックには、計算幾何学、暗号システムのアルゴリズム、近似、ビッグデータ、および並列計算が含まれます。)

  • コンピュータネットワーク(CS 450)

    このコースの目的は、ネットワークがどのように機能するかを調べ、ネットワークアプリケーションを開発することによって、コンピュータネットワークの概念、アーキテクチャの原則、および用語を学ぶことです。 このコースでは、インターネットのアーキテクチャとプロトコルをネットワークの原則の実装の主な例として使用して、ネットワークを理解するためのトップダウンのアプローチに従います。 私たちはアプリケーション層から始めて、トランスポート層、ネットワーク層、リンク層、そしてコンピュータネットワークの物理層まで続けます。 学生はいくつかのネットワークアプリケーションを開発し、インターネットで使用されている主なネットワークプロトコルを追跡し理解するように設計されたいくつかのラボを完成させます。 (4単位)前提条件:CS 401または部門の教員の同意。

  • データベース管理システム(CS 422)

    データベースシステムは情報を組織化し検索し、ユーザが所望の情報に容易かつ効率的にアクセスすることを可能にする。 トピックは次のとおりです。リレーショナルデータモデル。 SQL; ERモデリング 関係代数; データの正規化 トランザクション データベース内のオブジェクト。 データのセキュリティと整合性 データウェアハウス、OLAP、およびデータマイニング。 分散データベース 特定の商用データベースシステムの研究。 (4単位)前提条件:CS 401または部門の教員の同意。

  • ソフトウェア工学(CS 425)

    ソフトウェア工学は、ソフトウェア開発方法論を通じてソフトウェア開発におけるベストプラクティスを学生に紹介するコースです。 学生はすでにオブジェクト指向パラダイムで以前のコースでいくつかの経験を持っていて、ソフトウェアオブジェクト間の関係をモデル化する目的のためにいくつかの基本的なUML図を使いました。 ソフトウェア工学では、学生はこれらのツールを組み合わせて堅牢で保守が容易なソフトウェアを作成するスキルを磨きます。 ソフトウェア開発方法論では、高品質のソフトウェアを構築するという目的を達成するために、オブジェクト指向の概念とUML図をいつ、どのように使用するべきかについて説明します。 コースは講義形式で議論された原則が例証され適用されることができる小さなプロジェクトを中心とします。 コースの終わりまでに、学生はRUP(Rational Unified Process)開発方法論の高い標準に従って構築された実行中のアプリケーションを持つことになります。

  • Webアプリケーションのアーキテクチャとフレームワーク(CS 545)

    このコースでは、Webアプリケーションをエンタープライズ環境に焦点を当てます。 エンタープライズアプリケーションは、企業や政府などの大規模な組織で動作するように設計された大規模なソフトウェアシステムです。 エンタープライズアプリケーションは、複雑でスケーラブル、コンポーネントベース、分散型、そしてミッションクリティカルです。 このコースCS545は、エンタープライズWebアプリケーションのフロントエンドまたはプレゼンテーション層に焦点を当てています。 CS544エンタープライズアーキテクチャは、ビジネスロジック、トランザクション、および永続性を含むバックエンドまたはビジネスレイヤに焦点を合わせたコースです。 WebアプリケーションプログラミングのCS472は、HTML、CSS、JavaScript、サーブレット、およびJSPを網羅した必須コースです。

    このコースでは、プラットフォームやフレームワーク全体で一般的な原則とパターンを教えます。 このコースでは、2つの主要なJava WebフレームワークであるJava Server Faces(JSF)とSpringMVCを使用して検討します。 JSFはコンポーネントベースのフレームワークであり、Java Enterprise Editionテクノロジスタックの公式のプレゼンテーションフレームワーク仕様です。 SpringMVCはCore Springフレームワークの一部であり、近年最も広く使用されているJava Webフレームワークになりました。 (4単位)前提条件:CS 472または部門の教員の同意。

  • Webアプリケーションプログラミング(CS 472)

    このコースでは、対話型および動的Webアプリケーションのプログラミングについて体系的に紹介します。 このコースは、Webアプリケーションプログラミングの経験がほとんどない、またはまったく経験のない個人を対象としています。 この製品は、サーバーサイドの処理にJavaサーブレットとJSPを使用します。 このコースではHTMLとCSSを紹介します。 JavaScriptはコースの焦点であり、jQuery、Ajax、およびJavaScriptの名前空間とモジュールを含む関数型プログラミング言語として扱われています。 これはCS545 Webアプリケーションアーキテクチャの前提条件です。 それはAngularJSやNodeJSをカバーしていませんが、ここでカバーされているJavaScriptはあなたがそれらの技術を学ぶために準備するでしょう。 (4ユニット)
    前提条件:CS 220またはCS 401、または部門の教員の同意。

  • コンピュータ専門家のための意識科学技術(FOR 506)

    あなたの最初のコースは、あなたが最高のパフォーマンスを誇るコンピュータサイエンスの専門家になることができる方法の基礎を確立するように特に設計されています。 コースはあなたの本当の可能性の実現につながる超越瞑想の実践に根ざしています。 あなたは、優れた精神機能によって創造性を高めることによって複雑な問題を解決する能力や「すぐに使える」思考など、TMの利点について学びます。 コースは休息と活動の最適な組み合わせを開発することによって活動のピークパフォーマンスを支える原則に焦点を当てます。 あなたは人生の成功を支える理想的な日課を開発し、経験するでしょう。 (2ユニット)

  • テクニカルマネージャのリーダーシップ(FOR 506B)

    このコースの目的は、将来の指導的役割の準備としてのコミュニケーションスキルを含む、リーダーシップにおける知識とスキルを学生に提供することです。

    このコースの終わりまでに、生徒は効果的なリーダーシップに関する重要な質問に対する答えを理解するでしょう。

    「自然生まれの」リーダーはいますか?

    効果的に導くためにはカリスマ性が必要ですか?

    リーダーになるために必要な資産はどれですか。

    経営と指導の違いは何ですか?

    この時代をリードするために必要な多くの「情報」とは何ですか?

    「管理過誤」とは何ですか?またそれはどのようにして自己破壊行為につながりますか?

    フィードバックが主要なプロセスに不可欠であることを知っているので、それを授受することへの恐怖をどのように乗り越えますか?

    職場で見つかった問題の80%の原因は何ですか?

    組織が個人およびチームのリーダーシップスキルを向上させるのに役立つ科学的研究はありますか?

    ゲストスピーカーは著名な起業家、コンピューター科学者、慈善家、学者そして社会の他の著名なリーダーを含みます。

    (2ユニット)

追加のMSCSコース

  • 高度なプログラミング言語(CS 505)

    このコースでは、形式的手法と抽象化メカニズムに重点を置いて、プログラミング言語設計の高度なトピックについて考察します。 トピックには、データと制御の抽象化、構文とセマンティクスの正式な仕様、プログラムの正確さの証明、非決定論的プログラミング、高度な制御構造、および特定の言語の研究が含まれます。 (4単位)前提条件:CS 401または部門の教員の同意。

  • ビッグデータ(データサイエンストラック)(CS 522)

    現代の情報処理は、従来のデータベースシステムでは処理できない膨大なデータのリポジトリによって定義されています。 このコースでは、この問題を最も効率的に解決するために業界のリーダーによって開発および使用されている最新の技術について説明します。 具体的なトピックとしては、MapReduceアルゴリズム、MapReduceアルゴリズム設計パターン、HDFS、Hadoopクラスタアーキテクチャ、YARN、相対頻度の計算、2次ソート、Webクロール、逆索引と索引圧縮、SparkアルゴリズムとScalaがあります。 (4ユニット)前提条件:CS 435アルゴリズム。

  • ビッグデータ分析(データサイエンストラック)(CS 488)

    ビッグデータは新しい天然資源です:データは12-18月ごとに倍増しています。 この新しいビッグデータ分析コースでは、多様なデータセットをマイニングして新しい洞察を生み出すための基本的な概念とツールについて説明します。 あなたはWordcloud、Pagerank、データ可視化、決定木、回帰、クラスタリング、ニューラルネットワークなどを作成するためにR言語の使用を習得するでしょう。 あなたはいくつかの巨大な何百万ものレコードデータセットを扱うでしょう、そしてまた私のTwitterフィードを採掘するでしょう。 Hadoop / MapReduceとストリーミングデータの概念を学び、Spark、Flink、Kafka、Storm、Samza、NoSQLなどの他のApache Big Dataプロジェクトを個々の研究論文を通して探求します。 あなたはKaggle.comからのオープンプロジェクトにグループで取り組み、最善のデータ分析の課題を解決することによって賞金を競います。 また、業界をリードするIBM SPSS Modeler、およびオープンソースのデータマイニングプラットフォームの使用方法についても学びます。 このコースで使用される#1ベストセラーの教科書は講師自身によって書かれています。 このコースでは、MIT、Coursera、Googleなどのさまざまなビデオトレーニング教材も使用されます。 (4台)前提条件:学部教員の同意

  • ビッグデータテクノロジーズ(データサイエンストラック)(CS 523)

    ほんの数年で、ビッグデータ技術は誇大広告の世界から新しいデジタル時代のコアコンポーネントの1つになりました。 これらのテクノロジは、情報を知識に変換するのに非常に役立ちます。

    このコースの目的は、さまざまなビッグデータ問題を解決するのに役立つ、非常に重要なツールをアーセナルに追加することです。 「ビッグデータとは何ですか?」のような質問に対する回答から始めましょう。 なぜそれが重要なのでしょうか? 次に、ビッグデータテクノロジスタックのさまざまなツールやプログラミングモデルを調べて、データの分析に役立てます。 トピックには、MapReduce、Pig、Hive、Sqoop、Flume、HBase(NoSQL DB)、Zookeeper、Apache Sparkエコシステムプロジェクトなど、Hadoopエコシステム内のプロジェクトの一部が含まれています。 また、AWSとEMRについても紹介します。 主にClouderaのシングルノードHadoopディストリビューションを使って作業します。 (4ユニット)(前提条件なし)

  • コンピュータセキュリティ(CS 466)

    このコースでは、機密性、完全性、および可用性という3つのコンピューターセキュリティの側面について詳しく説明します。 機密性と完全性のセキュリティポリシーのためのいくつかのモデルが研究されています。 機密性と完全性を保証する上での暗号化の役割が調べられます。 その他のトピックには、認証、監査、侵入テスト、一般的な脆弱性、侵入検知などがあります。 コースは現実的な安全なシステムのケーススタディで終わります。 学生は安全保障文献からの論文を読み、それらを講義で与えられた資料に適用するように求められます。 (4クレジット)前提条件:CS 401または部門の教員の同意。

  • エンタープライズアーキテクチャ(CS 544)

    このコースでは、大規模エンタープライズアプリケーションを開発するときに使用される原則と実践を教えることに焦点を合わせます。 オブジェクトリレーショナルマッピング(ORM)、依存性注入(DI)、アスペクト指向プログラミング(AOP)、およびWebサービス(RESTfull)を介した他のアプリケーションとの統合など、頻繁に使用されるさまざまなアーキテクチャー層およびこれらの層に関連するさまざまなテクノロジを調べます。およびSOAP)、メッセージングおよびリモートメソッド呼び出し。 リレーショナルデータベースとSQLに関する実用的な知識が必要です。 あなたがSQLについての強力な講座または十分な実用的な知識を持っていないならば、EAに申し込む前にCS422 DBMSに申し込むべきです。 (4ユニット)

  • 機械学習(データサイエンストラック)(CS 582)

    機械学習は、コンピュータにデータから学習する能力を与える研究分野であり、ほとんどすべての科学分野の中核をなすものであり、データからの一般化(つまり予測)の研究は、機械学習の中心的なトピックです。 このコースでは、機械学習、および機械学習における新しい方法と高度な方法についての基礎的な理論について、大学院レベルで紹介します。 実用的な関連性を持つアプローチを強調し、データマイニング(ビッグデータ/データサイエンス、データ分析)、自然言語処理、コンピュータビジョン、ロボティクス、バイオインフォマティクス、テキストおよびWebデータ処理など、機械学習の最近の応用例について説明します。 機械学習は、金融サービス、石油&ガス、ヘルスケア、マーケティング&広告、行政、インターネット、モノのインターネットなど、さまざまな業界で使用されています。

    このコースは、さまざまな学習パラダイム、アルゴリズム、理論的な結果、そして応用を網羅しています。 機械学習に関連する限り、人工知能、情報理論、統計、および制御理論の基本概念を使用します。 監視学習(生成/識別学習、パラメトリック/ノンパラメトリック学習、ニューラルネットワーク、サポートベクターマシン、デシジョンツリー、ベイズ学習および最適化)。 教師なし学習(クラスタリング、次元削減、カーネル法)。 学習理論(バイアスと分散のトレードオフ、VC理論、大きなマージン) 強化学習と適応制御。 その他のトピックには、HMM(隠れマルコフモデル)、進化的コンピューティング、ディープラーニング(With Neural Nets)、および基本的な機械学習の問題に対してパフォーマンスを厳密に分析できるアルゴリズムの設計が含まれます。

    コースの重要な部分はグループプロジェクトです。 並列、分散、およびスケーラブルな機械学習に使用される主要なオープンソースツールについて、プロジェクトを行う学生を支援するために簡単に説明します。 (4単位)前提条件:なし。

  • モバイルデバイスプログラミング(CS 473)

    モバイルデバイスプログラミングの重要性は、近年、ソフトウェア開発の新しい領域として浮上しています。 このコースでは、IPhone、iPad、Androidフォンなどのモバイルデバイス上で動作するアプリケーションを開発するための準備をします。 これは急速に発展している市場です。 コースは、モバイルアプリケーションのインストール、開発、テスト、および配布に焦点を当てています。 このコースの終わりには、生徒は対象となるプラットフォーム用にアプリを開発し、それらをシミュレートし、実際のデバイスでテストし、最後にアプリストアで公開してユーザーが利用できるようにすることができます。 (4単位)前提条件:CS472または部門の教員の同意。

  • 最新のWebアプリケーション(CS 572)

    このコースでは、SPAのReactive Programming Architecture(シングルページWebアプリケーション)と、フルモダンWebアプリケーションを構築するために必要なすべてのスキルを学びます。 テクノロジには、NodeJS、ExpressJS、TypeScript、AngularJS2、Firebase、およびNoSQLデータベース(MongoDB)があります。 コースはカバーします:

    • C ++ V8エンジンと非同期コードがノードおよびノー​​ドイベントループでどのように機能するか。
    • モジュールとExpressJSを使用してRestful APIを再利用および構築するためのコードの構築方法。
    • NoSQLデータベースのしくみ:Mongo Shell、集計フレームワーク、レプリカセット、クラスタリング、シャード、Mongoose ORM。
    • Angular(Googleに支援されている)のしくみ、変更検出、ObservablesとSubjectを使ったReactive RxJプログラミング、Shadow DOM、ゾーン、モジュールとコンポーネント、カスタムディレクティブとパイプ、サービスと依存性の注入、Angular Compiler、JITとAOF Compilation 、フォーム(テンプレート駆動型およびデータ駆動型)、データバインディング、ルーティング、ガードとルート保護、HTTPクライアント、JWT JSON Webトークン認証。

    (4ユニット)

  • オペレーティングシステム(CS 465)

    オペレーティングシステムは、コンピュータシステムの中心的なリソースを制御し、それらを個々のユーザーに割り当てます。 コースのトピックには、順次および並行プロセス、相互排除、リソース共有、プロセス協力、デッドロック、リソース割り当て、プロセッサスケジューリング、メモリ管理、セグメンテーションおよびページングアルゴリズム、タイムシェアリングシステム、スケジューリングアルゴリズム、ならびにリソース保護が含まれます。 (4単位)前提条件:CS 401または部門の教員の同意。

  • 並列プログラミング(CS 471)

    すべての新しいコンピュータの標準プロセッサは、マルチコアプロセッサになりました。これにより、プログラムをより迅速に実行できる可能性があります。 しかし、この可能性を利用するためには、プログラマーは並列プログラミング技法についてある程度の知識が必要です。 このコースでは、学生はほとんどの時間を並列プログラムの作成とデバッグに費やします。 期待される成果は、新しいレベルの実用的なプログラミングスキルを身に付けることです。 このスキルは、マルチコアプロセッサのプログラミングだけでなく、オペレーティングシステムプログラミングや分散データベースプログラミングにも役立ちます。 このコースで使用されるソフトウェアツールには、Microsoft Visual C / C ++、Javaマルチスレッドライブラリ、およびOpenMPスレッド規格があります。 (4単位)前提条件:Java、C、またはC ++を使用したコンピュータープログラミングの知識。

  • ソフトウェアアーキテクチャ(CS 590)

    このコースでは、マイクロサービスを使用して柔軟で、スケーラブルで、テスト可能で、回復力のあるソフトウェアシステムを設計するための手法、原則、およびパターンについて説明します。 大規模なアプリケーションを、モノリシックなエンタープライズアプリケーションと比較して、構築が容易な他の利点など、より小さなマイクロサービスに分割する方法を検討します。 分散マイクロサービスアーキテクチャにも多くの課題があります。 これらの課題とその対処方法を検討します。 このコースのトピックは、アーキテクチャスタイル、統合手法とパターン、ドメイン駆動設計、イベント駆動アーキテクチャとリアクティブプログラミングです。 (4クレジット) (前提条件なし)

  • ソフトウェア開発の実習(CS 575)

    この実習コースでは、学生は技術的な専門職としてコンピュータ関連の仕事を行います。 実行されるタスクは、新しいシステムの設計と開発、または特定の目的のための既存のシステムの適用にあります。 実務上の職務内容は雇用主と学生によって作成され、学生が所属する実習生の上司と相談して、事前に学部の大学院教員の承認が必要です。 (このコースは、主にインターンシップまたは共同プログラムの学生のためのものです。)(1ブロックあたり0.5-1単位 - 繰り返してもかまいません。)

「MSCSプログラムについて初めて聞いたとき、私はそれを疑いました。 私はこのようなものが存在するとは信じられませんでした。 しかしある日、私の友人がプログラムに参加しました。 それが本当であることを確認した時でした。 それから私は私の申請プロセスを再開しました。 まあ! それは本当です、私はここにいます、私はプログラムを完了しました、そして、私はとても幸せです。」

エドウィン・ブンバレウガンダ