Riverfront view of New York City skyline.

ONLINE Master in Computer Science (MSCS)

Become a Software Development Leader

Ranked #8 in the nation for “Best Online Graduate Computer Information Technology Programs” in 2021 by U.S. News & World Report.

Apply Now

MSCS OVERVIEW

The Online M.S. in Computer Science at Stevens Institute of Technology offers you a curriculum aligned with high-demand areas such as software development, web programming, mobile systems and applications, cloud computing, human-computer interaction, and enterprise software design.

  • Java, Python, and C++

  • Enterprise software design and engineering

  • Mobile application development and cloud computing

  • Agile development methods

  • Algorithm design and testing

By the Numbers

In U.S.
#21
U.S. Best Online Master's in Engineering by U.S. News & World Report (2020)
In U.S.
Top 25
Among the Top 25 STEM colleges by Forbes (2018)
Winner
7x
21st Century Distance Learning Award by the United States Distance Learning Association
In Nation
#9
Recognized for 'Top 20 Best Career Placement (Private Schools)' by The Princeton Review (2021)
In N.J.
#3
Best engineering and science graduate programs by U.S. News & World Report (2022)

Coursework

Below are Traditional and Advanced course sequences for the M.S. in Computer Science program. Students will engage in coursework on the following topics to develop skills as software development leaders and high-quality coders. The MSCS program consists of 30 credit hours, with 10 courses, and is 100% online.

Term 1

This course introduces the Java programming language to students with little programming experience. It begins by covering fundamental concepts such as program structure and Java syntax and continues with data types, object-oriented programming, abstract classes and interfaces, control flow, exception handling, recursion, and event-driven programming. Students will write, compile and execute programs operating on arrays of data or strings, including programs with graphical user interfaces.

Note: This is a foundational course to be taken by students who did not have the relevant background.

This course introduces the most commonly used data structures, as well as sorting algorithms, using the Java programming language. Data structures that are introduced and compared include arrays, lists, stacks, queues, trees, priority queues, and maps, such as hash tables. Relevant principles including encapsulation, interfaces and testing are presented along with the data structures, while asymptotic complexity analysis is also introduced. Students implement and test programs that use the above data structures in conjunction with algorithms such as insertion, selection, merge, and quick sort.

Note: This is a foundational course to be taken by students who did not have the relevant background.

Term 2

This course will provide an intensive introduction to material on computer organization and assembly language programming. Topics include structure of stored program computers; linking and loading; assembly language programming, with an emphasis on translation of high-level language constructs; data representation and arithmetic algorithms; basics of logic design; processor design: data path, hardwired control and microprogrammed control. Students will be given assembly language programming assignments on a regular basis.

In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the UNIX family of operating systems and their programming environment. Topics include the user/kernel interface, fundamental concepts of UNIX, user authentication, basic and advanced input/output (I/O), file systems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on UNIX systems will also be covered.

Term 3

This course will provide focus on more complex data structures, and algorithm design and analysis, using one or more modern imperative language(s). Topics include advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other “classic” algorithms that serve as examples of design techniques.

The objective of this course is to give students a basic grounding in designing and implementing distributed and cloud systems, including issues in the implementation of backend services in the cloud itself. What are global consensus and Paxos, and what is their application in building cloud systems? What are the advantages and disadvantages of using distributed NoSQL stores such as Cassandra instead of relational stores such as MySQL? What are strong and weak consistency, what are the “CAP Theorem” and the “CALM Theorem,” and what are their implications for building highly available services? What is a blockchain, such as the Bitcoin blockchain, and how does it relate to issues in coordinating distributed systems? What are the roles of REST, Websockets, and stream processing in cloud applications? This course will combine hands-on experience in developing cloud services, with a firm grounding in the tools and principles for building distributed and cloud applications, including advanced architectures such as peer-to-peer and publish-subscribe. Besides cloud services, we will also be looking at cloud support for batch processing, such as the Hadoop framework, and its use with NoSQL data stores, such as Cassandra.

Term 4

This course will provide focus on the use and internals of modern operating systems. Primary topics include the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and input/output (I/O).

This course will provide an introduction to the design and querying of relational databases. Topics include relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.

Term 5

Personal computing is now mobile and cloud-based. Disconnected mobile computing challenges many of the assumptions underlying much of today’s distributed systems. “Cloud computing” provides a powerful background computing facility for mobile devices, but also raises important issues of trust and privacy. Many of these issues arise in critical yet sensitive domains such as electronic healthcare delivery. Mobile computing applications are location-aware or context-aware; the privacy implications of these applications are profound. Mobile, and increasingly location aware, gaming systems are now one of the largest sectors of the world entertainment industry. The purpose of this course is to review the fundamentals of mobile systems and applications, and how they relate to services in the cloud. The course will review material from wireless communication, distributed systems, and security and privacy, as they pertain to the systems being studied. The course will involve programming mobile apps using a popular mobile computing platform, such as Android or iPhone, to get hands-on experience with the concepts being discussed in the class.

This course will provide students with a first strong approach of internet programming. It will give the basic knowledge on how the Internet works and how to create advanced web sites by the use of script languages, after learning the basics of HTML. In this course, the student will learn how to create a complex global site through the creation of individual working modules, providing them the interpersonal skills required in business settings such as team building and cooperation.

Term 1

This course will provide an intensive introduction to material on computer organization and assembly language programming. Topics include structure of stored program computers; linking and loading; assembly language programming, with an emphasis on translation of high-level language constructs; data representation and arithmetic algorithms; basics of logic design; processor design: data path, hardwired control and microprogrammed control. Students will be given assembly language programming assignments on a regular basis.

The objective of this course is to give students a basic grounding in designing and implementing distributed and cloud systems, including issues in the implementation of backend services in the cloud itself. What are global consensus and Paxos, and what is their application in building cloud systems? What are the advantages and disadvantages of using distributed NoSQL stores such as Cassandra instead of relational stores such as MySQL? What are strong and weak consistency, what are the “CAP Theorem” and the “CALM Theorem,” and what are their implications for building highly available services? What is a blockchain, such as the Bitcoin blockchain, and how does it relate to issues in coordinating distributed systems? What are the roles of REST, Websockets, and stream processing in cloud applications? This course will combine hands-on experience in developing cloud services, with a firm grounding in the tools and principles for building distributed and cloud applications, including advanced architectures such as peer-to-peer and publish-subscribe. Besides cloud services, we will also be looking at cloud support for batch processing, such as the Hadoop framework, and its use with NoSQL data stores, such as Cassandra.

Term 2

This course will provide focus on more complex data structures, and algorithm design and analysis, using one or more modern imperative language(s). Topics include advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other “classic” algorithms that serve as examples of design techniques.

In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the UNIX family of operating systems and their programming environment. Topics include the user/kernel interface, fundamental concepts of UNIX, user authentication, basic and advanced input/output (I/O), file systems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on UNIX systems will also be covered.

Term 3

This course will provide focus on the use and internals of modern operating systems. Primary topics include the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and input/output (I/O).

This course will provide an introduction to the design and querying of relational databases. Topics include relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.

Term 4

Personal computing is now mobile and cloud-based. Disconnected mobile computing challenges many of the assumptions underlying much of today’s distributed systems. “Cloud computing” provides a powerful background computing facility for mobile devices, but also raises important issues of trust and privacy. Many of these issues arise in critical yet sensitive domains such as electronic healthcare delivery. Mobile computing applications are location-aware or context-aware; the privacy implications of these applications are profound. Mobile, and increasingly location aware, gaming systems are now one of the largest sectors of the world entertainment industry. The purpose of this course is to review the fundamentals of mobile systems and applications, and how they relate to services in the cloud. The course will review material from wireless communication, distributed systems, and security and privacy, as they pertain to the systems being studied. The course will involve programming mobile apps using a popular mobile computing platform, such as Android or iPhone, to get hands-on experience with the concepts being discussed in the class.

This course will provide students with a first strong approach of internet programming. It will give the basic knowledge on how the Internet works and how to create advanced web sites by the use of script languages, after learning the basics of HTML. In this course, the student will learn how to create a complex global site through the creation of individual working modules, providing them the interpersonal skills required in business settings such as team building and cooperation.

Term 5

In software problem areas that require exploratory development efforts, those with complex requirements and high levels of change, agile software development practices are highly effective when deployed in a collaborative, people-centered organizational culture. This course examines agile methods, including Extreme Programming (XP), Scrum, Lean, Crystal, Dynamic Systems Development Method and Feature-Driven Development to understand how rapid realization of software occurs most effectively. The ability of agile development teams to rapidly develop high quality, customer-valued software is examined and contrasted with teams following more traditional methodologies that emphasize planning and documentation. Students will learn agile development principles and techniques covering the entire software development process from problem conception through development, testing and deployment, and will be able to effectively participate in and manage agile software developments as a result of their successfully completing this course. Case studies and software development projects are used throughout.

This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development.

Career Outlook

Prospective Occupations for MSCS Graduates

JOB TITLE

EMPLOYED

MEDIAN INCOME

Software Developers

1,500,000

$107,000

Information Security Analysts

137,000

$99,700

Computer and Information Systems Managers

461,000

$146,000

Computer and Information Research Scientists

35,000

$123,000

Computer Systems Analyst

627,000

$91,000

Network Administrators

368,000

$83,000

Web Developers

186,000

$70,000

Source: Emsi Labor Market Data, 2021

MSCS ALUMNI HAVE GONE ON TO BE EMPLOYED AT THE FOLLOWING ORGANIZATIONS:

  • Amazon
  • Google
  • Bank of America
  • IBM
  • Facebook
  • JP Morgan

PROGRAM ADMISSION REQUIREMENTS

  • Bachelor's Degree

    Minimum GPA of 3.0 from an accredited institution. Degree required to begin program; completion not required at time of application.

  • ACADEMIC TRANSCRIPTS

    You may submit unofficial transcripts during the application process. After admission, you will be required to submit official transcripts.

  • Two Letters of Recommendation

    Faculty members and/or professional colleagues.

  • TOEFL/IELTS/Duolingo Scores

    Required for international students.

  • Statement of Purpose

    Optional, but strongly recommended.

  • Resume

    Optional, but strongly recommended.

TEST SCORE ACCOMMODATIONS DURING THE NOVEL CORONAVIRUS OUTBREAK

Due to the impacts of the coronavirus (COVID-19) on testing centers around the world, Stevens has made the following accommodations available to all students for the fall 2021 admissions cycle:

  • TOEFL/IELTS/DUOLINGO: Affected applicants may submit Duolingo English Test (DET) results in lieu of TOEFL/IELTS exam results.

Tuition & Cost

Per Credit (30 credits)
$1,776*
Application Fee
$60
Fee waivers available
Enrollment Deposit
$250
*Tuition rates based on Fall 2022 tuition rate effective September 2022. Tuition and fees are subject to change annually.

Key Dates & Deadlines

Term

Early Submit

Priority Submit

Final Submit

Start of Classes

$250 Deposit Waiver* and Application Fee Waiver Available.

Application Fee Waiver Available and Early Application Review.

Summer 2022

February 15, 2022

March 15, 2022

May 5, 2022

May 23, 2022

Fall 2022

May 23, 2022

June 27, 2022

July 25, 2022

September 12, 2022

* Applicants who apply by the early submit deadline and are admitted may be eligible for a $250 deposit waiver. Applicants who receive education assistance from employers or other tuition discounts are not eligible. Other eligibility conditions may apply.

Upcoming Webinars

Thursday, May 19th
7:00pm ET

"What School is Right For You?"

Wednesday, June 8th
7:00pm ET

Online MSCS Program and Application Forum

Thursday, June 16th
7:00pm ET

"What School is Right For You?"

Wednesday, July 13th
7:00pm ET

"What School is Right For You?"

Thursday, July 14th
7:00pm ET

Online MSCS/MSDS Student Panel

Thursday, August 18th
7:00pm ET

"What School is Right For You?"

Faculty

Our faculty includes five National Science Foundation (NSF) CAREER winners as well as researchers who consult with companies such as Microsoft, IBM, Google, Bell Labs and other top industry firms.

Giuseppe Ateniese

GIUSEPPE ATENIESE

FARBER CHAIR PROFESSOR AND DEPARTMENT CHAIR FOR THE DEPARTMENT OF COMPUTER SCIENCE

David Naumann

DAVID NAUMANN

PROFESSOR

Susanne Wetzel

SUSANNE WETZEL

PROFESSOR

Sandeep Bhatt

SANDEEP BHATT

TEACHING PROFESSOR

Eduardo Bonelli

EDUARDO BONELLI

TEACHING PROFESSOR

Request Information

GRE/GMAT Not Required