Computer Science, B.S. | NYU Tandon School of Engineering

Computer Science, B.S.

On Campus

girl working at laptop

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. Because computer technology powers the most essential functions of business, industry, government and entertainment, computer scientists have tremendous opportunities for growth and exploration.

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.

The School of Engineering also offers a BS/MS Program that lets you earn 2 degrees at once. For instance, you can receive a BS in Computer Science and MS in Computer Science, a BS in Computer Engineering and MS in Computer Science, or a BS in Electrical Engineering and MS in Computer Science. Depending on your preparation and objectives, you can complete both degrees in as little as 4 years.

We provide research labs for specialized study in areas such as cybersecurity, a field in which our department has a distinctive strength, with internationally well-known professionals who are active in the cybersecurity field. In addition, the program’s close ties to our graduate division immerse you in a vibrant, intellectual atmosphere.

Please email cseadvisement@nyu.edu with questions about the program.

Sample Course Schedule

This schedule lists specific courses you might take during your 4 years at the School of Engineering; it does not indicate required courses or guidelines for selecting electives which you can find under the Curriculum section.

If there is not a link supplied with a course number, please consult the Undergraduate and Graduate Bulletin.


Fall Semester (16 Credits)

4 Credits Introduction to Programming & Problem Solving CS-UY1114
This course introduces problem solving and computer programming and is for undergraduate Computer Science and Computer Engineering majors who have limited prior experience in programming in any language. The course covers fundamentals of computer programming and its underlying principles using the Python programming language. Concepts and methods introduced in the course are illustrated by examples from various disciplines. ABET competencies: a,b,c, e, f, g, k
Corequisite: EX-UY 1; Anti-requisite: CS-UY 1113
4 Credits Calculus I for Engineers MA-UY1024
This course covers: Library of Functions, functions of one variable. Limits, derivatives of functions defined by graphs, tables and formulas, differentiation rules for power, polynomial, exponential and logarithmic functions, derivatives of trigonometric functions, the product and quotient rules, the chain rule, applications of the chain rule, maxima and minima, optimization. The definite integral, the Fundamental Theorem of Calculus and interpretations, theorems about definite integrals, anti-derivatives. MA-UY 1324 is for students who wish to take MA-UY 1024 but need more review of precalculus. MA-UY 1324 covers the same material as MA-UY 1024 but with more contact hours per week, incorporating a full discussion of the required precalculus topics.
Prerequisite: Placement Exam or MA-UY 912 or MA-UY 914 (with a grade of B or better). Corequisite: EX-UY 1
4 Credits Writing the Essay: EXPOS-UA1
This foundational writing course is required for CAS, Stern, Nursing, Social Work, Steinhardt and Tandon incoming undergraduates. "Writing the Essay" provides instruction and practice in critical reading, creative and logical thinking, and clear, persuasive writing. Students learn to analyze and interpret written texts, to use texts as evidence, to develop ideas, and to write exploratory and argumentative essays. Exploration, inquiry, reflection, analysis, revision, and collaborative learning are emphasized. In FALL 2020, sections 001, 002, 004, 005, 006, and 007 are reserved for CAS first-year students with a strong interest in science and/or prehealth who were placed in these sections as part of the virtual advising process (in spring, sections 1,2,4,6). They are not open to other students and there are no exceptions. Sections 008, 010, 011, 013 are reserved for students who have been selected for the “Goddard Residential Stream.” In Fall, the following sections are available to incoming undergraduates on the WSQ campus: 009, 014-019, 023-024, 026-028, 031-076, 078-124. In Fall, the following sections are available to incoming Tandon undergraduates on the Brooklyn campus 126-148, 150-169. In Fall, the following sections have been designated for “Go Local” students at Shanghai, and meet at China Standard Time as designated in Albert: sections 020, 021, 022, 025, 029, 077 (Tandon only). These sections are department controlled. Please check the notes to each section to understand the teaching mode: “Online” at the meeting pattern designated; “Blended” with all students meeting in person on campus one day and the other day, online, according to the designated meeting pattern; and “In Person”, all students meeting in a physical classroom twice weekly at the designated meeting pattern. Students who are not able to attend the session at the location or time specified must register for an on-line section that works with their time zone. For questions and access, please email "ewp@nyu.edu"
1 Credits Engineering and Technology Forum EG-UY1001
In this course the notion of invention, innovation and entrepreneurship (i2e) is introduced to the students’ educational experience. Students will be exposed to elements of a research-intensive institution and diverse research performed by leading engineers, scientists, inventors and entrepreneurs.
3 Credits Introduction to Engineering and Design EG-UY1003
This course introduces selected aspects of the history, philosophy, methodology, tools and contemporary topics in engineering. Also included are basic engineering experimentation and data analysis, a team design project and analysis and presentation of engineering data and designs.

Spring Semester (17 Credits)

2 Credits Introduction to Computer Science CS-UY1122
This is a breadth-first course that introduces computer-science majors to several subdisciplines in the computer-science field. The course is built around the theme that computer science is the study of algorithms and includes much more than programming. The course introduces hardware, virtual machines, software, applications and social issues in computing.
Prerequisite: CS-UY 1114 and only first-year Computer Science students are permitted to enroll in this introductory level course
4 Credits Data Structures and Algorithms CS-UY1134
This course covers abstract data types and the implementation and use of standard data structures along with fundamental algorithms and the basics of algorithm analysis. Not open to students who have taken CS-UY 2134.
Prerequisite for Brooklyn Students: CS-UY 1114 or CS-UY 1123 (C- or better)
Prerequisite for Abu Dhabi Students: CS-UH 1001 or ENGR-UH 1000
Prerequisite for Shanghai Students: CSCI-SHU 101
Corequisite for all Students: EX-UY 1
4 Credits Calculus II for Engineers MA-UY1124
This course covers techniques of integration, introduction to ordinary differential equations, improper integrals, numerical methods of integration, applications of integration, sequences, series, power series, approximations of functions via Taylor polynomials, Taylor series, functions of two variables, graphs of functions of two variables, contour diagrams, linear functions, functions of three variables. MA-UY 1424 is for students who wish to take MA-UY 1124 but need more review of precalculus. MA-UY 1424 covers the same material as MA-UY 1124 but with more contact hours per week, incorporating a full discussion of the required precalculus topics.
Prerequisites: MA-UY 1022 (with a grade of B or better) or MA-UY 1024 or MA-UY 1324 (with a grade of B or better).
Corequisite: EX-UY 1.
4 Credits The Advanced College Essay EXPOS-UA2
The course follows Writing the Essay (EW 1013) and provides advanced instruction in analyzing and interpreting written texts from a variety of academic disciplines, using written texts as evidence, developing ideas, and writing argumentative essays. It stresses analysis, argument, reflection, revision, and collaborative learning.
Prerequisite(s): EW 1013

Science elective, Credits: 3.00


Fall Semester (15 Credits)

4 Credits Object Oriented Programming CS-UY2124
This intermediate-level programming course teaches object-oriented programming in C++. Topics: Pointers, dynamic memory allocation and recursion. Classes and objects including constructors, destructors, methods (member functions) and data members. Access and the interface to relationships of classes including composition, association and inheritance. Polymorphism through function overloading operators. Inheritance and templates. Use of the standard template library containers and algorithms.
Prerequisite: CS-UY 1134 (C- or better); Corequisite: EX-UY 1
4 Credits Discrete Mathematics MA-UY2314
Logic, proofs, set theory, functions, relations, asymptotic notation, recurrences, modeling computation, graph theory.
Prerequisite: Math Diagnostic Exam or MA-UY 912 or MA-UY 914 (minimum calculus level required)
Prerequisite for Shanghai students: MATH-SHU 110. Note: This course and CS-GY 6003 cannot both be taken for credit.

HuSS elective, Credits: 4.00
Science elective, Credits: 3.00

Spring Semester (15 Credits)

4 Credits Computer Architecture and Organization CS-UY2214
This course covers a top-down approach to computer design. Topics: Computer architecture, introduction to assembly language programming and machine language set design. Computer organization, logical modules; CPU, memory and I/O units. Instruction cycles, the datapath and control unit. Hardwiring and microprogramming. The memory subsystem and timing. I/O interface, interrupts, programmed I/O and DMA. Introduction to pipelining and memory hierarchies. Fundamentals of computer networks.
Prerequisite for Brooklyn Engineering Students: CS-UY 2204 (C- or better) for computer engineering majors; (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MA-UY 2314 for computer science majors. Students who are neither computer engineering majors nor computer science majors must take either CS-UY 2204 (C- or better) OR (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MA-UY 2314.
Prerequisite for Abu Dhabi Students: ENGR-AD 121.
Prerequisites for Shanghai Students: CSCI-SHU 2314 and CSCI-SHU 210 (C- or better) or CENG-SHU 201. ABET competencies: a, c, e.
3 Credits Design & Analysis of Algorithms CS-UY2413
This course covers fundamental principles of the design and analysis of algorithms. Topics include asymptotic notation, recurrences, randomized algorithms, sorting and selection, balanced binary search trees, augmented data structures, advanced data structures, algorithms on strings, graph algorithms, geometric algorithms, greedy algorithms, dynamic programming and NP completeness.
Prerequisites for Brooklyn Engineering Students: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MA-UY 2314
Prerequisites for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) and CS-UH 1002
Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) and CSCI-SHU 2314
4 Credits Data Analysis MA-UY2224
An introductory course to probability and statistics. It affords the student some acquaintance with both probability and statistics in a single term. Topics in Probability include mathematical treatment of chance; combinatorics; binomial, Poisson, and Gaussian distributions; the Central Limit Theorem and the normal approximation. Topics in Statistics include sampling distributions of sample mean and sample variance; normal, t-, and Chi-square distributions; confidence intervals; testing of hypotheses; least squares regression model. Applications to scientific, industrial, and financial data are integrated into the course.NOTE: Not open to students who have taken MA-UY 2233 or MA-UY 3012 or MA-UY 3022.
Prerequisite: MA-UY 1124, MA-UY1424, or MA-UY 1132

HuSS elective, Credits: 4.00

(Students may choose to take Linear Algebra and defer MA-UY 2224 to a later semester)


Fall Semester (17 Credits)

4 Credits Introduction to Operating Systm CS-UY3224
This course studies the fundamental concepts and principles of operating systems. Batch, spooling and multiprogramming systems are introduced. The parts of an operating system are described in terms of their functions, structure and implementation. Basic policies for allocating resources are discussed.
Prerequisites for Brooklyn Students: CS-UY 2214 AND (CS-UY 2134 or CS-UY 1134) AND (CS-UY 2124 or CS-UY 1124) (C- or better).
Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) AND (CS-UH 2010 or ENGR-UH 3511)
Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) AND CENG-SHU 202

CS elective, Credits: 3.00
HuSS elective, Credits: 4.00
Science elective, Credits: 3.00
Free elective, Credits: 3.00

Spring Semester (16 Credits)

CS elective, Credits: 3.00
CS elective, Credits: 3.00
HuSS elective, Credits: 4.00
Free elective, Credits: 3.00
Free elective, Credits: 3.00


Fall Semester (16 Credits)

3 Credits Software Engineering CS-UY4513
Focusing on software engineering, the course introduces techniques to specify, design, test and document medium and large software systems. Design techniques include information engineering, object orientation and complexity measures. Also covered are testing methods, such as path testing, exhaustive test models and construction of test data. An introduction to software tools and project management techniques is presented. Student projects involve team software development and tracking.
Prerequisites: Juniors or higher majoring in Computer Science, Computer Engineering or Electrical and Computer Engineering. Co-requisite: CS-UY 3224

CS elective, Credits: 3.00
CS elective, Credits: 3.00
Free elective, Credits: 4.00
Free elective, Credits: 3.00

Spring Semester (16 Credits)

3 Credits Design Project CS-UY4523
Students or several students work with a faculty member and/or graduate students on a current topic in computer science. Each term, a project course with a particular theme is offered by the Department of Computer and Information Science. A faculty member assigns individual or group projects. The project course is highly structured and supervised closely by faculty. Students are expected to use the design and project-management skills they learned in CS-UY 4513 Software Engineering. Alternatively, students may work with a faculty member on an individual project of mutual interest. A written report and oral presentation are required.
Prerequisite: CS-UY 4513 or CS-UY 3513.

CS elective, Credits: 3.00
Free elective, Credits: 4.00
Free elective, Credits: 3.00
Free elective, Credits: 3.00