Nyu Pac Ii Assignment 3 Solution

Current semester Spring 2021, and future semesters are now available to view.

  • CSCI-GA.1144-​001
    (2248)
    PAC II* Mohamed Zahran
    Office Hours
    T 6:00-8:30PM ONLINE

    This course builds directly on the foundation developed in PAC I, covering the essentials of computer organization through the study of assembly language programming and C, as well as introducing the students to the analysis of algorithms. Topics include: (1) Assembly language programming for the Intel chip family, emphasizing computer organization, the Intel x86 instruction set, the logic of machine addressing, registers and the system stack. (2) Programming in the C language, a general-purpose programming language which also has low-level features for systems programming. (3) An introduction to algorithms, including searching, sorting, graph algorithms and asymptotic complexity. Examples and assignments reinforce and refine those first seen in PAC I and often connect directly to topics in the core computer science graduate courses, such as Programming Languages, Fundamental Algorithms, and Operating Systems

    Prerequisites: CSCI-GA 1133 or departmental permission.

  • CSCI-GA.1144-​002
    (2620)
    PAC II Recitation Gurkirat Singh Bajwa R 7:10-8:00PM ONLINE

    This course builds directly on the foundation developed in PAC I, covering the essentials of computer organization through the study of assembly language programming and C, as well as introducing the students to the analysis of algorithms. Topics include: (1) Assembly language programming for the Intel chip family, emphasizing computer organization, the Intel x86 instruction set, the logic of machine addressing, registers and the system stack. (2) Programming in the C language, a general-purpose programming language which also has low-level features for systems programming. (3) An introduction to algorithms, including searching, sorting, graph algorithms and asymptotic complexity. Examples and assignments reinforce and refine those first seen in PAC I and often connect directly to topics in the core computer science graduate courses, such as Programming Languages, Fundamental Algorithms, and Operating Systems

    Prerequisites: CSCI-GA 1133 or departmental permission.

  • CSCI-GA.1170-​001
    DS-GA.1170
    (2249)
    Fundamental Algorithms Yevgeniy Dodis T 7:10-9:00PM ONLINE

    Reviews a number of important algorithms, with emphasis on correctness and efficiency. The topics covered include solution of recurrence equations, sorting algorithms, selection, binary search trees and balanced-tree strategies, tree traversal, partitioning, graphs, spanning trees, shortest paths, connectivity, depth-first and breadth-first search, dynamic programming, and divide-and-conquer techniques.

    Prerequisites: At least one year of experience with a high-level language such as Pascal, C, C++, or Java; and familiarity with recursive programming methods and with data structures (arrays, pointers, stacks, queues, linked lists, binary trees).

  • CSCI-GA.1170-​002
    DS-GA.1170
    (22497)
    Fundamental Algorithms Recitation Alex Bienstock
    Charles Peyser
    Fengyuan Liu
    R 8:10-9:00PM ONLINE

    Reviews a number of important algorithms, with emphasis on correctness and efficiency. The topics covered include solution of recurrence equations, sorting algorithms, selection, binary search trees and balanced-tree strategies, tree traversal, partitioning, graphs, spanning trees, shortest paths, connectivity, depth-first and breadth-first search, dynamic programming, and divide-and-conquer techniques.

    Prerequisites: At least one year of experience with a high-level language such as Pascal, C, C++, or Java; and familiarity with recursive programming methods and with data structures (arrays, pointers, stacks, queues, linked lists, binary trees).

  • CSCI-GA.1170-​003
    DS-GA.1170
    (22498)
    Fundamental Algorithms Recitation Harish Karthikeyan R 8:10-9:00PM CIWW 109

    Reviews a number of important algorithms, with emphasis on correctness and efficiency. The topics covered include solution of recurrence equations, sorting algorithms, selection, binary search trees and balanced-tree strategies, tree traversal, partitioning, graphs, spanning trees, shortest paths, connectivity, depth-first and breadth-first search, dynamic programming, and divide-and-conquer techniques.

    Prerequisites: At least one year of experience with a high-level language such as Pascal, C, C++, or Java; and familiarity with recursive programming methods and with data structures (arrays, pointers, stacks, queues, linked lists, binary trees).

  • CSCI-GA.1180-​001
    (3052)
    Mathematical Techniques For CS Applications Parijat Dube
    Office Hours
    F 7:10-9:00PM BLENDED

    An introduction to theory, computational techniques, and applications of linear algebra, probability and statistics. These three areas of continuous mathematics are critical in many parts of computer science, including machine learning, scientific computing, computer vision, computational biology, natural language processing, and computer graphics. The course teaches a specialized language for mathematical computation, such as Matlab, and discusses how the language can be used for computation and for graphical output. No prior knowledge of linear algebra, probability, or statistics is assumed.

  • CSCI-GA.2110-​001
    (2251)
    Programming Languages Cory Plock M 7:10-9:00PM ONLINE

    Discusses the design, use, and implementation of imperative, object-oriented, and functional programming languages. The topics covered include scoping, type systems, control structures, functions, modules, object orientation, exception handling, and concurrency. A variety of languages are studied, including C++, Java, Ada, Lisp, and ML, and concepts are reinforced by programming exercises.

    Prerequisites: Students taking this class should already have substantial programming experience.

  • CSCI-GA.2110-​002
    (2252)
    Programming Languages Recitation Monika Dagar
    Xiaomeng Wang
    R 7:10-8:00PM ONLINE

    Discusses the design, use, and implementation of imperative, object-oriented, and functional programming languages. The topics covered include scoping, type systems, control structures, functions, modules, object orientation, exception handling, and concurrency. A variety of languages are studied, including C++, Java, Ada, Lisp, and ML, and concepts are reinforced by programming exercises.

    Prerequisites: Students taking this class should already have substantial programming experience.

  • CSCI-GA.2110-​003
    (22499)
    Programming Languages Recitation Tanmay Gatle R 7:10-8:00PM CIWW 109

    Discusses the design, use, and implementation of imperative, object-oriented, and functional programming languages. The topics covered include scoping, type systems, control structures, functions, modules, object orientation, exception handling, and concurrency. A variety of languages are studied, including C++, Java, Ada, Lisp, and ML, and concepts are reinforced by programming exercises.

    Prerequisites: Students taking this class should already have substantial programming experience.

  • CSCI-GA.2110-​011
    (22500)
    Programming Languages Yuxin Deng
    Jing Liu
    T 1:15-3:05PM 16 Qi Xia 917 Additional information: Open to NYU Shanghai GoLocal students

    Discusses the design, use, and implementation of imperative, object-oriented, and functional programming languages. The topics covered include scoping, type systems, control structures, functions, modules, object orientation, exception handling, and concurrency. A variety of languages are studied, including C++, Java, Ada, Lisp, and ML, and concepts are reinforced by programming exercises.

    Prerequisites: Students taking this class should already have substantial programming experience.

  • CSCI-GA.2110-​012
    (22501)
    Programming Languages Recitation Yuxin Deng
    Jing Liu
    T 10:45-11:35AM 16 Qi Xia 917 Additional information: Open to NYU Shanghai GoLocal students

    Discusses the design, use, and implementation of imperative, object-oriented, and functional programming languages. The topics covered include scoping, type systems, control structures, functions, modules, object orientation, exception handling, and concurrency. A variety of languages are studied, including C++, Java, Ada, Lisp, and ML, and concepts are reinforced by programming exercises.

    Prerequisites: Students taking this class should already have substantial programming experience.

  • CSCI-GA.2130-​001
    (2253)
    Compiler Construction Alexander Alekseyev M 7:10-9:00PM ONLINE
    This is a capstone course based on compilers and modern programming languages. The topics covered include structure of one-pass and multiple-pass compilers; symbol table management; lexical analysis; traditional and automated parsing techniques, including recursive descent and LR parsing; syntax-directed translation and semantic analysis; run-time storage management; intermediate code generation; introduction to optimization; and code generation. The course includes a special compiler-related capstone project, which ties together concepts of algorithms, theory (formal languages), programming languages, software engineering, computer architecture, and other subjects covered in the MS curriculum. This project requires a substantial semester-long programming effort, such as construction of a language compilation or translation system that includes lexical and syntactic analyzers, a type checker, and a code generator.

    Prerequisites: CSCI-GA 1170, CSCI-GA 2110, and CSCI-GA 2250.

  • CSCI-GA.2250-​001
    (2254)
    Operating Systems Hubertus Franke
    Office Hours
    M 7:10-9:00PM BLENDED
    The topics covered include a review of linkers and loaders and the high-level design of key operating systems concepts such as process scheduling and synchronization; deadlocks and their prevention; memory management, including (demand) paging and segmentation; and I/O and file systems, with examples from Unix/Linux and Windows. Programming assignments may require C, C++, Java, or C#.

  • CSCI-GA.2250-​002
    (26484)
    Operating Systems Hubertus Franke
    Office Hours
    M 7:30-9:20AM BLENDED
    The topics covered include a review of linkers and loaders and the high-level design of key operating systems concepts such as process scheduling and synchronization; deadlocks and their prevention; memory management, including (demand) paging and segmentation; and I/O and file systems, with examples from Unix/Linux and Windows. Programming assignments may require C, C++, Java, or C#.

  • CSCI-GA.2262-​001
    (2255)
    Data Communications and Networks Muhammed Fatih Bulut
    Office Hours
    W 7:10-9:00PM ONLINE

    This course teaches the design and implementation techniques essential for engineering robust networks. Topics include networking principles, Transmission Control Protocol/Internet Protocol, naming and addressing (Domain Name System), data encoding/decoding techniques, link layer protocols, routing protocols, transport layer services, congestion control, quality of service, network services, programmable routers and overlay networks.

    Prerequisites: Students must have a working knowledge of fundamental data structures and associated algorithms. For some of the practical aspects of the course, a working knowledge of an object-oriented programming language (e.g., C++, C#, or preferably Java) is expected. An undergraduate course in data communication and networks is helpful but not required.

  • CSCI-GA.2270-​001
    (22502)
    Computer Graphics Kenneth Perlin W 5:10-7:00PM ONLINE

    Problems and objectives of computer graphics. Vector, curve, and character generation. Interactive display devices. Construction of hierarchical image list. Graphic data structures and graphics languages. Hidden-line problems; windowing, shading, and perspective projection. Curved surface generation display.

    Prerequisites: CSCI-GA 1170 and CSCI-UA 140 (or an equivalent undergraduate course in linear algebra).

  • CSCI-GA.2421-​001
    MATH-GA 2020-001
    (2256)
    Numerical Methods II Leslie Greengard T 5:10-7:00PM ONLINE
    Numerical linear algebra. Approximation theory. Quadrature rules and numerical integration. Nonlinear equations and optimization. Ordinary differential equations. Elliptic equations. Iterative methods for large, sparse systems. Parabolic and hyperbolic equations.

    Prerequisites: Corequisite: linear algebra.

  • CSCI-GA.2433-​001
    DS-GA.2433-001
    (2257)
    Database Systems Zvi Kedem
    Office Hours
    W 5:10-7:00PM BLENDED
    Database system architecture. Modeling an application and logical database design. The relational model and relational data definition and data manipulation languages. Design of relational databases and normalization theory. Physical database design. Concurrency and recovery. Query processing and optimization.

  • CSCI-GA.2433-​011
    DS-GA.2433-001
    (22503)
    Database Systems Xiaoyang Sean Wang M 3:45-5:35PM 16 Qi Xia 2D Additional information: Open to NYU Shanghai GoLocal students
    Database system architecture. Modeling an application and logical database design. The relational model and relational data definition and data manipulation languages. Design of relational databases and normalization theory. Physical database design. Concurrency and recovery. Query processing and optimization.

  • CSCI-GA.2437-​001
    (22514)
    Big Data Application Development Ulrich Finkler W 7:10-9:00PM ONLINE

    This is an introductory course on Spark programming, Spark architecture, Spark SQL, Spark Streaming, and integration of Spark with the Hadoop ecosystem for developing Big Data analytics applications. The course project can be completed with Scala or Python, and Spark. This course covers technologies that integrate well with Spark in the creation of Big Data analytics applications.

    Students are required to complete weekly reading and programming assignments and demonstrate mastery of course topics by developing a final project using Spark.

    Prerequisites: Prerequisites include experience with Hadoop, which commonly comes from having completed the Realtime and Big Data Analytics course. There will be a review of Apache Hadoop, but students should have experience with Hadoop MapReduce and HDFS.

  • CSCI-GA.2440-​001
    (2258)
    Software Engineering Jean-Claude Franchitti M 7:10-9:00PM ONLINE
    This is a capstone course focusing on large-scale software development. This course presents modern software engineering techniques and examines the software life cycle, including software specification, design, implementation, testing, and maintenance. Object-oriented design methods are also considered. Software engineering projects involve creation of a large-scale software system and require some or all of the following elements: formation of a small team, project proposal, literature review, interim report, project presentation, and final report.

    Prerequisites: CSCI-GA 1170, CSCI-GA 2110, and CSCI-GA 2250

  • CSCI-GA.2520-​001
    BIOL-GA 1127-001
    (2259)
    Bioinformatics and Genomes Brian Parker
    Richard Bonneau
    F 1:00-3:45PM ONLINE
    The recent explosion in the availability of genome-wide data such as whole genome sequences and microarray data led to a vast increase in bioinformatics research and tool development. Bioinformatics is becoming a cornerstone for modern biology, especially in fields such as genomics. It is thus crucial to understand the basic ideas and to learn fundamental bioinformatics techniques. The emphasis of this course is on developing not only an understanding of existing tools but also the programming and statistics skills that allow students to solve new problems in a creative way.

  • CSCI-GA.2560-​001
    (2927)
    Artificial Intelligence Ernest Davis
    Office Hours
    M 5:10-7:00PM ONLINE

    There are many cognitive tasks that people do easily and almost unconsciously but that have proven extremely difficult to program on a computer. Artificial intelligence is the problem of developing computer systems that can carry out these tasks. This course covers problem solving and state space search; automated reasoning; probabilistic reasoning; planning; and knowledge representation.

  • CSCI-GA.2565-​001
    (25553)
    Machine Learning Rajesh Ranganath
    Office Hours
    M 5:10-7:00PM ONLINE

    This course covers a wide variety of topics in machine learning, pattern recognition, statistical modeling, and neural computation. The course covers the mathematical methods and theoretical aspects but primarily focuses on algorithmic and practical issues.

    Prerequisites: Undergraduate course in linear algebra and strong programming skills for implementation of algorithms studied in class. Strong knowledge of probability. Recommended: knowledge of vector calculus, elementary statistics.

  • CSCI-GA.2572-​001
    DS-GA.1008-001
    (25925)
    Deep Learning Yann LeCun W 9:30-11:20AM ONLINE

    This course concerns the latest techniques in deep learning and representation learning, focusing on supervised and unsupervised deep learning, embedding methods, metric learning, convolutional net and recurrent nets, with applications to computer vision, natural language understanding, and speech recognition.

    Prerequisites: DS-GA 1001 Intro to Data Science or a graduate-level machine learning course.

  • CSCI-GA.2572-​002
    DS-GA.1008-002
    (25926)
    Deep Learning Lab Alfredo Canziani R 9:30-10:20AM ONLINE

    This course concerns the latest techniques in deep learning and representation learning, focusing on supervised and unsupervised deep learning, embedding methods, metric learning, convolutional net and recurrent nets, with applications to computer vision, natural language understanding, and speech recognition.

    Prerequisites: DS-GA 1001 Intro to Data Science or a graduate-level machine learning course.

  • CSCI-GA.2620-​001
    (2653)
    Networks and Mobile Systems Anirudh Sivaraman R 7:10-9:00PM ONLINE

    This is a capstone course. A course in computer networks and large-scale distributed systems. Teaches the design and implementation techniques essential for engineering both robust networks and Internet-scale distributed systems. The goal is to guide students so they can initiate and critique research ideas in networks and distributed systems and implement and evaluate a working system that can handle a real-world workload. Topics include routing protocols, network congestion control, wireless networking, peer-to-peer systems, overlay networks and applications, distributed storage systems, and network security.

    Prerequisites: CSCI-GA 1170, CSCI-GA 2110, and CSCI-GA 2250.

  • CSCI-GA.2820-​001
    (3053)
    DevOps and Agile Methodologies John Rofrano W 5:10-7:00PM ONLINE Additional information: Not open to graduate Computer Science, Information Systems, or Non-Degree students.

    This course uses a project­ based learning approach towards the study of DevOps as a cultural change in Information Technology organizations, and the supporting development tools and automation technologies required to implement it successfully. Students study the principles of DevOps, and as part of an agile development team, each student is involved in planning, designing, building, testing, and deploying one or more cloud native microservices into a Platform as a Service cloud by utilizing a DevOps Pipeline that they will create.

  • CSCI-GA.2820-​002
    (3054)
    DevOps and Agile Methodologies Lab John Rofrano W 7:10-8:00PM ONLINE Additional information: Not open to graduate Computer Science, Information Systems, or Non-Degree students.

    This course uses a project­ based learning approach towards the study of DevOps as a cultural change in Information Technology organizations, and the supporting development tools and automation technologies required to implement it successfully. Students study the principles of DevOps, and as part of an agile development team, each student is involved in planning, designing, building, testing, and deploying one or more cloud native microservices into a Platform as a Service cloud by utilizing a DevOps Pipeline that they will create.

  • CSCI-GA.2945-​002
    MATH-GA.2012-002
    (2261)
    Adv Topics Num. Analysis: High Performance Computing Georg Stadler M 1:25-3:15PM ONLINE
    Topics vary each semester.

    Prerequisites: Topics determine prerequisites.

  • CSCI-GA.2945-​003
    MATH-GA.2012-003
    (22504)
    Adv Topics Num. Analysis: The Immersed Boundary Method For Fluid-Structure Interaction Charles Peskin M 11:00-12:50PM ONLINE
    Topics vary each semester.

    Prerequisites: Topics determine prerequisites.

  • CSCI-GA.3033-​004
    (22506)
    Special Topics: Statistical Natural Language Processing Ankur Parikh T 5:10-7:00PM ONLINE

    In this course we will examine some of the core tasks in natural language processing, starting with simple word-based models for text classification and building up to more complex models for syntactic parsing, machine translation, question answering, and text generation. The course will cover a variety of statistical and machine learning approaches including recent advances in deep learning. In addition to the core topics, we will discuss recent research progress in the area such as unsupervised pretraining and adversarial examples. This course assumes a good background in basic probability as well as interest in building real systems.

  • CSCI-GA.3033-​026
    (3163)
    Special Topics: Cloud Computing Jean-Claude Franchitti R 7:10-9:00PM ONLINE

    This course is a capstone course that introduces the latest Cloud computing, Artificial Intelligence (AI), and Web3 Decentralized Applications technologies that can be combined to create next-generation multi-cloud innovative Intelligent Autonomous Networked (IAN) business solutions. Students will learn about services provided on the top "Big Clouds", namely Amazon AWS Cloud, Google Cloud, Microsoft Azure Cloud, IBM Cloud, Salesforce, and others. Related services provided on the Cloud and covered in the course include computing and hosting services, storage services, networking services, big data services, and machine/deep learning services. Once familiar with Cloud services, Students will learn how to combine them to support cognitive computing and enable the creation of IAN solutions that cater to the practical needs of next-generation mobile devices and social media users in novel and creative ways. As they create these IAN solutions, students will learn about immersive Augmented/Virtual Reality (AR/VR) User Experience and Interfaces (UX/UI), hybrid decentralized computing and DApps, Edge and Fog computing and Internet of Things (IoT), Mobility/5G networking and Software Defined infrastructures, and various key aspects of digital security that are critical to ensure the safety of modern software.  Throughout the course, students will develop their own Intelligent Autonomous Networked (IAN) business solutions using Cloud-based machine and deep learning and other services and capabilities as noted above. Sample platform and related application components will be provided as applicable to speed up the development process.

  • CSCI-GA.3033-​029
    (2693)
    Special Topics: Social Networks Bhubaneswar Mishra
    Office Hours
    R 5:10-7:00PM ONLINE

    Social Networks is a specific example of many forms of networks that have become ubiquitous in our modern society. The World Wide Web enables information flows among vast number of humans; Facebook, and LinkedIn, etc. connect small groups of friends; amazon, eBay, etc. provide opportunities for trading, etc, BitCoins, Ethereum, etc. allow parties to make financial and contractual transactions . These networks determine our information, influence our opinions, and shape our political attitudes. They also link us, often through important but weak ties, to other humans. Their origin is biological: going back to quorumsensing, swarming, flocking, social grooming, gossip, etc., and have evolved with the dynamics of evolutionary games (particularly Signaling Games). Yet, as we have connected our social networks to traditional human institutions (markets, justice systems, education, etc.) through new technologies, the underlying biology has become obscured, but not dormant. Economic markets also look much more like networks than anonymous marketplaces. Firms interact with the suppliers and customers in a Web-like supply chains. Systemic risk in financial markets often results from the counterparty risks created within this financial network. Thiscourse will introduce the tools for the study of networks, and mechanism designed to interact strategically: SmartContractss, Costly Signaling, Credible and Noncredible Threats, Model Checking and Verification, Safety and Liveness, Recommenders and Verifiers, Deception, Market mechanisms (pricing and auction), Privacy and Trust… Exampled Systems: Bit-coins, Zcash, Ripple, Stellar, Ethereum, Solidity, Rholang, DAO (Distributed Companies), Cyber Security (M-coins), Information Finance Markets (WealthFront, etc.), Market Microstructure, ICO/STO/ITO, GDPR, OpenLaw, OpenZeplin, ...

  • CSCI-GA.3033-​034
    (2844)
    Special Topics: Multicore Processors: Architecture & Programming Mohamed Zahran
    Office Hours
    W 5:10-7:00PM

    This is a capstonecourse.

    The tremendous advances in process technology have created a revolution both in hardware and in software. On the hardware side, we moved from single core processors to multicore/manycore processors. Multicore chips are now everywhere. You can find them in smartphones, playstations, notebooks, all the way up to supercomputers. To benefit from these chips, software must be parallelized, which starts another revolution in software. The purpose of thiscourse is to introduce you to both the hardware advances and parallel programming techniques targeting multicore and manycore processors. You will learn how to make the best use of the underlying hardware to build applications that are faster, more power efficient, and more reliable.

  • CSCI-GA.3033-​052
    (22507)
    Special Topics: Advanced Machine Learning Mehryar Mohri
    Office Hours
    T 5:10-7:00PM ONLINE

    Thiscourse introduces and discusses advanced topics in machine learning. The objective is both to present some key topics not covered by basic graduate ML classes such as Foundations of Machine Learning, and to bring up advanced learning problems that can serve as an initiation to research or to the development of new techniques relevant to applications.

  • CSCI-GA.3033-​059
    (2262)
    Special Topics: Big Data Science Anasse Bari W 5:10-7:00PM ONLINE

    Data Science has recently gained a substantial interest in a variety of industries including healthcare, finance, manufacturing and marketing. It is positioned at the intersection point of computer science, data mining, machine learning, predictive analytics, business, statistics and domain expertise. It aims at finding hidden knowledge (patterns, models, associations) for the purpose of making better decisions. Thiscourse will introduce the basic fundamental concepts of the algorithms and the tools of extracting valuable insights from data with the ability to formulating and solving problems with it. Topics of thiscourse include, but are not limited to: Basics of Data Analytics Project Lifecycle, Developing an Analytics Roadmap, Data Preprocessing, Data Analytics Use cases, Data Cleaning Algorithms, Feature Selection Algorithms, Introduction to Hadoop in Theory and in Practice, Algorithms for Finding Similar Data Items, Dimensionality Reduction techniques, Clustering Algorithms, Classification Algorithms, Introduction to Sentiment Analysis in short text (e.g Tweets), Mining Association Rules, Performance Measures, Ensemble Methods, Information retrieval systems and Recommendation Systems with applications in Bio-informatics, Text Mining and Social Network Analytics.

    Prerequisites: Strong programming skills in the Java language and fundamentals of linear algebra.

  • CSCI-GA.3033-​071
    (22508)
    Special Topics: Geometric Modeling Daniele Panozzo R 5:10-7:00PM ONLINE

    Recent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. Thiscourse covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, surface reconstruction, mesh improvement, mesh parametrization, discrete differential geometry, interactive shape editing, skinning animation, architectural and structure-aware geometric modeling, shape modeling with an eye on 3D printing. The students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and digital geometry processing.

    Prerequisites: Basic knowledge of Computer Graphics, experience with C++ programming. Some background in geometric computing is helpful, but not necessary. CSCI-UA 140 (or an equivalent undergraduate course in linear algebra)

  • CSCI-GA.3033-​074
    (22509)
    Special Topics: Practical Computer Security Kevin Chen
    Office Hours
    W 7:10-9:00PM ONLINE

    Thiscourse teaches the security mindset and practical security concepts that are essential for software engineers, security engineers, quality assurance testers and IT managers. Thecourse discusses various attack techniques and defenses for real world applications and the security activities in the SDLC. Its main topics include: memory safety (buffer overflow, return-oriented programming, etc), web security (XSS, CSRF, SQL Injection, etc), malware, threat modeling, security principles, secure coding practices (fuzzing, sandboxing, etc) and network security.Course projects and assignments may require Assembly, C, Python, JavaScript, HTML, SQL and/or other scripting languages.

    Prerequisites: Programming experience in C/C++, JavaScript, Python, and SQL; basic understanding of assembly language; working knowledge of web application development.

  • CSCI-GA.3033-​076
    (22510)
    Special Topics: Vision Meets Machine Learning Davi Geiger R 7:10-9:00PM ONLINE

    Thiscourse will introduce basic ideas of current Machine Learning methods (Deep Learning with Variational Auto Encoders, GAN, RNN, Reinforcement Learning). Thecourse is "hands on", with small groups programming/developing projects that integrate the basic ideas above to perform "computer vision tasks" (the evaluation is based on projects). The vision tasks will be in Object Classification, Human Detection, and Human Actions.

    Prerequisites: Students who take this class should have familiarity with linear algebra, probability, and calculus as well as programming in python.

  • CSCI-GA.3033-​077
    (3050)
    Special Topics: Big Data and ML Systems Aurojit Panda T 5:10-7:00PM ONLINE

    This class will discuss recent research into using cluster computing for data processing and machine learning. The focus of thecourse will be on understanding systems and performance challenges resulting from changing workloads, the emergence of new hardware (such as NVMe, SmartNICs, etc.), and the emergence of new security and privacy requirements, and understanding how systems address these challenges. The main focus of thecourse is on how these changes are exposed to programmers and users, and how they can be exploited for performance. Topics we plan to cover include:

    * How both commercial and research system are changing in response to changes in

      distributed storage including the wider adoption of blob stores like S3 and

      the availability of new hardware like Intel Optane.

    * How scheduling is impacted by the move to machine learning and reinforcement learning

      workloads.

    * How are people using serverless, and what technical challenges need to be addressed

      in these environments?

    * Tracing and debugging in cluster computing: how are people debugging both correctness

      and performance problems in these environments.

    * How are systems evolving to handle privacy requirements imposed by laws such as GDPR

      and CCPA?

    The class will require reading research papers, presenting papers, working on programming

    labs, and completing a significant final project.

    Prerequisites: The class does require an undergraduate-level knowledge in operating systems, programming languages, algorithms, linear algebra, probability and statistics. If you are new to these concepts, then this class may be advanced for you.

  • CSCI-GA.3033-​078
    (2848)
    Special Topics: Cryptocurrencies and Decentralized Ledgers Joseph Bonneau
    Office Hours
    R 5:10-7:00PM ONLINE

    Bitcoin, Ethereum, and other systems using decentralized ledgers (blockchains) have quickly grown to valuations of hundreds of billions of dollars. Their future potential has captured the imagination of researchers working on applications as diverse as banking and finance, voting, law, corporate governance, gambling and online gaming. This course will cover the technical concepts underlying these systems: append-only ledgers, decentralized consensus, smart contracts and zero-knowledge proof systems. Students will gain working knowledge of both Bitcoin and Ethereum through practical assignments. The course will also survey the wide variety of potential future applications.

    Prerequisites: At least one year of experience with a high-level language such as Pascal, C, C++, or Java. An undergraduate course in cryptography or successful completion of CSCI-GA.3205 or CSCI-GA.3210 strongly recommended.

  • CSCI-GA.3033-​079
    DS-GA.3001-019
    (25638)
    Special Topics: Mathematics of Deep Learning Joan Bruna R 5:10-7:00PM ONLINE

    This graduate-level course explores some of the open mathematical challenges arising in the study of Deep Learning. In particular, we will focus on three main topics: (i) signal processing principles underpinning convolutional neural networks and their generalisations to non-euclidean geometries (ii) non-convex optimization challenges arising in high-dimensional (or overparametrised) learning problems, and (iii) geometry of Markov Decision Processes and its role in Reinforcement Learning guarantees.

    Prerequisites: Background on high-dimensional probability, statistics, and/or harmonic analysis. Familiarity with general Machine Learning topics and basic notions of optimization.

  • CSCI-GA.3033-​085
    (3051)
    Special Topics: Cloud and Machine Learning I-Hsin Chung
    Seetharami Seelam
    R 5:10-7:00PM ONLINE

    This is a capstone course for the MSCS program.

    This course exposes students to various cloud computing models and introduces them to performing machine learning on the cloud. The course material introduces students to various cloud providers including Amazon AWS, Google GCE, and IBM Cloud and their machine learning service capabilities. Students will learn how to build cloud systems for machine learning, the application characteristics, and develop hands-on experience with programming machine learning applications on these cloud platforms.

    Prerequisites: CSCI-GA 1170, CSCI-GA 2110, and CSCI-GA 2250. Basic understudying of operating systems and computer architecture, ability to program in at least one of c/c++, go, or Python languages. Basic understanding of cloud computing systems.

  • CSCI-GA.3033-​091
    (22511)
    Special Topics: Introduction to Deep Learning Systems Parijat Dube
    Office Hours
    T 7:10-9:00PM ONLINE

    The course will cover several topics related to Deep Learning (DL) systems and their performance.

    Both algorithmic and system related building blocks of DL systems will be covered including DL training algorithms, network architectures, and best practices for performance optimization. We will study hyperparameter choices, scalable distributed DL training, Kubernetes based DL system stack on cloud, tools and benchmarks for performance evaluation of DL systems, transfer learning etc. Emphasis will be on getting working knowledge of tools and techniques for performance evaluation of DL systems. The students will gain practical experience working on different stages of DL life cycle, including model development, testing, and deployment. The assignments will be mostly hands-on involving standard DL frameworks (Tensorflow, Pytorch) and open source technologies.

    Prerequisites: An introductory machine learning course. Knowledge of python is preferred but not necessary.

  • CSCI-GA.3033-​117
    CS-GY.6033-SHAN
    (25935)
    Special Topics: Design and Analysis of Algorithms I Manuel Charlemagne W 9:30-12:00PM 16 Qi Xia 2D Additional information: Open to NYU Shanghai GoLocal students

    Topics vary each semester.

    Prerequisites: Prerequisites vary according to topic.

  • CSCI-GA.3033-​256
    CS-GY.6923-SHAN
    (25936)
    Special Topics: Machine Learning Bruno Abrahao T 1:15-3:15PM 1555 Century 206 Additional information: Open to NYU Shanghai GoLocal students

    Topics vary each semester.

    Prerequisites: Prerequisites vary according to topic.

  • CSCI-GA.3033-​991
    (26050)
    Special Topics: Machine Learning Recitation TBA F 10:45-12:15PM 16 Qi Xia 2D Additional information: Recitation Section SH1. Open to NYU Shanghai GoLocal students

    Topics vary each semester.

    Prerequisites: Prerequisites vary according to topic.

  • CSCI-GA.3033-​992
    (26088)
    Special Topics: Machine Learning Recitation TBA F 12:30-2:00PM 16 Qi Xia 2D Additional information: Recitation Section SH2. Open to NYU Shanghai GoLocal students

    Topics vary each semester.

    Prerequisites: Prerequisites vary according to topic.

  • CSCI-GA.3033-​993
    (26052)
    Special Topics: Machine Learning Recitation TBA F 4:00-5:30PM 16 Qi Xia 2D Additional information: Recitation Section SH3. Open to NYU Shanghai GoLocal students

    Topics vary each semester.

    Prerequisites: Prerequisites vary according to topic.

  • CSCI-GA.3140-​001
    (22513)
    Abstract Interpretation Patrick Cousot
    Office Hours
    M 9:30-11:20AM ONLINE

    Many numerical or symbolic problems are very hard or even undecidable meaning that no computer algorithm can solve them exactly in reasonable time and memory space. This course introduces the latest techniques in abstract interpretation, a powerful framework for automatically calculating approximate solutions of such difficult problems. The main emphasis will be on software verification and automatic analysis with a wide range of applications from compilers to social networks.

    Prerequisites: Some facility with logic, sets, linear algebra, graphs, formal languages, mathematical proofs, and programming languages is expected.

  • CSCI-GA.3812-​001
    (2264)
    Information Technology Projects * Evan Korth W 6:00-9:00PM ONLINE

    This is a capstone course that connects students directly with real-world information technology problems. The goal of this course is to teach the skills needed for success in real-world information technology via a combination of classroom lectures and practical experience with large projects that have been specified by local "clients." The typical clients are primarily companies, but can also be government agencies or nonprofit organizations. Each project lasts for the entire semester and is designed to involve the full software project life cycle. Examples of such projects are development of software to solve a business problem, including specifying requirements, writing and testing prototype code, and writing a final report; and evaluation of commercial software to be purchased to address a business problem, including gathering requirements, designing an architecture to connect the new software with existing systems, and assessing the suitability of available software products.

    Prerequisites: For MS in IS students: Successful completion of CSCI-GA 1170 Fundamental Algorithms and two of the following three courses: CSCI-GA 2262 Data Communications & Networks; CSCI-GA 2250 Operating Systems; CSCI-GA 2433 Database Systems. For MS in CS students: Successful completion of CSCI-GA 1170 Fundamental Algorithms, CSCI-GA 2110 Programming Languages, and CSCI-GA 2250 Operating Systems. PERMISSION OF THE DEPARTMENT REQUIRED.

  • CSCI-GA.3813-​001
    (2849)
    Adv Lab MS * STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3813-​002
    (2265)
    Adv Lab MS * STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3813-​003
    (2266)
    Adv Lab MS * STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3813-​004
    (2267)
    Adv Lab MS * STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3813-​005
    (2268)
    Adv Lab PhD ** STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3813-​006
    (2269)
    Adv Lab PhD ** STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3813-​007
    (2270)
    Adv Lab PhD ** STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3813-​008
    (2271)
    Adv Lab PhD ** STAFF -

    Large-scale programming project or research in cooperation with a faculty member.

    Prerequisites: Permission of the faculty project supervisor and the Director of Graduate Studies.

  • CSCI-GA.3840-​001
    (2272)
    Master's Thesis Research * STAFF -

    Prerequisites: Approval of a faculty adviser and the Director of Graduate Studies for the M.S. programs.

  • CSCI-GA.3850-​001
    (3437)
    PhD Seminar: Cryptography** Yevgeniy Dodis T 12:30-3:15PM ONLINE
    Graduate seminars serve as loosely structured forums for exploring research topics from broad areas of computer science. They are designed to foster dialogue by bringing together faculty and students from a given area and to encourage the exchange of ideas. As such, they bridge the gap between more structured course offerings and informal research meetings. Subject matter varies by section.

    Prerequisites: Permission of the instructor.

  • CSCI-GA.3850-​004
    (2273)
    PhD Seminar: Formal Methods** Thomas Wies R 11:00-12:30PM ONLINE
    Graduate seminars serve as loosely structured forums for exploring research topics from broad areas of computer science. They are designed to foster dialogue by bringing together faculty and students from a given area and to encourage the exchange of ideas. As such, they bridge the gap between more structured course offerings and informal research meetings. Subject matter varies by section.

    Prerequisites: Permission of the instructor.

  • CSCI-GA.3860-​001
    (2274)
    PhD Thesis Research ** STAFF -

    Prerequisites: Permission of the thesis adviser or director of graduate studies for the Ph.D. program.

  • CSCI-GA.3870-​001
    (2846)
    Internship In Computer Science MS* STAFF -

    Participation in a programming project or research project conducted outside the university in a governmental, commercial, or academic setting. Open only to graduate students with permission of the Director of Graduate Studies (DGS). Students must submit a brief written description of their work to the DGS before starting the internship and submit a written summary of their work when it is completed. MS students may repeat this course a maximum of two times. PhD students who wish to take this course more than four times need to request a special permission and provide adequate academic justification.

    Section 1 is for Master's students. Section 2 is for Ph.D. students.

    Prerequisites: Permission of Director of Graduate Studies.

  • CSCI-GA.3870-​002
    (2847)
    Internship in Computer Science PhD* STAFF -

    Participation in a programming project or research project conducted outside the university in a governmental, commercial, or academic setting. Open only to graduate students with permission of the Director of Graduate Studies (DGS). Students must submit a brief written description of their work to the DGS before starting the internship and submit a written summary of their work when it is completed. MS students may repeat this course a maximum of two times. PhD students who wish to take this course more than four times need to request a special permission and provide adequate academic justification.

    Section 1 is for Master's students. Section 2 is for Ph.D. students.

    Prerequisites: Permission of Director of Graduate Studies.

  • MAINT-GA.4747-​001
    (2397)
    Maintenance of Matriculation (MS Students) STAFF -
    Section 1 is for MS students. Section 4 is for non-supported PhD students.

  • MAINT-GA.4747-​004
    (2400)
    Maintenance of Matriculation (non-supported PhD students) STAFF -
    Section 1 is for MS students. Section 4 is for non-supported PhD students.

  • CSCI-UA.0002-​001
    (7609)
    Intro To Computer Programming (No Prior Experience) Shaheer Mohammed Haroon MW 8:00-9:15AM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​002
    (9297)
    Intro To Computer Programming (No Prior Experience) Michell Cardona
    Office Hours
    TR 8:00-9:15AM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​003
    (7610)
    Intro To Computer Programming (No Prior Experience) Craig Kapp
    Office Hours
    MW 9:30-10:45AM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​004
    (7611)
    Intro To Computer Programming (No Prior Experience) David Gochfeld TR 9:30-10:45AM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​005
    (7612)
    Intro To Computer Programming (No Prior Experience) Hasan Aljabbouli MW 12:30-1:45PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​006
    (8680)
    Intro To Computer Programming (No Prior Experience) Saadia Lgarch
    Office Hours
    TR 12:30-1:45PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​007
    (22968)
    Intro To Computer Programming (No Prior Experience) Dakota Hernandez MW 2:00-3:15PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​008
    (9298)
    Intro To Computer Programming (No Prior Experience) Joshua Clayton
    Office Hours
    TR 2:00-3:15PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​009
    (8954)
    Intro To Computer Programming (No Prior Experience) Craig Kapp
    Office Hours
    MW 3:30-4:45PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​010
    (9660)
    Intro To Computer Programming (No Prior Experience) Saadia Lgarch
    Office Hours
    TR 3:30-4:45PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​011
    (10085)
    Intro To Computer Programming (No Prior Experience) Dakota Hernandez R 6:20-8:50PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0002-​012
    (10553)
    Intro To Computer Programming (No Prior Experience) Na'im Tyson
    Office Hours
    W 6:20-8:50PM ONLINE

    An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with any programming experience should consult with the department before registering. Students with any reported score on the Computer Science AP examination cannot enroll in this course; Albert will block them from registering for it. Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with no previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0003-​001
    (9994)
    Intro to Computer Programming (Limited Prior Experience) Hasan Aljabbouli TR 11:00-12:15PM ONLINE

    Introduces object-oriented programming, recursion, and other important concepts to students who already have had some exposure to programming in the context of building applications using Python. Students will design and implement Python programs in a variety of applied areas.

    Prerequisites: Limited programming experience, or any score on the AP Computer Science examination (students will forfeit the AP credit for scores of 4 or 5), or Data Science for Everyone (DS-UA 111). Students who have taken or are taking Introduction to Computer Science (CSCI-UA 101) will not receive credit for this course. Does not count toward the computer science major; serves as the prerequisite for students with some previous programming experience who want to continue into CSCI-UA 101 and pursue the major. Students may not receive credit for both CSCI-UA 2 and CSCI-UA 3.

  • CSCI-UA.0004-​001
    (7613)
    Intro to Web Design & Computer Principles Alvaro Olsen MW 8:00-9:15AM ONLINE
    Introduces students to both the practice of web design and the basic principles of computer science. The practice component covers not only web design but also current graphics and software tools. The principles section includes an overview of hardware and software, the history of computers, and a discussion of the impact of computers and the Internet.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with computing experience should consult with the department before registering.

  • CSCI-UA.0004-​002
    (7614)
    Intro to Web Design & Computer Principles Adam Scher
    Office Hours
    TR 8:00-9:15AM ONLINE
    Introduces students to both the practice of web design and the basic principles of computer science. The practice component covers not only web design but also current graphics and software tools. The principles section includes an overview of hardware and software, the history of computers, and a discussion of the impact of computers and the Internet.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with computing experience should consult with the department before registering.

  • CSCI-UA.0004-​003 Intro to Web Design & Computer Principles CANCELLED - ONLINE
    Introduces students to both the practice of web design and the basic principles of computer science. The practice component covers not only web design but also current graphics and software tools. The principles section includes an overview of hardware and software, the history of computers, and a discussion of the impact of computers and the Internet.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with computing experience should consult with the department before registering.

  • CSCI-UA.0004-​004
    (22970)
    Intro to Web Design & Computer Principles Joshua Clayton
    Office Hours
    MW 12:30-1:45PM ONLINE
    Introduces students to both the practice of web design and the basic principles of computer science. The practice component covers not only web design but also current graphics and software tools. The principles section includes an overview of hardware and software, the history of computers, and a discussion of the impact of computers and the Internet.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with computing experience should consult with the department before registering.

  • CSCI-UA.0004-​005
    (22969)
    Intro to Web Design & Computer Principles Sofya Yuditskaya MW 3:30-4:45PM ONLINE
    Introduces students to both the practice of web design and the basic principles of computer science. The practice component covers not only web design but also current graphics and software tools. The principles section includes an overview of hardware and software, the history of computers, and a discussion of the impact of computers and the Internet.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with computing experience should consult with the department before registering.

  • CSCI-UA.0004-​006
    (9210)
    Intro to Web Design & Computer Principles Jason Aston MW 11:00-12:15PM ONLINE
    Introduces students to both the practice of web design and the basic principles of computer science. The practice component covers not only web design but also current graphics and software tools. The principles section includes an overview of hardware and software, the history of computers, and a discussion of the impact of computers and the Internet.

    Prerequisites: Three years of high school mathematics or equivalent. No prior computing experience is assumed. Students with computing experience should consult with the department before registering.

  • CSCI-UA.0060-​001
    (7615)
    Database Design And Implementation Amos Bloomberg TR 2:00-3:15PM ONLINE

    Introduces principles and applications of database design and working with data. Students use Python as they prepare, analyze, and work with data and use SQL to study the principles and implementations of relational databases. Also covers other database paradigms, such as NoSQL. Students apply these principles to computer systems and their respective fields of interest.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3). Students that have successfully completed Data Management and Analysis (CSCI-UA 479) are NOT eligible to take this course.

  • CSCI-UA.0061-​001
    (8597)
    Web Development And Programming Craig Kapp
    Office Hours
    T 6:20-8:50PM ONLINE

    Provides a practical approach to web technologies and programming. Students build interactive, secure, and powerful web programs. Covers client and server side technologies for the web.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), and Introduction to Web Design and Computer Principles (CSCI-UA 4). Students that have successfully completed Applied Internet Technology (CSCI-UA 467) are NOT eligible to take this course.

  • CSCI-UA.0101-​001
    (7616)
    Intro To Computer Science Nader Nassar
    Office Hours
    MW 8:00-9:15AM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0101-​002
    (7617)
    Intro To Computer Science Hilbert Gene Locklear
    Office Hours
    TR 9:30-10:45AM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0101-​003
    (9299)
    Intro To Computer Science Sana Odeh
    Office Hours
    TR 12:30-1:45PM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0101-​004
    (7618)
    Intro To Computer Science Candido Cabo
    Office Hours
    MW 12:30-1:45PM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0101-​005
    (8682)
    Intro To Computer Science Sana Odeh
    Office Hours
    MW 2:00-3:15PM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0101-​006
    (8927)
    Intro To Computer Science Anasse Bari TR 2:00-3:15PM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0101-​007
    (9661)
    Intro To Computer Science Evan Korth MW 3:30-4:45PM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0101-​008
    (22971)
    Intro To Computer Science Evan Korth TR 3:30-4:45PM ONLINE

    How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.

    Prerequisites: Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3), or a score of 3 on the AP Computer Science exam (scores of 4 and 5 are acceptable prerequisites for students who wish to take CSCI-UA 101 before entering CSCI-UA 102; they will forfeit the AP credit), or departmental permission assessed by placement exam.

  • CSCI-UA.0102-​001
    (7619)
    Data Structures Young Kun Ko
    Office Hours
    MW 9:30-10:45AM ONLINE

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​002
    (7620)
    Data Structures - Recitation Rajan Chaturvedi F 8:00-9:15AM CIWW 101 Additional information: In-person recitation for Section 1

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​003
    (7621)
    Data Structures Anasse Bari TR 9:30-10:45AM ONLINE

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​004 Data Structures - Recitation CANCELLED -

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​005
    (7623)
    Data Structures Joanna Klukowska MW 12:30-1:45PM ONLINE

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​006
    (8956)
    Data Structures - Recitation Rutviben Malaviya R 11:00-12:15PM CIWW 109 Additional information: In-person recitation for Section 5

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​021
    (22972)
    Data Structures - Recitation Abhinav Tamaskar F 8:00-9:15AM ONLINE Additional information: Online Recitation for Section 1

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​040
    (26867)
    Data Structures - Recitation Hongyi Liu F 10:00-11:15AM NYUSH 2602 Additional information: In-Person Recitation for Section 3. Open to NYU Shanghai GoLocal students

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​041
    (22973)
    Data Structures - Recitation Alankrith Krishnan W 3:30-4:45PM ONLINE Additional information: Online Recitation for Section 3

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​042
    (22974)
    Data Structures - Recitation Alankrith Krishnan W 9:30-10:45AM ONLINE Additional information: Online Recitation for Section 3

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​061
    (22975)
    Data Structures - Recitation Abhinav Gupta R 11:00-12:15PM ONLINE Additional information: Online Recitation for Section 5

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​062
    (23964)
    Data Structures - Recitation Rutviben Malaviya T 8:00-9:15AM ONLINE Additional information: Online Recitation for Section 5

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​063
    (23965)
    Data Structures - Recitation Abhinav Gupta R 9:30-10:45AM ONLINE Additional information: Online Recitation for Section 5

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​064
    (23966)
    Data Structures - Recitation Karl Rosenberg T 3:30-4:45PM ONLINE Additional information: Online Recitation for Section 5

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​065
    (23967)
    Data Structures - Recitation Rutvik Shah R 3:30-4:45PM ONLINE Additional information: Online Recitation for Section 5

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0102-​066
    (27146)
    Data Structures - Recitation Samanth Reddy Muni T 9:30-10:45AM ONLINE Additional information: Online Recitation for Section 5

    Use and design of data structures, which organize information in computer memory. Stacks, queues, linked lists, binary trees: how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them. Programming assignments.

    Prerequisites: Introduction to Computer Science (CSCI-UA 101), or a score of 4 or 5 on the AP Computer Science examination.

  • CSCI-UA.0201-​001
    (7624)
    Computer Systems Organization Douglas Moody MW 9:30-10:45AM ONLINE
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​002
    (7625)
    Computer Systems Organization - Recitation Sanjana Jangnure T 9:30-10:45AM 60 Fifth Ave C12 Additional information: In-person recitation for Section 1
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​003
    (9181)
    Computer Systems Organization Allan Gottlieb
    Office Hours
    TR 9:30-10:45AM ONLINE
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​004
    (9182)
    Computer Systems Organization - Recitation Arahant Ashok Kumar M 8:00-9:15AM CIWW 109 Additional information: In-person recitation for Section 3
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​005
    (9427)
    Computer Systems Organization Benjamin Goldberg
    Office Hours
    MW 3:30-4:45PM ONLINE
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​006
    (9428)
    Computer Systems Organization - Recitation Rutvik Shah T 11:00-12:15PM CIWW 109 Additional information: In-Person Recitation for Section 5
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​021
    (22976)
    Computer Systems Organization - Recitation Samasth Ananda T 9:30-10:45AM ONLINE Additional information: Online Recitation for Section 1
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​040
    (26868)
    Computer Systems Organization - Recitation Pengyu Lu F 10:00-11:15AM NYUSH 2810 Additional information: In-Person Recitation for Section 3. Open to NYU Shanghai GoLocal students
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​041
    (9766)
    Computer Systems Organization - Recitation Mengyang Zhang M 8:00-9:15AM ONLINE Additional information: Online Recitation for Section 3
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​061
    (22977)
    Computer Systems Organization - Recitation Aishwarya Rajan T 11:00-12:15PM ONLINE Additional information: Online Recitation for Section 5
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0201-​063
    (26491)
    Computer Systems Organization - Recitation Aishwarya Rajan R 7:45-9:00PM ONLINE Additional information: Online Recitation for Section 5
    Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.

    Prerequisites: Data Structures (CSCI-UA 102).

  • CSCI-UA.0202-​001
    (7626)
    Operating Systems Michael Walfish MW 11:00-12:15PM ONLINE
    Covers the principles and design of operating systems. Topics include process scheduling and synchronization, deadlocks, memory management (including virtual memory), input/output, and file systems. Programming assignments.

    Prerequisites: Computer Systems Organization (CSCI-UA 201).

  • CSCI-UA.0202-​002
    (9422)
    Operating Systems Allan Gottlieb
    Office Hours
    TR 3:30-4:45PM ONLINE
    Covers the principles and design of operating systems. Topics include process scheduling and synchronization, deadlocks, memory management (including virtual memory), input/output, and file systems. Programming assignments.

    Prerequisites: Computer Systems Organization (CSCI-UA 201).

  • CSCI-UA.0310-​001
    (7627)
    Basic Algorithms Victor Shoup TR 12:30-1:45PM ONLINE

    Introduction to the study of algorithms. Presents two main themes: designing appropriate data structures and analyzing the efficiency of the algorithms that use them. Algorithms studied include sorting, searching, graph algorithms, and maintaining dynamic data structures. Homework assignments, not necessarily involving programming.

    Prerequisites: Data Structures (CSCI-UA 102); Discrete Mathematics (MATH-UA 120); and either Calculus I (MATH-UA 121) OR Mathematics for Economics I (MATH-UA 211).

  • CSCI-UA.0310-​002
    (7628)
    Basic Algorithms - Recitation Alex Bienstock W 12:30-1:45PM ONLINE Additional information: Online Recitation for Section 1

    Introduction to the study of algorithms. Presents two main themes: designing appropriate data structures and analyzing the efficiency of the algorithms that use them. Algorithms studied include sorting, searching, graph algorithms, and maintaining dynamic data structures. Homework assignments, not necessarily involving programming.

    Prerequisites: Data Structures (CSCI-UA 102); Discrete Mathematics (MATH-UA 120); and either Calculus I (MATH-UA 121) OR Mathematics for Economics I (MATH-UA 211).

  • CSCI-UA.0310-​003
    (7629)
    Basic Algorithms Alan Siegel MW 2:00-3:15PM ONLINE

    Introduction to the study of algorithms. Presents two main themes: designing appropriate data structures and analyzing the efficiency of the algorithms that use them. Algorithms studied include sorting, searching, graph algorithms, and maintaining dynamic data structures. Homework assignments, not necessarily involving programming.

    Prerequisites: Data Structures (CSCI-UA 102); Discrete Mathematics (MATH-UA 120); and either Calculus I (MATH-UA 121) OR Mathematics for Economics I (MATH-UA 211).

  • CSCI-UA.0310-​004
    (8958)
    Basic Algorithms - Recitation Alan Siegel R 2:00-3:15PM ONLINE Additional information: Online Recitation for Section 3

    Introduction to the study of algorithms. Presents two main themes: designing appropriate data structures and analyzing the efficiency of the algorithms that use them. Algorithms studied include sorting, searching, graph algorithms, and maintaining dynamic data structures. Homework assignments, not necessarily involving programming.

    Prerequisites: Data Structures (CSCI-UA 102); Discrete Mathematics (MATH-UA 120); and either Calculus I (MATH-UA 121) OR Mathematics for Economics I (MATH-UA 211).

  • CSCI-UA.0310-​005
    (22978)
    Basic Algorithms Joel Spencer TR 8:00-9:15AM ONLINE

    Introduction to the study of algorithms. Presents two main themes: designing appropriate data structures and analyzing the efficiency of the algorithms that use them. Algorithms studied include sorting, searching, graph algorithms, and maintaining dynamic data structures. Homework assignments, not necessarily involving programming.

    Prerequisites: Data Structures (CSCI-UA 102); Discrete Mathematics (MATH-UA 120); and either Calculus I (MATH-UA 121) OR Mathematics for Economics I (MATH-UA 211).

  • CSCI-UA.0310-​006
    (22979)
    Basic Algorithms - Recitation Benjamin Jakubowski W 8:00-9:15AM ONLINE Additional information: Online Recitation for Section 5

    Introduction to the study of algorithms. Presents two main themes: designing appropriate data structures and analyzing the efficiency of the algorithms that use them. Algorithms studied include sorting, searching, graph algorithms, and maintaining dynamic data structures. Homework assignments, not necessarily involving programming.

    Prerequisites: Data Structures (CSCI-UA 102); Discrete Mathematics (MATH-UA 120); and either Calculus I (MATH-UA 121) OR Mathematics for Economics I (MATH-UA 211).

  • CSCI-UA.0310-​060
    (26770)
    Basic Algorithms - Recitation Jianyu Zhang F 4:15-5:30PM NYUSH 2906 Additional information: In-Person Recitation for Section 5. Open to NYU Shanghai GoLocal students

    Introduction to the study of algorithms. Presents two main themes: designing appropriate data structures and analyzing the efficiency of the algorithms that use them. Algorithms studied include sorting, searching, graph algorithms, and maintaining dynamic data structures. Homework assignments, not necessarily involving programming.

    Prerequisites: Data Structures (CSCI-UA 102); Discrete Mathematics (MATH-UA 120); and either Calculus I (MATH-UA 121) OR Mathematics for Economics I (MATH-UA 211).

  • CSCI-UA.0330-​001
    MATH-UA.0144
    (9020)
    Introduction to Computer Simulation Charles Peskin TR 11:00-12:15PM CIWW 317
    In this course, students will learn how to do computer simulations of such phenomena as orbits (Kepler problem and N-body problem), epidemic and endemic disease (including evolution in response to the selective pressure of a malaria), musical stringed instruments (piano, guitar, and violin), and traffic flow in a city (with lights, breakdowns, and gridlock at corners). The simulations are based on mathematical models, numerical methods, and Matlab programming techniques that will be taught in class. The use of animations (and sound where appropriate) to present the results of simulations will be emphasized.

    Prerequisites: A grade of C or higher in MATH-UA 121 Calculus I or MATH-UA 212 Math for Economics II (for Economics majors) and PHYS-UA 11 General Physics.

  • CSCI-UA.0330-​002
    (9020)
    Introduction to Computer Simulation TBA F 11:00-12:15PM CIWW 317
    In this course, students will learn how to do computer simulations of such phenomena as orbits (Kepler problem and N-body problem), epidemic and endemic disease (including evolution in response to the selective pressure of a malaria), musical stringed instruments (piano, guitar, and violin), and traffic flow in a city (with lights, breakdowns, and gridlock at corners). The simulations are based on mathematical models, numerical methods, and Matlab programming techniques that will be taught in class. The use of animations (and sound where appropriate) to present the results of simulations will be emphasized.

    Prerequisites: A grade of C or higher in MATH-UA 121 Calculus I or MATH-UA 212 Math for Economics II (for Economics majors) and PHYS-UA 11 General Physics.

  • CSCI-UA.0380-​001
    (8681)
    Topics of General Interest: Drawing on the Web Joshua Clayton
    Office Hours
    TR 9:30-10:45AM ONLINE
    Detailed descriptions available when topics are announced. Typical offerings include Computing in the Humanities and Arts and Introduction to Flash Programming. Does not count toward the computer science major.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0381-​001
    (22980)
    Programming Tools for the Data Scientist Adam Meyers
    Office Hours
    MW 12:30-1:45PM ONLINE

    Lecture and laboratory.  Building applications in Python using a project-based learning approach. Students use Python packages in a variety of applied areas, such as textual analysis and data visualization. Does not count toward the computer science major.

    Prerequisites: Data Science for Everyone (DS-UA 111) or equivalent proficiency in Python, and either Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2) or Introduction to Computer Programming (Limited Prior Experience) (CSCI-UA 3).

  • CSCI-UA.0421-​001
    (7630)
    Numerical Computing Margaret Wright MW 9:30-10:45AM ONLINE

    The need for floating-point arithmetic, the IEEE floating-point standard, and the importance of numerical computing in a wide variety of scientific applications. Fundamental types of numerical algorithms: direct methods (e.g., for systems of linear equations), iterative methods (e.g., for a nonlinear equation), and discretization methods (e.g., for a differential equation). Numerical errors: can you trust your answers? Uses graphics and software packages such as Matlab. Programming assignments.

    Prerequisites: Computer Systems Organization (CSCI-UA 201), either Calculus I (MATH-UA 121) or both of Mathematics for Economics I and II (MATH-UA 211 and 212), and Linear Algebra (MATH-UA 140), or permission of instructor.

  • CSCI-UA.0453-​001
    (9123)
    Theory Of Computation Richard Cole MW 12:30-1:45PM ONLINE

    A mathematical approach to studying topics in computer science, such as regular languages and some of their representations (deterministic finite automata, nondeterministic finite automata, regular expressions) and proof of nonregularity. Context-free languages and pushdown automata; proofs that languages are not context-free. Elements of computability theory. Brief introduction to NP-completeness.

    Prerequisites: Basic Algorithms (CSCI-UA 310) and Computer Systems Organization (CSCI-UA.201)

  • CSCI-UA.0473-​001
    (9300)
    Intro To Machine Learning Andrew Gordon Wilson MW 2:00-3:15PM ONLINE

    This exciting and fast-evolving field of computer science has many recent consumer applications (e.g., Microsoft Kinect, Google Translate, IPhone's Siri, digital camera face detection, Netflix recommendations, Google news) and applications within the sciences and medicine (e.g., predicting protein-protein interactions, species modeling, detecting tumors, personalized medicine). Students learn the theoretical foundations and how to apply machine learning to solve new problems.

    Prerequisites: Data Structures (CSCI-UA.102), Linear Algebra (MATH-UA.140) and  Probability and Statistics (MATH-UA.235). Students may take any of the following courses in place of MATH-UA.235: Theory of Probability (MATH-UA 233), Mathematical Statistics (MATH-UA 234), Honors Theory of Probability (MATH-UA 238) OR Statistics for Business Control and Regression Models (STAT-UB 103)

  • CSCI-UA.0476-​001
    (10054)
    Processing Big Data for Analytics Applications Ann Malavet TR 12:30-1:45PM ONLINE

    Introduces platforms, tools, and architectures that facilitate scalable management and processing of vast quantities of data. Explores open source tools enabling the efficient acquisition, distributed storage, and processing of big data. Provides hands-on experience with distributed processing Apache solutions such as Hadoop MapReduce, HBase, Hive, Impala, Pig, core Spark, Spark SQL, and Spark Streaming. Other Apache big data tools covered are Sqoop, Oozie, Zookeeper, Flume, and Kafka.

    Prerequisites: (CSCI-UA 201) Computer Systems Organization and (CSCI-UA 310) Basic Algorithms. Familiarity with Linux commands and SQL will be helpful but is not required.

  • CSCI-UA.0479-​001
    (22981)
    Data Management and Analysis Joseph Versoza MW 11:00-12:15PM ONLINE

    Extracting, transforming and analyzing data in myriad formats. Using traditional relational
    databases as well as non-relational databases as well as non-relational databases to store, manipulate, and query data. Students write custom programs, create queries, and use data analysis tools and libraries on a wide array of data sets.  Additional topics: data modeling, cloud databases and AP programming.

    Prerequisites: Data Structures (CSCI-UA 102). Students that complete Data Management and Analysis (CSCI-UA 479) with a C or better are not eligible to take Database Design and Implementation (CSCI-UA 60).

  • CSCI-UA.0480-​034
    (9425)
    Special Topics: Applied Internet Technology Joseph Versoza TR 9:30-10:45AM ONLINE
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0480-​042
    (7631)
    Special Topics: Computer Vision Davi Geiger TR 3:30-4:45PM ONLINE
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0480-​051
    (8683)
    Special Topics: Parallel Computing Mohamed Zahran
    Office Hours
    MW 2:00-3:15PM ONLINE
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0480-​057
    (9542)
    Special Topics: Natural Language Processing Adam Meyers
    Office Hours
    TR 9:30-10:45AM ONLINE
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0480-​069
    (9662)
    Special Topics: Agile Software Development and DevOps Amos Bloomberg MW 3:30-4:45PM ONLINE
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0480-​521
    (8959)
    Special Topics: Algorithmic Problem Solving Joanna Klukowska MW 11:00-12:15PM ONLINE
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0480-​522
    (23847)
    Special Topics: Algorithmic Problem Solving Kunal Khatri W 3:30-4:45PM ONLINE Additional information: Online Recitation for Section 480-521
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • CSCI-UA.0480-​523
    (25230)
    Special Topics: Algorithmic Problem Solving Samasth Ananda W 3:30-4:45PM CIWW 202 Additional information: In-Person Recitation for Section 480-521
    Detailed course descriptions are available when advanced topics are announced each semester. Typical offerings include, but are not limited to, Bioinformatics, Building Robots, Computer Graphics, Machine Learning, Network Programming, Computer Vision, and Multimedia for Majors.

    Prerequisites: Topics determine prerequisites.

  • Notice: This webpage is subject to change and will be revised and updated as necessary.

    Nyu Pac Ii Assignment 3 Solution

    Source: https://cs.nyu.edu/dynamic/courses/schedule/?semester=spring_2021

    0 Response to "Nyu Pac Ii Assignment 3 Solution"

    Post a Comment

    Iklan Atas Artikel

    Iklan Tengah Artikel 1

    Iklan Tengah Artikel 2

    Iklan Bawah Artikel