Computer Science at NYU Shanghai is designed to create technological leaders with a global perspective, a broad education, and the capacity to think creatively. Computer science focuses on how to design, build, and effectively use the computers and systems that we interact with every day — from the iPhones in our hands to the complex databases in our banks and hospitals and to the self-driving cars of the future.
Requirements for the Major
Students can choose to follow the academic bulletin from the year that they were admitted or a more recent academic bulletin. For example, if you were admitted to NYU Shanghai in Fall 2019, you can choose to follow the academic bulletin 2019-2020, 2020-2021, and 2021-2022.
Planning the Major
To declare the Computer Science major, students must have a final grade of C, or currently enrolled in the following courses in MATH-SHU 131 Calculus and CSCI-SHU 11 Introduction to Computer Programming (or CSCI-SHU 101 Introduction to Computer Science).
Faculty Mentors
Faculty mentors are the leading faculty and experts in the major disciplines. Students can reach out to faculty mentors for specific questions about the major, and references for connecting with relevant discipline resources. If you have specific questions about specific fields of study within the major, you can search for faculty through the faculty directory.

Dean of Engineering and Computer Science

Computer Science Area Head
What knowledge and skills will students acquire by majoring in Computer Science?
The Bachelor of Science in Computer Science is a rigorous program that not only covers fundamental computer science subjects - such as object-oriented programming, computer architecture, and operating systems – but provides a wide variety of elective courses, spanning artificial intelligence, game programming, natural language processing, information visualization, security and privacy, computer networking, machine learning, and smartphone application development.
What are post-graduation and career opportunities for Computer Science students?
Computer science graduates have a myriad of career paths, including: creating information technology products of the future at large and dynamic companies such as Google, Microsoft, Amazon, Apple or within exciting high-tech startups throughout the world. Entrepreneurship skills combined with computer science prowess can help in creating your own high-tech startup, pursuing careers in business or finance that leverage computer science expertise, or going on to do cutting-edge research in a PhD program. Household names such as Bill Gates, Mark Zuckerberg, Larry Page, Melisa Myers, Robin Li, and Kai-Fu Lee all began in computer science."
If you plan to double major in Computer Science and Data Science, please note that each major must have at least 7 singly-counted courses and more than two courses may be double-counted between the majors. Please refer to the sample course plan for detailed information.
If your intended secondary major is not Data Science, please note that no more than two courses may be double-counted between the majors.
Students need to successfully complete more than half of the courses required for the primary and secondary majors in order to declare their secondary major.
Center for Data Science and Analytics
Deans' Undergraduate Research Fund (DURF)
CS, DS, and Engineering Research Night (recordings & slides)
Bring your programming skills to professors’ ongoing research projects!
Does not satisfy the major elective requirement. Students majoring in computer science, data science, or engineering are permitted to work on an individual basis under the supervision of a full-time faculty member in the relevant discipline if they have maintained an overall GPA of 3.0 and a GPA of 3.5 in computer science/data science/engineering and have a study proposal that is approved by a computer science/data science/engineering professor.
Total: 12 courses
* = offered in Spring ’22 in Shanghai
PREREQUISITE COURSES | ||
CSCI-SHU 101 | Introduction to Computer Science* | Pre-req: ICP or placement exam |
Choose one Statistics course from the following three: | ||
MATH-SHU 235 | Probability and Statistics* | Pre-req: Calculus |
MATH-SHU 233 | Honors Theory of Probability | Pre-req: “Honors Analysis 1” and “Linear Algebra or Honors Linear Algebra 1” |
BUSF-SHU 101 | Statistics for Business and Economics* |
REQUIRED MAJOR COURSES | ||
CSCI-SHU 210 | Data Structures* | Pre-req: ICS, or A- and above in ICP |
CSCI-SHU 2314 | Discrete Mathematics* | Pre-req: Calculus or Concurrently enroll in Calculus |
CENG-SHU 202 OR CSCI-UA 201 |
Computer Architecture* OR Computer Systems Organization |
Pre-req for Computer Architecture: ICS or ICP |
CSCI-SHU 220 / CS-UY 2413 / CSCI-UA 310 | Algorithms* | Pre-reqs: Data Structures, and Discrete Math or Linear Algebra or Honors Linear Algebra |
CSCI-SHU 215 | Operating Systems | Pre-reqs: Data Structures, and Computer Architecture or Computer Systems Organization |
CSCI-SHU 420 | Senior Project* |
COMPUTER SCIENCE ELECTIVES - Choose Four | ||
Not every course listed is taught every semester, and in any given semester other courses may be offered that fulfill this requirement. Requirements may be met through equivalent courses in the Global Network with prior approval. If you find a class not on the list that you would like to count towards this requirement, please email your advisor. | ||
CSCI-SHU 188 | Computer Music | Pre-req: ICP or ICS or Interaction Lab |
CSCI-SHU 213 / CS-UY 3083 |
Databases* | Pre-req: Data Structure |
CSCI-SHU 308 | Computer Networking | Pre-req: ICS |
CENG-SHU 350 | Embedded Computer Systems | Pre-reqs: "Computer Architecture or Digital Logic" and "ICP or ICS" |
CSCI-SHU 360 | Machine Learning* | Pre-reqs: "ICP" and "Calculus/Honors Calculus" and "Probability and Statistics or Theory of Probability or Analysis I" |
CSCI-SHU 410 / CS-UY 4513 |
Software Engineering* | Pre-req: ICS |
BUSF-SHU 326 | Big Data and Accounting Analytics | Pre-reqs: "Principles of Financial Accounting and ICS" or with Instructor Permission |
BUSF-SHU 310 | Data Science for Social and Information Networks* | Pre-reqs: ICP and Calculus/Honors Calculus |
CENG-SHU 201 | Digital Logic | Pre-req: ICP or ICS or Interaction Lab |
CSCI-SHU 235 | Information Visualization | Pre-req: Data Structures |
INTM-SHU 230-002 | Topics in Computation & Data: Generative Language | Pre-req: ICP or Interaction Lab or Communications Lab |
INTM-SHU 231 | Developing Web | |
CSCI-SHU 222 | Game Programming | Pre-reqs: Data Structures or Data Structures and Algorithms or ICS with Department Consent |
CSCI-SHU 402 | Advanced Algorithms | |
CSCI-SHU 372 / CS-UY 4613 |
Artificial Intelligence | |
CSCI-SHU 323 / CSCI-UA 480 |
Computer Graphics | |
CENG-SHU 304 / CS-UY 3923 |
Computer Security* | |
CSCI-UA 201 |
Computer Systems Organization (if not taken as a major required course) |
|
CSCI-SHU 271 | Computer Vision | |
CSCI-UA 480 | iOS Application Development | Pre-req: ICS - B grade or higher recommended |
CSCI-SHU 378 | Introduction to Cryptography | |
CSCI-UA 480 /CSCI-SHU 376 | Natural Language Processing* | |
CS-UY 3933 | Network Security | |
CENG-SHU 303 / CSCI-UA 480 |
Parallel and Distributed Computing | |
EENG-SHU 375 | Robotic System | |
CSCI-SHU 358 / CSCI-UA 453 |
Theory of Computation | |
CSCI-SHU 310 / CS-UY 3393 |
UNIX System Programming |
|
BUSF-SHU 200E | Network Analytics | Pre-req: ICP, Calculus, and Statistics |
CSCI-SHU 254 | Distributed Systems* | Pre-req: Data Structures and Operating Systems |
CSCI-SHU 240 | Introduction to Optimization and Mathematical Programming | Pre-req: ICP; AND Calculus or Honor Calculus ; AND Prob and Stats or Stats for Bus and Econ or Theory of Probability |
CSCI-SHU 311 | Functional Programming* | Pre-req: Data Structures and Discrete Math |
CSCI-SHU 375 | Reinforcement Learning* | Pre-req: Machine Learning and Theory of Probability; Or instructor's permission |
- In Shanghai, there are three course sequence ICP, ICS, Data Structures (all taught in Python)
- At NYU CAS, there are the same three course sequence but teach ICS and Data Structures in Java.
- At Tandon, their three-course sequence is ICP, Data Structure, Object Oriented Programming. ICP and Data Structures is taught in Python, OOP in Java.
As an NYU Shanghai CS and Data Science major, students can take ICS or Data Structures in Python or Java. However:
- If you are a DS major, we highly recommend you take both ICS and Data Structures in Python. Python is by far the most prominent language in data science, and several of our upper-level DS courses are taught in Python. But if it is difficult to get into a Python class, then you can take these courses in Java.
- For CS majors, either Java or Python is fine. But you should be warned that if you take ICS in Java and then return to NYU Shanghai, you’ll be taking Data Structures in Python, and may be at a disadvantage to those who took ICS in Python.
- All students should be warned that if they take ICS in Python, and then take Data Structures in NY in Java, they may be at a disadvantage since this would be their first course using Java, whereas most NY students will already have had ICS in Java.
Please note that, starting in 2022-2023, CSCI-SHU 420 Computer Science Senior Project will ONLY be offered in the Fall. The Senior Project course won't be offered in the Spring Semester.
Check out the Fall 2022 CS/DS Senior Project Info Session Recording and CS/DS senior project from the previous classes!
1. What is the structure of the CS Senior Capstone course?
The goal of this class is to complete a concrete CS project from start to finish. You can either solve a research problem or try to tackle a real-world problem. You need to design a valid method/approach to solve the problem, build a solution using your method, and assess the quality of your solution. You may either work alone or form a team of at most 3 students.
- Course Syllabus
- Project Setup Guidelines
- Capstone Info Session (Slides | Recording: NYU login required)
2. What are the requirements of the capstone project?
At the end of the project, you must prepare a written technical report and a presentation. The final project report must be structured as a typical technical paper and will include four main sections:
- Motivation, problem definition
- Related literature and existing approaches
- Proposed solution and details of implementation
- Results, conclusion, and directions for improvement
3. What should students prepare in advance to get ready for the capstone?
- Choose a research topic that NYU faculty have submitted or come up with a valuable topic of your own.
- Contact a faculty supervisor whose area of expertise matches the field of your topic, and start preparing as early as possible.