Fall 2019 Course Listing with Syllabi | NYU Tandon School of Engineering

Undergraduate Course Listing

*Syllabi in future semesters may vary somewhat from the current and past syllabi shown here.

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

     Download the CS-UY 1114 syllabus

3 Credits Engineering Problem Solving and Programming CS-UY1133
This introductory course in engineering problem solving and computer programming is for all undergraduate engineering students without prior programming experience in any language. The course covers the fundamentals of computer programming and its underlying principles using the MATLAB programming language. Concepts and methods are illustrated by examples from various engineering disciplines. Useful numerical techniques and their applications to real-world problems in science and engineering are also discussed. ABET competencies: a, e, k.
Corequisite: EX-UY 1.

     Download the CS-UY 1133 syllabus

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

     Download the CS-UY 1134 syllabus

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 for Brooklyn Students: CS-UY 1114 (C- or better) or CS-UY 1133 (C- or better)
Prerequisite for Abu Dhabi Students: CS-UH 1001 (C- or better) or ENGR-UH 1000 (C- or better)
Prerequisite for Shanghai Students: CSCI-SHU 101 (C- or better)

     Download the CS-UY 2204 syllabus

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

     Download the CS-UY 2413 syllabus

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 for Brooklyn 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
Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and CSCI-SHU 2314

     Download the CS-UY 3083 syllabus

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.
Prerequisite for Brooklyn Students: CS-UY 4793 or ECE-UY 3613 or ECE-GY 5373
Prerequisite for Abu Dhabi Students: CS-UH 3012 or ENGR-UH 3512
Prerequisite for Shanghai Students: CSCI-SHU 308

     Download the CS-UY 3933 syllabus

3 Credits Special Topics in Computer Science CS-UY3943
This three-credit special topics course is for juniors and seniors.
Prerequisite: Department’s permission.

     Download the CS-UY 3943 syllabus

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

     Download the CS-UY 4513 syllabus

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.

     Download the CS-UY 4523 syllabus

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).
Prerequisite for Brooklyn 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 (MATH-UA 140 or MATH-UA 148)
Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) and (MATH-UH 1022 or MATH-UH 1023)
Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) AND (MATH-SHU 140 or MATH-SHU 141)

     Download the CS-UY 4533 syllabus

3 Credits Introduction to Machine Learning CS-UY4563
This course provides a hands on approach to machine learning and statistical pattern recognition. The course describes fundamental algorithms for linear regression, classification, model selection, support vector machines, neural networks, dimensionality reduction and clustering. The course includes computer exercises on real and synthetic data using current software tools. A number of applications are demonstrated on audio and image processing, text classification, and more. Students should have competency in computer programming.
Prerequisite for Brooklyn Students: CS-UY 1134 AND (MA-UY 2034, MA-UY 2034G, MA-UY 3044 or MA-UY 3054) AND (MA-UY 2224, MA-UY 2222, MA-UY 2233, ECE-UY 2233, MA-UY 3012, MA-UY 3014, or MA-UY 3514)
Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) AND (MATH-UH 1022 or MATH-UH 1023) AND (MATH-UH 2011Q or ENGR-UH 2010Q)
Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) AND (MATH-SHU 140 or MATH-SHU 141) AND MATH-SHU 235

     Download the CS-UY 4563 syllabus

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 for Brooklyn Students: (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)
Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better)

     Download the CS-UY 4613 syllabus

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.

      Download the CS-UY 4783 syllabus

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 for Brooklyn Students: (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)
Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better)

     Download the CS-UY 4793 syllabus


Graduate Course Listing

*Syllabi in future semesters may vary somewhat from the current and past syllabi shown here.

3 Credits Foundations of Computer Science CS-GY6003
This course covers logic, sets, functions, relations, asymptotic notation, proof techniques, induction, combinatorics, discrete probability, recurrences, graphs, trees, mathematical models of computation and undecidability.
Corequisite: Graduate Standing.

Download the CS-GY 6003 syllabus

Download the CS-GY 6003 syllabus (online course)

3 Credits Design and Analysis of Algorithms I CS-GY6033
This course reviews basic data structures and mathematical tools. Topics: Data structures, priority queues, binary search trees, balanced search trees. Btrees. Algorithm design and analysis techniques illustrated in searching and sorting: heapsort, quicksort, sorting in linear time, medians and order statistics. Design and analysis techniques: dynamic programming, greedy algorithms. Graph algorithms: elementary graph algorithms (breadth first search, depth first search, topological sort, connected components, strongly connected components), minimum spanning tree, shortest path. String algorithms. Geometric algorithms. Linear programming. Brief introduction to NP completeness.
Prerequisites: Graduate Standing, CS-GY 5403 and CS-GY 6003.

Download the CS-GY 6033 syllabus

Download the CS-GY 6033 syllabus (online course)

3 Credits Software Engineering I CS-GY6063
The course emphasizes the full software-engineering approach with alternative approaches. Technical emphasis is on requirements, design, development and modeling. Management issues include software cost estimating and project management. Understanding the processes applicable to the software development/integration cycle and maintenance along with technology changes on quality and development activities is highlighted.
Prerequisite: Graduate standing.

Download the CS-GY 6063 syllabus (online course)

3 Credits Principles of Database Systems CS-GY6083
This course broadly introduces database systems, including the relational data model, query languages, database design, index and file structures, query processing and optimization, concurrency and recovery, transaction management and database design. Students acquire hands-on experience in working with database systems and in building web-accessible database applications.
Prerequisites: Graduate standing, CS-GY 6003 or equivalent, familiarity with basic data structures and operating system principles.

Download the CS-GY 6083 syllabus

3 Credits Computer Architecture I CS-GY6133
Computer architecture design: Instruction set design techniques, performance and cost; Extensions to traditional instruction sets. An instruction set studied in detail. Processor implementations: Unpipelined execution and its improvement by means of pipelining. Advanced pipelining, including branch prediction, out-of-order execution and superscalar execution, is introduced. Alternatives to traditional computing, such as VLIW and vector computation are described. Improving computer capacity, by improving the memory hierarchy is studied, including advanced cache memory, main memory and virtual memory implementations. An introduction to high-performance computing, including multi-core processors.
Prerequisite: CS-UY 2214 and Graduate standing.

Download the CS-GY 6133 syllabus

3 Credits Introduction to Operating Systems CS-GY6233
This course introduces basic issues in operating systems. Topics: Threads, processes, concurrency, memory management, I/O Control and case studies.
Prerequisite: Graduate standing.

Download the CS-GY 6233 syllabus

3 Credits Information Visualization CS-GY6313
An introductory course on Information Visualization based on a modern and cohesive view of the area. Topics include visualization design, data principles, visual encoding principles, interaction principles, single/multiple view methods, item/attribute, attribute reduction methods, toolkits, and evaluation. Overviews and examples from state-of-the-art research will be provided. The course is designed as a first course in information visualization for students both intending to specialize in visualization as well as students who are interested in understanding and applying visualization principles and existing techniques.

Download the CS-GY 6313 syllabus (online course)

3 Credits Programming Languages CS-GY6373
This course covers the structures, notations and semantics of programming languages. Topics: Issues of scope, type structure and parameter passing. Control structures, including support for exception handling and concurrency. Abstract data types and object oriented languages. Programming in the large. Implementation issues. Functional, logic programming languages. Examples from a variety of languages.
Prerequisites: Graduate standing and CS-GY 5403.

Download the CS-GY 6373 syllabus

3 Credits Interactive Computer Graphics CS-GY6533
This course introduces the fundamentals of computer graphics with hands-on graphics programming experiences. Topics include graphics software and hardware, 2D line segment-scan conversion, 2D and 3D transformations, viewing, clipping, polygon-scan conversion, hidden surface removal, illumination and shading, compositing, texture mapping, ray tracing, radiosity and scientific visualization.
Prerequisites: Graduate standing, CS-GY 5403 (Data Structures) or equivalents and knowledge of C or C++ programming.

Download the CS-GY 6533 syllabus

3 Credits Human Computer Interaction CS-GY6543
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.

Download the CS-GY 6543 syllabus

3 Credits Penetration Testing and Vulnerability Analysis CS-GY6573
This advanced course in computer and network security focuses on penetration testing and vulnerability analysis. It introduces methodologies, techniques and tools to analyze and identify vulnerabilities in stand-alone and networked applications.
Prerequisites: Graduate standing and CS-GY 6823

Download the CS-GY 6573 syllabus

Download the CS-GY 6573 syllabus (online course)

3 Credits Computer Vision CS-GY6643
An important goal of artificial intelligence (AI) is to equip computers with the capability of interpreting visual inputs. Computer vision is an area in AI that deals with the construction of explicit, meaningful descriptions of physical objects from images. It includes as parts many techniques from image processing, pattern recognition, geometric modeling, and cognitive processing. This course introduces students to the fundamental concepts and techniques in computer vision.
Prerequisites: Graduate standing, CS-GY 5403 and MA-UY 2012, or equivalents, or instructor’s permission.

Download the CS-GY 6643 syllabus

3 Credits Neural Network Computing CS-GY6673
This course introduces neural network models and their applications. Topics: Discussion of organization and learning in neural network models including perceptrons, adalines, back-propagation networks, recurrent networks, adaptive resonance theory and the neocognitron. Implementations in general and special purpose hardware, both analog and digital. Application in various areas with comparisons to nonneural approaches. Decision systems, nonlinear control, speech processing and vision.
Prerequisite: Graduate standing and CS-GY 5403. Some familiarity with matrix notation and partial derivatives is recommended.

Download the CS-GY 6673 syllabus

3 Credits Information Systems Security Engineering and Management CS-GY6803
This course presents 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. A second goal is to cover basic federal policies on government information security and methodologies. Topics include information-security risk management, security policies, security in the systems-engineering process, laws related to information security and management of operational systems.
Prerequisite: Graduate standing and CS-UY 392 or equivalent: *Online version available.

Download the CS-GY 6803 syllabus

3 Credits Information, Security and Privacy CS-GY6813
This course introduces Information Systems Security and covers cryptography, capability and access control mechanisms, authentication models, security models, operating systems security, malicious code, security-policy formation and enforcement, vulnerability analysis, evaluating secure systems.
Prerequisite: Competency in Application Development in UNIX and Windows Environments, Graduate status. *Online version available.

Download the CS-GY 6813 syllabus (online course)

3 Credits Network Security CS-GY6823
This course begins by covering attacks and threats in computer networks, including network mapping, port scanning, sniffing, DoS, DDoS, reflection attacks, attacks on DNS and leveraging P2P deployments for attacks. The course continues with cryptography topics most relevant to secure networking protocols. Topics covered are block ciphers, stream ciphers, public key cryptography, RSA, Diffie Hellman, certification authorities, digital signatures and message integrity. After surveying basic cryptographic techniques, the course examines several secure networking protocols, including PGP, SSL, IPsec and wireless security protocols. The course examines operational security, including firewalls and intrusion-detection systems. Students read recent research papers on network security and participate in an important lab component that includes packet sniffing, network mapping, firewalls, SSL and IPsec.
Prerequisite: Graduate standing and EL-GY 5363:* Online version available.

Download the CS-GY 6823 syllabus (Thomas Reddington)

Download the CS-GY 6823 syllabus (Keith O'Brien)

Download the CS-GY 6823 syllabus (online course)

3 Credits Computer Networking CS-GY6843
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 linklayer switches. The course includes simple quantitative delay and throughput modeling, socket programming and network application development and Ethereal labs.
Prerequisite: Graduate standing and CS-UY 2134.

Download the CS-GY 6843 syllabus (Z. John Zhao)

Download the CS-Gy 6843 syllabus (Rafail Portnoy)

3 Credits Applied Cryptography CS-GY6903
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: Graduate standing.

Download the CS-GY 6903 syllabus

3 Credits Web Search Engines CS-GY6913
This course covers the basic technology underlying Web search engines and related tools. The main focus is on large-scale Web search engines (such as Google, Yahoo and MSN Search) and their underlying architectures and techniques. Students learn how search engines work and get hands-on experience in how to build search engines from the ground up. Topics are based on a reading list of recent research papers. Students must work on a course project and may have to present in class.
Prerequisite: Graduate standing

Download the CS-GY 6913 syllabus

3 Credits Machine Learning CS-GY6923
This course is an introduction to the field of machine learning, covering fundamental techniques for classification, regression, dimensionality reduction, clustering, and model selection. A broad range of algorithms will be covered, such as linear and logistic regression, neural networks, deep learning, support vector machines, tree-based methods, expectation maximization, and principal components analysis. The course will include hands-on exercises with real data from different application areas (e.g. text, audio, images). Students will learn to train and validate machine learning models and analyze their performance.
Prerequisite: Graduate status with undergraduate level probability theory

Download the CS-GY 6923 syllabus

3 Credits Special Topics in Computer Science CS-GY9053

Download the CS-GY 9053 syllabus

3 Credits Selected Topics in CS CS-GY9223

Download the CS-GY 9223 syllabus (Distributed Systems)

Download the CS-GY 9223 syllabus (Programming for Big Data Analytics)

Download the CS-GY 9223 syllabus (online course)

CS-GY9233 Please refer to the bulletin for more information

Download the CS-GY 9233 syllabus

Download the CS-GY 9233 syllabus (online course)