Computer Science, BS

On Campus

people on laptops

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.

Curriculum

Here we provide an overview of the of the new Computer Science, BS curriculum. The full description of the program and its requirements can be obtained from the Computer Science and Engineering Department. To see what your 4-year schedule of classes might look like if you pursued this degree, see the Typical Course Schedule section below.


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
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: CS-UY 1114 (C- or better); Corequisite: EX-UY 1
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 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: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MATH-AD 131
Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and CSCI-SHU 2314 or MATH-SHU 120.
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 Engineering Students: CS-UY 2214 and (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better).
Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and CENG-SHU 202. ABET competencies: c, e, k.
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: seniors majoring in Computer Science, Computer Engineering or Electrical and Computer Engineering.
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.


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 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 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
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. Co-requisite: EX-UY 2

Note that MA 2034 Linear Algebra and Differential Equations or another linear algebra course is recommended, but not required. Some CS electives have knowledge of linear algebra as a prerequisite. Students planning to take such electives should plan accordingly.


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.


You may choose any 3 science courses (each at least 3 credits) from the courses offered for credit to engineering or natural science majors in the Tandon School of Engineering, provided that they take suitable pre-requisites and co-requisites. For example, you might choose to take a sequence of 3 physics courses, 3 biology courses, or 3 chemistry courses, or you might choose to take introductory courses in physics, chemistry, and biology, or you might choose to take 2 courses in one science and another course in a different science.


You are required to take 24 credits in humanities and social sciences. Of the 24 credits, these should include:

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 Spring, sections 1-6 are, with department consent, available for undergraduates interested in writing about the Sciences. Students should email EWP for access codes. Sections 9-72 are regular Spring sections for undergraduates, excluding sections 66,67 which are for Tandon students in Brooklyn. In Fall, sections 16-125 are available to incoming undergraduates on the WSQ campus and sections 126-167 are available to incoming undergraduates on the BROOKLYN campus. Students are NOT permitted to add or switch sections after the first week of classes without first obtaining EWP permission. Contact: dm1@nyu.edu Two special versions requiring department consent are available to qualifying undergraduates. Writing the Essay, Science (sections 1-7 offered both Fall and Spring) is tailored for UA students with a STRONG interested in science, medicine or psychology. Students must contact an advisor to discuss this option and obtain access. Writing The Essay, Goddard (sections 8-13, offered in Fall only) is offered ONLY for students who live in the Goddard Residential College. Writing the Essay, Rubin (sections 14-15, offered in Fall only) is offered ONLY for students who have been selected for the Rubin Themed Writing the Essay Community. Students placed in these sections will receive instructions for enrollment.
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

  • 1 ethics course
  • 1 3XXX/4XXX-level course
  • 1 writing intensive course (marked with a "W" at the end of the course number)

  • 18 additional credits in computer science electives
  • 26 credits of totally free electives

  • A grade of at least C- is required in CS-1114, CS-1124, and CS-2134.
  • Students must satisfy the Tandon School of Engineering requirements for the Bachelor of Science Degree

The following is a list of electives offered by the Computer Science and Engineering department. They consist of undergraduate courses, as well as graduate courses open to undergraduates. Please note that in order to enroll in graduate courses, juniors and seniors must have a 3.0 GPA or better and adviser approval.

Undergraduate Courses

4 Credits Digital Logic and State Machine Design CS-UY2204
This course covers combinational and sequential digital circuits. Topics: Introduction to digital systems. Number systems and binary arithmetic. Switching algebra and logic design. Error detection and correction. Combinational integrated circuits, including adders. Timing hazards. Sequential circuits, flipflops, state diagrams and synchronous machine synthesis. Programmable Logic Devices, PLA, PAL and FPGA. Finite-state machine design. Memory elements. A grade of C or better is required of undergraduate computer-engineering majors.
Prerequisite: CS-UY 1114 (C- or better) or CS-UY 1133 (C- or better). ABET competencies: a, c, e, k.
3 Credits Introduction to Databases CS-UY3083
This course introduces database systems and their approach as a mechanism to model the real world. The course covers data models (relational, object-oriented), physical database design, query languages, query processing and optimization, as well as transaction management techniques. Implementation issues, object oriented and distributed databases also are introduced.
Prerequisites: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MA-UY 2314.
3 Credits Introduction to Game Programming CS-UY3113
A programming intensive introduction to the creation of computer games. Using mostly two-dimensional sprite-based programming, we examine and experiment with animation, physics, artificial intelligence and audio. In addition, the course explores the mathematics of transformations (both 2D and 3D) and the ways they may be represented.
Prerequisite: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better).
3 Credits Game Development Studio I CS-UY3233
This class introduces the principles of 2D and 3D computer game design. Students learn about the range of game types and understand their conceptual building blocks. Students complete a structured sequence of assignments towards the design for a new game.
4 Credits Introduction to Parallel and Distributed Systems CS-UY3254
This course offers a solid grounding in the basic issues and techniques of parallel and distributed computing. The material covers the spectrum from theoretical models of parallel and distributed systems to actual programming assignments.
Prerequisite: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and CS-UY 3224.
3 Credits Unix System Programming CS-UY3393
This course covers programming and system administration of UNIX systems. Also covered: Shell programming, special purpose languages, UNIX utilities, UNIX programming tools, systems programming and system administration.
Prerequisites: CS 3224 and junior status.
3 Credits Java and Web Design CS-UY3913
Programmers familiar with C or C++ learn to develop Java applications and applets. This course teaches the syntax of the Java language, object-oriented programming in Java, creating graphical user interfaces (GIU) using the Java 2 Platform technology event model, Java exceptions, file input/output (I/O) using Java Foundation Class threads and networking.
Prerequisite: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better).
3 Credits Computer Security CS-UY3923
This course covers cryptographic systems. Topics: Capability and access control mechanisms, authentication models, protection models. Database and operating system security issues, mobile code, security kernels. Malicious code, Trojan horses and computer viruses. Security policy formation and enforcement enforcement, legal aspects and ethical aspects.
Prerequisite for Brooklyn Engineering Students: CS-UY 2214.
Prerequisite for CAS Students: CSCI-UA 201.
Prerequisite for Abu Dhabi Students: CS-AD 104.
Co-requisite for All Students: CS-UY 3224
3 Credits Network Security CS-UY3933
This course covers reviews networking. Topics: Basic notations of confidentiality, integrity, availability; cryptographic systems, coding and decoding messages. Cryptographic protocols for privacy, integrity, key exchange and access control. TCP/IP security; Firewalls, IPSec; secure ecommerce. Intrusion detection, prevention, response. Advanced topics are included.
Prerequisites: CS-UY 4793 or EE-UY 136 or EL-GY 5373.
Special Topics in Computer Science CS-UY394X
This variable-credit special topics course is for juniors and seniors.
Prerequisite: Department’s permission.
3 Credits Interactive Computer Graphics CS-UY4533
An introduction to the field of computer graphics: displays, image formation, visual perception, images, transformations (viewing and projection), programmable pipelines (vertex and fragment programs), modeling (primitives, polygon meshes, smooth curves and surfaces), animation (keyframing, procedural), rendering and realism (visibility, lighting, shading, shadows, texturing, ray tracing).
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 2034 or MA-UY 3044 or MA-UY 3054)
Prerequisites for CAS Students: CSCI-UA 201 (C- or better) and (MA-UY 2034 or MA-UY 3044 or MA-UY 3054)
Prerequisites for Abu Dhabi Students: CS-AD 103 (C- or better) and MATH-AD 121
Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and (MA-UY 2034 or MA-UY 3044 or MA-UY 3054).
3 Credits Human Computer Interaction CS-UY4543
Designing a successful interactive experience or software system takes more than technical savvy and vision--it also requires a deep understanding of how to serve people's needs and desires through the experience of the system, and knowledge about how to weave this understanding into the development process. This course introduces key topics and methods for creating and evaluating human-computer interfaces/digital user experiences. Students apply these practices to a system of their choosing (I encourage application to prototype systems that students are currently working on in other contexts, at any stage of development). The course builds toward a final write-up and presentation in which students detail how they tackled HCI/user experience design and evaluation of their system, and results from their investigations. Some experience creating/participating in the production of interactive experiences/software is recommended.
3 Credits Game Design CS-UY4553
This course is about experimental game design. Design in this context pertains to every aspect of the game, and these can be broadly characterized as the game system, control, visuals, audio, and resulting theme. We will explore these aspects through the creation of a few very focused game prototypes using a variety of contemporary game engines and frameworks, high-level programming languages, and physical materials. This will allow us to obtain a better understanding of what makes games appealing, and how game mechanics, systems, and a variety of player experiences can be designed and iteratively improved by means of rapid prototyping and play-testing. The course combines the technology, design, and philosophy in support of game creation, as well as the real-world implementation and design challenges faced by practicing game designers. Students will learn design guidelines and principles by which games can be conceived, prototyped, and fully developed within a one-semester course, and will create a game from start to finish. The course is a lot of (team)work, but it’s also a lot of fun. Programming skills are helpful, but not a hard requirement. Artistic skills, or a willingness to learn them are a plus.
Prerequisites: CS-UY 3113, CS-UY 4533, or CS-UY 4613 (C- or better) for CS students; OART-UT 1600 and OART-UT 1605 for Game Center MFA students. Instructor permission required otherwise.
3 Credits Artificial Intelligence CS-UY4613
Artificial Intelligence (AI) is an important topic in computer science that has many diversified applications. It addresses one of the ultimate puzzles human are trying to solve – How is it possible for a slow, tiny brain, whether biological or electronic, to perceive, understand, predict, and manipulate a world far larger and more complicated than itself? And, how do we go about creating a machine (or computer) with those properties? To this end, researchers in the AI field have been trying to understand how seeing, learning, remembering, and reasoning could, or should be done. This course introduces students to the many concepts and techniques in artificial intelligence.
Prerequisite: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better)
3 Credits Application Security CS-UY4753
This course addresses the design and implementation of secure applications. Concentration is on writing software programs that make it difficult for intruders to exploit security holes. The course emphasizes writing secure distributed programs in Java. The security ramifications of class, field and method visibility are emphasized.
Prerequisite: CS-UY 3923
3 Credits Information Systems Security Engineering and Management CS-UY4763
The primary goal of this course is to present a system and management view of information security: what it is, what drives the requirements for information security, how to integrate it into the systems design process, and life cycle security management of information systems. This course will not be about the technologies of information security, but how those technologies are integrated into a system and managed.
Corequisite: CS-UY 3933
3 Credits Penetration Testing and Vulnerability Analysis CS-UY4773
The course will start off with an in-depth review of the exploitation mitigations introduced in modern operating systems. The instructors will demonstrate their limitations through simple examples and gradually develop the basic exploitation techniques into more complicated methods applicable to real-world exploitation. Unlike most other exploitation courses, we will focus on approaching exploitation as a creative problem-solving process rather than an exercise of applying cookbook techniques to common types of vulnerabilities. Most of the course will focus on the hands-on application of the material through exercises and leading the students through the development of reliable exploits for recently patched vulnerabilities in widely used software.
Prerequisites for Brooklyn Engineering Students: CS-UY 3933 and (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better).
Prerequisites for CAS Students: CS-UY 3933 and CSCI-UA 201.
Prerequisites for Abu Dhabi Students: CS-UY 3933 and CS-AD 103
3 Credits Applied Cryptography CS-UY4783
This course examines Modern Cryptography from a both theoretical and applied perspective, with emphasis on “provable security” and “application case studies”. The course looks particularly at cryptographic primitives that are building blocks of various cryptographic applications. The course studies notions of security for a given cryptographic primitive, its various constructions and respective security analysis based on the security notion. The cryptographic primitives covered include pseudorandom functions, symmetric encryption (block ciphers), hash functions and random oracles, message authentication codes, asymmetric encryption, digital signatures and authenticated key exchange. The course covers how to build provably secure cryptographic protocols (e.g., secure message transmission, identification schemes, secure function evaluation, etc.), and various number-theoretic assumptions upon which cryptography is based. Also covered: implementation issues (e.g., key lengths, key management, standards, etc.) and, as application case studies, a number of real-life scenarios currently using solutions from modern cryptography.
Prerequisite: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MA-UY 2314.
3 Credits Computer Networking CS-UY4793
This course takes a top-down approach to computer networking. After an overview of computer networks and the Internet, the course covers the application layer, transport layer, network layer and link layers. Topics at the application layer include client-server architectures, P2P architectures, DNS and HTTP and Web applications. Topics at the transport layer include multiplexing, connectionless transport and UDP, principles or reliable data transfer, connection-oriented transport and TCP and TCP congestion control. Topics at the network layer include forwarding, router architecture, the IP protocol and routing protocols including OSPF and BGP. Topics at the link layer include multiple-access protocols, ALOHA, CSMA/CD, Ethernet, CSMA/CA, wireless 802.11 networks and link-layer switches. The course includes simple quantitative delay and throughput modeling, socket programming and network application development and Ethereal labs.
Prerequisite: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better)


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
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 Spring, sections 1-6 are, with department consent, available for undergraduates interested in writing about the Sciences. Students should email EWP for access codes. Sections 9-72 are regular Spring sections for undergraduates, excluding sections 66,67 which are for Tandon students in Brooklyn. In Fall, sections 16-125 are available to incoming undergraduates on the WSQ campus and sections 126-167 are available to incoming undergraduates on the BROOKLYN campus. Students are NOT permitted to add or switch sections after the first week of classes without first obtaining EWP permission. Contact: dm1@nyu.edu Two special versions requiring department consent are available to qualifying undergraduates. Writing the Essay, Science (sections 1-7 offered both Fall and Spring) is tailored for UA students with a STRONG interested in science, medicine or psychology. Students must contact an advisor to discuss this option and obtain access. Writing The Essay, Goddard (sections 8-13, offered in Fall only) is offered ONLY for students who live in the Goddard Residential College. Writing the Essay, Rubin (sections 14-15, offered in Fall only) is offered ONLY for students who have been selected for the Rubin Themed Writing the Essay Community. Students placed in these sections will receive instructions for enrollment.
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: CS-UY 1114 (C- or better); Corequisite: 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. Co-requisite: EX-UY 2

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: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MATH-AD 131
Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and CSCI-SHU 2314 or MATH-SHU 120.
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 Engineering Students: CS-UY 2214 and (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better).
Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and CENG-SHU 202. ABET competencies: c, e, k.

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: seniors majoring in Computer Science, Computer Engineering or Electrical and Computer Engineering.

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