Master of Science in Computer Science – Portland

Program Overview

The Master of Science in Computer Science, offered by Northeastern's Khoury College of Computer Science, is designed to prepare students for a variety of careers in computer science. The program combines both computing and important application domains. This enables students to increase their broad-based knowledge in the field while focusing on one curricular specialization selected from a range of options, including artificial intelligence, computer-human interface, data science, game design, graphics, information security, networks, programming languages, software engineering, systems, and theory.

All Roux Institute programs provide content relevant to the urgent and emerging needs of industry in Maine and the rapidly evolving regional, national, and global economy. Opportunities for experiential learning will be concentrated in Portland, the state of Maine, and the Northeast region. Students are encouraged to pursue co-ops and special virtual Experiential Network projects with the institute’s founding corporate partners, a group of leading employers in Maine.

  • Portland

    Location

  • Full-Time
    Part-Time

    Commitment

  • 2-2.5 years

    Duration of Program

Unique Features

  • The program is designed for students with a background in computer science.
  • Eleven concentrations range from artificial intelligence to software engineering.
  • The program features industry-aligned professors.
  • Students may participate in a four- to six-month paid co-op or internship.
  • The program content is designed to prepare students for the high-demand jobs and industry needs in Portland, the state of Maine, and the Northeast region.
  • The program is delivered through a hybrid model of online and on-site learning.

Program Objectives

  • Exhibit proficiency in the design and maintenance of large application software.
  • Develop the ability to maintain network infrastructure.
  • Build familiarity with basic algorithms and theoretical computer science principles.
  • Demonstrate ability in advanced programming and software design materials.

Career Outlook

Northeastern’s MSCS graduates have found success in a wide range of careers, including software development engineer at Amazon, consultant at Deloitte, software engineer at Microsoft, and full stack developer at Cartera Commerce, Inc.

Scholarships and aid

$50.3K

Tuition

Estimated Total Tuition

This is an estimate based on the tuition rates for Academic Year 2020-2021 and does not include any fees or other expenses. Some courses and labs have tuition rates that may increase or decrease total tuition. Tuition and fees are subject to revision by the president and Board of Trustees at any time. For more detailed information, please visit Student Financial Services.

Generous scholarships

The Roux Institute is currently offering generous scholarships to meet the financial needs of all students through its Alfond Scholars Initiative. Each award is determined by an individual assessment. And Northeastern alumni receive a Double Husky Scholarship —a tuition discount of 25 percent.

Learn more about the Alfond Scholars Initiative

Corporate tuition benefits

Many employers subsidize education for their employees. Speak with yours about any tuition benefits your company may offer.

Special military scholarships

For military veterans and servicemembers, a limited number of donor-funded scholarships are available even after all other aid has been awarded to help with commuting costs, childcare, and other costs of living.

Learn more about military scholarships

Federal aid

You can apply for federal aid grants and loans through the Free Application for Federal Student Aid, or FAFSA.

Learn about the FAFSA

Admission Requirements

  • Online application and fee
  • Unofficial undergraduate/graduate transcripts; you can submit official transcripts from all colleges/universities attended at the time of admission.
  • Statement of purpose that should include career goals and expected outcomes and benefits from the program
  • Recent professional resumé listing detailed position responsibilities
  • Three letters of recommendation from individuals who have either academic or professional knowledge of your capabilities such as a faculty member, colleague, or mentor, preferably one from your current employer
  • Official GRE General Test scores (NOT REQUIRED FOR SPRING 2021, FALL 2021, or SPRING 2022)
  • Official TOEFL examination scores (international students only)

Admission Dates

Applicants must submit the online application and all required admission materials no later than the stated deadlines to be considered for admission. Admissions decisions are made on a rolling basis.

  • Deadline for domestic applicants: January 1, 2021

Program Curriculum

Courses and their associated credit hours are listed below.

Choose one from the following:

CS 5150 - Game Artificial Intelligence
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.
CS 5310 - Computer Graphics
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.
CS 5340 - Computer/Human Interaction
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 5850 - Building Game Engines
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 7140 - Advanced Machine Learning
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 and EECE 7397 are cross-listed.
CS 5310 - Computer Graphics
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.
CS 5330 - Pattern Recognition and Computer Vision
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.
CS 5520 - Mobile Application Development
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 6760 - Privacy, Security, and Usability
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 7485 - Special Topics in Formal Methods
Offers various topics in formal methods. May be repeated without limit.
CS 7580 - Special Topics in Software Engineering
Offers various topics on software engineering. May be repeated up to two times.
CS 7810 - Foundations of Cryptography
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 (Northeastern’s CS 3800 or equivalent).
CS 5770 - Software Vulnerabilities and Security
Seeks to help students to become aware of systems security issues and to gain a basic understanding of security. Presents the principal software and applications used in the Internet, discussing in detail the related vulnerabilities and how they are exploited. Also discusses programming vulnerabilities and how they are exploited. Examines protection and detection techniques. Includes a number of practical lab assignments as well as a discussion of current research in the field.
CS 6740 - Network Security
Studies the theory and practice of computer security, focusing on the security aspects of multiuser systems and the Internet. Introduces cryptographic tools, such as encryption, key exchange, hashing, and digital signatures in terms of their applicability to maintaining network security. Discusses security protocols for mobile networks. Topics include firewalls, viruses, Trojan horses, password security, biometrics, VPNs, and Internet protocols such as SSL, IPSec, PGP, SNMP, and others.
CS 6750 - Cryptography and Communications Security
Studies the design and use of cryptographic systems for communications and other applications such as e-commerce. Discusses the history of cryptographic systems, the mathematical theory behind the design, their vulnerability, and the different cryptanalytic attacks. Topics include stream ciphers including shift register sequences; block ciphers, such as DES and AES; public-key systems including RSA, discrete logarithms; signature schemes; hash functions, such as MD5 and SHA1; and protocol schemes including identification schemes, zero-knowledge proofs, authentication schemes, and secret sharing schemes. Discusses key management problems including Needham-Schroeder protocols and certificates.
CS 5700 - Fundamentals of Computer Networking
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 6710 - Wireless Network
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.
CS 6760 - Privacy, Security, and Usability
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 7775 - Seminar in Computer Security
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 7780 - Special Topics in Networks
Offers various topics on networks. May be repeated up to two times.
CS 6740 - Network Security
Studies the theory and practice of computer security, focusing on the security aspects of multiuser systems and the Internet. Introduces cryptographic tools, such as encryption, key exchange, hashing, and digital signatures in terms of their applicability to maintaining network security. Discusses security protocols for mobile networks. Topics include firewalls, viruses, Trojan horses, password security, biometrics, VPNs, and Internet protocols such as SSL, IPSec, PGP, SNMP, and others.
CS 6750 - Cryptography and Communications Security
Studies the design and use of cryptographic systems for communications and other applications such as e-commerce. Discusses the history of cryptographic systems, the mathematical theory behind the design, their vulnerability, and the different cryptanalytic attacks. Topics include stream ciphers including shift register sequences; block ciphers, such as DES and AES; public-key systems including RSA, discrete logarithms; signature schemes; hash functions, such as MD5 and SHA1; and protocol schemes including identification schemes, zero-knowledge proofs, authentication schemes, and secret sharing schemes. Discusses key management problems including Needham-Schroeder protocols and certificates.
CS 5400 - Principles of Programming Language
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 6410 - Compilers
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.
CS 6510 - Advanced Software Development
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.
CS 7480 - Special Topics in Programming Language
Offers various topics in programming language. May be repeated up to two times.
CS 5520 - Mobile Application Development
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 5610 - Web Development
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.
CS 6510 - Advanced Software Development
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.
CS 6650 - Building Scalable Distributed Systems
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 7580 - Special Topics in Software Engineering
Offers various topics on software engineering. May be repeated up to two times.
CS 6620 - Fundamentals of Cloud Computing
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 7680 - Special Topics in Computer Systems
Offers various topics on computer systems. May be repeated up to two times.
CY 6740 - Network Security
Studies the theory and practice of computer security, focusing on the security aspects of multiuser systems and the Internet. Introduces cryptographic tools, such as encryption, key exchange, hashing, and digital signatures in terms of their applicability to maintaining network security. Discusses security protocols for mobile networks. Topics include firewalls, viruses, Trojan horses, password security, biometrics, VPNs, and Internet protocols such as SSL, IPSec, PGP, SNMP, and others.
CS 6800 - Application of Information Theory
Introduces information theory and its applications to various computational disciplines. Covers the basic concepts of information theory, including entropy, relative entropy, mutual information, and the asymptotic equipartition property. Concentrates on applications of information theory to computer science and other computational disciplines, including compression, coding, Markov chains, machine learning, information retrieval, statistics, computational linguistics, computational biology, wired and wireless networks, and image and speech processing. The course is self-contained; no prior knowledge of information theory is required or assumed. Requires an undergraduate course in probability.
CS 7805 - Theory of Computation
Examines formal models of computation, notions of undecidability, and basic complexity theory. Models of computation include finite state automata, pushdown automata, and Turing machines. Discusses the properties of regular sets and context-free languages. Also covers partial recursive functions, primitive recursive functions, recursively enumerable sets, Turing decidability, and unsolvable problems. Discusses the concept of reductions, time and space complexity classes, and the polynomial-time hierarchy.
CS 7880 - Special Topics in Theoretical Computer Science
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.
CY 6750 - Cryptography and Communications Security
Studies the design and use of cryptographic systems for communications and other applications such as e-commerce. Discusses the history of cryptographic systems, the mathematical theory behind the design, their vulnerability, and the different cryptanalytic attacks. Topics include stream ciphers including shift register sequences; block ciphers, such as DES and AES; public-key systems including RSA, discrete logarithms; signature schemes; hash functions, such as MD5 and SHA1; and protocol schemes including identification schemes, zero-knowledge proofs, authentication schemes, and secret sharing schemes. Discusses key management problems including Needham-Schroeder protocols and certificates.

Experiential Learning

Learning integrated with professional experience is a hallmark of Northeastern and the Roux Institute. Students gain a clear understanding of real-world industry needs in Portland, the state of Maine, and the Northeast—and valued workplace skills like communication and teamwork—through assignments at companies and nonprofit organizations. Students can complete a six-week virtual project relevant to their studies through the university’s Experiential Network (XN) of employers, or even for their own company. Or they can apply for four- and six-month, full-time co-op positions. All opportunities enable students to build their resumés, expand their professional networks, and chart a path to in-demand careers.

Contact us to explore your options.

Sometimes it helps to talk things through. Complete the form and our team will connect with you to discuss your questions and options.