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.
In parallel with your academic technical courses, you will also complete Studio courses—an essential component of every Cornell Tech program. These courses will comprise at least one third of your studies, with a 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.
What Your Schedule Might Look Like
- Fall Semester
- Spring Semester
- Technical Credits 9.00
- Studio & Interdisciplinary Credits 6.00
- Semester Total 15
- Technical Credits 9.00
- Studio & Interdisciplinary Credits 6.00
- Semester Total 15
- Technical Credits
- Studio & Interdisciplinary Credits
- Semester Total 0
- Security & Privacy Concepts in the Wild 3.00
- Networked and Distributed Systems 3.00
- Practicum in Cyber Security 2.00
- Developing and Designing Interactive Devices 3.00
- Virtual and Augmented Reality 3.00
- Optimization Methods 3.00
- Advanced Systems 4.00
- Analysis of Algorithms 4.00
- Cryptography 3.00
- Seminar in Natural Language Understanding 1.00
- Cryptography Seminar 1.00
- Independent Research 3.00
- Introduction to Blockchains, Cryptocurrencies, and Smart Contracts 1.0
- Data Science in the Wild 3.00
- Developing and Designing Interactive Devices 3.00
- Blockchains, Cryptocurrencies, and Smart Contracts 3.00
- Privacy in the Digital Age 3.00
- Introduction to Computer Vision 3.00
- Learning and Decision Making 3.00
- Natural Language Processing 3.00
- Advanced Programming Languages 4.00
- HCI & Design 3.00
Study of programming paradigms: functional, imperative, concurrent, and probabilistic programming. Mathematical foundations: inductive definitions, fixed points, and formal semantics. Models of programming languages including the lambda calculus. Type systems, polymorphism, modules, and object-oriented constructs. Program transformations, program logic, and applications to programming methodology.
Advanced course in systems, emphasizing contemporary research in distributed systems. Topics may include communication protocols, consistency in distributed systems, faulttolerance, knowledge and knowledge-based protocols, performance, scheduling, concurrency control, and authentication and security issues.
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.
Methodology for developing and analyzing efficient algorithms. Understanding the inherent complexity of natural problems via polynomial-time algorithms, advanced data structures, randomized algorithms, approximation algorithms, and NP-completeness. Additional topics may include algebraic and number theoretic algorithms, circuit lower bounds, online algorithms, or algorithmic game theory.
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.
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.
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.
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.
Human-Computer Interaction (HCI) and design theory and techniques. Methods for designing, prototyping, and evaluating user interfaces to computing applications. Basics of visual design, graphic design, and interaction design. Understanding human capabilities, interface technology, interface design methods, prototyping tools, and interface evaluation tools and techniques.
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.
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 segmentaion, 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.
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.
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).
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.
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.
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.
This course, the NLP seminar, is a weekly meeting for people currently or soon to be actively doing research in NLP. (Students simply looking to learn more about NLP should not enroll, but should take one of our lecture courses instead.) One participant leads discussion each week, either of a recently published paper or of their own work in progress. Attendance at all sessions is mandatory.
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.
Studio & Interdisciplinary Courses
This course is an introduction to fundamental concepts in business management – strategy, finance and financial accounting, marketing, organizational design, operations management, and negotiations – that are crucial knowledge for any entrepreneur and/or product manager. The course will help you learn the ‘language of business,’ and prepare you to take business electives in the near term and to run your own firm or product unit in the not-too-distant future, after you graduate from Cornell Tech. Business Fundamentals is not just economics, psychology, sociology, or mathematics, but draws from all of these disciplines. As a result, some of the concepts may sound familiar to some of you, but we will focus on understanding how they are applied to real-world business problems. In order to do so, we will use business cases and exercises in addition to lectures. Analyzing a case study and the resulting deductive learning will help you think in a different way, and will teach you to be comfortable with ambiguity, uncertainty, and contingencies, which are inevitable realities of business life. The general structure of the course is to introduce core concepts in each business area – strategy, finance/accounting, marketing, organizational design, operations management, and negotiations – through a lecture and a reading and then to apply those concepts in analyzing a custom-written case that draws from current business news.
This hands-on course will prepare you to be future innovators by teaching you Design Thinking, the human-centered design methodology pioneered by IDEO and Stanford d.school founder, David Kelley. You will work on a team with peers from other disciplines so as to experience the importance of “radical collaboration.” All teams will work on the same challenge, and you will be asked to design an innovative solution to this complex problem.
Begins by presenting historical technological advances that created major paradigm shifts for communications. Presents advances in computer technology emphasizing the fundamentals behind the increases in processing power, video and computer graphics capabilities, and network transmission. The second half of the course covers the effect of these scientific advances on many discipline-specific areas including photography, the film industry, the entertainment and animation industry, television broadcasting, publishing, and the computer industry itself. Sessions are devoted to the social and legal issues arising from the rapid advances in electronic communication. In attempting to predict the disruptive changes of the future, it is best to understand the technologies themselves. The course is especially tailored to a business school and industrial concerns and has interactive live demonstrations at the state-of-the-art laboratory of the Program of Computer Graphics. No prior knowledge of computer science is required.
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 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.
This studio-based course helps students develop their ability to imagine, recognize, develop and improve startup ideas. In each class, students learn a different approach to product ideation or product critique, then practice that approach, working in many different teams — often with the advice of visiting entrepreneurs, VCs, domain experts, and other practitioners. Students invent and explore hundreds of startup ideas, and help each other evaluate and improve those ideas. By the end of the course, students self-organize into co-founding teams around specific startup ideas that they will pursue in Startup Studio the following semester.
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.