Computer Science | Northeastern University Academic Catalog (2024)

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 2012, the Khoury College of Computer Sciences has hired 30 outstanding faculty members and plans to continue this strategic growth in the coming years, advancing itspositionamong the nation’s top research universities. Today, the college has a diversefacultyof 75, working in a wide range ofresearch areas. Twenty-two 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 atechnically challenging curriculum,hands-on learning, andindustry 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.

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 inComputer 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 inCloud 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 inComputer 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 Analyticsis 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
  • Network Science

Master of Science (MS)

  • Artificial Intelligence
  • Data Science
  • Data Science—Align
  • Game Science and Design
  • Internet of Things
  • Robotics

Master of Science in Computer Science (MSCS)

  • Computer Science
  • Computer Science—Align

Graduate Certificate

  • Cloud Software Development
  • Computer Science
  • Data Analytics
  • Inclusive Computer Science Education
  • Computer Science Courses
  • Data Science Courses

Computer Science Courses

CS5001. 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): CS5003


CS5002. 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.


CS5003. Recitation for CS 5001. (0 Hours)

Provides a small-group discussion format to cover material in CS5001. Coreq CS5001..

Corequisite(s): CS5001


CS5004. 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): (CS5001 with a minimum grade of C- or CS5001 with a minimum grade of C- ); (CS5002 with a minimum grade of C- or CS5002 with a minimum grade of C- )

Corequisite(s): CS5005


CS5005. Recitation for CS 5004. (0 Hours)

Provides small-group discussion format to cover material in CS5004.

Corequisite(s): CS5004


CS5006. Algorithms. (2 Hours)

Introduces the basic principles and techniques for the design and implementation of efficient algorithms and data representations. Considers divide-and-conquer algorithms, graph traversal algorithms, linear programming, and optimization techniques. Covers the fundamental structures for representing data, such as hash tables, trees, and graphs.


CS5007. 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.


CS5008. 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): (CS5001 with a minimum grade of C- or CS5001 with a minimum grade of C- ); (CS5002 with a minimum grade of C- or CS5002 with a minimum grade of C- )

Corequisite(s): CS5009


CS5009. Recitation for CS 5008. (0 Hours)

Provides small-group active learning format to augment material in CS5008.

Corequisite(s): CS5008


CS5010. 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): CS5011


CS5011. Recitation for CS 5010. (0 Hours)

Provides small-group discussion format to cover material in CS5010.

Corequisite(s): CS5010


CS5081. Accessibility and Inclusiveness in Human-Computer Interaction. (2 Hours)

Covers the fundamentals of user experience. Emphasizes how to integrate accessibility and usability to enhance the user experience in everyday products and services for everyone, including seniors and people with disabilities.


CS5097. 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.


CS5100. 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. Requires experience in Java programming.

Attribute(s): NUpath Capstone Experience, NUpath Writing Intensive


CS5150. 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


CS5170. 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): CS5100 with a minimum grade of C- ; CS5800 with a minimum grade of C- ; CS6140 with a minimum grade of C-


CS5180. 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.


CS5200. 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


CS5310. 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): MATH2331 with a minimum grade of D- or graduate program admission

Attribute(s): NUpath Capstone Experience, NUpath Writing Intensive


CS5330. 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): MATH2331 with a minimum grade of D- or graduate program admission


CS5335. 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.


CS5340. 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.


CS5350. 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.


CS5360. 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.


CS5400. 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): CS5010 with a minimum grade of D- or CS5004 with a minimum grade of B- or CS5010 with a minimum grade of C- (Graduate)


CS5500. 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): CS5010 with a minimum grade of D or CS5004 with a minimum grade of C or CS5010 with a minimum grade of C

Attribute(s): NUpath Writing Intensive


CS5520. 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.


CS5600. 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.


CS5610. 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


CS5700. 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.


CS5800. 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


CS5850. 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.


CS5933. 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.


CS5934. 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.


CS5963. 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.


CS5964. 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.


CS5965. 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.


CS5976. 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.


CS6120. 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.


CS6140. 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): CS5800 with a minimum grade of C- or CS7800 with a minimum grade of C-


CS6200. 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.


CS6220. 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): CS5800 with a minimum grade of C- or CS7800 with a minimum grade of C-


CS6240. 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): CS5800 with a minimum grade of C- or CS7800 with a minimum grade of C- or EECE7205 with a minimum grade of C-


CS6350. 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.


CS6410. 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): CS5400 with a minimum grade of C- or CS7400 with a minimum grade of C-

Attribute(s): NUpath Capstone Experience, NUpath Writing Intensive


CS6510. 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): (CS5004 with a minimum grade of B- or CS5010 with a minimum grade of C- ); CS5500 with a minimum grade of C-


CS6620. 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.


CS6640. 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): CS3650 with a minimum grade of D- or CS5600 with a minimum grade of C-


CS6650. 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.


CS6710. 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): CS5700 with a minimum grade of C- or CS5700 with a minimum grade of D-


CS6760. 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.


CS6949. Career Preparation. (1 Hour)

Designed to prepare graduate students for co-op/internship using a career preparation model. Topics include goal setting, resumé writing, interviewing, job search strategy, and professionalism in the workplace. Offers students an opportunity to develop career goals, to learn to identify and acquire the tools and ability to assess what they know and need to know in relation to achieving their career goals, and to justify what they need to learn through their co-op/internship experience to transfer to/from their academic program to future career. Students intending to participate in a co-op or internship must satisfactorily complete this course, which is typically taken during the student’s first semester.


CS6954. Co-op Work Experience - Half-Time. (0 Hours)

Provides eligible students with an opportunity for work experience. May be repeated without limit.


CS6955. Co-op Work Experience Abroad - Half-Time. (0 Hours)

Provides eligible students with an opportunity for work experience abroad. May be repeated once.


CS6962. Elective. (1-4 Hours)

Offers elective credit for courses taken at other academic institutions. May be repeated without limit.


CS6964. Co-op Work Experience. (0 Hours)

Provides eligible students with an opportunity for work experience. May be repeated without limit.


CS6965. Co-op Work Experience Abroad. (0 Hours)

Provides eligible students with an opportunity for work experience abroad. May be repeated without limit.


CS7140. 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. CS7140 and EECE7397 are cross-listed.

Prerequisite(s): CS6140 with a minimum grade of C- or EECE7204 with a minimum grade of C- or EECE 7313 with a minimum grade of C-


CS7150. 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): CS6140 with a minimum grade of C- or DS5220 with a minimum grade of C-


CS7170. Seminar in Artificial Intelligence. (2-4 Hours)

Gives students the opportunity to read and present various survey and research papers in artificial intelligence. May be repeated for credit for PhD students; faculty supervisor and topics vary from semester to semester.

Prerequisite(s): CS5100 with a minimum grade of C- or CS5100 with a minimum grade of D-


CS7180. Special Topics in Artificial Intelligence. (4 Hours)

Offers various topics on artificial intelligence. May be repeated up to two times.


CS7200. 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.


CS7240. 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.


CS7250. 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.


CS7260. 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.


CS7270. 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): CS5200 with a minimum grade of C- or CS5200 with a minimum grade of D-


CS7280. 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.


CS7290. 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.


CS7295. Special Topics in Data Visualization. (4 Hours)

Offers various topics in data visualization. May be repeated once.


CS7300. 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.


CS7340. 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.


CS7375. 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.


CS7380. Special Topics in Graphics/Image Processing. (4 Hours)

Offers various topics on graphics/image processing. May be repeated up to two times.


CS7390. Special Topics in Human-Centered Computing. (4 Hours)

Offers various topics in human-centered computing.


CS7400. 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.


CS7430. 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").


CS7470. 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 for credit for PhD students.

Prerequisite(s): CS5400 with a minimum grade of C- or CS5400 with a minimum grade of D- or CS7400 with a minimum grade of C-


CS7480. Special Topics in Programming Language. (4 Hours)

Offers various topics in programming language. May be repeated up to two times.


CS7485. Special Topics in Formal Methods. (4 Hours)

Offers various topics in formal methods. May be repeated without limit.


CS7575. 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-


CS7580. Special Topics in Software Engineering. (4 Hours)

Offers various topics on software engineering. May be repeated up to two times.


CS7600. 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.


CS7610. 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.


CS7670. 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 for credit for PhD students.

Prerequisite(s): CS5600 with a minimum grade of C- or CS5600 with a minimum grade of D- or CS7600 with a minimum grade of C-


CS7675. 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.


CS7680. Special Topics in Computer Systems. (4 Hours)

Offers various topics on computer systems. May be repeated up to two times.


CS7770. 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): CS5700 with a minimum grade of C- or CS5700 with a minimum grade of D-


CS7775. 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.


CS7800. Advanced Algorithms. (4 Hours)

Presents advanced mathematical techniques for designing and analyzing computer algorithms. Reviews some of the material covered in CS5800 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.


CS7805. 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): CS7800 with a minimum grade of C-


CS7810. 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.


CS7870. 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. May be repeated for credit for PhD students; faculty supervisor and topics vary from semester to semester.

Prerequisite(s): CS5800 with a minimum grade of C- or CS5800 with a minimum grade of D- or CS7800 with a minimum grade of C-


CS7880. 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.


CS7930. 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.


CS7962. Elective. (2-4 Hours)

Offers elective credit for courses taken at other academic institutions. May be repeated without limit.


CS7976. 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.


CS7980. 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): (CS5004 with a minimum grade of C- or CS5010 with a minimum grade of C- ); CS5800 with a minimum grade of C-


CS7986. Research. (0 Hours)

Offers students an opportunity to conduct full-time research under faculty supervision.


CS7990. Thesis. (4 Hours)

Offers selected work with the agreement of a project supervisor.


CS7996. Thesis Continuation - Half-Time. (0 Hours)

Offers continued thesis work conducted under the supervision of a departmental faculty.

Prerequisite(s): CS7990 with a minimum grade of C-


CS8674. Master’s Project. (4 Hours)

Offers selected work with the agreement of a project supervisor. May be repeated once.


CS8948. 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.


CS8949. 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.


CS8982. Readings. (1-8 Hours)

Offers selected readings under the supervision of a faculty member. May be repeated without limit.


CS8986. Research. (0 Hours)

Offers an opportunity to conduct full-time research under faculty supervision. May be repeated without limit.


CS9000. PhD Candidacy Achieved. (0 Hours)

Indicates successful completion of the doctoral comprehensive exam.


CS9990. Dissertation Term 1. (0 Hours)

Offers selected work with the agreement of a thesis supervisor.

Prerequisite(s): CS9000 with a minimum grade of S


CS9991. Dissertation Term 2. (0 Hours)

Offers dissertation supervision by members of the department.

Prerequisite(s): CS9990 with a minimum grade of S


CS9996. Dissertation Continuation. (0 Hours)

Continues work with the agreement of a thesis supervisor.

Prerequisite(s): CS9991 with a minimum grade of S or Dissertation Check with a score of REQ


Data Science Courses

DS5010. 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.


DS5020. 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.


DS5110. 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.


DS5220. 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


DS5230. 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


DS5500. 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): (CS5800 with a minimum grade of C- or EECE7205 with a minimum grade of C- ); DS5110 with a minimum grade of C- ; DS5220 with a minimum grade of C- ; DS5230 with a minimum grade of C-


DS6962. Elective. (1-4 Hours)

Offers elective credit for courses taken at other academic institutions. May be repeated without limit.


DS7990. Thesis. (4 Hours)

Offers selected work with the agreement of a project supervisor.


DS7995. 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.


DS8982. Readings. (1-8 Hours)

Offers selected readings under the supervision of a faculty member. May be repeated without limit.


Print Options

  • Send Page to Printer

    Print this page.

  • Download Page (PDF)

    The PDF will include all information unique to this page.

  • 2023-24 Undergraduate Day PDF

  • 2023-24 CPS Undergraduate PDF

  • 2023-24 Graduate/Law PDF

  • 2023-24 Course Descriptions PDF

Computer Science | Northeastern University Academic Catalog (2024)

FAQs

How hard is computer science at university? ›

Computer science is considered math-heavy, requiring courses in calculus, linear algebra, Boolean algebra, and statistics. These math disciplines are crucial for developing critical thinking and problem-solving skills in data analysis, algorithms, and overall system understanding.

Is computer science class hard in college? ›

Learning the discipline of Computer Science is a hard and difficult endeavor for most students. However, if you are willing to invest the time and learn serious time management skills, most students can successfully learn the discipline and pursue successful careers in Computer Science fields.

Is computer science academically challenging? ›

But computer science has gotten a reputation for being a difficult bachelor's degree to earn because it involves learning how to program and combines a wide variety of theoretical and practical subjects.

Is CS the hardest major? ›

However, it remains one of the hardest college majors. Students enrolled in a computer science degree program will need to learn popular programming languages and challenging theoretical concepts. Coding assignments can be tricky, especially when it comes to finding small errors in a program.

What is the hardest subject in computer science? ›

5 Most difficult courses in computer science engineering
  1. Data Structures and Algorithms. Data Structures and Algorithms form the backbone of computer science. ...
  2. Operating Systems. Operating Systems is another challenging subject in computer science engineering. ...
  3. Theory of Computation. ...
  4. Computer Networks. ...
  5. Artificial Intelligence.
Jun 26, 2024

What is a good GPA for computer science? ›

The average CS GPA serves as a benchmark for computer science majors. While it can vary from one institution to another, a typical range falls between 3.0 to 3.5. Understanding this baseline is essential, but remember that the competitive landscape might demand more.

How valuable is computer science degree? ›

Career opportunities

One of the reasons computer science degrees tend to be so valuable is because of their versatility across in-demand fields. These degree programs can lay the foundation for careers in data science, artificial intelligence (AI), cybersecurity, cloud computing, robotics, and even video game design.

How much GPA is required for computer science? ›

The candidates having at least 2.0 out of 4.0 CGPA in Associate Degree or 45% marks in their 14-Years of Education obtained from HEC recognized university / institute are eligible provided that they also qualify for admission based on their 12 years of education as stated above.

What is the fail rate for computer science? ›

From the data of the report, 22% of all students who began degree studies in computer science, failed to finish the degree and dropped out.

Is it normal to struggle in computer science? ›

Anyone looking to study computer science should prepare to face some significant struggles during their studies, especially early on, while they're still getting used to computer programming languages and the computer programming process itself.

What is the hardest part about computer science? ›

Understanding concepts like superposition, entanglement, and quantum gates can be highly challenging for those without a strong foundation in both computer science and physics.

Can I do CS if I'm bad at math? ›

If you do not like math, then computer science may not be the best major for you. If you find math challenging, however, you can still major in computer science. If you've struggled with math to some extent, it's worth speaking with a college advisor about the requirements you'll face as a computer science major.

Is CS worth it anymore? ›

Definitely! A computer science degree opens doors to various career paths, including software development, data analysis, cybersecurity, and more.

Is computer science as hard as engineering? ›

The difficulty of each degree depends on the individual's strengths and interests. Both programs are challenging and require a strong foundation in mathematics and science. Computer science may seem harder if you prefer hands-on work, while computer engineering may be tougher if you're more inclined towards software.

What level of difficulty is a computer science degree? ›

Computer science requires a strong foundation in mathematics, logic, and problem-solving skills. You will learn to write code, develop algorithms, and build software systems. This requires a lot of practice and persistence and can sometimes be challenging.

Is it worth doing computer science at university? ›

Career opportunities

One of the reasons computer science degrees tend to be so valuable is because of their versatility across in-demand fields. These degree programs can lay the foundation for careers in data science, artificial intelligence (AI), cybersecurity, cloud computing, robotics, and even video game design.

Is computer science a lot of math? ›

Computer science operates on the language of math. That means earning your bachelor's degree in computer science will likely require taking several math courses. Of course, the number and kinds of classes will depend on your program. At its core, math is about verifying whether certain logical statements are true.

What is the hardest part of a computer science degree? ›

Hard Classes to Take

Some of the courses involved with one of these degree programs are very complex. Topics that the classes might address include artificial intelligence, database design, and programming. All of these subjects are essential parts of computer science majors, but often seem intimidating for students.

Top Articles
BTS’ Most Political Lyrics: A Guide to Their Social Commentary on South Korean Society
Cintas Air Freshener For Home
Tsukihime -A piece of blue glass moon- Review
Best Internists In Ft-Lauderdale
Hoy Kilnoski Obituaries
Lovex Load Data | xxlreloading.com
Navicent Human Resources Phone Number
Rick Harrison Daughter Ciana
gameplay:shiny_pokemon_and_luck [PokéRogue Wiki]
Relic Gate Nms
Cvs Tb Testing Cost
Cratebrowser
Dd Codeshare
Yovanis Pizzeria - View Menu & Order Online - 741 NY-211 East, Middletown, NY 10941 - Slice
Wmlink/Sspr
AT&T Mission | Cell Phones, Wireless Plans & Accessories | 2409 E Interstate Highway 2, Mission, TX | AT&T Store
Short Swords Resource Pack (1.21.1, 1.20.1) - Texture Pack
Skyward Weatherford Isd Login
As Trump and Harris spar, ABC's moderators grapple with conducting a debate in a polarized country
Ebony Pyt Twerk
Cato's Dozen Crossword
Linus Tech Tips Forums
Restored Republic August 10 2023
MySDMC SSO: Manatee County’s Digital Educational Access
Staar English 2 2022 Answer Key
‘There’s no Planet B’: UNLV first Nevada university to launch climate change plan
Cool Motion matras kopen bij M line? Sleep well. Move better
25Cc To Tbsp
Joy Ride 2023 Showtimes Near Cinemark Huber Heights 16
Baby | Voeding | Voeding het eerste jaar; borstvoeding
The Origins Behind Kurt Angle's "Perc Angle" Nickname In TNA
SF bay area cars & trucks "chevrolet 50" - craigslist
What Does Spd2 Mean On Whirlpool Microwave
Left Periprosthetic Femur Fracture Icd 10
Bollywood Movies 123Movies
Sems Broward County
How To Get Coins In Path Of Titans
New R-Link system and now issues creating R-Link store account.
Tandon School of Engineering | NYU Bulletins
Terrier Hockey Blog
Unraveling The Mystery Behind Campinos Leaked: A Deep Dive
Dallas College Radiology Packet
Detroit Lions Den Forum
Every Act That's Auditioned for AGT Season 18 So Far
Viewfinder Mangabuddy
Wie blocke ich einen Bot aus Boardman/USA - sellerforum.de
450 Miles Away From Me
Vadoc Gtlvisitme App
How Much Is Felipe Valls Worth
Old Navy Student Discount Unidays
Mcknet Workday
Latest Posts
Article information

Author: Wyatt Volkman LLD

Last Updated:

Views: 5851

Rating: 4.6 / 5 (66 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Wyatt Volkman LLD

Birthday: 1992-02-16

Address: Suite 851 78549 Lubowitz Well, Wardside, TX 98080-8615

Phone: +67618977178100

Job: Manufacturing Director

Hobby: Running, Mountaineering, Inline skating, Writing, Baton twirling, Computer programming, Stone skipping

Introduction: My name is Wyatt Volkman LLD, I am a handsome, rich, comfortable, lively, zealous, graceful, gifted person who loves writing and wants to share my knowledge and understanding with you.