你准备好了吗? 推进你的职业生涯?

我们的课程专注于使用OOP(Java),Web应用程序和数据科学的软件系统和软件开发领域。 核心研究领域包括:高级软件开发,Web应用程序编程和体系结构,大数据分析和技术,机器学习以及几个重要的应用领域。

所有课程旨在帮助您提升职业生涯,每门课程都包含实际作业。 视图 毕业要求。

新! 获奖 数据科学跟踪

标准核心课程

  • 现代编程实践(Java编程)(CS 401)

    本课程介绍面向对象编程的基本原理。 学生将学习如何编写可重复使用且维护良好的软件,并将这些知识与实验室作业和项目相结合。 主题包括:面向对象编程的基本原理和模型,UML类图和促进软件可重用性和可维护性的设计原则。 (4单位)

  • 高级软件开发(CS 525)

    本课程考虑了当前用于良好设计软件系统的方法和实践。 主题包括:软件设计模式,框架,体系结构和设计系统,以应用这些多级抽象。 (2-4学分)先决条件:CS 401或部门教员的同意。

  • 算法(CS 435)

    本课程介绍了分析算法效率的方法(包括最坏情况和平均情况分析),并介绍了各种已知的高效算法。 算法的分析,设计和实现同等重要。 主题包括搜索和排序,数据结构(包括列表,哈希表,平衡二叉搜索树,优先级队列)的操作效率,图算法,组合算法,递归关系,动态编程,NP完全问题以及一些特殊主题作为时间允许。 (特殊主题包括计算几何,密码系统算法,近似,大数据和并行计算。)

  • 计算机网络(CS 450)

    本课程的目标是通过探索网络如何工作和开发网络应用程序来学习计算机网络的概念,架构原则和术语。 本课程遵循自上而下的方法,通过使用Internet的体系结构和协议作为网络原理实现的主要示例来理解网络。 我们从应用层开始,继续通过传输层,网络层,链路层和计算机网络的物理层。 学生开发了多个网络应用程序,并完成了几个实验室,旨在跟踪和了解互联网中使用的主要网络协议。 (4单位)先决条件:CS 401或部门教员的同意。

  • 数据库管理系统(CS 422)

    数据库系统组织和检索信息,允许用户轻松有效地访问所需信息。 主题包括:关系数据模型; SQL; ER建模; 关系代数; 数据规范化; 交易; 数据库中的对象; 数据安全性和完整性; 数据仓库,OLAP和数据挖掘; 分布数据库; 和研究特定的商业数据库系统。 (4单位)先决条件:CS 401或部门教员的同意。

  • 软件工程(CS 425)

    软件工程是一门课程,通过软件开发方法向学生介绍软件开发的最佳实践。 学生已经在以前使用面向对象范例的课程中获得了一些经验,并且已经使用了一些基本的UML图来建模软件对象之间的关系。 在软件工程中,学生将培养将这些工具组合在一起的技能,以生成功能强大,易于维护的软件。 软件开发方法描述了何时以及如何使用OO概念和UML图来实现构建高质量软件的目标。 该课程围绕一个小项目,其中可以说明和应用讲座形式中讨论的原则。 在课程结束时,学生将拥有一个正在运行的应用程序,该应用程序符合RUP(Rational Unified Process)开发方法的高标准。

  • Web应用程序架构和框架(CS 545)

    本课程将Web应用程序集中在企业环境中。 企业应用程序是一种大型软件系统,旨在在大型组织(如公司或政府)中运行。 企业应用程序是复杂,可扩展,基于组件,分布式和关键任务。 本课程CS545主要关注企业Web应用程序的前端或表示层。 CS544企业架构是一个配套课程,侧重于后端或业务层,包括业务逻辑,事务和持久性。 CS472,Web应用程序编程,是一门必备课程,涵盖HTML,CSS,JavaScript,servlet和JSP。

    该课程教授跨平台和框架的一般原则和模式。 本课程将研究和使用两个主要的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 servlet和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,计算相对频率,二级排序,Web爬行,反向索引和索引压缩,Spark算法和Scala。 (4单位)先决条件:CS 435算法。

  • 大数据分析(数据科学跟踪)(CS 488)

    大数据是新的自然资源:数据每12-18个月翻倍。 这个新的大数据分析课程涵盖了挖掘大量不同数据集以生成新见解的基本概念和工具。 您将掌握使用R语言创建Wordcloud,Pagerank,数据可视化,决策树,回归,聚类,神经网络等。 您将使用一些大型的数百万个记录数据集,并且还可以使用Twitter提要。 您将学习Hadoop / MapReduce和Streaming Data概念,并将通过个人研究论文探索其他Apache大数据项目,如Spark,Flink,Kafka,Storm,Samza,NoSQL。 您将在Kaggle.com的开放项目中分组工作,通过解决最佳的数据分析挑战来争夺奖金。 您还将学习使用业界领先的IBM SPSS Modeler和开源数据挖掘平台。 本课程中使用的#1畅销书课本由教师自己编写。 该课程还将使用麻省理工学院,Coursera,Google和其他地方的各种视频培训材料。 (4单位)先决条件:部门教员的同意

  • 大数据技术(数据科学专题)(CS 523)

    在短短几年内,大数据技术已从炒作领域转变为新数字时代的核心组件之一。 这些技术对于将信息转化为知识非常有用。

    本课程的目的是在您的武器库中添加一些非常重要的工具,以帮助您解决各种大数据问题。 我们首先回答诸如“什么是大数据? 为什么重要或有用? 你如何存储这些大数据?“然后我们将研究大数据技术堆栈中的不同工具和编程模型,这将有助于我们分析数据。 主题包括Hadoop生态系统中的一些项目,如MapReduce,Pig,Hive,Sqoop,Flume,HBase(NoSQL DB),Zookeeper和Apache Spark生态系统项目。 我们还将介绍AWS和EMR。 您将主要使用Cloudera的单节点Hadoop发行版。 (4单位)(无先决条件)

  • 计算机安全(CS 466)

    本课程深入探讨计算机安全的三个方面:机密性,完整性和可用性。 研究了几种保密和完整性安全策略模型。 考察了密码学在确保机密性和完整性方面的作用。 其他主题包括身份验证,审计,渗透测试,常见漏洞和入侵检测。 本课程以实际安全系统的案例研究结束。 学生将被要求阅读安全文献中的论文,并将其应用于讲座中给出的材料。 (4学分)先决条件:CS 401或部门教员的同意。

  • 企业架构(CS 544)

    本课程重点讲授开发大型企业应用程序时使用的原则和实践。 我们将研究经常使用的不同架构层以及与这些层相关的不同技术,包括对象关系映射(ORM),依赖注入(DI),面向方面编程(AOP)以及通过Web服务与其他应用程序集成(RESTfull)和SOAP),消息传递和远程方法调用。 必须具备关系数据库和SQL的工作知识。 如果您没有强大的课程或良好的SQL工作知识,则应在注册EA之前注册CS422 DBMS。 (4单位)

  • 机器学习(数据科学轨道)(CS 582)

    机器学习是使计算机具备从数据中学习的能力的研究领域,是几乎所有科学学科的核心,而从数据中研究概括(即预测)是机器学习的核心话题。 本课程提供研究生水平的机器学习和深入报道机器学习的新方法和先进方法,以及它们的基础理论。 它强调了具有实际相关性的方法,并讨论了机器学习的一些最新应用,例如数据挖掘(大数据/数据科学,数据分析),自然语言处理,计算机视觉,机器人,生物信息学以及文本和Web数据处理。 机器学习用于各种行业,包括金融服务,石油和天然气,医疗保健,营销和广告,政府,互联网和物联网。

    本课程涵盖各种学习范例,算法,理论结果和应用。 它使用人工智能,信息理论,统计学和控制理论等基本概念,因为它们与机器学习相关。 主题包括:监督学习(生成/判别学习,参数/非参数学习,神经网络,支持向量机,决策树,贝叶斯学习和优化); 无监督学习(聚类,降维,核方法); 学习理论(偏差/方差权衡; VC理论;大幅度利润); 强化学习和自适应控制。 其他主题包括HMM(隐马尔可夫模型),进化计算,深度学习(使用神经网络)和设计算法,其性能可以严格分析基本的机器学习问题。

    课程的一个重要部分是小组项目。 将简要介绍用于并行,分布式和可扩展机器学习的主要开源工具,以帮助学生完成项目。 (4单位)先决条件:无。

  • 移动设备编程(CS 473)

    移动设备编程的重要性近年来已成为软件开发的新领域。 本课程帮助学生开发在iPhone,iPad或Android手机等移动设备上运行的应用程序。 这是一个快速发展的市场。 课程重点是安装,开发,测试和分发移动应用程序。 在本课程结束时,学生可以为所涵盖的平台开发应用程序,模拟它们,在真实设备上测试它们,最后在应用程序商店上发布以向用户提供可用性。 (4单位)先决条件:CS472或部门教员的同意。

  • 现代Web应用程序(CS 572)

    在本课程中,您将学习SPA(单页Web应用程序)的反应式编程体系结构以及构建完整的现代Web应用程序所需的所有技能。 技术包括:NodeJS,ExpressJS,TypeScript,AngularJS2,Firebase和NoSQL数据库(MongoDB)。 课程将包括:

    • C ++ V8引擎和异步代码如何在Node和Node事件循环中工作。
    • 如何构建代码以便重用,并使用模块和ExpressJS构建Restful API。
    • NoSQL数据库的工作原理:Mongo Shell,聚合框架,副本集,群集,碎片,Mongoose ORM。
    • 深入了解Angular(由Google支持)如何工作,变更检测,使用Observables和Subjects的Reactive RxJs编程,Shadow DOM,Zones,模块和组件,自定义指令和管道,服务和依赖注入,Angular Compiler,JIT和AOF编译,表单(模板驱动和数据驱动),数据绑定,路由,保护和路由保护,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)

    在本实习课程中,学生在技术专业岗位上执行与计算机相关的任务。 执行的任务可以是新系统的设计和开发,也可以是用于特定目的的现有系统的应用。 实习职位描述由雇主和学生制定,并需要由该部门的一名研究生院提前批准,并与学生所在的实习主管协商。 (本课程主要面向实习或合作项目的学生。)(每个区块0.5-1单位 - 可能会重复。)

“我第一次听说MSCS计划,我怀疑它。 我无法相信这样的事情存在。 但是有一天,我的一个朋友加入了该计划。 那是我确认它是真的。 然后我恢复了我的申请流程。 好! 确实,我在这里,我已经完成了这个计划,我很高兴。“

埃德温Bwambale乌干达