Computer Science

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. For co-curricular activities and research-related resources in computer science, please refer to the website of the Computer Science, Data Science, and Engineering department.

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 be currently enrolled in the following courses in MATH-SHU 131 Calculus (or pass the "Place out of Calculus" exam) and CSCI-SHU 11 Introduction to Computer Programming (or CSCI-SHU 101 Introduction to Computer Science or pass the "Place Into Introduction to Computer and Data Science” Exam ).

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.

 

Libhua Xu

Professor of Practice in Computer Science

 
Computer Science FAQs
Why should I major in Computer Science?

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."

Double Major in Computer Science Guidelines

Students need to complete more than half of the courses required for the primary and secondary majors to declare their secondary major. No more than two courses may be double-counted between the majors.

Computer Science and Data Science Double Major Policies: 

  • Students matriculating in Fall 2022 or later will NOT be able to double major in Computer Science and Data Science. 
  • Students matriculating in Fall 2021 or prior will be able 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 speak with your academic advisor for course planning. 
Research Opportunities

Center for Data Science and Analytics

Deans' Undergraduate Research Fund (DURF)

CS, DS, and Engineering Research Night (2021 recordings & presentation slides; 2022 presentation slides)

Bring your programming skills to professors’ ongoing research projects!

Independent Study

Students majoring in Computer Science 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 and have a study proposal that is approved by a Computer Science faculty. Students can then apply for independent study, which will be reviewed by the faculty member, Computer Science Area Head, Dean, and Academic Affairs.  A 4-credit CS Independent Study class can be used to satisfy one CS major elective requirement. 

Course Prerequisites

Total: 12 courses

PREREQUISITE COURSES
CSCI-SHU 101Introduction to Computer and Data Science (ICDS)*Pre-req: CSCI-SHU 11 Intro to Computer Programming (ICP) OR placement exam
Choose one Statistics course from the following three:
MATH-SHU 235Probability and Statistics*Pre-req: "Calculus or Honors Calculus".   Not open to students  who have taken Honors Theory of Probability and/or Mathematical Statistics
MATH-SHU 238Honors Theory of ProbabilityPre-req: "Multivariable Calculus or Honors Analysis II” and “Linear Algebra or Honors Linear Algebra I”
BUSF-SHU 101Statistics for Business and Economics* 
REQUIRED MAJOR COURSES
CSCI-SHU 210Data Structures*Pre-req: ICDS, or A- and above in ICP 
CSCI-SHU 2314Discrete Mathematics*Co-requisite OR Pre-requisite: MATH-SHU 131 Calculus or MATH-SHU 201 Honors Calculus
CENG-SHU 202 OR CSCI-UA 201

Computer Architecture

OR

Computer Systems Organization

Pre-req for Computer Architecture: ICDS or ICP
CSCI-SHU 220 / CS-UY 2413 / CSCI-UA 310 AlgorithmsPre-reqs: Data Structures AND (Discrete Math or Linear Algebra or Honors Linear Algebra)
CSCI-SHU 215Operating Systems*

Pre-reqs: Computer Architecture or Computer Systems Organization

* ONLY in fall semester

CSCI-SHU 420Senior Project (In-person)*

Pre-reqs: Senior Standing

ONLY offered in fall semester

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.
DATS-SHU 377Computer VisionPre-req: CSCI-SHU 360 Machine Learning 

CSCI-SHU 213 /

CS-UY 3083

Databases*Pre-req: Data Structure
CSCI-SHU 308Computer NetworkingPre-req: ICDS or placement 
CSCI-SHU 350Embedded Computer SystemsPre-reqs: (Computer Architecture or Digital Logic) and (ICP or ICDS)
CSCI-SHU 360Machine Learning*Pre-reqs: ICP and Calculus and (Probability and Statistics or Theory of Probability or Statistics for Business & Economics)
CSCI-SHU 410 Software EngineeringPre-req: ICDS
BUSF-SHU 310Data Science for Social and Information Networks

Pre-reqs: ICP and Calculus/Honors Calculus

"interdisciplinary/soft" CS elective. A maximum of one such course could be used to fulfill the 4 CS elective requirements. 

CENG-SHU 201Digital Logic*

Pre-req: ICP or ICDS or Interaction Lab or CS placement exam

* ONLY in fall semester

CSCI-SHU 235Information VisualizationPre-req: Data Structures
   
CSCI-SHU 402Advanced Algorithms 

CSCI-SHU 372 /

CS-UY 4613

Artificial Intelligence 

CSCI-SHU 323 /

CSCI-UA 480

Computer Graphics 

CSCI-SHU 361 /

CS-UY 3923

Computer SecurityPre-req: CSCI-SHU 215 Operating Systems
CSCI-UA 201Computer Systems Organization (if not taken as a major required course) 
CSCI-SHU 375Reinforcement Learning Pre-req: Machine Learning AND (Probability & Statistics  OR Theory of Probability)
CSCI-UA 480iOS Application DevelopmentPre-req: ICDS - B grade or higher recommended
CSCI-SHU 378Introduction to Cryptography 
CSCI-UA 480 /CSCI-SHU 376Natural Language Processing 
CS-UY 3933Network Security 

CSCI-SHU 358 /

CSCI-UA 453

Theory of Computation 
   
CSCI-SHU 254Distributed Systems*Pre-req: Operating Systems
DATS-SHU 240 Introduction to Optimization and Mathematical ProgrammingPre-req: ICP; AND (Calculus or Honor Calculus)
CSCI-SHU 311Functional Programming*Pre-req: Data Structures and Discrete Math
   

 

Top

Study Away

Study Away Considerations: 

  • Courses:
    • Before studying abroad, students are recommended to complete Introduction to Computer Science and Data Science, Data Structures, Probability and Statistics, and Computer Architecture. Some advanced-level CS major elective courses may require Probability and Statistics, Linear Algebra or Machine Learning as course prerequisites. 
    • Students are expected to at least complete Data Structures (and ideally, Computer Architecture) before their study away semesters. 
    • Students should NOT plan to study away during the senior fall as the CS Senior Capstone class is ONLY offered every Fall semester in person.
  • Location: Students planning to study away for two semesters are encouraged to spend the first semester in a location other than New York. Applicants who spend the first semester away in another location will receive priority consideration for New York in their second semester away. Students who elect to spend the spring of their junior year in New York (versus the fall of the junior year) will have more earned credit points, thus will enable them to have an earlier registration time and a better chance of enrolling in high-demand course in spring. 

Study Away Course Registration

Please refer to the Study Away portal- Academics sections for specific location-based registration guidelines. Please note that students must follow the prerequisites of the school hosting the course. For example, if Shanghai does not require a course for Class X, but New York does, then you will need to have that required course.  

Python vs. Java

In Shanghai, there are three course sequences ICP, ICS, and 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 NYU Tandon, their three-course sequence is ICP, Data Structure, and Object Oriented Programming. ICP and Data Structures are 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 ICS in Java. 
Senior Project

CSCI-SHU 420 Computer Science Senior Project will ONLY be offered in-person in the Fall. The Senior Project course won't be offered in the Spring Semester.

Check out the CS/DS Senior Project Info Session Recording, slides, 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.

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.

If you are requesting any exceptions toward your CS Senior Capstone project class, please send your petition to your academic advisor by April 19, 2024. Petition submitted after April 19, 2024 will not be reviewed by the CS department. 

Information for Advisors [Log-in Required]