Visit

The Master of Engineering in Computer Science curriculum offers a flexible course of study with rigorous technical courses in both fundamental and advanced, emerging areas of computing. Your academic coursework will give you formal training in engineering software, systems, platforms, and products for complex business challenges and human needs.

You will also complete Studio courses—an essential component of every Cornell Tech program. These courses focus on preparing you for innovation within major tech companies or entrepreneurship within startup ventures. In cross-disciplinary teams, you’ll work with students from other Cornell Tech master’s programs to create your own startup as well as develop usable solutions for real corporations.

 

Technical Courses

Algorithms and Data Structures for Applications

CS 5112 3

An introduction to some fundamental algorithms and data structures used in current applications. Examples include cryptocurrencies (hashing, Merkle trees, proofs of work), AI (nearest neighbor methods, k-d trees, autoencoders), and VR/AR (gradient descent, least squares, line-drawing algorithms). Six lectures will be replaced by applied clinics taught in the evening. Programming assignments in Python or Java.

Applied Machine Learning

CS 5785/ORIE 5750/ECE 5414 3

Learn and apply key concepts of modeling, analysis and validation from Machine Learning, Data Mining and Signal Processing to analyze and extract meaning from data. Implement algorithms and perform experiments on images, text, audio and mobile sensor measurements. Gain working knowledge of supervised and unsupervised techniques including classification, regression, clustering, feature selection, association rule mining, and dimensionality reduction.

Blockchains, Cryptocurrencies, and Smart Contracts

CS 5433 3

Viewed variously as a niche currency for online criminals and a technological threat to the financial industry, Bitcoin has fueled mythmaking, financial speculation, and real technological innovation. We will study both Bitcoin and the technological landscape it has inspired and catalyzed. Topics will include: the mechanics of consensus algorithms, such as Proof of Work and Byzantine Consensus, and their role in blockchains and cryptocurrencies; cryptographic tools employed in cryptocurrencies, including digital signatures algorithm and zero-knowledge proofs; the evolution and mechanics of Bitcoin and its ecosystem; smart contracts; and special topics, such as trusted hardware in blockchain-based systems, smart contracts and real-world contract law, and cryptocurrencies and crime. Grading will be based on homework assignments and a final project.

Cryptography

CS 5830 3

Introductory course in Cryptography. Topics include one-way functions, encryption, digital signatures, pseudo-random number generation, zero-knowledge and basic protocols. The emphasis will be on fundamental notions and constructions with proofs of security based on precise definitions and assumptions.

Data Science in the Wild

CS 5304/INFO 5304 3

Massive amounts of data are collected by many companies and organizations and the task of a data scientist is to extract actionable knowledge from the data – for scientific needs, to improve public health, to promote businesses, for social studies and for various other purposes. This course will focus on the practical aspects of the field and will attempt to provide a comprehensive set of tools for extracting knowledge from data.

Deep Learning

CS 5787 3

Students will learn deep neural network fundamentals, including, but not limited to, feed-forward neural networks, convolutional neural networks, network architecture, optimization methods, practical issues, hardware concerns, recurrent neural networks, dataset acquisition, dataset bias, adversarial examples, current limitations of deep learning, and visualization techniques. We still study applications to problems in computer vision and to a lesser extent natural language processing and reinforcement learning. There will also be a session on understanding publications in deep learning, which is a critical skill in this fast moving area.

Developing and Designing Interactive Devices

CS 5424/INFO 5345 3

This course provides an introduction to the human-centered and technical workings behind interactive devices ranging from cell phones and video controllers to household appliances and smart cars. This is a hands-on, lab-based course. For the final project, students will build a functional IoT prototype of their own design, using Javascript, single-board Linux computer, embedded microcontrollers, and other electronics components. Topics include electronics prototyping, interface prototyping, sensors and actuators, microcontroller development, physical prototyping and user testing.

Introduction to Blockchains, Cryptocurrencies, and Smart Contracts

CS 5094 1

Viewed variously as a niche currency for online criminals and a technological threat to the financial industry, Bitcoin has fueled mythmaking, financial speculation, and real technological innovation. We will study both Bitcoin and the technological landscape it has inspired and catalyzed. Topics will include: The mechanics of consensus algorithms, such as Proof of Work and Byzantine Consensus, and their role in blockchains and cryptocurrencies; cryptographic tools employed in cryptocurrencies, including digital signatures algorithm and zero-knowledge proofs; the evolution and mechanics of Bitcoin and its ecosystem; smart contracts; and special topics, such as trusted hardware in blockchain-based systems, smart contracts and real-world contract law, and cryptocurrencies and crime.

Introduction to Computer Vision

CS 5670 3

An in-depth introduction to computer vision. The goal of computer vision is to compute properties of our world-the 3D shape of an environment, the motion of objects, the names of people or things-through analysis of digital images or videos. The course covers a range of topics, including 3D reconstruction, image segmentation, object recognition, and vision algorithms fro the Internet, as well as key algorithmic, optimization, and machine learning techniques, such as graph cuts, non-linear least squares, and deep learning. This course emphasizes hands-on experience with computer vision, and several large programming projects.

Learning and Decision Making

CS 5726 3

This course covers the analysis of data for making decisions with applications to electronic commerce, AI and intelligent agents, business analytics, and personalized medicine. The focus will be on learning good and automated decision policies, inferring causal effects of potential decisions, and interactive and intelligent systems that learn through acting and act to learn. Topics include A/B testing, sequential decision making and bandits, decision theory, risk minimization and generalization, Markov decision processes, reinforcement learning, analysis of observational data, instrumental variable analysis, and algorithmic fairness of personalized decision policies. Students are expected to have taken a first course in machine learning and have working knowledge of calculus, probability, and linear algebra as well as a modern scripting language such as Python.

Natural Language Processing

CS 5740 3

This course constitutes an introduction to natural language processing (NLP), the goal of which is to enable computers to use human languages as input, output, or both. NLP is at the heart of many of today’s most exciting technological achievements, including machine translation, automatic conversational assistants and Internet search. Possible topics include summarization, machine translation, sentiment analysis and information extraction as well as methods for handling the underlying phenomena (e.g., syntactic analysis, word sense disambiguation, and discourse analysis).

Networked and Distributed Systems

CS 5450 3

Appropriate for advanced students who have no or limited networking knowledge. Note that there is project work in C or C++, so students should either know it or be prepared to learn it. Focuses on architectural principles of computer networking, network design principles (simplicity, scalability, performance, end-to-end), and how the Internet works today.

Optimization Methods

CS 5727 3

This course covers algorithmic and computational tools for solving optimization problems with the goal of providing decision-support for business intelligence. We will cover the fundamentals of linear, integer and nonlinear optimization. We will emphasize optimization as a large-scale computational tool, and show how to link programming languages with optimization software to develop industrial-strength decision-support systems. We will demonstrate how to incorporate uncertainty into optimization problems. Throughout the course, we will cover a variety of modern applications, including pricing and marketing for e-commerce, ad auctions on the web, and on-line ride-sharing.

Practicum in Cyber Security

CS5439 2

Students will work on hands-on projects in computer security.

Privacy in the Digital Age

CS 5436/INFO 5303 3

This course introduces students to privacy technologies and surveys the current state of digital privacy from multiple perspectives, including technology, law, policy, ethics, economics, and surveillance.

Security & Privacy Concepts in the Wild

CS 5435 3

This course will give students a technical and social understanding of how and why security and privacy matter, help them think adversarially and impart how (and how not) to design systems and products. Less attention will be paid to specific skills such as hacking, writing secure code and security administration. Topics will include user authentication, cryptography, malware, behavioral economics in security, human factors in security, privacy and anonymity, side channels, decoys and deception and adversarial modeling. We will explore these concepts by studying real-world systems and attacks, including Bitcoin, Stuxnet, retailer breaches, implantable medical devices, and health apps — and we will consider future issues that may arise in personal genomics, virtual worlds, and autonomous vehicles.

Virtual and Augmented Reality

CS 5600 3

Augmented and virtual reality technologies and applications are becoming increasingly popular. This course presents an introduction to this exciting area, with an emphasis on designing and developing virtual and augmented reality applications. The course will cover the history of the area, hardware technologies involved, interaction techniques, design guidelines, evaluation methods, and specific application areas. Students will be tasked with designing, developing, and evaluating their own augmented or virtual reality application as a course project.

Project & Interdisciplinary Courses

Becoming a Leader in the Digital World

TECH 5000 1

In each class, students focus on building skills needed for effective entrepreneurial leadership in a digital world and build on understanding how to maximize the positive economic, social, and cultural impact of digital businesses and products.

BigCo Studio

TECH 5290 3

Successfully innovating inside of a large company takes a new set of skills. In BigCo Studio, you will learn how to build products in a complex environment at scale and navigate business development, M&A, and other corporate activities to drive strategic initiatives within large companies. Working in teams, you’ll be matched with a C-suite or VP advisor from a real BigCo to research, prototype, and present a new product that helps the company achieve its mission.

Product Management

TECH 5200 1

This studio-based course helps students learn about and develop product management (PM) skills by putting those abilities immediately to use on their Startup Studio projects. In each session, students learn about a different aspect of product management, product design, or technology development, then practice applying it to their Startup Studio projects, working in the Studio with their project teams and with the help and critique of the practitioner instructors and sometimes visiting practitioners. By the end of the semester, students will have developed and practiced many of the fundamental product management skills required to develop new technology products, and their Startup Studio projects will have greatly benefited from the practice.

Product Studio

TECH 5900 3

Product Studio is the foundational studio course for product development at Cornell Tech. Students form semester-long teams and select a “How Might We” question posed by a company. During the semester students learn the basics of product development so they can apply the knowledge and skills from their degree program: identifying impactful problems to solve, product ideation and design, development process, and constructing a meaningful product narrative and complete product loop. Students present their working product, narrative, and thought process four times during the semester, after completing each of three 24-hour “studio sprints” where they will focus on developing their product and a final product presentation at the end of the semester.

Startup Studio

TECH 5910 3

In Startup Studio you and a team of your classmates will develop your own new product or startup idea. You’ll experience the entire process, from developing your idea, to prototyping and testing, to pitching to investors. You can even apply for a Startup Award that will provide funding and other support to help you turn your Startup Studio project to a real business.