Master of Science in Computer Science – Align – Portland

Program Overview

Computing is an essential element of nearly every human endeavor, and today’s computer scientists are solving many of the world’s problems. For this innovative work, the rewards are often high, with competitive salaries and the intrinsic benefits of knowing that your contributions have great impact on people, companies, and communities. 

Northeastern’s Align Master of Science in Computer Science program, offered by the Khoury College of Computer Sciences, combines core coursework in program design, computer systems, and software development. Elective courses in machine learning, databases, distributed systems, networks and security, and software engineering allow students to tailor their degree to their unique interests. Classroom and cohort-based learning support students’ development of fundamental computer science and problem-solving skills. Students are part of a vibrant community and have access to outstanding academic support. 

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.5-3 years

    Duration of Program

Unique Features

  • Program designed for students with non-computer science backgrounds.
  • Flexible class schedules make it possible for working professionals to participate in the program.
  • Students can gain up to 12 months of work experience through paid co-op or internship positions.
  • 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

  • Develop the ability to recognize and solve problems arising in modern computing.
  • Assimilate ideas and concepts from theoretical studies and hands-on design and programming.
  • Acquire skills in software and application design, network infrastructure, and other dynamic and emerging computer science areas.

Career Outlook

In June 2013, Forbes reviewed salary and employment outlook data with the goal of identifying the best master’s degrees for immediate job potential. Information systems ranked first, and computer science ranked fourth. The projected increase in jobs associated with these degrees was 30 percent and 21.3 percent, respectively. The opportunities are vast, and the rewards are innumerable. 

Scholarships and aid

$75.4K

Tuition

Estimated Total Tuition

This is based on tuition rates for Academic Year 2019 - 20 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.

Generous scholarships

The Roux Institute is offering generous scholarships in its inaugural year to select applicants through its Resilience Scholarship Program. Employees of the institute’s employer partners are eligible for an Employer Partner Scholarship. And Northeastern alumni receive a Double Husky Scholarship — a tuition discount of 25 percent.

Learn more about the Resilience Scholarship Program

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
  • Unofficial undergraduate/graduate transcripts; you can submit official transcripts from all colleges/universities attended at the time of admission
  • Completion of two out of three essay prompts given in the application portal
  • 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
  • Unofficial TOEFL or IELTS 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: August 15, 2020
  • Deadline for domestic applicants: December 15, 2020

Program Curriculum

Core Requirements

Align Master of Science in Computer Science General Requirements

Courses and their associated credit hours are listed below.

Align Bridge Coursework

Students are required to complete the following bridge courses.

A grade of B or higher is required in each course.

Fundamentals 

CS 5001 - Intensive Foundations of Computer Science4.00
Introduces the fundamental ideas of computing and programming principles. Discusses a systematic approach to word problems, including analytic reading, synthesis, goal setting, planning, plan execution, and testing. Presents several models of computing, beginning with functional program design. The latter part of the course 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). Offers students an opportunity to practice pair programming and public code review techniques, as found in industry today. No prior programming experience is assumed; therefore, suitable for students with little or no computer science background.
CS 5003 - Recitation for CS 50010.00
Provides a small-group discussion format to cover material in CS 5001. Coreq CS 5001.

Discrete Structures

CS 5002 - Discrete Structures4.00
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.

Object-Oriented Design

CS 5004 - Object-Oriented Design4.00
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.
CS 5005 - Recitation for CS 50040.00
Provides small-group discussion format to cover material in CS 5004.

Additional Align courses

CS 5006 - Algorithms2.00
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.
CS 5007 - Computer Systems2.00
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.

Core Requirements

Development

Choose one of the following:

CS 5500 - Foundations of Software Engineering4.00
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.
CS 5600 - Computer Systems4.00
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.

Algorithms

CS 5800 - Algorithms4.00
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.

Electives

Complete 20 semester hours from the following. A minimum of 8 semester hours must be taken from the same specialization.

CS 5100 to CS 5850

CS 6110 to CS 6810

CS 7140 to CS 7380

CS 7470 to CS 7580

CS 7670 to CS 7785

CS 7810 to CS 7880

CS 8674 - Master’s Project4.00
Offers selected work with the agreement of a project supervisor. May be repeated once.
CS 8982 - Readings8.00
Offers selected readings under the supervision of a faculty member. May be repeated without limit.
CS 7990 - Thesis4.00
Offers selected work with the agreement of a project supervisor.
DS 5110 - Introduction to Data Management and Processing4.00
Discusses the practical issues and techniques for data importing, tidying, transforming, and modeling. Offers a gentle introduction to techniques for processing big data. Programming is a cross-cutting aspect of the course. Offers students an opportunity to gain experience with data science tools through short assignments. Course work includes a term project based on real-world data. Covers data management and processing—definition and background; data transformation; data import; data cleaning; data modeling; relational and analytic databases; basics of SQL; programming in R and/or Python; MapReduce fundamentals and distributed data management; data processing pipelines, connecting multiple data management and analysis components; interaction between the capabilities and requirements of data analysis methods (data structures, algorithms, memory requirements) and the choice of data storage and management tools; and repeatable and reproducible data analysis.

Specializations

Choose one from the following:

CS 5100 - Foundations of Artificial Intelligence
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.
CS 5335 - Robotic Science and Systems
Introduces autonomous mobile robots with a focus on algorithms and software development, including closed-loop control, robot software architecture, wheeled locomotion and navigation, tactile and basic visual sensing, obstacle detection and avoidance, and grasping and manipulation of objects. Offers students an opportunity to progressively construct mobile robots from a predesigned electromechanical kit. The robots are controlled wirelessly by software of the students’ own design, built within a provided robotics software framework. Culminates in a project that connects the algorithms and hardware developed in the course with a selected topic in the current robotics research literature.
CS 6120 - Natural Language Processing
Provides an introduction to the computational modeling of human language, the ongoing effort to create computer programs that can communicate with people in natural language, and current applications of the natural language field, such as automated document classification, intelligent query processing, and information extraction. Topics include computational models of grammar and automatic parsing, statistical language models and the analysis of large text corpuses, natural language semantics and programs that understand language, models of discourse structure, and language use by intelligent agents. Course work includes formal and mathematical analysis of language models, and implementation of working programs that analyze and interpret natural language text.
CS 6140 - Machine Learning
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.
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 7180 - Special Topics in Artificial Intelligence
Offers various topics on artificial intelligence. May be repeated up to two times.
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 6350 - Empirical Research Methods
Presents an overview of methods for conducting empirical research within computer science. These methods help provide objective answers to questions about the usability, effectiveness, and acceptability of systems. The course covers the basics of the scientific method, building from a survey of objective measures to the fundamentals of hypothesis testing using relatively simple research designs, and on to more advanced research designs and statistical methods. The course also includes a significant amount of fieldwork, spanning the design, conduct, and presentation of small empirical studies.
CS 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 5200 - Database Management Systems
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.
CS 6140 - Machine Learning
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.
CS 6200 - Information Retrieval
Provides an introduction to information retrieval systems and different approaches to information retrieval. Topics covered include evaluation of information retrieval systems; retrieval, language, and indexing models; file organization; compression; relevance feedback; clustering; distributed retrieval and metasearch; probabilistic approaches to information retrieval; Web retrieval; filtering, collaborative filtering, and recommendation systems; cross-language IR; multimedia IR; and machine learning for information retrieval.
CS 6220 - Data Mining Techniques
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.
CS 6240 - Large-Scale Parallel Data Processing
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.
CS 7150 - Deep Learning
Studies deep learning and its applications, including methods to model complex spatiotemporal data, composing graphical models and neural networks for structured representations, advances in the theoretical and systems aspects of deep learning, techniques for making deep learning robust to adversarial manipulation, as well as explaining black-box deep learning models to enhance their transparency. Assumes that students already have a basic knowledge of machine learning, optimization, and statistics. Includes examples of relevant applications, such as intelligent transportation, sports analytics, robotics, and healthcare. Deep learning is showing great promise for data science and AI.
CS 7280 - Special Topics in Database Management
Offers various topics. Possible areas include object-oriented database systems and distributed database systems. May be repeated up to two times.
CS 7290 - Special Topics in Data Science
Offers special topics in data science, including machine learning, statistics, data mining, parallel and distributed data analysis, database systems, information retrieval, knowledge representation, information visualization, natural language processing, computational biology and bioinformatics, computational social science, digital humanities, health informatics, business, and predictive analytics. May be repeated once for up to 8 total credits.
CS 7295 - Special Topics in Data Visualization
Offers various topics in data visualization. May be repeated once.
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).
CY 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.
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.
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.
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.
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.
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.
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 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.