CS 1100。计算机科学及其应用“,”(4小时)

向学生介绍计算机科学领域和思维模式,使他们能够在解决问题的设置中成为软件工具的智能用户。检查几个重要的软件应用程序,使学生可以发展必要的技能,有效地使用计算机在自己的学科。

并修课程(s):CS 1101

属性(s):NUpath分析/使用数据


CS 1101。cs1100实验室。(1小时)

伴随CS 1100.使用计算机科学技术和工具进行跨多个学科的实验和问题解决。

并修课程(s):CS 1100


CS 1200。第一年研讨会。(1小时)

在学生成为学院和大学社区负责任的成员时,寻求支持他们向东北大学过渡和全面发展。结合大型小组讨论,小组活动和自我反思,以促进与教师,员工和同行的联系;促进合理利用校园资源;并协助学术和个人目标的设定。


CS 1210。Khoury Co-op专业发展。(1小时)

通过讨论合作教育和合作教育过程,继续为学生在计算和信息领域的职业生涯做准备。为学生提供了准备专业resumé的机会;练习正确的面试技巧;了解当前的工作机会;学习如何参与到工作和推荐过程中;并了解合作社的政策、程序和期望。讨论职场中的职业行为和道德问题。

先决条件:CS 2510最低成绩为D-或DS 2500最低成绩为D-


CS 1800。离散结构。(4小时)

介绍构成计算机科学基础的数学结构和方法。研究结构,如集,元组,序列,列表,树和图。讨论函数、关系、排序和等价关系。检查结构和函数的归纳和递归定义。讨论证明的原则,如真值表、归纳证明和基本逻辑。还涵盖了估计集的大小、函数的增长和算法的时空复杂性所需的计数技术和参数。

并修课程(s):CS 1802

属性(s):NUpath形式/定量推理


CS 1802。cs1800研讨会。(1小时)

伴随CS 1800.通过讨论、测验和家庭作业来阐述课程中的主题。

并修课程(s):CS 1800


CS 1990。选择性。(1 - 4小时)

为在其他学术机构学习的课程提供选修学分。可无限重复。


CS 2500。计算机科学基础(4小时)

介绍计算的基本思想和编程原理。讨论一个系统的方法,文字问题,包括分析阅读,综合,目标设定,计划,计划执行,和测试。介绍几种计算模型,从高中代数的表达式求值开始。假定没有编程经验;因此,适合大一新生,专业和非专业的学生都希望探索学科的知识思想。

并修课程(s):CS 2501

属性(s):NUpath形式化/定量推理,NUpath自然/设计世界


CS 2501。cs2500实验室。(1小时)

伴随CS 2500.涵盖了从课程到各种实验的主题。

并修课程(s):CS 2500


CS 2510。计算机科学基础2。(4小时)

仍在继续CS 2500.重点研究使用更复杂的数据结构的面向对象编程和相关算法。讨论嵌套结构和非线性结构,包括哈希表、树和图。强调抽象、封装、继承、多态性、递归和面向对象的设计模式。将这些想法应用于示例应用程序,以说明计算机科学的广度。

先决条件:CS 2500最低成绩为D-

并修课程(s):CS 2511

属性(s):NUpath分析/使用数据,NUpath自然/设计的世界


CS 2511。实验室的cs2510。(1小时)

伴随CS 2510.涵盖了从课程到各种实验的主题。

并修课程(s):CS 2510


CS 2800。逻辑与计算。(4小时)

介绍形式逻辑及其与计算机和信息科学的联系。提供学习将关于计算机程序行为的陈述转换为逻辑声明的机会,并获得通过手工和使用自动化工具证明此类断言的能力。考虑证明程序终止、正确性和安全性的方法。讨论在逻辑、命题和一阶逻辑、逻辑推理、数学归纳法和结构归纳法中使用的符号。介绍在计算机和信息科学中出现的工件和现象的建模范围的逻辑的使用。

先决条件:CS 1800最低成绩为D-或数学1365最低成绩为D-或MATH 2310最低成绩为D-);CS 2500最低成绩为D-


CS 2810。数据模型的数学“,”(4小时)

学习线性代数、多元微积分和统计学中的方法和思想,这些方法和思想与实践计算机科学家进行机器学习、建模或数据假设检验最相关。包括最小二乘回归,寻找特征值来预测线性系统的行为,执行梯度下降来拟合模型到数据,以及执行t检验和卡方检验来确定种群之间的差异是否显著。包括流行的机器学习方法的应用,包括贝叶斯模型和神经网络。

先决条件:CS 1800最低成绩为D-;CS 2500最低成绩为D-

属性(s):NUpath分析/使用数据,NUpath形式/定量推理


CS 2963。的话题。(1、2小时)

为本科生提供一个机会,了解及时的问题,发展新的技能,或探索广泛感兴趣的领域,沉浸式,短期课程形式。不同的课程内容和授课老师各不相同。


CS 2990。选择性。(1 - 4小时)

为在其他学术机构学习的课程提供选修学分。可无限重复。


CS 2991。计算机科学研究。(1 - 4小时)

提供在教师监督下进行入门级研究或创造性工作的机会。


CS 2992。研究。(0小时)

提供机会记录学生对研究项目或创造性努力的贡献。


CS 3000。算法和数据。(4小时)

介绍有效算法和数据表示的设计、分析和实现的基本原理和技术。讨论渐近分析和建立算法正确性的形式化方法。考虑分治算法、图遍历算法和优化技术。介绍信息论并涵盖表示数据的基本结构。研究平面和层次表示、动态数据表示以及数据压缩。最后讨论本课程主题与复杂性理论和问题难度概念之间的关系。

先决条件:((CS 2510最低成绩为D-或DS 2500最低成绩为D-);CS 1800最低成绩为D-)或EECE 2160最低成绩为D-

并修课程(s):CS 3001

属性(s):NUpath形式/定量推理


CS 3001。cs3000的复习课。(0小时)

伴随CS 3000.为学生提供额外的提问和参与课程材料的机会。

并修课程(s):CS 3000


CS 3200。数据库设计。(4小时)

研究了一个用于关系数据库管理系统的数据库的设计。问题中采用实体-关系模型和归一化方法。介绍了关系代数和结构化查询语言SQL。高级主题包括触发器、存储过程、索引、基本查询优化以及并发和恢复的基础知识。学生在一个或多个商业关系数据库管理系统上实现数据库模式和短应用程序。

先决条件:CS 2500最低成绩为D-或DS 2000最低等级为D-或CS 1500,最低等级为D-或EECE 2560最低成绩为D-

属性(s):NUpath分析/使用数据


CS 3500。面向对象的设计。(4小时)

介绍了面向对象编程和设计的比较方法。讨论对象、类、元类、消息、方法、继承和泛型的概念。回顾面向对象语言中的多态性形式。对比继承和组合作为软件重用的双重技术的使用:转发与委托,子类与子类型。培养对面向对象编程和设计原则的更深层次的理解,包括软件组件、面向对象设计模式和图形化设计符号的使用,如UML(统一建模语言)。面向对象设计中的基本概念通过应用程序框架中的案例研究和用一种或多种面向对象语言编写程序来说明。

先决条件:CS 2510最低等级为D-或CS 1500,最低等级为D-或EECE 2560最低成绩为D-

并修课程(s):CS 3501

属性(s):NUpath分析/使用数据,NUpath自然/设计的世界


CS 3501。CS 3500实验室。(1小时)

伴随CS 3500.涵盖课程主题,并为学生提供额外的机会参与课程材料。

并修课程(s):CS 3500


CS 3520。用c++编程。(4小时)

研究如何以健壮和安全的方式在c++中编程。回顾基础知识,包括作用域、类型和基本数据结构。讨论数据类型(原语、数组、结构、类、字符串);寻址/参数机制(值、指针、引用);栈;队列;链表;二叉树;哈希表;并且类的设计和类的继承,强调单继承。 Considers the instantiation of objects, the trade-offs of stack vs. heap allocation, and the design of constructors and destructors. Emphasizes the need for a strategy for dynamic memory management. Addresses function and operator overloading; templates, the Standard Template Library (STL), and the STL components (containers, generic algorithms, iterators, adaptors, allocators, function objects); streams; exception handling; and system calls for processes and threads.

先决条件:cs1500,最低等级为D-或CS 2510最低成绩为D-或DS 2500最低成绩为D-


CS 3540。游戏编程。(4小时)

介绍了用于创建3D游戏的不同子系统,包括渲染、动画、碰撞、物理、音频、触发系统、游戏逻辑、行为树和简单的人工智能。为学生提供学习游戏引擎内部工作原理的机会,以及如何使用物理和图形库等多个库来开发游戏。讨论图形管道,场景图形,关卡设计,行为脚本,面向对象的游戏设计,世界编辑器和游戏脚本语言。

先决条件:CS 2510最低成绩为D-


CS 3620。构建可扩展系统。(4小时)

处理可扩展软件系统的设计,使客户端能够静态和动态地添加功能。这类系统的例子包括操作系统、游戏服务器和Web浏览器。描述基于类c语言、具有不安全的手动内存控制的经典系统,以及基于类java语言、具有安全的自动内存管理的最新系统。介绍Rust编程语言,它通过类型规范和编译器约束将C语言的效率与安全的手动内存控制结合起来。为学生提供了一个使用所有三种设置构建系统的机会,但重点是Rust方法。学生也有机会通过论文和备忘录来评估他们的工作。

先决条件:CS 2510最低成绩为D-;(ENGW 1111最低成绩为C或ENGW 1102最低成绩为C或engl1111,最低成绩为C或engl1102,最低成绩为C)

属性(s):NUpath写作密集型


CS 3650。计算机系统。(4小时)

介绍了使用RISC架构的计算系统、计算机操作系统和汇编语言的基本设计。描述缓存和虚拟内存。涵盖汇编语言和高级语言之间的接口,包括调用框架和指针。介绍如何使用系统调用和系统编程来显示与操作系统的交互。介绍操作系统的基本结构,包括应用程序接口、进程、线程、同步、进程间通信、死锁、内存管理、文件系统和输入/输出控制。

先决条件:CS 2510最低等级为D-或CS 1500,最低等级为D-或EECE 2560最低成绩为D-


CS 3700。网络和分布式系统。(4小时)

介绍计算机网络的基本原理,包括网络架构、网络拓扑、网络协议、分层概念(例如ISO/OSI、TCP/IP参考模型)、通信范式(点对点vs多播/广播、无连接vs面向连接)和网络api(套接字)。还包括分布式程序的构造,重点是高级协议和分布式状态共享。主题包括设计模式、事务、性能权衡、安全影响和可靠性。使用来自真实网络(TCP/IP,以太网,802.11)和分布式系统(Web, BitTorrent, DNS)的例子来强化概念。

先决条件:CS 2510最低成绩为D-


CS 3800。《计算理论》(4小时)

介绍计算机和计算背后的理论,旨在回答这个问题,“计算机的能力和限制是什么?”涵盖自动机理论、可计算性和复杂性。自动机理论部分包括有限自动机、正则表达式、不确定性、非常规语言、上下文无关语言、下推自动机和非上下文无关语言。可计算部分包括图灵机、丘奇-图灵命题、可判定语言和停止定理。复杂性部分包括大o和小o表示法、P类和NP类、P与NP问题以及NP完备性。

先决条件:cs1500,最低等级为D-或CS 2510最低成绩为D-或EECE 2160最低等级为D-或EECE 2162,最低等级为D-或EECE 2164,最低等级为D-


CS 3950。计算机科学研究导论“,”(2小时)

向学生介绍计算机科学、信息科学、数据科学和网络安全领域的研究。探索科学方法如何应用于这些领域,并涵盖现有专业子领域的广度。为学生提供一个练习如何定位和阅读不同子领域的科学文献的机会。也为学生提供了这些领域的研究生教育的概述。

先决条件:CS 2500最低成绩为D-


CS 3990。选择性。(1 - 4小时)

为在其他学术机构学习的课程提供选修学分。可无限重复。


CS 4050。价值观和社会技术算法系统。(4小时)

研究人工智能技术的社会影响,以及将这些影响与社会和伦理价值观对齐的突出战略。提供多学科阅读,为在使用上下文中理解这些技术提供概念透镜。


CS 4097。混合现实。(4小时)

旨在为虚拟现实和增强现实(广义上定义为混合现实(XR))的基础提供坚实的基础。这些技术最近又引起了人们的兴趣。为学生提供一个机会,通过深入研究和实践这一新兴的计算机科学领域,获得开发XR应用程序的实践经验。综合各个学科的理论和实践知识,包括计算机图形学、3D界面、人机交互、跟踪系统和感知心理学。

先决条件:CS 3540最低成绩为D-


CS 4100。人工智能。(4小时)

介绍人工智能领域的基本问题、理论和算法。包括启发式搜索;基于谓词演算的知识表示自动演算及其应用规划;还有机器学习。其他主题包括游戏;不确定性推理和专家系统;自然语言处理;常识推理的逻辑学; ontologies; and multiagent systems.

先决条件:CS 3500最低成绩为D-或DS 3500最低成绩为D-

属性(s):NUpath顶点经验,NUpath写作密集


CS 4120。自然语言处理。(4小时)

介绍了人类语言的计算建模方法;开发可以用自然语言与人交流的计算机程序的持续努力;以及目前自然语言领域的应用,如自动文档分类、智能查询处理、信息抽取等。主题包括语法和自动解析的计算模型,统计语言模型和大型文本语料库的分析,自然语言语义和理解语言的程序,话语结构模型,以及智能代理的语言使用。课程包括语言模型的形式化和数学分析,以及分析和解释自然语言文本的工作程序的实施。统计学知识是有用的。

先决条件:CS 3500最低成绩为D-或DS 3500最低成绩为D-


CS 4150。游戏人工智能。(4小时)

提供了数字游戏中人工智能的经典和现代方法的概述。专注于创造可信的代理和环境,目标是为玩家提供有趣和吸引人的体验。涵盖玩家建模,程序内容生成,行为树,互动叙事,决策系统,认知建模和路径规划。探索行为生成的不同方法,包括学习和基于规则的系统。要求学生在这些领域完成几项个人作业,以应用课堂上所涵盖的概念。学生选择一个小组期末项目,进一步深入探索游戏人工智能的一个方面。为学生提供学习团队管理和沟通的机会。不符合课程先决条件的学生可以寻求教师的许可。

先决条件:CS 3500最低成绩为D-;CS 3520最低成绩为D-

属性(s):NUpath顶点经验,NUpath写作密集


CS 4180。强化学习。(4小时)

介绍了强化学习和马尔可夫决策过程(MDP)框架。涵盖了mdp中用于规划和学习的方法,如动态规划、基于模型的方法和无模型的方法。检查常用的表示,包括深度学习表示。学生应该具备概率论的工作知识,能够完成编程作业,并能够完成将某种形式的强化学习应用于感兴趣的问题的课程项目。

先决条件:CS 3000最低成绩为D-;(经济2350最低成绩为D-或ENVR 2500最低成绩为D-或数学3081最低成绩为D-或2320年心理学最低成绩为D-或CS 2810最低成绩为D-);(数学2331最低成绩为D-或CS 2810最低成绩为D-)


CS 4200。数据库内部。(4小时)

探讨数据库管理系统的内部工作。解释数据库系统如何在磁盘上存储数据。研究如何使用索引技术(如B+树、哈希索引和多维索引)提高查询效率。描述如何在内部执行查询,以及数据库系统如何执行查询优化。介绍了锁实现的并发控制方案,如分层锁和键范围锁。描述锁表结构。讨论数据库系统如何执行日志记录和恢复,以避免在系统崩溃时丢失数据。

先决条件:CS 3000最低成绩为D-;CS 3650最低成绩为D-


CS 4240。大规模并行数据处理。(4小时)

涵盖管理和分析非常大的数据集的技术,重点是随着计算节点的增加而有效扩展的方法。通过选择来自各种应用程序领域的设计模式,包括图形分析、数据库、文本处理和数据挖掘,介绍分布式数据管理的原则和问题驱动的数据分区策略。为学生提供一个机会,获得现代大数据处理技术,如MapReduce, Spark, HBase和云计算的实际编程经验(这个选择可能会随着技术的发展而变化)。

先决条件:CS 3650最低成绩为D-或CS 5600最低成绩为D-或CS 5600最低成绩为C-(研究生));(cs4800(可同时修读),最低成绩为D-或CS 3000(可同时修读)最低成绩为D-或CS 5800(可同时修读)最低成绩为D-或CS 5800最低成绩为C-(研究生))


CS 4300。计算机图形学。(4小时)

图表通过计算机图形学的每个主要方面的不同程度的强调路径。讨论硬件问题:大小和速度;线、多边形和区域;建模,或对象及其关系;观看,或能看到的东西(可见性和视角);渲染,或者它看起来如何(表面、光和颜色的属性);转换,或者移动,放置,扭曲,动画和交互,或者绘图,选择和转换。

先决条件:(cs1500,最低评分为D-或CS 2510最低成绩为D-或CS 3500最低成绩为D-或EECE 2560最低成绩为D-);(数学1260最低成绩为D-或数学2331最低成绩为D-或数学2341最低成绩为D-或CS 2810最低成绩为D-)

属性(s):NUpath顶点经验,NUpath写作密集


CS 4400。编程语言。(4小时)

介绍一种系统的方法来理解编程语言的行为。包括翻译;静态和动态范围;环境;绑定与赋值;函数和递归;参数传递和方法调度;对象、类、继承和多态性;类型规则和类型检查;和并发性。

先决条件:CS 3500最低成绩为D-;(CS 3000最低等级为D-或cs4800最低等级为D-)


CS 4410。编译器。(4小时)

研究编译器的构造,并整合了早期课程的编程语言、自动机理论、计算机体系结构和软件设计的材料。检查语法树;静态语义;类型检查;典型机器结构及其软件结构;代码生成;词法分析;以及解析技术。在一个实质性的学期项目中使用实际操作的方法。

先决条件:CS 4400最低成绩为D-或CS 5400最低成绩为C-或CS 7400最低成绩为C-

属性(s):NUpath顶点经验,NUpath写作密集


CS 4500。软件开发。(4小时)

将软件开发视为一个涉及规范、设计、文档、实现、测试和维护的系统过程。检查软件过程模型;软件规范方法;模块化、抽象和软件重用;以及软件质量问题。学生,可能在小组工作,设计,文档,实现,测试和修改软件项目。

先决条件:CS 3500最低成绩为D-;(ENGW 1111最低成绩为C或ENGW 1102最低成绩为C)

属性(s):NUpath写作密集型


CS 4520。移动应用程序开发。(4小时)

专注于移动电话或相关平台上的移动应用程序开发。讨论内存管理;用户界面构建,包括MVC原则和特定工具;触摸事件;数据处理,包括核心数据、SQL、XML、JSON;网络技术和URL加载;最后,GPS和运动传感等细节可能取决于特定的移动平台。学生们被要求在一个项目上工作,以产生一个专业质量的移动应用程序。教师选择一个现代化的移动平台在课程中使用。

先决条件:CS 3500最低成绩为D-


CS 4530。软件工程基础。(4小时)

涵盖软件工程的基础知识,包括软件开发生命周期模型(例如,瀑布、螺旋、敏捷);需求分析;以用户为中心的设计;软件设计原则和模式;测试(功能测试、结构测试、测试策略);代码重构与调试;软件体系结构与设计;以及集成和部署。包括一个课程项目,其中一些软件工程方法(从需求分析到测试)在基于团队的设置中应用。

先决条件:CS 3500最低成绩为D-

属性(s):NUpath写作密集型


CS 4550。Web开发。(4小时)

讨论动态、数据驱动和交互式站点的Web开发。重点关注集成多种语言、各种数据技术和Web交互的软件开发问题。认为ASP。NET, c#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX, RSS/Atom, SQL和Web服务。要求每个学生部署单独设计的Web实验,以说明Web技术和至少一个主要的综合Web站点项目。在导师的允许下,学生可以进行小组合作。每个学生或团队还必须创建关于他们的目标、计划、设计决策、成就和用户指南的广泛文档。所有源文件必须是打开的,并由源服务器自动提供服务。

先决条件:CS 3500最低成绩为D-或DS 3500最低成绩为D-

属性(s):NUpath顶点经验,NUpath写作密集


CS 4610。“机器人科学与系统”,(4小时)

介绍自主移动机器人,重点关注算法和软件开发,包括闭环控制、机器人软件架构、轮式运动和导航、触觉和基本视觉传感、障碍物检测和规避,以及抓取和操纵物体。为学生提供从预先设计的机电套件逐步构建移动机器人的机会。机器人由学生在提供的机器人软件框架内自行设计的软件无线控制。课程的高潮是利用机器人的所有功能进行一场盛大的挑战比赛。

先决条件:CS 3500最低成绩为D-


CS 4700。网络基础。(4小时)

介绍网络协议和网络体系结构的基本概念。介绍了计算机网络通信和有效运行所需要的各种协调功能。提供数据链控制、介质访问控制、路由、端到端传输协议、拥塞和流控制、组播、命名、自动配置、服务质量和网络管理的深入覆盖。研究了在现实网络协议中实现的抽象机制和算法。还介绍了最常见的应用程序协议(电子邮件、Web和ftp)。

先决条件:CS 3650最低成绩为D-或CS 5600最低成绩为D-或CS 5600最低成绩为C-(研究生)


CS 4710。移动和无线系统。(4小时)

涵盖无线/移动网络的理论基础和无线/移动系统的实际方面,包括当前的标准,移动开发平台和新兴技术。结合了强大的实用组件;要求学生以小组为单位完成几项实际作业(例如,基于Wi-Fi传感、移动应用、物联网设备和软件定义无线电应用)和期末项目。最后的项目整合了关于几种无线通信技术和机制的知识。

先决条件:CS 3700最低成绩为D-


CS 4730。分布式系统。(4小时)

介绍分布式系统,包括基本概念,并展示如何应用它们来构建可靠的分布式服务。研究几个现有的分布式应用程序,如文件系统、数据库、锁服务、数字货币、智能合约和机器学习,以及这些应用程序必须如何协调才能运行并克服故障、网络分区或受威胁方。分布式系统,如数据库、云服务和区块链,在每天为社会服务的服务和应用程序中无处不在。

先决条件:CS 3650最低成绩为D-


CS 4805。复杂性理论基础。(4小时)

回顾基本材料,如自动机,图灵机,(不可)可判定性,时间复杂性,P vs. NP和NP完备性。研究计算复杂度的核心课题,包括时间和空间复杂度、多项式层次、电路复杂度、概率计算、交互式证明和逼近的困难。可选主题可能包括Gödel的不完备性定理、Kolgomorov复杂性、密码学、量子计算、通信复杂性、下界或伪随机性。

先决条件:CS 3800最低成绩为D-


CS 4810。先进的算法。(4小时)

建立在CS 3000.介绍计算机算法的高级研究。涵盖了基本的算法范式(例如,贪婪、分治和动态规划);图算法;优化;计算不可处理性(例如,np完备性,pspace完备性);
随机算法;以及近似算法。

先决条件:CS 3000最低成绩为D-


CS 4820。计算机辅助推理。(4小时)

涵盖计算机辅助推理中的基本概念,技术和算法,包括命题逻辑,可满足性检查的DPLL算法的变量,一阶逻辑,统一,tableaux,分辨率,Horn子句,同余闭包,重写,Knuth-Bendix补全,决策程序,可满足性模理论,递归,归纳,终止,Presburger算术,量词消除和交互式定理证明。为学生提供一个机会,开发和实施推理引擎在一系列的项目在整个学期的课程。还包括如何形式化和推理的计算系统使用一个现代交互式定理证明。

先决条件:CS 2800最低成绩为D-;CS 3000最低成绩为D-

属性(s):NUpath Capstone体验


CS 4830。系统规范、验证和综合。(4小时)

涵盖了形式化建模和规范的基本主题(转换系统、时序逻辑、正则和-正则语言、安全性和活性属性等);计算机辅助验证(状态空间探索、模型检验、有界模型检验、二进制决策图、符号模型检验等);组合性与假设-保证推理合同;以及基于组件的设计。还涵盖了计算机辅助合成的基本主题,从高级正式规范或从示例场景开始。设计大型复杂系统(数字电路,嵌入式控制系统,如自动车辆,计算机化医疗设备,如心脏起搏器,网络物理系统,如自动十字路口等)及其软件无法手工完成。相反,设计人员使用计算机辅助技术,使他们能够在真正的系统实际构建之前构建系统模型并验证设计的正确性。

先决条件:CS 3000最低成绩为D-


CS 4850。构建游戏引擎。(4小时)

讨论游戏引擎的组成部分和软件实现策略。包括图形管理算法(动画、场景图、细节层次);基本的人工智能算法(搜索、决策、感知);以及相关的算法问题(网络、线程、输入处理)。探讨数据驱动软件设计的使用。为学生提供一个使用渲染引擎和构建和集成几个软件组件来创建一个完整的游戏引擎的机会。要求学生在几个单独的作业中应用算法,然后在一个团队中开发一个项目。为学生提供学习团队/项目管理的机会;工作部门;团队沟通; and the software development cycle of implementation, testing, critique, and further iteration. Students who do not meet course prerequisites may seek permission of instructor.

先决条件:CS 3520最低成绩为D-;CS 3540最低成绩为D-


CS 4950。计算机科学研究研讨会。(1小时)

让学生深入了解计算机科学、信息科学、数据科学或网络安全的特定子领域的研究。每个学期具体的细分领域都不一样。让学生接触当前的研究主题,通常是通过客座教师。为学生提供一个机会,练习阅读和讨论科学文献,展示科学工作,并通过要求的每周论文摘要提炼论文的关键思想和贡献。

先决条件:CS 3950最低成绩为D-


CS 4955。计算机科学教学研讨会。(1小时)

介绍技术和框架,使本科生成为计算机科学领域更有效的教学助理。学生分析和反思文献、案例研究和计算机科学教学的真实例子。为学生提供参与课堂活动的机会,学习演讲技巧,练习对不同规模的观众讲话,并学习如何与不同类型的观众合作。在最后的顶点项目中,学生准备并提出了一个关于计算机科学主题的讲座。成功的学生准备从事教学工作,在研究生学习时展示技术内容,并在工业中展示技术信息。

先决条件:CS 2500最低成绩为D-


CS 4970。初级/高级荣誉项目(4小时)

专注于学生进行研究或生产与学生专业领域相关的产品的深入项目。与大三/大四项目2或学院规定的同等学历相结合,获得学科项目中的8个学分荣誉。


CS 4971。初级/高级荣誉项目(4小时)

专注于第二学期的深度项目,学生在该项目中进行研究或生产与学生专业领域相关的产品。

先决条件:CS 4970最低成绩为D-


CS 4973。计算机科学专题。(4小时)

提供计算机科学的讲座课程,主题不经常在正式课程中教授。不同产品的主题可能有所不同。最多可重复三次。

先决条件:CS 3000最低成绩为D-;(CS 3500最低成绩为D-或DS 3500最低成绩为D-)


CS 4990。选择性。(1 - 4小时)

为在其他学术机构学习的课程提供选修学分。可无限重复。


CS 4991。研究。(4、8小时)

提供在教师监督下进行研究的机会。最多可重复三次。

先决条件:CS 3500最低成绩为D-;CS 3800最低成绩为D-

属性(s):NUpath顶点经验,NUpath整合经验,NUpath写作密集


CS 4992。直接研究。(1 - 6小时)

专注于学生以新鲜的方式学习标准计算机科学材料或正规课程中没有涵盖的新计算机科学材料。最多可重复三次。

先决条件:CS 3500最低成绩为D-;CS 3800最低成绩为D-


CS 4993。独立的研究。(1 - 6小时)

在部门成员的指导下就选定的主题独立工作。课程内容取决于讲师。最多可重复三次。

先决条件:CS 3500最低成绩为D-;CS 3800最低成绩为D-


CS 4998。研究。(0小时)

提供机会记录学生对研究项目或创造性努力的贡献。


CS 5001。密集的计算机科学基础。(4小时)

介绍通过编程系统地解决问题。为学生提供一个机会,学习如何分析一个问题,如何将问题划分和组织成适当的组件,如何用计算机语言描述问题,如何分析和理解他们的程序的行为,以及如何测试他们的程序是否正常工作。此外,还介绍了一种被称为面向对象编程的程序设计方法和各种组织数据的方法,包括讨论它们的优点和缺点。为了实践课程概念,学生要承担从小型、高度指定的编程任务到大型开放式问题的作业,学生可以设计和编写自己的解决方案。

并修课程(s):CS 5003


CS 5002。离散结构。(4小时)

介绍构成计算机科学基础的数学结构和方法。研究结构,如集,元组,序列,列表,树和图。讨论函数、关系、排序和等价关系。检查结构和函数的归纳和递归定义。涵盖了证明的原则,如真值表、归纳证明、基本逻辑和估计集的大小、函数的增长和算法的时空复杂性所需的计数技术和参数。此外,还讨论了数据结构,如数组、堆栈、队列、列表以及操作它们的算法。


CS 5003。cs5001的复习课。(0小时)

提供涵盖材料的小组讨论格式CS 5001CoreqCS 5001

并修课程(s):CS 5001


CS 5004。面向对象的设计。(4小时)

介绍了面向对象编程和设计的比较方法。讨论对象、类、元类、消息、方法、继承和泛型的概念。回顾面向对象语言中的多态性形式。对比继承和组合作为软件重用的双重技术的使用——转发与委托,子类化与子类型。为学生提供一个机会,以获得面向对象的编程和设计的原则更深入的理解,包括软件组件,面向对象的设计模式,和图形设计符号的使用,如UML(统一建模语言)。通过应用程序框架中的案例研究和用Java编写程序来说明面向对象设计的基本概念。

先决条件:CS 5001最低成绩为C-或CS 5001最低成绩为C-);(CS 5002最低成绩为C-或CS 5002最低成绩为C-)

并修课程(s):CS 5005


CS 5005。cs5004的复习课。(0小时)

提供小组讨论格式,以涵盖材料CS 5004

并修课程(s):CS 5004


CS 5006。算法。(2小时)

介绍了设计和实现高效算法和数据表示的基本原理和技术。考虑分治算法、图遍历算法、线性规划和优化技术。介绍表示数据的基本结构,如哈希表、树和图。


CS 5007。计算机系统。(2小时)

介绍了使用RISC架构的计算系统、计算机操作系统和汇编语言的基本设计。描述缓存和虚拟内存。涵盖汇编语言和高级语言之间的接口,包括调用框架和指针;使用系统调用和系统编程来显示与操作系统的交互;以及操作系统的基本结构,包括应用程序接口、进程、线程、同步、进程间通信、死锁、内存管理、文件系统和输入/输出控制。


CS 5008。数据结构、算法及其在计算机系统中的应用。(4小时)

介绍了一个集成的方法来研究数据结构,算法,以及它们在系统主题中的应用。介绍各种基本算法技术(分治、动态规划、图算法)和系统主题(计算模型、计算机体系结构、编译、系统软件、网络)。通过在C语言中实现基本数据结构(列表、队列、树、地图、图形)和算法的编程作业演示主题的集成,因为它们应用于计算机系统。其他主题还包括编程应用程序,这些应用程序使用线程和套接字向学生展示不同子系统的原语。

先决条件:CS 5001最低成绩为C-或CS 5001最低成绩为C-);(CS 5002最低成绩为C-或CS 5002最低成绩为C-)

并修课程(s):CS 5009


CS 5009。cs5008的复习课。(0小时)

提供小组主动学习的形式,以增加材料CS 5008

并修课程(s):CS 5008


CS 5010。编程设计范式。(4小时)

介绍现代程序设计范式。从函数式程序设计开始,介绍设计配方的概念。后者由两部分组成:任务组织(从数据描述到测试套件的创建)和面向数据的程序组织方法(从原子数据到自引用数据定义和作为数据的函数)。然后课程发展到面向对象设计,解释它如何概括和对比功能设计。除了学习程序设计,学生还有机会实践结对编程和公共代码审查技术,就像今天在工业中发现的那样。

并修课程(s):CS 5011


CS 5011。cs5010的复习课。(0小时)

提供小组讨论格式,以涵盖材料CS 5010

并修课程(s):CS 5010


CS 5081。人机交互中的可访问性和包容性。(2小时)

涵盖了用户体验的基本要素。强调如何整合可访问性和可用性,以增强每个人(包括老年人和残疾人)在日常产品和服务中的用户体验。


CS 5097。混合现实。(4小时)

旨在为虚拟现实和增强现实(广义上定义为混合现实(XR))的基础知识提供坚实的基础,并提供开发XR应用程序的实践经验。为学生提供了一个深入研究和实践计算机科学这一新兴领域的机会。鉴于XR环境的复杂性,本课程综合了各个学科的理论和实践知识,包括计算机图形学、3D界面、人机交互、跟踪系统和感知心理学(仅举几例)。XR技术最近再次引起了人们的兴趣。


CS 5100。《人工智能基础》。(4小时)

介绍人工智能领域的基本问题、理论和算法。主题包括启发式搜索和游戏树,使用谓词演算的知识表示,自动演绎及其应用,问题解决和规划,以及机器学习介绍。必修课程包括创建工作程序,解决问题,逻辑推理,和/或使用课程中介绍的技术提高自己的表现。要求有Java编程经验。

属性(s):NUpath顶点经验,NUpath写作密集


CS 5150。游戏人工智能。(4小时)

提供了数字游戏中人工智能的经典和现代方法的概述。专注于创造可信的代理和环境,目标是为玩家提供有趣和吸引人的体验。涵盖玩家建模,程序内容生成,行为树,互动叙事,决策系统,认知建模和路径规划。探索行为生成的不同方法,包括学习和基于规则的系统。要求学生在这些领域完成几项个人作业,以应用课堂上所涵盖的概念。学生选择一个小组期末项目,需要一份报告,以进一步深入探索游戏人工智能的一个方面。为学生提供学习团队管理和沟通的机会。要求具备算法知识和面向对象设计或函数式编程的经验。

属性(s):NUpath顶点经验,NUpath写作密集


CS 5170。人机交互的人工智能。(4小时)

概述了广泛的AI技术,这些技术利用领域和人类的知识来促进人与系统之间的交互,调解人与人之间的交互,利用人类来提高系统性能,并在社会和个人层面促进有益的结果。主题可以包括人工智能/人类计算,计划和活动识别,智能传感/家庭,主动学习,偏好诱导,智能/自适应用户界面,以及混合的人-代理模拟。研究如何设计和开发智能交互技术,同时也批判性地评估其社会和伦理影响。

先决条件:CS 5010最低成绩为C-;CS 5100最低成绩为C-;CS 5800最低成绩为C-;CS 6140最低成绩为C-


CS 5180。强化学习和顺序决策。(4小时)

介绍了强化学习和底层计算框架以及马尔可夫决策过程框架。涵盖了各种强化学习算法,包括基于模型的、无模型的、值函数的、策略梯度的、行动者-评论家的和蒙特卡洛方法。研究常用的表示法,包括深度学习表示法和部分可观察问题的方法。学生需要有概率论和线性代数的工作知识,能够完成编程作业,并能完成将某种形式的强化学习应用于感兴趣的问题的课程项目。


CS 5200。数据库管理系统。(4小时)

介绍了关系数据库管理系统作为一类软件系统。使学生成为数据库管理系统的熟练使用者。涵盖设计理论、查询语言和性能/调优问题。主题包括关系代数、SQL、存储过程、用户定义函数、游标、嵌入式SQL程序、客户机-服务器接口、实体关系图、规范化、b树、并发性、事务、数据库安全性、约束、对象-关系dbms,以及空间、文本、XML转换和时间序列等专用引擎。包括使用商业关系或对象关系数据库管理系统的练习。

属性(s):NUpath分析/使用数据


CS 5310。计算机图形学。(4小时)

介绍二维和三维计算机图形学的基本原理,重点介绍获取逼真图像的方法。涵盖绘制线和曲线、抗锯齿、填充和剪辑的二维算法。研究了利用光线追踪和辐射度绘制由球体、多边形、二次曲面和双立方曲面组成的三维场景。包括使用纹理和凹凸贴图、噪声和湍流向表面添加纹理的技术。需要线性代数的知识。

先决条件:数学2331最低成绩为D或研究生课程录取

属性(s):NUpath顶点经验,NUpath写作密集


CS 5330。模式识别与计算机视觉。(4小时)

介绍低级和高级计算机视觉的基本技术。检查图像形成,早期处理,边界检测,图像分割,纹理分析,阴影形状,光度立体,通过光流的运动分析,物体建模,形状描述和物体识别(分类)。讨论人类视觉的模型(格式塔效应,纹理感知,主观轮廓,视觉错觉,表观运动,心理旋转和独眼视觉)。需要线性代数的知识。

先决条件:数学2331最低成绩为D或研究生课程录取


CS 5335。“机器人科学与系统”,(4小时)

介绍自主移动机器人,重点关注算法和软件开发,包括闭环控制、机器人软件架构、轮式运动和导航、触觉和基本视觉传感、障碍物检测和避免,以及抓取和操纵物体。为学生提供从预先设计的机电套件逐步构建移动机器人的机会。机器人由学生在提供的机器人软件框架内自行设计的软件无线控制。最终在一个项目,连接算法和硬件开发的课程与当前机器人研究文献中选定的主题。


CS 5340。计算机/人工交互。(4小时)

包括人机交互的原理和用户界面的设计和评估。主题包括人类信息处理子系统(感知、记忆、注意力和解决问题)的概述;这些系统的特性如何影响用户界面的设计;设计良好用户界面的原则、指导方针和规范语言,重点是标准图形用户界面对象的工具包和库;以及多种界面评价方法,可以用来衡量软件的可用性。其他主题可能包括万维网设计原则和工具、计算机支持的协作工作、多模态和“下一代”接口、语音和自然语言接口以及虚拟现实接口。课程工作包括原创用户界面设计的创建和实现,以及对他人创建的用户界面的评估。要求熟悉C语言/UNIX。


CS 5400。编程语言原理。(4小时)

研究编程语言的基本组成,语法和语义的规范,编程语言特性的描述和实现。讨论来自各种语言的示例。

先决条件:CS 5010最低成绩为D-或CS 5004最低成绩为B-或CS 5010最低成绩为C-(研究生)


CS 5500。软件工程基础。(4小时)

涵盖了软件工程的基础,包括软件开发生命周期模型(例如,瀑布,螺旋,敏捷);需求分析;以用户为中心的设计;软件设计原则和模式;测试(功能测试、结构测试、测试策略);代码重构与调试;软件体系结构与设计;以及集成和部署。包括一个课程项目,其中一些软件工程方法(从需求分析到测试)在基于团队的设置中应用。要求进入硕士课程或完成所有过渡课程。

先决条件:CS 5010最低成绩为D或CS 5004最低成绩为C或CS 5010最低成绩为C

属性(s):NUpath写作密集型


CS 5520。移动应用程序开发。(4小时)

专注于移动电话或相关平台上的移动应用程序开发。讨论内存管理;用户界面构建,包括MVC原则和特定工具;触摸事件;数据处理,包括核心数据、SQL、XML、JSON;网络技术和URL加载;最后,GPS和运动传感等细节可能取决于特定的移动平台。学生被期望在一个项目中工作,以产生一个专业质量的移动应用程序,并演示他们已经开发的应用程序。教师选择一个现代化的移动平台在课程中使用。


CS 5600。计算机系统。(4小时)

研究计算机系统的结构、组成、设计、实现和内部操作,主要集中在操作系统层面。回顾计算机硬件和结构,包括算术和逻辑单元,以及控制单元。涵盖当前的操作系统组件和构造技术,包括内存和内存控制器、I/O设备管理、设备驱动程序、内存管理、文件系统结构和用户界面。介绍分布式操作系统。讨论并发性和分布引起的问题,如并发进程的调度、进程间通信和同步、资源共享和分配、死锁管理和解决。包括来自实际操作系统的示例。通过编程练习使学生了解系统概念。要求进入硕士课程或完成所有过渡课程。


CS 5610。Web开发。(4小时)

讨论动态、数据驱动和交互式站点的Web开发。重点关注集成多种语言、各种数据技术和Web交互的软件开发问题。认为ASP。NET, c#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX, RSS/Atom, SQL和Web服务。每个学生必须部署单独设计的Web实验,以说明Web技术和至少一个主要的综合Web站点项目。在导师的允许下,学生可以小组合作。每个学生或团队还必须创建关于他们的目标、计划、设计决策、成就和用户指南的广泛文档。所有源文件必须是打开的,并由源服务器自动提供服务。

属性(s):NUpath顶点经验,NUpath写作密集


CS 5700。计算机网络基础知识。(4小时)

研究网络协议,专注于建模和分析,以及架构。介绍建模概念,重点介绍排队理论,包括利特尔定理、M/M/1、M/M/ M、M/D/1和M/G/1排队系统。讨论计算机网络的性能评估,包括性能指标、评估工具和方法、模拟技术和局限性。介绍了通信和计算机网络高效运行所需的不同协调功能,并讨论了以太网、FDDI和无线网络的例子。涵盖链路层协议,包括HDLC, PPP和SLIP;包框架;生成树和学习桥,错误检测技术,自动重复请求算法;滑动窗口可靠/有序服务;排队规则,包括FQ和WFQ。介绍了流量控制方案,如窗口流量控制和漏桶率控制方案,并讨论了拥塞控制和公平性。 Requires knowledge of probability theory.


CS 5800。算法。(4小时)

介绍了用于计算机算法设计和分析的数学技术。专注于算法设计范式和技术,用于分析算法的正确性、时间和空间复杂性。主题可能包括渐近符号、递归、循环不变量、Hoare三元组、排序和搜索、高级数据结构、下界、哈希、贪婪算法、动态规划、图算法和np完备性。

属性(s):NUpath形式/定量推理


CS 5850。构建游戏引擎。(4小时)

讨论游戏引擎的组成部分和软件实现策略。包括图形管理算法(动画、场景图、细节层次);基本的人工智能算法(搜索、决策、感知);以及相关的算法问题(网络、线程、输入处理)。探讨数据驱动软件设计的使用。为学生提供一个使用渲染引擎和构建和集成几个软件组件来创建一个完整的游戏引擎的机会。要求学生完成个人作业,然后在团队中开发一个项目,需要一份报告。为学生提供学习团队/项目管理的机会;工作部门;团队沟通; and the software development cycle of implementation, testing, critique, and further iteration. Requires knowledge of computer graphics, differential calculus, operating systems concepts, and algorithms.


CS 5933。高级计算机科学教师专题。(4小时)

为有意成为K-12计算机科学教育者的学习者提供高级编程课程。涵盖GUI开发和事件驱动编程,建模和仿真的介绍,计算机网络和安全的基础知识,以及与计算机科学的最新技术相关的主题。


CS 5934。计算机科学包容性教学导论。(4小时)

介绍了K-12年级计算机科学(CS)的教学。专注于将CS概念与其他主题领域集成。包括与多语言学习者合作,检查学生在计算机科学方面的身份,并探索创建包容性计算机科学课堂的策略。为学生提供一个机会,设计和实践实施CS课程在各个年级的课程计划,探索当前的CS教育研究,并建立一个教学资源组合。


CS 5963。的话题。(1、2小时)

为学生提供一个机会,了解及时的问题,发展新的技能,或探索广泛感兴趣的领域,沉浸式,短期课程形式。不同的课程内容和授课老师各不相同。


CS 5964。专业人士项目。(0小时)

为学生提供一个应用项目,在其中应用他们的课程学习。与赞助商合作,学生完善应用研究主题,进行研究,提出与合作赞助商共享的建议,并创建实施他们的建议的计划。旨在使学生受益的课程,支持发展关键的商业沟通技能,项目和客户管理技能,以及商业分析框架。为学生提供一个机会,从赞助商的反馈中学习,回顾“吸取的教训”,并从这次审查中吸取建议,以改善和进一步发展他们的职业发展和职业规划。可以重复两次。


CS 5965。与行业合作伙伴合作,提升专业人才。(0小时)

为学生提供一个增强的应用项目设置,在其中应用他们的课程学习。与合作伙伴赞助商合作,学生完善应用研究主题,进行研究,提出与合作伙伴赞助商共享的建议,并创建实施他们的建议的计划。课程支持学生发展关键的商业沟通技能,项目和客户管理技能,以及商业分析框架。为学生提供一个机会,从赞助商的反馈中学习,回顾经验教训,并纳入建议,以改善和进一步完善他们的职业发展和职业规划。通过技能建设研讨会、小组讨论和面试准备提供职业发展机会。合作伙伴与学生的互动,包括最终的项目演示,允许合作伙伴评估学生与合作伙伴合作、实习或其他就业机会的潜力。


CS 5976。直接研究。(2 - 4小时)

专注于学生以新鲜的方式学习标准计算机科学材料或正规课程中没有涵盖的新计算机科学材料。最多可重复三次。


CS 6120。自然语言处理。(4小时)

介绍了人类语言的计算建模,正在努力创建可以用自然语言与人交流的计算机程序,以及自然语言领域的当前应用,如自动文档分类、智能查询处理和信息提取。主题包括语法和自动解析的计算模型、统计语言模型和大型文本语料库的分析、理解语言的自然语言语义和程序、话语结构模型和智能代理的语言使用。课程包括语言模型的形式化和数学分析,以及分析和解释自然语言文本的工作程序的实施。


CS 6140。机器学习。(4小时)

提供了在机器学习和数据挖掘中使用的各种技术的概览,还检查了与它们的使用相关的问题。主题包括监督学习的算法,包括决策树归纳、人工神经网络、基于实例的学习、概率方法和支持向量机;无监督学习;还有强化学习。还包括计算学习理论和其他方法来分析和测量学习算法的性能。课程作业包括一个编程学期项目。

先决条件:CS 5800最低成绩为C-或CS 7800最低成绩为C-


CS 6200。信息检索。(4小时)

介绍信息检索系统和不同的信息检索方法。涵盖的主题包括信息检索系统的评估;检索、语言和索引模型;文件的组织;压缩;相关性反馈;聚类;分布式检索与元搜索;信息检索中的概率方法;Web检索; filtering, collaborative filtering, and recommendation systems; cross-language IR; multimedia IR; and machine learning for information retrieval.


CS 6220。数据挖掘技术。(4小时)

涵盖了数据挖掘的各个方面,包括分类、预测、集成方法、关联规则、序列挖掘和聚类分析。课程项目包括从大型数据集中挖掘有用知识的实践。

先决条件:CS 5800最低成绩为C-或CS 7800最低成绩为C-


CS 6240。大规模并行数据处理。(4小时)

涵盖随着计算节点数量的增加而扩展的大数据分析技术,例如云计算。强调有效分配工作的问题和数据分区方法,同时保持计算和数据传输的总成本较低。研究和分析来自各种领域的确定性和随机算法,包括图、数据挖掘、线性代数和信息检索,因为它们的成本、可伸缩性和对倾斜的鲁棒性。课程强调运用现代最先进的大数据处理技术的实际编程经验。不符合课程先决条件的学生可以寻求教师的许可。

先决条件:CS 5800最低成绩为C-或CS 7800最低成绩为C-或EECE 7205最低成绩为C-


CS 6350。实证研究方法。(4小时)

介绍了在计算机科学中进行实证研究的方法概述。这些方法有助于为系统的可用性、有效性和可接受性问题提供客观的答案。本课程涵盖了科学方法的基础知识,从客观测量的调查,到使用相对简单的研究设计进行假设检验的基础知识,再到更先进的研究设计和统计方法。本课程还包括大量的田野调查,涵盖小型实证研究的设计、实施和展示。


CS 6410。编译器。(4小时)

期望每个学生写一个小的编译器。主题包括解析器生成、抽象语法树、符号表、类型检查、中间代码生成、简单代码改进、寄存器分配、运行时结构和代码生成。

先决条件:CS 5400最低成绩为C-或CS 7400最低成绩为C-

属性(s):NUpath顶点经验,NUpath写作密集


CS 6510。高级软件开发。(4小时)

通过让学生作为编程团队的一部分工作,并可以选择领导一个子团队,从而将软件设计的学术概念和实践经验整合在一起。为学生提供了一个深入学习的机会,一些方面的发展过程。我们的目标是让学生参与一个大型项目,花时间反思和分析工作和过程,而不是只专注于最终产品。不符合课程先决条件的学生可以寻求教师的许可。

先决条件:CS 5004最低成绩为B-或CS 5010最低成绩为C-);CS 5500最低成绩为C-


CS 6620。云计算基础知识。(4小时)

涵盖云计算基础知识,包括虚拟化和容器、分布式文件系统和对象存储、基础设施即服务平台、开源云平台、关键大数据平台以及数据中心规模系统的主题。结合课堂材料,通过讲座,阅读文献,学生报告,和一个学期的软件项目。


CS 6650。构建可伸缩的分布式系统。(4小时)

涵盖了分布式、并发系统的基本元素,并在此基础上建立了工程原理知识和最先进的构建可伸缩系统的技术和方法的实践经验。可伸缩性是面向internet的系统的基本品质,需要专门的技能和知识来构建低成本扩展的系统。


CS 6710。无线网络。(4小时)

涵盖了与无线网络相关的理论问题和无线数据网络和蜂窝无线通信系统的实际系统。主题包括无线电通信的基础知识,信道多址方案,无线局域网,多跳自组织无线网络中的路由,移动IP,无线链路的TCP改进,蜂窝电信系统,无线网络环境中的服务质量。需要一个项目,解决无线和移动网络的一些最近的研究问题。

先决条件:CS 5700最低成绩为C-或CS 5700最低成绩为D-


CS 6760。隐私、安全性和可用性。(4小时)

挑战传统智慧,鼓励学生发现在系统设计中安全性、隐私性和可用性可以协同作用的方法。对于复杂的计算机系统来说,可用性和安全性被广泛认为是两个对立的设计目标。主题包括计算机取证、网络取证、用户界面设计、备份、日志记录、影响安全技术采用的经济因素、信任管理和相关的公共政策。使用案例研究,如PGP、S/MIME和SSL。根据需要介绍基本的密码学和哈希函数。课程作业包括论文分析、习题和一个实质性的学期专题。


CS 6949。职业准备。(1小时)

使用职业准备模型为研究生的合作/实习做准备。主题包括目标设定、resumé写作、面试、求职策略和职场的专业性。为学生提供一个发展职业目标的机会,学习识别和获得工具和能力,以评估他们所知道的和需要知道的与实现他们的职业目标有关的知识,并证明他们需要通过合作/实习经验来学习什么,以便从他们的学术课程转移到未来的职业生涯。打算参加合作或实习的学生必须圆满完成这门课程,这门课程通常在学生的第一学期进行。


CS 6954。合作工作经验-半工半读。(0小时)

为符合条件的学生提供工作经验的机会。可无限重复。


CS 6962。选择性。(1 - 4小时)

为在其他学术机构学习的课程提供选修学分。可无限重复。


CS 6964。合作工作经验。(0小时)

为符合条件的学生提供工作经验的机会。可无限重复。


CS 6965。国外合作工作经历。(0小时)

为符合条件的学生提供出国工作经验的机会。可无限重复。


CS 7140。高级机器学习。(4小时)

涵盖高级机器学习的主题。介绍了当前机器学习文献中的材料。重点介绍图形模型、潜变量模型、贝叶斯推理和非参数贝叶斯方法。旨在培养学生在机器学习方面的研究。期望学生阅读会议和期刊文章,展示这些文章,并写一篇个人研究论文。CS 7140而且EECE 7397跨境上市。

先决条件:CS 6140最低成绩为C-或EECE 7204最低等级C-或EECE 7313最低等级C-


CS 7150。深度学习。(4小时)

介绍深度学习,包括统计学习框架,经验风险最小化,损失函数选择,全连接层,卷积层,池化层,批归一化,多层感知器,卷积神经网络,自编码器,u网,剩余网络,梯度下降,随机梯度下降,反向传播,自梯度,神经网络特征可视化,鲁棒性和对抗示例,可解释性,持续学习,以及在计算机视觉和自然语言处理中的应用。假设学生已经具备机器学习、优化、线性代数和统计学的基本知识。

先决条件:CS 6140最低成绩为C-或DS 5220最低成绩为C-


CS 7180。人工智能专题“,”(4小时)

提供各种关于人工智能的主题。可以重复两次。


CS 7200。计算机科学统计方法“,”(4小时)

介绍应用统计学的概念。涵盖连续和分类数据的不确定性的频率论和贝叶斯表征,实验设计的原则,和因果推断的方法。讨论方法基础,以及实际实施和使用的问题。


CS 7240。可伸缩数据管理原理:理论、算法和数据库系统。(4小时)

涵盖了大规模管理数据的算法、核心原则和基本概念。主题包括数据模型、查询语言、查询执行和优化、查询执行的复杂性和查询弹性、数据流处理、并行数据处理、事务、线性与关系代数、因式分解和逻辑中的不确定性。需要标准的CS算法知识和硬度(例如,一个典型的基于标准算法教科书的本科生课程,如Ericson;科尔曼、雷瑟森、里维斯特和斯坦因;或Dasgupta, Papadimitriou和Vazirani)。通过较小的作业和项目为学生提供一个获得实践经验的机会。该项目非常灵活,允许学生探索与博士研究相关的可扩展数据管理和分析方面。


CS 7250。信息可视化:理论与应用。(4小时)

涵盖数据可视化中的基础和当代主题,以实现跨学科数据的有效表示,包括来自计算机科学、物理科学、生物医学科学、人文科学和经济学的示例。主题包括数据可视化理论和方法、可视化设计和评估、视觉感知和认知、交互原理、数据编码和表示技术。学生如不符合课程限制,可寻求导师同意。


CS 7260。网络科学可视化。(4小时)

涵盖了网络科学特定背景下的信息可视化原理。介绍了数据的视觉编码和我们对人类视觉和感知的理解;交互原理包括过滤、旋转、聚合;以及定量和人体受试者评价技术。涵盖了几种网络类型的可视化技术,包括具有实体和关系属性的多元网络,随时间变化的演进和动态网络,具有多种类型实体的异构网络,以及地理空间网络。为学生提供学习节点链接和矩阵可视化的布局算法设计的机会。


CS 7280。数据库管理专题“,”(4小时)

提供各种主题。可能的领域包括面向对象的数据库系统和分布式数据库系统。可以重复两次。


CS 7290。数据科学专题“,”(4小时)

提供数据科学的特殊主题,包括机器学习、统计学、数据挖掘、并行和分布式数据分析、数据库系统、信息检索、知识表示、信息可视化、自然语言处理、计算生物学和生物信息学、计算社会科学、数字人文科学、健康信息学、商业和预测分析。可重复一次,最多可获得8个学分。


CS 7295。数据可视化专题“,”(4小时)

提供数据可视化方面的各种主题。可以重复一次。


CS 7300。人机交互的实证研究方法。(4小时)

介绍了人机交互和个人健康信息学的人体主体研究的相关概念。讨论方法基础,以及实际实施和使用的问题。提供了在这些领域中使用的最常见的实验设计的概述,以及研究应该如何提出,进行,分析,并记录出版。涵盖定性方法,包括访谈和焦点小组,以及归纳定性数据分析的方法。课程中讨论的方法在任何科学领域都是有用的,这些领域涉及到科学方法的应用,涉及到与计算工件或系统交互的情况,包括观察、假设形成、测量以及描述性和推断性统计分析。


CS 7340。人机交互理论与方法“,”(4小时)

涵盖人类能力、计算工件、设计和评估的基础。人机交互涉及软件的设计和评估,基于对人类如何与计算机、设备和传感器交互的深刻理解。该领域融合了心理学和计算机科学的理论,使用了人工智能和设计的方法。介绍认知、知觉和情感理论以及个体差异理论,使我们能够设计和开发更好的计算机软件和系统。还包括设计和评估计算机软件系统的研究方法。在下一代交互模式的背景下讨论的主题包括传感器、触觉技术、可穿戴设备和执行接口。学生如不符合课程限制,可寻求导师同意。


CS 7380。图形/图像处理专题“,”(4小时)

提供关于图形/图像处理的各种主题。可以重复两次。


CS 7390。以人为本的计算专题“,”(4小时)

提供以人为本计算的各种主题。


CS 7400。程序设计语言原理集锦。(4小时)

研究编程语言的基本组成,语法和语义的规范,编程语言特性的描述和实现。讨论来自各种语言的示例。


CS 7430。形式化规范、验证和综合。(4小时)

涵盖软件和系统建模(如何正式描述软件和系统的行为);规范(如何正式地陈述系统应该具有的属性);验证(如何检查并最终证明系统是否满足其规范);以及综合(如何自动生成“根据构造修正”的软件和系统)。


CS 7480。编程语言专题。(4小时)

提供各种主题的编程语言。可以重复两次。


CS 7485。形式方法专题。(4小时)

提供形式化方法中的各种主题。可无限重复。


CS 7580。软件工程专题“,”(4小时)

提供有关软件工程的各种主题。可以重复两次。


CS 7600。密集计算机系统。(4小时)

研究计算机系统的结构、组成、设计、实现和内部操作,侧重于操作系统层面。回顾计算机硬件和结构,包括算术和逻辑单元,以及控制单元。涵盖当前的操作系统组件和构造技术,包括内存和内存控制器、I/O设备管理、设备驱动程序、内存管理、文件系统结构和用户界面。讨论分布式操作系统、实时系统,并讨论并发进程、调度、进程间通信和同步。讨论了相关的分布式算法。还包括计算机系统中理想属性的设计和分析技术,包括功能正确性(在没有故障的情况下),性能和吞吐量,容错和可靠性,实时响应,安全性和服务质量。从实际操作系统中抽取示例。强调抽象,而编程练习是用来促进概念的理解。


CS 7610。分布式系统基础。(4小时)

涵盖了设计和实现高效可靠的分布式计算系统的基本概念。涵盖互联网通信协议,容错计算,同步协议,同步和异步计算,动态组通信系统,负载平衡,拜占庭模型,分布式哈希表,分布式文件系统,以及基本概念在现代分布式系统领域的应用。需要操作系统知识;例如,系统与网络、计算机系统或网络与分布式系统的本科课程。


CS 7670。计算机系统研讨会。(2 - 4小时)

让学生有机会在计算机系统中阅读和展示各种调查和研究论文。每个学期的导师和课题都不一样。可能会重复为博士学生的学分。

先决条件:CS 5600最低成绩为C-或CS 5600最低成绩为D-或CS 7600最低成绩为C-


CS 7675。硕士研究。(4小时)

让学生接触计算机科学领域的研究。探索科学方法如何应用于这些领域,并涵盖现有专业子领域的广度。为学生提供一个练习如何定位和阅读不同子领域的科学文献的机会。


CS 7680。计算机系统专题“,”(4小时)

提供有关计算机系统的各种主题。可以重复两次。


CS 7775。计算机安全研讨会。(2 - 4小时)

让学生有机会阅读和展示各种关于密码学和计算机安全的调查和研究论文。每个学期的导师和课题都不一样。可能会重复为博士学生的学分。


CS 7780。网络专题“,”(4小时)

在网络上提供各种主题。可以重复两次。


CS 7800。先进的算法。(4小时)

介绍设计和分析计算机算法的高级数学技术。中所涵盖的一些材料CS 5800然后介绍高级主题。强调用于解决不同领域出现的问题的技术的理论基础。主题包括渐近分析、高级数据结构、动态规划、贪婪算法和拟阵理论、平摊分析、随机化、字符串匹配、代数算法和近似算法。介绍图灵机、P类和NP类、多项式时间可约性和NP完备性。


CS 7805。复杂性理论。(4小时)

涵盖计算复杂性的核心主题,包括np完整性,时间和空间复杂性,多项式层次结构,电路复杂性,概率计算,交互式证明和近似的硬度。转到更高级的主题,可能包括下界、伪随机性、密码学和通信复杂性。

先决条件:CS 7800最低成绩为C-


CS 7810。密码学基础。(4小时)

为博士级别的学生提供密码学的加速介绍,并迅速发展到当前研究前沿的高级主题。密码学是保护信息免受对抗性窃听和篡改的科学。在不限制对手的计算能力的情况下,仅依靠概率和信息论可以获得什么样的安全属性。研究了现代密码学的复杂性理论基础,以及计算硬度与伪随机性之间的关系。探索,作为课程的主要组成部分,如何采取一些充分研究的问题在数论和代数,并使用它们来建立强大的密码系统具有先进的功能和安全属性。要求先完成计算理论的本科课程。


CS 7880。理论计算机科学专题“,”(4小时)

涵盖各种主题,包括高级密码学,逼近算法,复杂性理论,计算代数,分布式计算,形式验证,网络算法,在线计算,并行计算,随机性和计算。可以重复两次。


CS 7930。计算机科学中有效的科学写作。(2小时)

介绍计算机科学及相关领域的技术通信原理和实践。强调类型、结构、论点和观众期望等概念。专注于科学研究的故事,以及它如何在摘要、研究声明和会议论文等书面类型中表现出来,部分课程侧重于演示设计和交付。


CS 7962。选择性。(2 - 4小时)

为在其他学术机构学习的课程提供选修学分。可无限重复。


CS 7976。直接研究。(2 - 4小时)

专注于学生以新鲜的方式学习标准计算机科学材料或正规课程中没有涵盖的新计算机科学材料。可无限重复。


CS 7980。顶石。(4小时)

为学生提供一个在核心课程和选修课程中学习的关键概念的熟练程度的高潮体验。旨在加强伦理概念和研究的基本概念,除了强调在整个计划中学到的技术原则。

先决条件:CS 5004最低成绩为C-或CS 5010最低成绩为C-);CS 5800最低成绩为C-


CS 7986。研究。(0小时)

为学生提供在教师监督下进行全职研究的机会。


CS 7990。论文。(4小时)

在项目主管的同意下提供选定的工作。


CS 7996。论文延续。(0小时)

提供在部门教员的监督下进行的持续论文工作。

先决条件:CS 7990最低成绩为C-


CS 8674。硕士项目。(4小时)

在项目主管的同意下提供选定的工作。可以重复一次。


CS 8949。研究工作经历。(0小时)

为所有博士生提供一个机会,在他们的论文领域从事行业研究。博士生在开始校外实习之前先注册这门课程。可无限重复。


CS 8982。读数。(1 - 8小时)

在教员的指导下提供精选的阅读材料。可无限重复。


CS 8986。研究。(0小时)

提供在教师监督下进行全职研究的机会。可无限重复。


CS 9000。获得博士学位。(0小时)

顺利完成博士综合考试。


CS 9990。论文学期1。(0小时)

在论文导师的同意下提供选定的工作。

先决条件:CS 9000最低成绩为S


CS 9991。论文第2学期。(0小时)

由部门成员提供论文监督。

先决条件:CS 9990最低成绩为S


CS 9996。论文延续。(0小时)

在论文导师的同意下继续工作。

先决条件:CS 9991最低成绩为S或论文检查,REQ分数