Object Oriented Programming (CSCI-UA 470)

Object-oriented programming has emerged as a significant software development methodology. This course introduces the important concepts of object-oriented design and languages, including code reuse, data abstraction, inheritance, and dynamic overloading. It covers in depth those features of Java and C that support object-oriented programming and gives an overview of other object-oriented languages of interest. Significant programming assignments, stressing object-oriented design.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Human Computer Interaction (CS-UY 4543)

Credits: 3
Duration: 15 Weeks
Dates: Wed
Credits: 3
Duration: 15 Weeks
Dates: Wed

Designing a successful interactive experience or software system takes more than technical savvy and vision–it also requires a deep understanding of how to serve people’s needs and desires through the experience of the system, and knowledge about how to weave this understanding into the development process. This course introduces key topics and methods for creating and evaluating human-computer interfaces/digital user experiences. Students apply these practices to a system of their choosing (I encourage application to prototype systems that students are currently working on in other contexts, at any stage of development). The course builds toward a final write-up and presentation in which students detail how they tackled HCI/user experience design and evaluation of their system, and results from their investigations. Some experience creating/participating in the production of interactive experiences/software is recommended.

Computer Science (Undergraduate)
3 credits – 15 Weeks

Introduction to Computer Programming (No Prior Experience) (CSCI-UA 2)

Prerequisite: Three years of high school mathematics or equivalent. No prior computer experience assumed. Students with any programming experience should consult with the computer science department before registering. Students who have taken or are taking CSCI-UA 101 will not receive credit for this course. Note: This course is not intended for computer science majors, although it is a prerequisite for students with no previous programming experience who want to continue in CSCI-UA 101. Offered every semester. 4 points. 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.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Spring 2022)


CSCI-UA 2-000 (7802)01/24/2022 – 05/09/2022 Mon,Wed8:00 AM – 9:00 AM (Morning)at Washington SquareInstructed by Steigman, Amanda


CSCI-UA 2-000 (9106)01/24/2022 – 05/09/2022 Tue,Thu8:00 AM – 9:00 AM (Morning)at Washington SquareInstructed by Liao, Susan


CSCI-UA 2-000 (7803)01/24/2022 – 05/09/2022 Mon,Wed9:00 AM – 10:00 AM (Morning)at Washington SquareInstructed by Kapp, Craig · Huh, Jung · Rozin, Yonatan


CSCI-UA 2-000 (7804)01/24/2022 – 05/09/2022 Tue,Thu9:00 AM – 10:00 AM (Morning)at Washington SquareInstructed by Kapp, Craig


CSCI-UA 2-000 (7805)01/24/2022 – 05/09/2022 Mon,Wed11:00 AM – 12:00 AM (Morning)at Washington SquareInstructed by Zeidenberg, Matthew


CSCI-UA 2-000 (8686)01/24/2022 – 05/09/2022 Tue,Thu11:00 AM – 12:00 AM (Morning)at Washington SquareInstructed by Lizardo, Julie


CSCI-UA 2-000 (9902)01/24/2022 – 05/09/2022 Mon,Wed12:00 AM – 1:00 PM (Early afternoon)at Washington SquareInstructed by Prager, David


CSCI-UA 2-000 (9107)01/24/2022 – 05/09/2022 Tue,Thu12:00 AM – 1:00 PM (Early afternoon)at Washington SquareInstructed by Clayton, Joshua


CSCI-UA 2-000 (8904)01/24/2022 – 05/09/2022 Mon,Wed2:00 PM – 3:00 PM (Early afternoon)at Washington SquareInstructed by Zhao, Emily


CSCI-UA 2-000 (9324)01/24/2022 – 05/09/2022 Tue,Thu2:00 PM – 3:00 PM (Early afternoon)at Washington SquareInstructed by Lgarch, Saadia


CSCI-UA 2-000 (9528)01/24/2022 – 05/09/2022 Mon,Wed3:00 PM – 4:00 PM (Late afternoon)at Washington SquareInstructed by Zeidenberg, Matthew


CSCI-UA 2-000 (9725)01/24/2022 – 05/09/2022 Tue,Thu4:00 PM – 6:00 PM (Late afternoon)at Washington SquareInstructed by Tyson, Na’’im


CSCI-UA 2-000 (20825)01/24/2022 – 05/09/2022 Tue,Thu6:00 PM – 7:00 PM (Evening)at Washington SquareInstructed by Cardona, Michell

Data Management and Analysis (CSCI-UA 479)

Extracting, transforming and analyzing data in myriad formats. Using traditional relational databases as well as non-relational databases to store, manipulate, and query data. Students will learn how to work with data by writing custom programs, creating queries, and using current data analysis tools and libraries… all on a wide array of data sets. Additional related topics will be covered, such as data modeling, cloud databases, and API programming.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Fall 2021)


CSCI-UA 479-000 (21440)09/02/2021 – 12/14/2021 Mon,Wed11:00 AM – 12:00 AM (Morning)at Washington SquareInstructed by Versoza, Joseph

Applied Internet Technology (CSCI-UA 467)

Students that successfully complete CSCI-UA 467 Applied Internet Technology are not eligible to take CSCI-UA 61 Web Development and Programming. Applied Internet Technology is a practical introduction to creating modern web applications. It covers full-stack (that is, every aspect of building a database driven web application: server programming, database implementation, frontend markup, styling and interactivity) web development. It includes topics such as database and data model design, web application architecture, separation of logic and presentation, handling user input and processing form data, managing asynchronous processes, strategies for creating real-time web applications, and handling client-side interactivity. Students will use current server and client-side web frameworks and libraries to build dynamic, data-driven sites. Various applications to support development will also be introduced, such as version control, static analysis tools, and build systems.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Spring 2022)


CSCI-UA 467-000 (20859)01/24/2022 – 05/09/2022 Mon,Wed12:00 AM – 1:00 PM (Early afternoon)at Washington SquareInstructed by Versoza, Joseph · Wu, Haodong


CSCI-UA 467-000 (20860)01/24/2022 – 05/09/2022 Tue,Thu9:00 AM – 10:00 AM (Morning)at Washington SquareInstructed by Versoza, Joseph · Ngo, Yona · Wu, Haodong

Application Security (CS-GY 9163)

Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu
Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu
Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu,Tue

This course addresses the design and implementation of secure applications. Concentration is on writing software programs that make it difficult for intruders to exploit security holes. The course emphasizes writing secure distributed programs in Java. The security ramifications of class, field and method visibility are emphasized. | Knowledge of Information, Security and Privacy equivalent to CS-GY 6813. Prerequisite: Graduate standing

Computer Science (Graduate)
3 credits – 15 Weeks

Applied Cryptography (CS-GY 6903)

Credits: 3
Duration: 15 Weeks
Dates: Wed
Credits: 3
Duration: 15 Weeks
Dates: Wed
Credits: 3
Duration: 15 Weeks
Dates: Wed,Tue
Credits: 3
Duration: 15 Weeks
Dates: Wed,Tue

This course examines Modern Cryptography from a both theoretical and applied perspective, with emphasis on “provable security” and “application case studies”. The course looks particularly at cryptographic primitives that are building blocks of various cryptographic applications. The course studies notions of security for a given cryptographic primitive, its various constructions and respective security analysis based on the security notion. The cryptographic primitives covered include pseudorandom functions, symmetric encryption (block ciphers), hash functions and random oracles, message authentication codes, asymmetric encryption, digital signatures and authenticated key exchange. The course covers how to build provably secure cryptographic protocols (e.g., secure message transmission, identification schemes, secure function evaluation, etc.), and various number-theoretic assumptions upon which cryptography is based. Also covered: implementation issues (e.g., key lengths, key management, standards, etc.) and, as application case studies, a number of real-life scenarios currently using solutions from modern cryptography. | Prerequisite: Graduate standing.

Computer Science (Graduate)
3 credits – 15 Weeks

Machine Learning (CS-GY 6923)

Credits: 3
Duration: 15 Weeks
Dates: Wed
Credits: 3
Duration: 15 Weeks
Dates: Wed
Credits: 3
Duration: 15 Weeks
Dates: Wed

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

Computer Science (Graduate)
3 credits – 15 Weeks

Game Design (CS-GY 6553)

Credits: 3
Duration: 15 Weeks
Dates: Wed

This course is about experimental game design. Design in this context pertains to every aspect of the game, and these can be broadly characterized as the game system, control, visuals, audio, and resulting theme. We will explore these aspects through the creation of a few very focused game prototypes using a variety of contemporary game engines and frameworks, high-level programming languages, and physical materials. This will allow us to obtain a better understanding of what makes games appealing, and how game mechanics, systems, and a variety of player experiences can be designed and iteratively improved by means of rapid prototyping and play-testing. The course combines the technology, design, and philosophy in support of game creation, as well as the real-world implementation and design challenges faced by practicing game designers. Students will learn design guidelines and principles by which games can be conceived, prototyped, and fully developed within a one-semester course, and will create a game from start to finish. The course is a lot of (team)work, but it’s also a lot of fun. Programming skills are helpful, but not a hard requirement. Artistic skills, or a willingness to learn them are a plus. | Prerequisite: (Graduate Standing AND CS-GY 6533) for SoE students OR (OART-UT 1600 and OART-UT 1605) for Game Center MFA students OR instructor permission.

Computer Science (Graduate)
3 credits – 15 Weeks

Big Data (CS-GY 6513)

Credits: 3
Duration: 15 Weeks
Dates: Wed
Credits: 3
Duration: 15 Weeks
Dates: Wed
Credits: 3
Duration: 15 Weeks
Dates: Wed

Big Data requires the storage, organization, and processing of data at a scale and efficiency that go well beyond the capabilities of conventional information technologies. In this course, we will study the state of art in big data management: we will learn about algorithms, techniques and tools needed to support big data processing. In addition, we will examine real applications that require massive data analysis and how they can be implemented on Big Data platforms. The course will consist of lectures based both on textbook material and scientific papers. It will include programming assignments that will provide students with hands-on experience on building data-intensive applications using existing Big Data platforms, including Amazon AWS. Besides lectures given by the instructor, we will also have guest lectures by experts in some of the topics we will cover. Students should have experience in programming: Java, C, C , Python, or similar languages, equivalent to two introductory courses in programming, such as “Introduction to Programming” and “Data Structures and Algorithms. | Knowledge of Python. Prerequisite: Graduate Standing.

Computer Science (Graduate)
3 credits – 15 Weeks

Computer Vision (CS-GY 6643)

Credits: 3
Duration: 15 Weeks
Dates: Thu

An important goal of artificial intelligence (AI) is to equip computers with the capability of interpreting visual inputs. Computer vision is an area in AI that deals with the construction of explicit, meaningful descriptions of physical objects from images. It includes as parts many techniques from image processing, pattern recognition, geometric modeling, and cognitive processing. This course introduces students to the fundamental concepts and techniques in computer vision. | Knowledge of Data Structures and Algorithms, proficiency in programming, and familiarity with matrix arithmetic. Prerequisites: Graduate standing.

Computer Science (Graduate)
3 credits – 15 Weeks

Computer Networking (CS-GY 6843)

Credits: 3
Duration: 15 Weeks
Dates: Mon
Credits: 3
Duration: 15 Weeks
Dates: Mon,Sat
Credits: 3
Duration: 15 Weeks
Dates: Mon,Sat
Credits: 3
Duration: 15 Weeks
Dates: Mon,Sat,Wed

This course takes a top-down approach to computer networking. After an overview of computer networks and the Internet, the course covers the application layer, transport layer, network layer and link layers. Topics at the application layer include client-server architectures, P2P architectures, DNS and HTTP and Web applications. Topics at the transport layer include multiplexing, connectionless transport and UDP, principles or reliable data transfer, connection-oriented transport and TCP and TCP congestion control. Topics at the network layer include forwarding, router architecture, the IP protocol and routing protocols including OSPF and BGP. Topics at the link layer include multiple-access protocols, ALOHA, CSMA/CD, Ethernet, CSMA/CA, wireless 802.11 networks and linklayer switches. The course includes simple quantitative delay and throughput modeling, socket programming and network application development and Ethereal labs. | Knowledge of Python and/or C. Prerequisite: Graduate standing.

Computer Science (Graduate)
3 credits – 15 Weeks

Artificial Intelligence I (CS-GY 6613)

Credits: 3
Duration: 15 Weeks
Dates: Fri
Credits: 3
Duration: 15 Weeks
Dates: Fri

Artificial Intelligence (AI) is an important topic in computer science and offers many diversified applications. It addresses one of the ultimate puzzles humans are trying to solve: How is it possible for a slow, tiny brain, whether biological or electronic, to perceive, understand, predict and manipulate a world far larger and more complicated than itself? And how do people create a machine (or computer) with those properties? To that end, AI researchers try to understand how seeing, learning, remembering and reasoning can, or should, be done. This course introduces students to the many AI concepts and techniques. | Knowledge of Data Structures and Algorithms. Prerequisite: Graduate standing.

Computer Science (Graduate)
3 credits – 15 Weeks

Big Ideas: Artificial Intelligence (CSCI-UA 74)

This course provides a high-level overview of the key ideas and technologies that lead to revolutionary changes in Artificial Intelligence and to the explosive growth in practical applications of AI. Taught by a team of NYU’s top experts in artificial intelligence lead by the Turing award winner Yann LeCun, the course will introduce students to a range of topics in fundamentals of AI and its key sub-areas including machine learning, natural language processing, computer vision as well as its applications in different domains.

Computer Science (Undergraduate)
2 credits – 7 Weeks

Sections (Spring 2021)


CSCI-UA 74-000 (22982)03/21/2021 – 05/10/2021 Tue6:00 PM – 8:00 PM (Evening)at Washington SquareInstructed by Lecun, Yann · Zorin, Denis

Programming Tools for the Data Scientist (CSCI-UA 381)

This course focuses on building applications in Python using a project-based learning approach. Students will design projects using important Python packages in a variety of applied areas such as textual analysis, data visualization, and others.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Spring 2021)


CSCI-UA 381-000 (22980)01/28/2021 – 05/10/2021 Mon,Wed12:00 AM – 1:00 PM (Early afternoon)at Washington SquareInstructed by Meyers, Adam

Intro to Computer Science (CSCI-UA 101)

Students learn how to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through programming projects in a high level programming language. CSCI-UA 101 is intended as a first course for computer science majors, and for students of other scientific disciplines. Programming assignments.

Computer Science (Undergraduate)
4 credits – 15 Weeks

Sections (Spring 2022)


CSCI-UA 101-000 (7809)01/24/2022 – 05/09/2022 Mon,Wed8:00 AM – 9:00 AM (Morning)at Washington SquareInstructed by Nassar, Nader


CSCI-UA 101-000 (7810)01/24/2022 – 05/09/2022 Tue,Thu8:00 AM – 9:00 AM (Morning)at Washington SquareInstructed by Ataman, Duygu


CSCI-UA 101-000 (9108)01/24/2022 – 05/09/2022 Tue,Thu11:00 AM – 12:00 AM (Morning)at Washington SquareInstructed by Bari, Anasse · Davidson, Christopher


CSCI-UA 101-000 (7811)01/24/2022 – 05/09/2022 Mon,Wed12:00 AM – 1:00 PM (Early afternoon)at Washington SquareInstructed by Cabo, Candido


CSCI-UA 101-000 (8688)01/24/2022 – 05/09/2022 Tue,Thu12:00 AM – 1:00 PM (Early afternoon)at Washington SquareInstructed by Kayar, Gizem


CSCI-UA 101-000 (8882)01/24/2022 – 05/09/2022 Mon,Wed2:00 PM – 3:00 PM (Early afternoon)at Washington SquareInstructed by Locklear, Hilbert


CSCI-UA 101-000 (9325)01/24/2022 – 05/09/2022 Tue,Thu2:00 PM – 3:00 PM (Early afternoon)at Washington SquareInstructed by Bloomberg, Amos


CSCI-UA 101-000 (9905)01/24/2022 – 05/09/2022 Mon,Wed3:00 PM – 4:00 PM (Late afternoon)at Washington SquareInstructed by Locklear, Hilbert


CSCI-UA 101-000 (20827)01/24/2022 – 05/09/2022 Tue,Thu3:00 PM – 4:00 PM (Late afternoon)at Washington SquareInstructed by Ataman, Duygu


CSCI-UA 101-000 (26001)01/24/2022 – 05/09/2022 Mon,Wed11:00 AM – 12:00 AM (Morning)at Washington SquareInstructed by Kayar, Gizem

Software Engineering (CS-UY 4513)

Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu
Credits: 3
Duration: 15 Weeks
Dates: Tue,Thu

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

Computer Science (Undergraduate)
3 credits – 15 Weeks

Game Development Studio I (CS-UY 3233)

This class introduces the principles of 2D and 3D computer game design. Students learn about the range of game types and understand their conceptual building blocks. Students complete a structured sequence of assignments towards the design for a new game.

Computer Science (Undergraduate)
3 credits – 14 Weeks

Sections (Fall 2025)


CS-UY 3233-000 (15783)09/02/2025 – 12/11/2025 Mon,Wed12:00 AM – 1:00 PM (Early afternoon)at Brooklyn CampusInstructed by Garcia, Diego