Computer Science Placement

Computer Science placement exams are optional for students who have a programming background and who are interested in taking computer science courses.
Placement Exams for Computer Science Courses in Shanghai
If you are planning to take the Computer Science Placement Exam to determine whether you can place into “Introduction to Computer Science,” mark your calendars early and book your travel accordingly!
Spring 2020 Computer Science Placement Exam 
  • 2:00-4:00 PM, Sunday, Sept 13, 2020, Classroom 101
The exam will be offered only once on the Sunday before classes start. Book your return travel to campus so that you arrive well in advance because there will be no make-up tests offered, even for delayed flights. Sign ups are open here through August 28, 2020.
You will be emailed a link to complete an online assessment to help you estimate your readiness to sit in the placement exam. If you get less than 60% on the online quiz, you are recommended not to take the placement test and enroll in Introduction to Programming.
At NYU Shanghai, the beginner-level Computer Science course is called “Introduction to Programming.” If you have no computer programming experience, that is the class to take. However, if you do have previous programming background, you may wish to take an on-site placement test to try and place out of “Introduction to Programming” and be eligible to enroll directly in “Introduction to Computer Science”, the next-level course.
Students who want to try the placement exam are expected to have a solid and deep understanding of the first 9 chapters of the textbook Starting Out with Python (Third Edition or Fourth Edition, Gaddis). They should also do every single problem in the first 9 chapters of the book.
To help you decide whether or not you should take the test, review this sample test and try out the problems, as well as reviewing the course descriptions and syllabi below (note that the syllabi is for reference only). If you are able to successfully complete the sample test in 40 minutes, you should sign up for the Placement Exam. If you are unable to successfully complete the sample test in 40 minutes or less, you are probably not ready for “Introduction to Computer Science” yet and should choose “Introduction to Programming” instead.
Students will be asked to complete an online quiz before they sit in on the on-site placement exam. Students should only take the online quiz and the on-site placement exam when they are ready. Students are allowed only one opportunity to take an online quiz and two opportunities to take an on-site computer science placement exam. If they do not pass the on-site exam, they must take the course that they were trying to test out of.
CSCI-SHU 11 Introduction to Computer Programming
An introduction to the fundamentals of computer programming. Students design, write, and debug computer programs. No prior knowledge of programming is assumed. Students will learn programming using Python, a general purpose, cross-platform programming language with a clear, readable syntax. Most class periods will be part lecture, part lab as you explore ideas and put them into practice. This course is suitable for students not intending in majoring in computer science as well as for students intending to major in computer science but having no programming experience. Students with previous programming experience should instead take Introduction to Computer Science.
Click here to view sample course syllabus.
CSCI-SHU 101 Introduction to Computer Science
This course has three goals. First, the mastering of a modern object-oriented programming language, enough to allow students to tackle real-world problems of important significance. Second, gaining an appreciation of computational thinking, a process that provides the foundations for solving real-world problems. Finally, providing an overview of the very diverse and exciting field of computer science – a field which, arguably more than any other, impacts how we work, live, and play today. (Prerequisite: Introduction to Computer Programming or via NYU Shanghai computer science placement exam.)
Click here to view sample course syllabus.

Placement Exams for Computer Science Courses in New York
Students who are in New York now and will continue to be in New York can take the Computer Science Placement Exam in New York to skip the following list of courses.” You should contact Romeo Kumar ( in the CAS Department of Computer Science to arrange a time. Students can take the exam any day of the week before 2:30 PM. Sample placement exams can be found here.
Students who are in Shanghai and will be in New York in the upcoming semester can take the placement exams in Shanghai to place out the following list of courses and become eligilble to enroll in courses in New York.
If you wish to place out of CSCI-UA.0002 (Introduction to Programming), into CSCI-UA.0101 (Introduction to Computer Science), and you have experience with computer programming using C, C++, Java, JavaScript, Python or Matlab you should take the NYU Computer Science Placement Exam for Freshmen, even if you are a sophomore or junior. See the separate web page on the NYU Computer Science Placement Exam for Freshmen (Sample Placement Exams). You may use either C, C++, Java, JavaScript, Python or Matlab to answer the questions.
Students from Shanghai who take CSCI-SHU 101, Intro to Computer Science will be required to pass a placement exam before enrolling in CSCI-UA.102 Data Structures due to programming language differences between the two campuses. Students are required to take this placement test in Java.
If you wish to place out of CSCI-UA 0101 (Introduction to Computer Science), into CSCI-UA.0102 (Data Structures), and have taken a college level class studying C++ or Java at a reasonably advanced level (including arrays, functions, recursion, and objects), you may take the "NYU Computer Science Placement Exam". Students are given 90 minutes to complete the exam and may use either C++ or Java to answer the questions.
Note that the next level course is given in Java. Students taking CSCI-UA.0102 are expected to know Java. If you take the placement exam in C++ and go directly into CSCI-UA 0102, you need to familiarize yourself with Java syntax and rules.
If you have taken the AP exam in Computer Science (the AB version) administered by the ETS and received a 4 or a 5 as your grade, you do not need to take this placement exam and you may register for CSCI-UA 0201 right away.
If you wish to place out of CSCI-UA 0102 (Data Structures), into CSCI-UA.0201 (Computer Systems Organization), and have taken a college level class studying data structures in C++ or Java at a reasonably advanced level (including recursion, linked lists, stacks, queues, binary trees and merge sort) you may take a placement exam. Students are given one hour and 50 minutes and may use either C++ or Java to answer the questions.
If you wish to place out of CSCI-UA 0004 (Introduction to Web Design) and you have either taken a college level course that included working with images and using HTML5/CSS3 to build a comprehensive website; or you have working experience in this field, you are welcome to request the placement test for this course.
These exams will be offered two time options online on April 6, 2020 at 5:45 PM and April 7, 2020 at 12:45 PM. You can choose either one time option according to your availability. No other make-up tests will be offered.
Sign ups are open here through April 3, 2020.
Sample questions are provided on the Sample Placement Exams page.