## ##   * Overview
  * Programs
  * Courses
At the Khoury College of Computer Sciences, we are inspired by an increasingly
interconnected society, informed by a rapidly changing job market, and focused
on addressing the challenges of a complex world. Our goal is to equip students
with knowledge as diverse as it is deep. Our programs provide a strong
technical foundation and an essential understanding of computing concepts
while integrating computer and data sciences across disciplines and
industries.
Our master's degrees are advanced programs that are designed to prepare
students to be job ready through a rigorous curriculum, innovative research,
experiential learning, and a collaborative environment rich in faculty
expertise.
Our research-driven doctoral programs offer students an opportunity to engage
in exciting projects, a vibrant community, and a challenging curriculum that
offers breadth and depth in areas both within computer science and across
disciplines throughout Northeastern University.
Graduate education in computer science also features the top-ranked
Northeastern co-op program, enabling students to supplement their classroom
education with real-world experience in the field.
## Doctor of Philosophy in Computer Science
The PhD program in computer science is designed to prepare students for
careers in academia and industry—from conducting research to developing
systems to publishing and presenting papers. The rigorous curriculum provides
a broad background in the fundamentals of computer science and advanced
courses in a wide range of focus areas.
The past decade has witnessed a dramatic increase in Northeastern’s
international reputation for research and innovative educational programs.
Since 2014, the Khoury College of Computer Sciences has hired 71 outstanding
faculty members and plans to continue this strategic growth in the coming
years, advancing its [position](http://csrankings.org/) among the nation’s top
research universities. Today, the college has a diverse
[faculty](https://www.ccis.northeastern.edu/role/tenured-and-tenure-track-
faculty/) of 103 working in a wide range of [research
areas](https://www.ccis.northeastern.edu/research/research-areas/). Forty-one
faculty members have joint appointments with other colleges and schools
including engineering, science, business, social sciences and humanities,
health sciences, law and arts, and media and design.
## Master of Science in Artificial Intelligence
The Master of Science program in artificial intelligence is designed to give
students a comprehensive framework for AI with specialization in one of five
areas: vision, intelligent interaction, robotics and agent-based systems,
machine learning, and knowledge management and reasoning. Students will engage
in an extensive core intended to develop depth in all core concepts that build
a foundation for AI theory and practice. Students will also be given the
opportunity to build on the core knowledge of AI by taking a variety of
elective courses selected from colleges throughout campus to explore key
contextual areas or more complex technical applications. Program graduates
will be well positioned to attain research and development positions in a
rapidly growing field or to progress into doctoral-degree-related fields.
## Master of Science in Data Science
Khoury College of Computer Sciences and the Department of Electrical and
Computer Engineering jointly offer an interdisciplinary Master of Science
program in data science. This program is designed to give students a
comprehensive framework for reasoning about data. Students will engage in
extensive coursework intended to develop depth in data collection, storage,
retrieval, manipulation, visualization, modeling, and interpretation. Students
will also be able to choose elective courses from a variety of offerings in
Khoury, the College of Engineering , and throughout the campus to explore
areas that generate data or specialized data science applications. Students in
the MS program in data science will complete a capstone course, working with
real-world data and applying what they have learned during the program.
Successful program graduates will be well positioned to attain data scientist
and data engineer positions in a fast-growing field or to progress into
doctoral degrees in related disciplines.
## Align Master of Science in Data Science
Students in the Align MS-DS program come from a variety of backgrounds, where
they merge their existing knowledge with data science skills. Students will
learn theoretical foundations and gain extensive experience with practical
problems in the discipline including data acquisition, storage, analysis,
probabilistic modeling, model deployment, and presentation.
## Master of Science in Robotics
The Master of Science in Robotics program, offered jointly by the College of
Engineering and the Khoury College of Computer Sciences at Northeastern, looks
at this fundamentally interdisciplinary field from three connected angles:
mechanical engineering, electrical engineering, and computer science.
Through a technically challenging curriculum, hands-on learning, and industry
co-op placements, students have an opportunity to gain a comprehensive
understanding of the algorithms, control systems, and mechanisms used in
robotics to help them stand out in the field and make a transformative impact
on society.
For more information on the program, please visit the College of Engineering
program page [here](/graduate/engineering/electrical-computer/robotics-ms/).
## Master of Science in Computer Science
Northeastern’s Master of Science in Computer Science is designed to prepare
students for a variety of careers in computer science. The program combines
both computing and important application domains—enabling students to increase
their broad-based knowledge in the field while focusing on one curricular
concentration selected from a range of options including artificial
intelligence, computer-human interaction, graphics, programming languages,
software engineering, data science, networks, theory, game design, systems,
and information security.
## Align Master of Science in Computer Science
MSCS-Align students come from a wide variety of backgrounds—with undergraduate
majors ranging from math, biology, history, engineering, and classics. In this
program, students have an opportunity to acquire both the knowledge needed to
transition into a new career and the practical skills to build the next great
app.
MSCS-Align Online—Take online courses from anywhere, with the flexibility to
complete the courses fully online or transfer to one of our strategically
located campuses after you’ve completed the bridge portion of the program.
Align Online students will also have three in-person campus visits during the
first two semesters to form peer and professional connections. The MSCS-Align
Online option is not an F-1 compliant program.
## Graduate Certificate in Cloud Software Development
The Graduate Certificate in Cloud Software Development provides students of
all backgrounds with the foundational skills needed to pursue a career in
cloud computing. Through a four-course program that emphasizes hands-on,
industry-facing experiential learning—via Khoury College’s partnerships with
leading cloud platform companies like AWS, Google, and Microsoft—you’ll gain
the technical ability, exposure, and experience to work on any cloud computing
platform, as well as the career-building resources to put you on the fast
track in this growing field.
## Graduate Certificate in Computer Science
The postbaccalaureate certificate is designed to give students a solid
foundation in the mathematical and theoretical underpinnings of computer
science, including the areas of discrete mathematics, basic programming, data
structures, object-oriented programming, algorithms, and computer systems. The
goal of the certificate is to provide foundational knowledge in computer
science that is valuable in both the workplace for career advancement as well
as to those looking to move into graduate programs within the discipline.
The Graduate Certificate in Computer Science will serve as the foundational
premaster's courses in the Align program.
## Graduate Certificate in Data Analytics
The interdisciplinary Graduate Certificate in Data Analytics is offered
through a collaboration between the Khoury College of Computer Sciences and
the College of Social Sciences and Humanities. The certificate curriculum
emphasizes the skills needed to bridge between emerging technological
capacities and traditional policymaking processes. The program is designed to
provide students with foundational knowledge in data science—including data
management, machine learning, data mining, statistics, and visualizing and
communicating data—that can be applied to data-driven decision making in any
discipline.
## Graduate Certificate in Inclusive Computer Science Education
The Graduate Certificate in Inclusive Computer Science Education is designed
to prepare students to teach computer science principles and concepts in the
context of a K–12 environment. Building on the successful Computer
Science—Align program, this certificate assumes no prior computer science
experience. Through coursework and project-based learning, students have an
opportunity to obtain the foundational knowledge necessary to teach basic
computing concepts and programming at a variety of educational levels both as
stand-alone courses and integrated into other disciplines. The certificate
emphasizes how teachers can create an inclusive classroom environment,
actively work to dispel stereotypes, and build student confidence. Students
who finish this certificate will be well positioned to obtain K–12
certification in computer science.
## Doctor of Philosophy (PhD)
  * [Computer Science](/graduate/computer-information-science/computer-science/computer-science-phd/)
  * [Network Science](/graduate/social-sciences-humanities/interdisciplinary/network-science-phd/index.html)
## Master of Science (MS)
  * [Artificial Intelligence](/graduate/computer-information-science/computer-science/artificial-intelligence-ms/)
  * [Complex Network Analysis](/graduate/computer-information-science/computer-science/complex-network-analysis-ms/)
  * [Data Science](/graduate/computer-information-science/computer-science/data-science-ms/)
  * [Data Science—Align](/graduate/computer-information-science/computer-science/data-science-ms-align/)
  * [Game Science and Design](/graduate/arts-media-design/art-design/game-science-design-ms/index.html)
  * [Internet of Things](/graduate/engineering/electrical-computer/internet-things-ms/index.html)
  * [Robotics](/graduate/computer-information-science/computer-science/robotics-ms/index.html)
  * [Statistics](/graduate/computer-information-science/computer-science/statistics-ms/index.html)
  * [Statistics—Connect](/graduate/computer-information-science/computer-science/statistics-ms-connect/index.html#text)
## Master of Science in Computer Science (MSCS)
  * [Computer Science](/graduate/computer-information-science/computer-science/computer-science-mscs/)
  * [Computer Science—Align](/graduate/computer-information-science/computer-science/computer-science-mscs-align/)
## Graduate Certificate
  * [Cloud Software Development](/graduate/computer-information-science/computer-science/cloud-software-development-graduate-certificate/)
  * [Computer Science](/graduate/computer-information-science/computer-science/computer-science-graduate-certificate/)
  * [Data Analytics](/graduate/computer-information-science/computer-science/data-analytics-graduate-certificate/)
  * [Inclusive Computer Science Education](/graduate/computer-information-science/computer-science/inclusive-computer-science-education-graduate-certificate/)
  * Computer Science Courses
  * Data Science Courses
## Computer Science Courses
**CS 5001. Intensive Foundations of Computer Science. (4 Hours)**
Introduces systematic problem solving through programming. Offers students an
opportunity to learn how to analyze a problem, how to divide and organize the
problem into appropriate components, how to describe the problem in a computer
language, how to analyze and understand the behavior of their programs, and
how to test that their programs are working correctly. Additionally,
introduces a method of program design called object-oriented programming and
various ways to organize data, including a discussion of their advantages and
disadvantages. To practice the course concepts, students undertake assignments
ranging from small, highly specified programming tasks to larger open-ended
problems where students design and code their own solutions.
**Corequisite(s):**[CS 5003](/search/?P=CS%205003 "CS 5003")
**CS 5002. Discrete Structures. (4 Hours)**
Introduces the mathematical structures and methods that form the foundation of
computer science. Studies structures such as sets, tuples, sequences, lists,
trees, and graphs. Discusses functions, relations, ordering, and equivalence
relations. Examines inductive and recursive definitions of structures and
functions. Covers principles of proof such as truth tables, inductive proof,
and basic logic and the counting techniques and arguments needed to estimate
the size of sets, the growth of functions, and the space-time complexity of
algorithms. Also, discusses data structures such as arrays, stacks, queues,
lists, and the algorithms that manipulate them.
**CS 5003. Recitation for CS 5001. (0 Hours)**
Provides a small-group discussion format to cover material in [CS
5001](/search/?P=CS%205001 "CS 5001"). _Coreq[CS 5001](/search/?P=CS%205001
"CS 5001")._.
**Corequisite(s):**[CS 5001](/search/?P=CS%205001 "CS 5001")
**CS 5004. Object-Oriented Design. (4 Hours)**
Presents a comparative approach to object-oriented programming and design.
Discusses the concepts of object, class, metaclass, message, method,
inheritance, and genericity. Reviews forms of polymorphism in object-oriented
languages. Contrasts the use of inheritance and composition as dual techniques
for software reuse—forwarding vs. delegation and subclassing vs. subtyping.
Offers students an opportunity to obtain a deeper understanding of the
principles of object-oriented programming and design, including software
components, object-oriented design patterns, and the use of graphical design
notations such as UML (unified modeling language). Illustrates basic concepts
in object-oriented design with case studies in application frameworks and by
writing programs in Java.
**Prerequisite(s):**([CS 5001](/search/?P=CS%205001 "CS 5001") with a minimum
grade of C- or [CS 5001](/search/?P=CS%205001 "CS 5001") with a minimum grade
of C- ); ([CS 5002](/search/?P=CS%205002 "CS 5002") with a minimum grade of C-
or [CS 5002](/search/?P=CS%205002 "CS 5002") with a minimum grade of C- )
**Corequisite(s):**[CS 5005](/search/?P=CS%205005 "CS 5005")
**CS 5005. Recitation for CS 5004. (0 Hours)**
Provides small-group discussion format to cover material in [CS
5004](/search/?P=CS%205004 "CS 5004").
**Corequisite(s):**[CS 5004](/search/?P=CS%205004 "CS 5004")
**CS 5007. Computer Systems. (2 Hours)**
Introduces the basic design of computing systems, computer operating systems,
and assembly language using a RISC architecture. Describes caches and virtual
memory. Covers the interface between assembly language and high-level
languages, including call frames and pointers; the use of system calls and
systems programming to show the interaction with the operating system; and the
basic structures of an operating system, including application interfaces,
processes, threads, synchronization, interprocess communication, deadlock,
memory management, file systems, and input/output control.
**CS 5008. Data Structures, Algorithms, and Their Applications within Computer
Systems. (4 Hours)**
Presents an integrated approach to the study of data structures, algorithms,
and their application within systems topics. Introduces a variety of
fundamental algorithmic techniques (divide-and-conquer, dynamic programming,
graph algorithms) and systems topics (models of computation, computer
architecture, compilation, system software, networking). Demonstrates the
integration of topics through programming assignments in the C language that
implement fundamental data structures (lists, queues, trees, maps, graphs) and
algorithms as they are applied in computer systems. Additional breadth topics
include programming applications that expose students to primitives of
different subsystems using threads and sockets.
**Prerequisite(s):**([CS 5001](/search/?P=CS%205001 "CS 5001") with a minimum
grade of C- or [CS 5001](/search/?P=CS%205001 "CS 5001") with a minimum grade
of C- ); ([CS 5002](/search/?P=CS%205002 "CS 5002") with a minimum grade of C-
or [CS 5002](/search/?P=CS%205002 "CS 5002") with a minimum grade of C- )
**Corequisite(s):**[CS 5009](/search/?P=CS%205009 "CS 5009")
**CS 5009. Recitation for CS 5008. (0 Hours)**
Provides small-group active learning format to augment material in [CS
5008](/search/?P=CS%205008 "CS 5008").
**Corequisite(s):**[CS 5008](/search/?P=CS%205008 "CS 5008")
**CS 5010. Programming Design Paradigm. (4 Hours)**
Introduces modern program design paradigms. Starts with functional program
design, introducing the notion of a design recipe. The latter consists of two
parts: a task organization (ranging from the description of data to the
creation of a test suite) and a data-oriented approach to the organization of
programs (ranging from atomic data to self-referential data definitions and
functions as data). The course then progresses to object-oriented design,
explaining how it generalizes and contrasts with functional design. In
addition to studying program design, students also have an opportunity to
practice pair-programming and public code review techniques, as found in
industry today.
**Corequisite(s):**[CS 5011](/search/?P=CS%205011 "CS 5011")
**CS 5011. Recitation for CS 5010. (0 Hours)**
Provides small-group discussion format to cover material in [CS
5010](/search/?P=CS%205010 "CS 5010").
**Corequisite(s):**[CS 5010](/search/?P=CS%205010 "CS 5010")
**CS 5047. Exploring AI Trends and Tools. (4 Hours)**
Explores key ideas in artificial intelligence while delving into trending
developments in the field. Examines AI tools and frameworks to enable
collaboration effectively and efficiently across technical and nontechnical
stakeholders. Analyzes topics such as AI-enabled perception, representation,
reasoning, and learning as contextualized by societal impact. Offers students
an opportunity to obtain the knowledge and skills necessary to confidently
navigate the ever-evolving landscape of AI.
**CS 5097. Mixed Reality. (4 Hours)**
Seeks to provide a strong foundation in the fundamentals of virtual and
augmented reality, broadly defined as mixed reality (XR), and hands-on
experience developing XR applications. Offers students an opportunity to dive
into this burgeoning area of research and practice in computer science. Given
the complex nature of XR environments, this course synthesizes theoretical and
practice knowledge from various disciplines, including computer graphics, 3D
interfaces, human-computer interaction, tracking systems, and perceptual
psychology (to name a few). XR technologies have recently witnessed a
resurgence of interest.
**CS 5100. Foundations of Artificial Intelligence. (4 Hours)**
Introduces the fundamental problems, theories, and algorithms of the
artificial intelligence field. Topics include heuristic search and game trees,
knowledge representation using predicate calculus, automated deduction and its
applications, problem solving and planning, and introduction to machine
learning. Required course work includes the creation of working programs that
solve problems, reason logically, and/or improve their own performance using
techniques presented in the course.
**Attribute(s):** NUpath Capstone Experience, NUpath Writing Intensive
**CS 5150. Game Artificial Intelligence. (4 Hours)**
Offers an overview of classical and modern approaches to artificial
intelligence in digital games. Focuses on the creation of believable agents
and environments with the goal of providing a fun and engaging experience to a
player. Covers player modeling, procedural content generation, behavior trees,
interactive narrative, decision-making systems, cognitive modeling, and path
planning. Explores different approaches for behavior generation, including
learning and rule-based systems. Requires students to complete several
individual assignments in these areas to apply the concepts covered in class.
Students choose a group final project, which requires a report, to explore one
aspect of artificial intelligence for games in further depth. Offers students
an opportunity to learn team management and communication. Requires knowledge
of algorithms and experience with object-oriented design or functional
programming.
**Attribute(s):** NUpath Capstone Experience, NUpath Writing Intensive
**CS 5170. Artificial Intelligence for Human-Computer Interaction. (4 Hours)**
Offers an overview of the wide range of AI techniques that exploit knowledge
of the domain and humans to facilitate interaction between humans and systems,
mediate human-human interaction, leverage humans to improve system
performance, and promote beneficial outcomes at the social and individual
level. Topics can include AI/human computation, plan and activity recognition,
smart sensing/homes, active learning, preference elicitation,
intelligent/adaptive user interfaces, and mixed human-agent simulations.
Studies how to design and develop intelligent interaction technologies while
also critically assessing their social and ethical impact.
**Prerequisite(s):**[CS 5100](/search/?P=CS%205100 "CS 5100") with a minimum
grade of C- ; [CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum grade
of C- ; [CS 6140](/search/?P=CS%206140 "CS 6140") with a minimum grade of C-
**CS 5180. Reinforcement Learning and Sequential Decision Making. (4 Hours)**
Introduces reinforcement learning and the underlying computational frameworks
and the Markov decision process framework. Covers a variety of reinforcement
learning algorithms, including model-based, model-free, value function, policy
gradient, actor-critic, and Monte Carlo methods. Examines commonly used
representations including deep learning representations and approaches to
partially observable problems. Students are expected to have a working
knowledge of probability and linear algebra, to complete programming
assignments, and to complete a course project that applies some form of
reinforcement learning to a problem of interest.
**CS 5200. Database Management Systems. (4 Hours)**
Introduces relational database management systems as a class of software
systems. Prepares students to be sophisticated users of database management
systems. Covers design theory, query language, and performance/tuning issues.
Topics include relational algebra, SQL, stored procedures, user-defined
functions, cursors, embedded SQL programs, client-server interfaces, entity-
relationship diagrams, normalization, B-trees, concurrency, transactions,
database security, constraints, object-relational DBMSs, and specialized
engines such as spatial, text, XML conversion, and time series. Includes
exercises using a commercial relational or object-relational database
management system.
**Attribute(s):** NUpath Analyzing/Using Data
**CS 5310. Computer Graphics. (4 Hours)**
Introduces the fundamentals of two-dimensional and three-dimensional computer
graphics, with an emphasis on approaches for obtaining realistic images.
Covers two-dimensional algorithms for drawing lines and curves, anti-aliasing,
filling, and clipping. Studies rendering of three-dimensional scenes composed
of spheres, polygons, quadric surfaces, and bi-cubic surfaces using ray-
tracing and radiosity. Includes techniques for adding texture to surfaces
using texture and bump maps, noise, and turbulence. Requires knowledge of
linear algebra.
**Prerequisite(s):**[MATH 2331](/search/?P=MATH%202331 "MATH 2331") with a
minimum grade of D- or graduate program admission
**Attribute(s):** NUpath Capstone Experience, NUpath Writing Intensive
**CS 5330. Pattern Recognition and Computer Vision. (4 Hours)**
Introduces fundamental techniques for low-level and high-level computer
vision. Examines image formation, early processing, boundary detection, image
segmentation, texture analysis, shape from shading, photometric stereo, motion
analysis via optic flow, object modeling, shape description, and object
recognition (classification). Discusses models of human vision (gestalt
effects, texture perception, subjective contours, visual illusions, apparent
motion, mental rotations, and cyclopean vision). Requires knowledge of linear
algebra.
**Prerequisite(s):**[MATH 2331](/search/?P=MATH%202331 "MATH 2331") with a
minimum grade of D- or graduate program admission
**CS 5335. Robotic Science and Systems. (4 Hours)**
Introduces autonomous mobile robots with a focus on algorithms and software
development, including closed-loop control, robot software architecture,
wheeled locomotion and navigation, tactile and basic visual sensing, obstacle
detection and avoidance, and grasping and manipulation of objects. Offers
students an opportunity to progressively construct mobile robots from a
predesigned electromechanical kit. The robots are controlled wirelessly by
software of the students’ own design, built within a provided robotics
software framework. Culminates in a project that connects the algorithms and
hardware developed in the course with a selected topic in the current robotics
research literature.
**CS 5340. Computer/Human Interaction. (4 Hours)**
Covers the principles of human-computer interaction and the design and
evaluation of user interfaces. Topics include an overview of human information
processing subsystems (perception, memory, attention, and problem solving);
how the properties of these systems affect the design of user interfaces; the
principles, guidelines, and specification languages for designing good user
interfaces, with emphasis on tool kits and libraries of standard graphical
user interface objects; and a variety of interface evaluation methodologies
that can be used to measure the usability of software. Other topics may
include World Wide Web design principles and tools, computer-supported
cooperative work, multimodal and “next generation” interfaces, speech and
natural language interfaces, and virtual reality interfaces. Course work
includes both the creation and implementation of original user interface
designs, and the evaluation of user interfaces created by others. Requires
knowledge of C programming language/UNIX.
**CS 5350. Applied Geometric Representation and Computation. (4 Hours)**
Surveys practical techniques for representing geometric objects in two and
three dimensions, for computing their motions and interactions, and for human
interfaces to manipulate them. These techniques are useful not only in
graphics but also in robotics, computer vision, game design, geographic
information systems, computer-aided design and manufacturing, spatial
reasoning and planning, physical simulation, biomechanics, and the
implementation of many types of human-computer interface. Requires
undergraduate background in algorithms.
**CS 5360. Noninteractive Computer Graphics. (4 Hours)**
Introduces computer graphics algorithms and concepts. Focuses on offline
rendering techniques. Consists of a lecture component and in-class laboratory
offering instruction about common image synthesis algorithms and techniques to
generate images used in games and 3D-animated movies. Culminates in a final
individual or group project to complete a renderer for generating high-quality
images. This course is appropriate for students interested in a career as a
graphics, rendering, or high-performance computer engineer.
**CS 5400. Principles of Programming Language. (4 Hours)**
Studies the basic components of programming languages, specification of syntax
and semantics, and description and implementation of programming language
features. Discusses examples from a variety of languages.
**Prerequisite(s):**[CS 5010](/search/?P=CS%205010 "CS 5010") with a minimum
grade of D- or [CS 5004](/search/?P=CS%205004 "CS 5004") with a minimum grade
of B- or [CS 5010](/search/?P=CS%205010 "CS 5010") with a minimum grade of C-
(Graduate)
**CS 5500. Foundations of Software Engineering. (4 Hours)**
Covers the foundations of software engineering, including software development
life cycle models (e.g., waterfall, spiral, agile); requirements analysis;
user-centered design; software design principles and patterns; testing
(functional testing, structural testing, testing strategies); code refactoring
and debugging; software architecture and design; and integration and
deployment. Includes a course project where some of the software engineering
methods (from requirements analysis to testing) are applied in a team-based
setting. Requires admission to MS program or completion of all transition
courses.
**Prerequisite(s):**[CS 5010](/search/?P=CS%205010 "CS 5010") with a minimum
grade of D or [CS 5004](/search/?P=CS%205004 "CS 5004") with a minimum grade
of C or [CS 5010](/search/?P=CS%205010 "CS 5010") with a minimum grade of C
**Attribute(s):** NUpath Writing Intensive
**CS 5520. Mobile Application Development. (4 Hours)**
Focuses on mobile application development on a mobile phone or related
platform. Discusses memory management; user interface building, including both
MVC principles and specific tools; touch events; data handling, including core
data, SQL, XML, and JSON; network techniques and URL loading; and, finally,
specifics such as GPS and motion sensing that may be dependent on the
particular mobile platform. Students are expected to work on a project that
produces a professional-quality mobile application and to demonstrate the
application that they have developed. The instructor chooses a modern mobile
platform to be used in the course.
**CS 5540. Game Programming. (4 Hours)**
Covers the skills needed to develop easily scalable and modifiable scripts
that can be used to implement various game mechanics common to most game
genres. Programming is an integral part of the digital game design and
development life cycle. Designed as a foundational game programming course
covering numerous aspects of game programming.
**Prerequisite(s):**([CS 5004](/search/?P=CS%205004 "CS 5004") with a minimum
grade of C- or [CS 5004](/search/?P=CS%205004 "CS 5004") with a minimum grade
of C- ) or ([CS 2500](/search/?P=CS%202500 "CS 2500") with a minimum grade of
D- ; [CS 2510](/search/?P=CS%202510 "CS 2510") with a minimum grade of D- ;
[CS 3500](/search/?P=CS%203500 "CS 3500") with a minimum grade of D- ) or [CS
5010](/search/?P=CS%205010 "CS 5010") with a minimum grade of C-
**CS 5600. Computer Systems. (4 Hours)**
Studies the structure, components, design, implementation, and internal
operation of computer systems, focusing mainly on the operating system level.
Reviews computer hardware and architecture including the arithmetic and logic
unit, and the control unit. Covers current operating system components and
construction techniques including the memory and memory controller, I/O device
management, device drivers, memory management, file system structures, and the
user interface. Introduces distributed operating systems. Discusses issues
arising from concurrency and distribution, such as scheduling of concurrent
processes, interprocess communication and synchronization, resource sharing
and allocation, and deadlock management and resolution. Includes examples from
real operating systems. Exposes students to the system concepts through
programming exercises. Requires admission to MS program or completion of all
transition courses.
**CS 5610. Web Development. (4 Hours)**
Discusses Web development for sites that are dynamic, data driven, and
interactive. Focuses on the software development issues of integrating
multiple languages, assorted data technologies, and Web interaction. Considers
ASP.NET, C#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX, RSS/Atom, SQL, and
Web services. Each student must deploy individually designed Web experiments
that illustrate the Web technologies and at least one major integrative Web
site project. Students may work in teams with the permission of the
instructor. Each student or team must also create extensive documentation of
their goals, plans, design decisions, accomplishments, and user guidelines.
All source files must be open and be automatically served by a sources server.
**Attribute(s):** NUpath Capstone Experience, NUpath Writing Intensive
**CS 5700. Fundamentals of Computer Networking. (4 Hours)**
Studies network protocols, focusing on modeling and analysis, and
architectures. Introduces modeling concepts, emphasizing queuing theory,
including Little’s theorem, M/M/1, M/M/m, M/D/1, and M/G/1 queuing systems.
Discusses performance evaluation of computer networks including performance
metrics, evaluation tools and methodology, simulation techniques, and
limitations. Presents the different harmonizing functions needed for
communication and efficient operation of computer networks and discusses
examples of Ethernet, FDDI, and wireless networks. Covers link layer protocols
including HDLC, PPP, and SLIP; packet framing; spanning tree and learning
bridges, error detection techniques, and automatic repeat request algorithms;
sliding window and reliable/ordered services; and queuing disciplines
including FQ and WFQ. Introduces flow control schemes, such as window flow
control and leaky bucket rate control schemes, and discusses congestion
control and fairness. Requires knowledge of probability theory.
**CS 5800. Algorithms. (4 Hours)**
Presents the mathematical techniques used for the design and analysis of
computer algorithms. Focuses on algorithmic design paradigms and techniques
for analyzing the correctness, time, and space complexity of algorithms.
Topics may include asymptotic notation, recurrences, loop invariants, Hoare
triples, sorting and searching, advanced data structures, lower bounds,
hashing, greedy algorithms, dynamic programming, graph algorithms, and NP-
completeness.
**Attribute(s):** NUpath Formal/Quant Reasoning
**CS 5850. Building Game Engines. (4 Hours)**
Discusses the components of game engines and strategies for their software
implementation. Includes graphics management algorithms (animation, scene
graph, level of detail); basic artificial intelligence algorithms (search,
decision making, sensing); and related algorithmic issues (networking,
threading, input processing). Explores the use of data-driven software design.
Offers students an opportunity to use a rendering engine and to build and
integrate several software components to create a complete game engine.
Requires students to work on individual assignments and then develop a project
in a team, which requires a report. Offers students an opportunity to learn
team/project management; work division; team communication; 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. Advanced Computer Science Topics for Teachers. (4 Hours)**
Offers learners intending to be certified as K–12 computer science educators
an advanced programming course. Covers GUI development and event-driven
programming, an introduction to modeling and simulation, basics of computer
networking and security, as well as topics related to the state of the art in
computer science.
**CS 5934. Introduction to Inclusive Computer Science Teaching. (4 Hours)**
Introduces teaching computer science (CS) in grades K–12. Focuses on
integrating CS concepts with other topic areas. Includes working with
multilingual learners—examining student identities with respect to CS and
exploring strategies for creating an inclusive CS classroom. Offers students
an opportunity to design and practice implementing lesson plans for CS
curricula at all grade levels, to explore current research in CS education,
and to build a portfolio of teaching resources.
**CS 5963. Topics. (1,2 Hours)**
Offers students an opportunity to learn about timely issues, develop new
skills, or explore areas of broad interest in an immersive, short-course
format. Content and instructors vary by offering.
**CS 5964. Projects for Professionals. (0 Hours)**
Offers students an applied project setting in which to apply their curricular
learning. Working with a sponsor, students refine an applied research topic,
perform research, develop recommendations that are shared with a partner
sponsor, and create a plan for implementing their recommendations. Seeks to
benefit students with a curriculum that supports the development of key
business communication skills, project and client management skills, and
frameworks for business analysis. Offers students an opportunity to learn from
sponsor feedback, review 'lessons learned,' and incorporate suggestions from
this review to improve and further develop their career development and
professional plan. May be repeated twice.
**CS 5965. Engaging with Industry Partners for Rising Professionals. (0
Hours)**
Offers students an enhanced applied project setting in which to apply their
curricular learning. Working with a partner sponsor, students refine an
applied research topic, perform research, develop recommendations that are
shared with the partner sponsor, and create a plan for implementing their
recommendations. Curriculum supports students as they develop key business
communication skills, project and client management skills, and frameworks for
business analysis. Offers students an opportunity to learn from sponsor
feedback, review lessons learned, and incorporate suggestions to improve and
further hone their career development and professional plan. Career
development opportunities through skill-building workshops, panels, and
interview preparation are available. Partner-student interactions, including a
culminating project presentation, allow partners to assess student potential
for co-op, internship, or other employment opportunities with the partner. May
be repeated two times.
**CS 5976. Directed Study. (2-4 Hours)**
Focuses on student examining standard computer science material in fresh ways
or new computer science material that is not covered in formal courses. May be
repeated up to three times.
**CS 6120. Natural Language Processing. (4 Hours)**
Provides an introduction to the computational modeling of human language, the
ongoing effort to create computer programs that can communicate with people in
natural language, and current applications of the natural language field, such
as automated document classification, intelligent query processing, and
information extraction. Topics include computational models of grammar and
automatic parsing, statistical language models and the analysis of large text
corpuses, natural language semantics and programs that understand language,
models of discourse structure, and language use by intelligent agents. Course
work includes formal and mathematical analysis of language models, and
implementation of working programs that analyze and interpret natural language
text.
**CS 6140. Machine Learning. (4 Hours)**
Provides a broad look at a variety of techniques used in machine learning and
data mining, and also examines issues associated with their use. Topics
include algorithms for supervised learning including decision tree induction,
artificial neural networks, instance-based learning, probabilistic methods,
and support vector machines; unsupervised learning; and reinforcement
learning. Also covers computational learning theory and other methods for
analyzing and measuring the performanceof learning algorithms. Course work
includes a programming term project.
**Prerequisite(s):**[CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum
grade of C- or [CS 7800](/search/?P=CS%207800 "CS 7800") with a minimum grade
of C-
**CS 6200. Information Retrieval. (4 Hours)**
Provides an introduction to information retrieval systems and different
approaches to information retrieval. Topics covered include evaluation of
information retrieval systems; retrieval, language, and indexing models; file
organization; compression; relevance feedback; clustering; distributed
retrieval and metasearch; probabilistic approaches to information retrieval;
Web retrieval; filtering, collaborative filtering, and recommendation systems;
cross-language IR; multimedia IR; and machine learning for information
retrieval.
**CS 6220. Data Mining Techniques. (4 Hours)**
Covers various aspects of data mining, including classification, prediction,
ensemble methods, association rules, sequence mining, and cluster analysis.
The class project involves hands-on practice of mining useful knowledge from a
large data set.
**Prerequisite(s):**[CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum
grade of C- or [CS 7800](/search/?P=CS%207800 "CS 7800") with a minimum grade
of C-
**CS 6240. Large-Scale Parallel Data Processing. (4 Hours)**
Covers big-data analysis techniques that scale out with increasing number of
compute nodes, e.g., for cloud computing. Emphasizes approaches for problem
and data partitioning that distribute work effectively, while keeping total
cost for computation and data transfer low. Studies and analyzes deterministic
and random algorithms from a variety of domains, including graphs, data
mining, linear algebra, and information retrieval in terms of their cost,
scalability, and robustness against skew. Course work emphasizes hands-on
programming experience with modern state-of-the-art big-data processing
technology. Students who do not meet course prerequisites may seek permission
of instructor.
**Prerequisite(s):**[CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum
grade of C- or [CS 7800](/search/?P=CS%207800 "CS 7800") with a minimum grade
of C- or [EECE 7205](/search/?P=EECE%207205 "EECE 7205") with a minimum grade
of C-
**CS 6350. Empirical Research Methods. (4 Hours)**
Presents an overview of methods for conducting empirical research within
computer science. These methods help provide objective answers to questions
about the usability, effectiveness, and acceptability of systems. The course
covers the basics of the scientific method, building from a survey of
objective measures to the fundamentals of hypothesis testing using relatively
simple research designs, and on to more advanced research designs and
statistical methods. The course also includes a significant amount of
fieldwork, spanning the design, conduct, and presentation of small empirical
studies.
**CS 6410. Compilers. (4 Hours)**
Expects each student to write a small compiler. Topics include parser
generation, abstract syntax trees, symbol tables, type checking, generation of
intermediate code, simple code improvement, register allocation, run-time
structures, and code generation.
**Prerequisite(s):**[CS 5400](/search/?P=CS%205400 "CS 5400") with a minimum
grade of C- or [CS 7400](/search/?P=CS%207400 "CS 7400") with a minimum grade
of C-
**Attribute(s):** NUpath Capstone Experience, NUpath Writing Intensive
**CS 6510. Advanced Software Development. (4 Hours)**
Designed to integrate academic concepts and practical experience of software
design by having students work as part of a programming team, with an option
to lead a subteam. Offers students an opportunity to study, in-depth, some
aspects of the development process. The goal is to have students participate
in a large-scale project, taking time to reflect and analyze the work and the
process, rather than concentrating exclusively on the final product. Students
who do not meet course prerequisites may seek permission of instructor.
**Prerequisite(s):**([CS 5004](/search/?P=CS%205004 "CS 5004") with a minimum
grade of B- or [CS 5010](/search/?P=CS%205010 "CS 5010") with a minimum grade
of C- ); [CS 5500](/search/?P=CS%205500 "CS 5500") with a minimum grade of C-
**CS 6620. Fundamentals of Cloud Computing. (4 Hours)**
Covers fundamentals of cloud computing, including virtualization and
containers, distributed file systems and object stores, infrastructure as a
service platforms, open source cloud platforms, key big data platforms, and
topics in data center scale systems. Combines classroom material delivered via
lectures, readings from literature, student presentations, and a semester-long
software project.
**CS 6640. Operating Systems Implementation. (4 Hours)**
Introduces concepts of OS kernels. Discusses the design and implementation of
today's OS kernel components, such as process abstraction, virtual memory
module, and file systems. Offers students an opportunity to obtain hands-on
experience in building these components step-by-step through a series of
assignments on a state-of-the-art hardware platform and to implement their own
OS kernels that can run on bare-metal machines.
**Prerequisite(s):**[CS 3650](/search/?P=CS%203650 "CS 3650") with a minimum
grade of D- or [CS 5600](/search/?P=CS%205600 "CS 5600") with a minimum grade
of C-
**CS 6650. Building Scalable Distributed Systems. (4 Hours)**
Covers the essential elements of distributed, concurrent systems and builds
upon that knowledge with engineering principles and practical experience with
state-of-the-art technologies and methods for building scalable systems.
Scalability is an essential quality of internet-facing systems and requires
specialized skills and knowledge to build systems that scale at low cost.
**CS 6710. Wireless Network. (4 Hours)**
Covers both theoretical issues related to wireless networking and practical
systems for both wireless data networks and cellular wireless
telecommunication systems. Topics include fundamentals of radio
communications, channel multiple access schemes, wireless local area networks,
routing in multihop ad hoc wireless networks, mobile IP, and TCP improvements
for wireless links, cellular telecommunication systems, and quality of service
in the context of wireless networks. Requires a project that addresses some
recent research issues in wireless and mobile networking.
**Prerequisite(s):**[CS 5700](/search/?P=CS%205700 "CS 5700") with a minimum
grade of C- or [CS 5700](/search/?P=CS%205700 "CS 5700") with a minimum grade
of D-
**CS 6760. Privacy, Security, and Usability. (4 Hours)**
Challenges conventional wisdom and encourages students to discover ways that
security, privacy, and usability can be made synergistic in system design.
Usability and security are widely seen as two antagonistic design goals for
complex computer systems. Topics include computer forensics, network
forensics, user interface design, backups, logging, economic factors affecting
adoption of security technology, trust management, and related public policy.
Uses case studies such as PGP, S/MIME, and SSL. Introduces basic cryptography
and hash function as it is needed. Course work includes analysis of papers,
problem sets, and a substantial term project.
**CS 6954. Co-op Work Experience - Half-Time. (0 Hours)**
Provides eligible students with an opportunity for work experience. May be
repeated without limit.
**CS 6955. Co-op Work Experience Abroad - Half-Time. (0 Hours)**
Provides eligible students with an opportunity for work experience abroad. May
be repeated once.
**CS 6962. Elective. (1-4 Hours)**
Offers elective credit for courses taken at other academic institutions. May
be repeated without limit.
**CS 6964. Co-op Work Experience. (0 Hours)**
Provides eligible students with an opportunity for work experience. May be
repeated without limit.
**CS 6965. Co-op Work Experience Abroad. (0 Hours)**
Provides eligible students with an opportunity for work experience abroad. May
be repeated without limit.
**CS 6983. Topics in Computer Science. (4 Hours)**
Offers various topics in computer science. May be repeated once.
**CS 7140. Advanced Machine Learning. (4 Hours)**
Covers topics in advanced machine learning. Presents materials in the current
machine learning literature. Focuses on graphical models, latent variable
models, Bayesian inference, and nonparametric Bayesian methods. Seeks to
prepare students to do research in machine learning. Expects students to read
conference and journal articles, present these articles, and write an
individual research paper. [CS 7140](/search/?P=CS%207140 "CS 7140") and [EECE
7397](/search/?P=EECE%207397 "EECE 7397") are cross-listed.
**Prerequisite(s):**[CS 6140](/search/?P=CS%206140 "CS 6140") with a minimum
grade of C- or [EECE 7204](/search/?P=EECE%207204 "EECE 7204") with a minimum
grade of C- or EECE 7313 with a minimum grade of C-
**CS 7150. Deep Learning. (4 Hours)**
Introduces deep learning, including the statistical learning framework,
empirical risk minimization, loss function selection, fully connected layers,
convolutional layers, pooling layers, batch normalization, multilayer
perceptrons, convolutional neural networks, autoencoders, U-nets, residual
networks, gradient descent, stochastic gradient descent, backpropagation,
autograd, visualization of neural network features, robustness and adversarial
examples, interpretability, continual learning, and applications in computer
vision and natural language processing. Assumes students already have a basic
knowledge of machine learning, optimization, linear algebra, and statistics.
**Prerequisite(s):**[CS 6140](/search/?P=CS%206140 "CS 6140") with a minimum
grade of C- or [DS 5220](/search/?P=DS%205220 "DS 5220") with a minimum grade
of C-
**CS 7170. Seminar in Artificial Intelligence. (2-4 Hours)**
Offers students an opportunity to read and present various survey and research
papers in artificial intelligence. May be repeated up to five times for a
maximum of 24 semester hours. Faculty supervisor and topics vary from semester
to semester.
**Prerequisite(s):**[CS 5100](/search/?P=CS%205100 "CS 5100") with a minimum
grade of C- or [CS 5100](/search/?P=CS%205100 "CS 5100") with a minimum grade
of D-
**CS 7180. Special Topics in Artificial Intelligence. (4 Hours)**
Offers various topics on artificial intelligence. May be repeated up to two
times.
**CS 7200. Statistical Methods for Computer Science. (4 Hours)**
Introduces concepts in applied statistics. Covers frequentist and Bayesian
characterization of uncertainty for continuous and categorical data,
principles of experimental design, and methods of causal inference. Discusses
the methodological foundations, as well as issues of practical implementation
and use.
**CS 7240. Principles of Scalable Data Management: Theory, Algorithms, and
Database Systems. (4 Hours)**
Covers the algorithms, core principles, and foundational concepts for managing
data at scale. Topics include data models, query languages, query execution
and optimization, complexity of query execution and query resilience, data
stream processing, parallel data processing, transactions, linear vs.
relational algebra, factorizations, and uncertainty in logic. Requires
standard CS knowledge of algorithms and hardness (e.g., a typical
undergraduate class based on a standard algorithms textbook such as Ericson;
Cormen, Leiserson, Rivest,and Stein; or Dasgupta, Papadimitriou, and
Vazirani). Offers students an opportunity to gain hands-on experience through
smaller assignments and a project. The project is flexible to allow students
to explore scalable data management and analysis aspects related to their PhD
research.
**CS 7250. Information Visualization: Theory and Applications. (4 Hours)**
Covers foundational as well as contemporary topics of interest in data
visualization to enable the effective representation of data across
disciplines, including examples drawn from computer science, physical
sciences, biomedical sciences, humanities, and economics. Topics include data
visualization theory and methodology, visualization design and evaluation,
visual perception and cognition, interaction principles, and data encoding and
representation techniques. Students who do not meet course restrictions may
seek permission of instructor.
**CS 7260. Visualization for Network Science. (4 Hours)**
Covers the principles of information visualization in the specific context of
network science. Introduces visual encoding of data and our understanding of
human vision and perception; interaction principles including filtering,
pivoting, aggregation; and both quantitative and human subjects evaluation
techniques. Covers visualization techniques for several network types,
including multivariate networks with attributes for entities and
relationships, evolving and dynamic networks that change over time,
heterogeneous networks with multiple types of entities, and geospatial
networks. Offers students an opportunity to learn about the design of layout
algorithms for node-link and matrix visualizations.
**CS 7270. Seminar in Database Systems. (2-4 Hours)**
Gives students the opportunity to read and present various survey and research
papers in database systems. Faculty supervisor and topics vary from semester
to semester. May be repeated for credit for PhD students.
**Prerequisite(s):**[CS 5200](/search/?P=CS%205200 "CS 5200") with a minimum
grade of C- or [CS 5200](/search/?P=CS%205200 "CS 5200") with a minimum grade
of D-
**CS 7280. Special Topics in Database Management. (4 Hours)**
Offers various topics. Possible areas include object-oriented database systems
and distributed database systems. May be repeated up to two times.
**CS 7290. Special Topics in Data Science. (4 Hours)**
Offers special topics in data science, including machine learning, statistics,
data mining, parallel and distributed data analysis, database systems,
information retrieval, knowledge representation, information visualization,
natural language processing, computational biology and bioinformatics,
computational social science, digital humanities, health informatics,
business, and predictive analytics. May be repeated once for up to 8 total
credits.
**CS 7295. Special Topics in Data Visualization. (4 Hours)**
Offers various topics in data visualization. May be repeated once.
**CS 7300. Empirical Research Methods for Human Computer Interaction. (4
Hours)**
Introduces concepts related to human subject studies for human computer
interaction and personal health informatics. Discusses the methodological
foundations, as well as issues of practical implementation and use. Provides
an overview of the most common experimental designs used in these fields, and
how studies should be proposed, conducted, analyzed, and documented for
publication. Covers qualitative methods, including interviewing and focus
groups, along with approaches to inductive qualitative data analysis. Methods
discussed in the course are useful in any area of science that involves the
application of the scientific method to situations involving people
interacting with computational artifacts or systems, including observation,
hypothesis formation, measurement, and descriptive and inferential statistical
analyses.
**CS 7332. Machine Learning with Graphs. (4 Hours)**
Covers a number of advanced topics in machine learning and data mining on
graphs, including vertex classification, graph clustering, link prediction and
analysis, graph distance functions, graph embedding and representation
learning, deep learning for graphs, anomaly detection, graph summarization,
network inference, adversarial learning on networks, and notions of fairness
in social networks. Seeks to familiarize students with state-of-the-art
descriptive and predictive algorithms on graphs. Requires a foundational
understanding of calculus and linear algebra, probability, machine learning or
data mining, algorithms, and programming skills.
**Prerequisite(s):**[PHYS 5116](/search/?P=PHYS%205116 "PHYS 5116") with a
minimum grade of C
**CS 7340. Theory and Methods in Human Computer Interaction. (4 Hours)**
Covers the foundations of human abilities, computational artifacts, design,
and evaluation. Human computer interaction concerns the design and evaluation
of software based on a deep understanding of how humans interact with
computers, devices, and sensors. The field merges theories from psychology and
computer science, using methods from AI and design. Introduces cognitive,
perceptual, and affective theories and theories of individual differences that
allow us to design and develop better computer software and systems. Also
covers research methods for designing and evaluating computer software
systems. Topics discussed in the context of next-generation interaction
modalities include sensors, haptics, wearables, and performative interfaces.
Students who do not meet course restrictions may seek permission of
instructor.
**CS 7375. Seminar in Human-Computer Interaction. (4 Hours)**
Offers students an opportunity to read and present various survey and research
papers in human-computer interaction, computer-supported collaborative work,
data visualization, social computing, design, critical computing,
accessibility, game design, health informatics, personal health informatics,
human-robot interaction, or HCI in security. May be repeated once.
**CS 7380. Special Topics in Graphics/Image Processing. (4 Hours)**
Offers various topics on graphics/image processing. May be repeated up to two
times.
**CS 7390. Special Topics in Human-Centered Computing. (4 Hours)**
Offers various topics in human-centered computing. May be repeated once.
**CS 7400. Intensive Principles of Programming Languages. (4 Hours)**
Studies the basic components of programming languages, specification of syntax
and semantics, and description and implementation of programming language
features. Discusses examples from a variety of languages.
**CS 7430. Formal Specification, Verification, and Synthesis. (4 Hours)**
Covers software and system modeling (how to formally describe the behavior of
software and systems); specification (how to formally state the properties
that the system should have); verification (how to check whether—and
ultimately prove—that a system satisfies its specification); and synthesis
(how to automatically generate software and systems that are "correct-by-
construction").
**CS 7470. Seminar in Programming Languages. (2-4 Hours)**
Gives students the opportunity to read and present various survey and research
papers in programming languages. Faculty supervisor and topics vary from
semester to semester. May be repeated three times for a maximum of 16 total
semester hours.
**Prerequisite(s):**[CS 5400](/search/?P=CS%205400 "CS 5400") with a minimum
grade of C- or [CS 5400](/search/?P=CS%205400 "CS 5400") with a minimum grade
of D- or [CS 7400](/search/?P=CS%207400 "CS 7400") with a minimum grade of C-
**CS 7480. Special Topics in Programming Language. (4 Hours)**
Offers various topics in programming language. May be repeated up to two
times.
**CS 7485. Special Topics in Formal Methods. (4 Hours)**
Offers various topics in formal methods. May be repeated without limit.
**CS 7575. Seminar in Software Engineering. (2-4 Hours)**
Gives students the opportunity to read and present various survey and research
papers in software engineering. Faculty supervisor and topics vary from
semester to semester. May be repeated for credit for PhD students.
**Prerequisite(s):** CS 6520 with a minimum grade of C-
**CS 7580. Special Topics in Software Engineering. (4 Hours)**
Offers various topics on software engineering. May be repeated up to two
times.
**CS 7600. Intensive Computer Systems. (4 Hours)**
Studies the structure, components, design, implementation, and internal
operation of computer systems, focusing on the operating system level. Reviews
computer hardware and architecture including the arithmetic and logic unit,
and the control unit. Covers current operating system components and
construction techniques including the memory and memory controller, I/O device
management, device drivers, memory management, file system structures, and the
user interface. Discusses distributed operating systems, real-time systems,
and addresses concurrent processes, scheduling, interprocess communication,
and synchronization. Discusses relevant distributed algorithms. Also covers
design and analysis techniques for desirable properties in computer systems
including functional correctness (in the absence of faults), performance and
throughput, fault-tolerance and reliability, real-time response, security, and
quality of service. Draws examples from real operating systems. Emphasizes
abstraction, while programming exercises are used to facilitate the
understanding of concepts.
**CS 7610. Foundations of Distributed Systems. (4 Hours)**
Covers foundational concepts in the design and implementation of efficient and
reliable distributed computing systems. Covers internet communication
protocols, fault-tolerant computing, synchronization protocols, synchronous
and asynchronous computing, dynamic group communication systems, load
balancing, Byzantine models, distributed hash tables, distributed file
systems, and application of foundational concepts to modern distributed
systems in the field. Requires knowledge of operating systems; e.g., an
undergraduate course in Systems and Networks, Computer Systems, or Networks
and Distributed systems.
**CS 7670. Seminar in Computer Systems. (2-4 Hours)**
Gives students the opportunity to read and present various survey and research
papers in computer systems. Faculty supervisor and topics vary from semester
to semester. May be repeated three times for a maximum of 16 total semester
hours.
**Prerequisite(s):**[CS 5600](/search/?P=CS%205600 "CS 5600") with a minimum
grade of C- or [CS 5600](/search/?P=CS%205600 "CS 5600") with a minimum grade
of D- or [CS 7600](/search/?P=CS%207600 "CS 7600") with a minimum grade of C-
**CS 7675. Master's Research. (4 Hours)**
Exposes students to research in the fields of computer sciences. Explores how
the scientific method is applied to these fields and covers the breadth of
subareas of specialty that exist. Offers students an opportunity to practice
how to locate and read scientific literature in different subareas. May be
repeated once.
**CS 7680. Special Topics in Computer Systems. (4 Hours)**
Offers various topics on computer systems. May be repeated up to two times.
**CS 7770. Seminar in Computer Networks. (2-4 Hours)**
Gives students the opportunity to read and present various survey and research
papers in computer networks. Faculty supervisor and topics vary from semester
to semester. May be repeated for credit for PhD students.
**Prerequisite(s):**[CS 5700](/search/?P=CS%205700 "CS 5700") with a minimum
grade of C- or [CS 5700](/search/?P=CS%205700 "CS 5700") with a minimum grade
of D-
**CS 7775. Seminar in Computer Security. (2-4 Hours)**
Gives students the opportunity to read and present various survey and research
papers in cryptography and computer security. Faculty supervisor and topics
vary from semester to semester. May be repeated for credit for PhD students.
**CS 7800. Advanced Algorithms. (4 Hours)**
Presents advanced mathematical techniques for designing and analyzing computer
algorithms. Reviews some of the material covered in [CS
5800](/search/?P=CS%205800 "CS 5800") and then covers advanced topics.
Emphasizes theoretical underpinnings of techniques used to solve problems
arising in diverse domains. Topics include asymptotic analysis, advanced data
structures, dynamic programming, greedy algorithms and matroid theory,
amortized analysis, randomization, string matching, algebraic algorithms, and
approximation algorithms. Introduces Turing machines, P and NP classes,
polynomial-time reducibility, and NP completeness.
**CS 7805. Complexity Theory. (4 Hours)**
Covers core topics in computational complexity, including NP-completeness,
time and space complexity, polynomial hierarchy, circuit complexity,
probabilistic computation, interactive proofs, and hardness of approximation.
Moves to more advanced topics that may include lower bounds, pseudorandomness,
cryptography, and communication complexity.
**Prerequisite(s):**[CS 7800](/search/?P=CS%207800 "CS 7800") with a minimum
grade of C-
**CS 7810. Foundations of Cryptography. (4 Hours)**
Offers students at the PhD level an accelerated introduction to cryptography
and quickly progresses to advanced topics that are at the forefront of current
research. Cryptography is the science of protecting information against
adversarial eavesdropping and tampering. Examines what kind of security
properties can be achieved by relying solely on probability and information
theory, without restricting the adversary’s computational power. Studies the
complexity-theoretic basis of modern cryptography and the connection between
computational hardness and pseudo-randomness. Explores, as the main component
of the course, how to take a few well-studied problems in number theory and
algebra and use them to build powerful cryptosystems with advanced
functionality and security properties. Requires prior completion of an
undergraduate course in the theory of computation.
**CS 7840. Foundations and Applications of Information Theory. (4 Hours)**
Studies information theory and selected applications for data management,
machine learning, and information retrieval. Information theory examines the
transmission, processing, extraction, and utilization of information. Topics
include entropy; mutual information; cross-entropy; data processing theorem;
information inequalities; Cox's theorem; maximum entropy solutions; and
applications such as data normalization, decision trees, maximum likelihood,
logistic regression, and VC dimensions. Requires prior study of standard
computer science algorithms. Offers hands-on experience through a flexible
project, allowing students to explore information theory in aspects related to
their PhD research.
**CS 7870. Seminar in Theoretical Computer Science. (2-4 Hours)**
Gives students the opportunity to read and present various survey and research
papers in theoretical computer science. Faculty supervisor and topics vary
from semester to semester. May be repeated three times for a maximum of 16
total semester hours.
**Prerequisite(s):**[CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum
grade of C- or [CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum grade
of D- or [CS 7800](/search/?P=CS%207800 "CS 7800") with a minimum grade of C-
**CS 7880. Special Topics in Theoretical Computer Science. (4 Hours)**
Covers various topics including advanced cryptography, approximation
algorithms, complexity theory, computational algebra, distributed computing,
formal verification, network algorithms, online computation, parallel
computing, and randomness and computation. May be repeated up to two times.
**CS 7930. Effective Scientific Writing in Computer Science. (2 Hours)**
Introduces the principles and practice of technical communication in computer
science and related fields. Emphasizes concepts such as genre, structure,
argument, and audience expectations. Focuses on the story of scientific
research and how it manifests in written genre like the abstract, research
statement, and conference paper, with a portion of the course focused on
presentation design and delivery.
**CS 7962. Elective. (2-4 Hours)**
Offers elective credit for courses taken at other academic institutions. May
be repeated without limit.
**CS 7976. Directed Study. (2-4 Hours)**
Focuses on student examining standard computer science material in fresh ways
or new computer science material that is not covered in formal courses. May be
repeated without limit.
**CS 7980. Research Capstone. (4 Hours)**
Offers students a culminating experience to demonstrate proficiency in key
concepts learned throughout their programs in the core and elective courses.
Designed to reinforce concepts in ethics and basic concepts in research,
beyond an emphasis on the technical principles learned throughout the program.
**Prerequisite(s):**([CS 5004](/search/?P=CS%205004 "CS 5004") with a minimum
grade of C- or [CS 5010](/search/?P=CS%205010 "CS 5010") with a minimum grade
of C- ); [CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum grade of C-
**CS 7986. Research. (0 Hours)**
Offers students an opportunity to conduct full-time research under faculty
supervision.
**CS 7990. Thesis. (4 Hours)**
Offers selected work with the agreement of a project supervisor. May be
repeated once.
**CS 7996. Thesis Continuation - Half-Time. (0 Hours)**
Offers continued thesis work conducted under the supervision of a departmental
faculty.
**Prerequisite(s):**[CS 7990](/search/?P=CS%207990 "CS 7990") with a minimum
grade of C-
**CS 8674. Master’s Project. (4 Hours)**
Offers selected work with the agreement of a project supervisor. May be
repeated once.
**CS 8948. Research Work Experience - Half-Time. (0 Hours)**
Provides an opportunity for all doctoral students to engage in industry
research in the area of their dissertation. Doctoral students register for
this course before starting their off-campus internship. May be repeated up to
five times.
**CS 8949. Research Work Experience. (0 Hours)**
Provides an opportunity for all doctoral students to engage in industry
research in the area of their dissertation. Doctoral students register for
this course before starting their off-campus internships. May be repeated
without limit.
**CS 8982. Readings. (1-8 Hours)**
Offers selected readings under the supervision of a faculty member. May be
repeated without limit.
**CS 8986. Research. (0 Hours)**
Offers an opportunity to conduct full-time research under faculty supervision.
May be repeated without limit.
**CS 9000. PhD Candidacy Achieved. (0 Hours)**
Indicates successful completion of the doctoral comprehensive exam.
**CS 9990. Dissertation Term 1. (0 Hours)**
Offers selected work with the agreement of a thesis supervisor.
**Prerequisite(s):**[CS 9000](/search/?P=CS%209000 "CS 9000") with a minimum
grade of S
**CS 9991. Dissertation Term 2. (0 Hours)**
Offers dissertation supervision by members of the department.
**Prerequisite(s):**[CS 9990](/search/?P=CS%209990 "CS 9990") with a minimum
grade of S
**CS 9996. Dissertation Continuation. (0 Hours)**
Continues work with the agreement of a thesis supervisor.
**Prerequisite(s):**[CS 9991](/search/?P=CS%209991 "CS 9991") with a minimum
grade of S or Dissertation Check with a score of REQ
## Data Science Courses
**DS 5010. Introduction to Programming for Data Science. (4 Hours)**
Offers an introductory course on fundamentals of programming and data
structures. Covers lists, arrays, trees, hash tables, etc.; program design,
programming practices, testing, debugging, maintainability, data collection
techniques, and data cleaning and preprocessing. Includes a class project,
where students use the concepts covered to collect data from the web, clean
and preprocess the data, and make it ready for analysis.
**DS 5020. Introduction to Linear Algebra and Probability for Data Science. (4
Hours)**
Offers an introductory course on the basics of statistics, probability, and
linear algebra. Covers random variables, frequency distributions, measures of
central tendency, measures of dispersion, moments of a distribution, discrete
and continuous probability distributions, chain rule, Bayes’ rule, correlation
theory, basic sampling, matrix operations, trace of a matrix, norms, linear
independence and ranks, inverse of a matrix, orthogonal matrices, range and
null-space of a matrix, the determinant of a matrix, positive semidefinite
matrices, eigenvalues, and eigenvectors.
**DS 5110. Introduction to Data Management and Processing. (4 Hours)**
Introduces students to the core tasks in data science, including data
collection, storage, tidying, transformation, processing, management, and
modeling for the purpose of extracting knowledge from raw observations.
Programming is a cross-cutting aspect of the course. Offers students an
opportunity to gain experience with data science tasks and tools through short
assignments. Includes a term project based on real-world data.
**DS 5220. Supervised Machine Learning and Learning Theory. (4 Hours)**
Introduces supervised machine learning, which is the study and design of
algorithms that enable computers/machines to learn from experience or data,
given examples of data with a known outcome of interest. Offers a broad view
of models and algorithms for supervised decision making. Discusses the
methodological foundations behind the models and the algorithms, as well as
issues of practical implementation and use, and techniques for assessing the
performance. Includes a term project involving programming and/or work with
real-world data sets. Requires proficiency in a programming language such as
Python, R, or MATLAB.
**Attribute(s):** NUpath Capstone Experience, NUpath Writing Intensive
**DS 5230. Unsupervised Machine Learning and Data Mining. (4 Hours)**
Introduces unsupervised machine learning and data mining, which is the process
of discovering and summarizing patterns from large amounts of data, without
examples of data with a known outcome of interest. Offers a broad view of
models and algorithms for unsupervised data exploration. Discusses the
methodological foundations behind the models and the algorithms, as well as
issues of practical implementation and use, and techniques for assessing the
performance. Includes a term project involving programming and/or work with
real-life data sets. Requires proficiency in a programming language such as
Python, R, or MATLAB.
**Attribute(s):** NUpath Capstone Experience, NUpath Writing Intensive
**DS 5500. Data Science Capstone. (4 Hours)**
Offers students a capstone opportunity to practice data science skills learned
in previous courses and to build a portfolio. Students practice visualization,
data wrangling, and machine learning skills by applying them to semester-long
term projects on real-world data. Students may either propose their own
projects or choose from a selection of industry options. Emphasizes the
overall data science process, including identification of the scientific
problem, selection of appropriate machine learning methods, and visualization
and communication of results. Lectures may include additional topics,
including visualization, communication, and data science ethics.
**Prerequisite(s):**([CS 5800](/search/?P=CS%205800 "CS 5800") with a minimum
grade of C- or [EECE 7205](/search/?P=EECE%207205 "EECE 7205") with a minimum
grade of C- ); [DS 5110](/search/?P=DS%205110 "DS 5110") with a minimum grade
of C- ; [DS 5220](/search/?P=DS%205220 "DS 5220") with a minimum grade of C- ;
[DS 5230](/search/?P=DS%205230 "DS 5230") with a minimum grade of C-
**DS 5983. Topics in Data Science. (4 Hours)**
Offers special topics in data science based on the interest and expertise of
the faculty member conducting the course. May be repeated once.
**DS 6962. Elective. (1-4 Hours)**
Offers elective credit for courses taken at other academic institutions. May
be repeated without limit.
**DS 7990. Thesis. (4 Hours)**
Offers selected work with the agreement of a project supervisor. May be
repeated once.
**DS 7995. Project. (1-4 Hours)**
Offers students an opportunity to participate in a direct data science project
under the supervision of a faculty member. May be repeated once for a total of
8 credits.
**DS 8982. Readings. (1-8 Hours)**
Offers selected readings under the supervision of a faculty member. May be
repeated without limit.