Category Archives: IMA Electives (Legacy Structure – Programming & Data)

Courses that count in IMA’s Programming and Data category

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

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

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 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

Responsible Data Science (DS-UA 202)

The first wave of data science focused on accuracy and efficiency: on what we can do with data. The second wave is about responsibility: what we should and should not do. Accordingly, this technical course tackles the issues of ethics and responsibility in data science, including legal compliance, data quality, algorithmic fairness and diversity, transparency of data and algorithms, privacy, and data protection. An important feature of this course is its holistic treatment of the data science lifecycle, beginning with data discovery and acquisition, through data cleaning, integration, querying, analysis, and result interpretation.

Data Science (Undergraduate)
4 credits – 15 Weeks

Sections (Spring 2022)


DS-UA 202-000 (9950)01/24/2022 – 05/09/2022 Mon,Wed8:00 AM – 9:00 AM (Morning)at Washington SquareInstructed by Wood, George


DS-UA 202-000 (9951)01/24/2022 – 05/09/2022 Thu8:00 AM – 8:00 AM (Morning)at Washington SquareInstructed by

Hand Held: Creative Tools for Phones (ITPG-GT 2068)

“The smartphone is not only the primary site for digital communication and consumption, it also hosts emerging forms of media production. Let’s investigate the potential of the mobile touchscreen as a creative instrument! This is a project based course, and we will explore by creating and testing a series of functioning web-based toys – including drawing apps, character creators, and writing tools. You can expect to sharpen your skills in javascript and design. “

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Spring 2024)


ITPG-GT 2068-000 (14779)01/23/2024 – 04/30/2024 Tue9:00 AM – 12:00 AM (Morning)at Brooklyn CampusInstructed by Bittker, Max

The Body, Everywhere and Here (ITPG-GT 2070)

Today’s internet, made up of mostly text documents and two-dimensional images and videos, is the result of historical limitations in bandwidth, graphics processing and input devices. These limitations have made the internet a place where the mind goes, but the body cannot follow. Recent advances in motion capture devices, graphics processing, machine learning, bandwidth and browsers, however, are paving the way for the body to find its place online. This course will explore embodied interactions in the browser and across networks. Specifically, we’ll explore TensorFlow.js models like PoseNet and BodyPix, and Microsoft Kinect in p5.js and Three.js. Assignments will consider designing engaging embodied experiences for individual and social interactions online. Experience with Node, HTML and JavaScript is helpful but not required. ICM level programming experience is required. The course will have weekly assignments that explore embodied interaction online. Assignments will begin with exploring single points of interaction (i.e. one mouse or one joint), and progress to considering full bodies and multiple bodies in one browser. Students will have a 2-3-week final project with which they will delve more deeply into the subject matter in one piece of work. Students will have readings/watchings focused on embodied and networked user experience. Some influential works that will likely be assigned/discussed are Laurie Anderson’s “Habeas Corpus,” Todd Rose’s “The End of Average,” and Myron Krueger’s “Artificial Reality.” The course examples will be taught in Javascript using web technologies/frameworks. However, students are welcome to work in their preferred medium.

Interactive Telecommunications (Graduate)
2 credits – 8 Weeks

Sections (Fall 2021)


ITPG-GT 2070-000 (22670)09/02/2021 – 10/26/2021 Tue12:00 AM – 2:00 PM (Early afternoon)at Brooklyn CampusInstructed by

Data: Dig It (ITPG-GT 2073)

In this class students learn how to use data. If you can learn to live with uncertainty, you can make something beautiful and true. Students will learn about data as another form of evidence. We will collect our own datasets to learn about challenges and opportunities. We will explore sources of uncertainty, and how imagination and empathy can help uncover ways that data can lead to insight or alternatively, lead one astray. We cover basic stats principles to show how even properly collected data may lead you astray; we cover design principles, we introduce technical tools for visualizing data. Students collect their own data set, share reactions to assigned readings, and find their own examples of data usage that are positive or misguided.

Interactive Telecommunications (Graduate)
1 credits – 1 Day

Listening Machines (ITPG-GT 2043)

Credits: 2
Duration: 6 Weeks
Dates: Mon

This course will provide students with an introduction to the area of machine listening. Machine listening is the general field studying algorithms and systems for audio understanding by machine. It deals exclusively with general audio as opposed to speech recognition. The most basic goal of all machine listening systems is to reliably recognize and react to very specific sounds. Over the course of the semester, we will create our own unique machine listening systems that provide us with new and interesting ways to interact with our projects. We will use live coding and real-time data visualization to demystify some of the more daunting underlying topics like digital signal analysis, music information retrieval, and machine learning.

Interactive Telecommunications (Graduate)
2 credits – 6 Weeks

Seeing Machines (ITPG-GT 2039)

A programming course where we’ll explore various techniques and solutions for tracking and sensing people or objects in space. Students will get familiar with the terminology and algorithms behind many sensing topics such as computer vision, depth cameras, positional tracking, coordinate mapping, machine learning, and pattern recognition. As these subjects are explored, we will also dig into communication, and how this information can be transmitted from one tool to another, for example using OSC, Spout/Syphon, MIDI, DMX/ArtNet. The goal being to use the right tool for the job and not limit ourselves to a particular piece of software. The first classes will consist of theory and in-class exercises covering these techniques, and remaining classes will be dedicated to a special project, which should use a combination of what we’ve learned to create a new work. Students will work in small groups to build this special project, but we’ll review proposals, milestones, and work in progress collectively on every class, encouraging discussion and collaboration.

Interactive Telecommunications (Graduate)
4 credits – 11 Weeks

Machine Learning for the Web (ITPG-GT 2465)

Credits: 4
Duration: 14 Weeks
Dates: Fri

Libraries like TensorFlow.js and ml5.js unlocked new opportunities for interactive machine learning projects in the browser. The goal of this class is to learn and understand common machine learning techniques and apply them to generate creative outputs in the browser. This class will start with running models in the browser using high-level APIs from ml5.js, as well as explore the Layer APIs from TensorFlow.js to train models using custom data. This class will also cover preparing the dataset for training models. At the completion of this course, students will have a better understanding of a few machine learning models, how do they work, how to train these models, and their use case to creative projects. Students will also be able to create interactive ML web applications with pre-trained models or their own models. Prospective students are expected to have taken an ICM (Introduction to Computational Media) course, or have an equivalent programming experience with JavaScript, HTML, CSS.

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Computational Approaches to Narrative (ITPG-GT 2198)

Beginning with the release of Crowther and Woods’ “Colossal Cave Adventure” in 1977, the potential and unique affordances of computation as a means of storytelling have become more and more apparent. Combining approaches from literary theory, anthropology, computational creativity and game design, this class considers how narrative structure can be represented as data and enacted through computation, and invites students to implement practical prototypes of their own interactive and procedurally-generated narratives using a variety of technologies. Topics include (but are not limited to) hypertext fiction, “choose your own adventure”-style branching narratives, text adventures, visual novels, story generation from grammars and agent-based simulations. Students will complete a series of bite-size weekly assignments to present for in-class critique. Each session will also feature lectures, class discussion, and technical tutorials.

Interactive Telecommunications (Graduate)
4 credits – 15 Weeks

Sections (Spring 2025)


ITPG-GT 2198-000 (11387)01/21/2025 – 05/06/2025 Tue6:00 PM – 8:00 PM (Evening)at Brooklyn CampusInstructed by Parrish, Allison

Hello, Computer: Unconventional Uses of Voice Technology (ITPG-GT 2988)

Computers are able to understand human speech better than ever before, but voice technology is still mostly used for practical (and boring!) purposes, like playing music, smart home control, or customer service phone trees. What else can we experience in the very weird, yet intuitive act of talking out loud to machines? The goal of this course is to give students the technical ability to imagine and build more creative uses of voice technology. Students will be encouraged to examine and play with the ways in which this emerging field is still broken and strange. We will develop interactions, performances, artworks or apps exploring the unique experience of human and computer conversation. Students will learn how to use text-to-speech and speech-to-text technologies, voice assistant devices, generative text techniques, open speech APIs, Node.js, and conversational UI design. There will be weekly assignments leading up to a final project. ICM or comparable programming experience required.

Interactive Telecommunications (Graduate)
2 credits – 8 Weeks

Sections (Fall 2021)


ITPG-GT 2988-000 (22644)09/02/2021 – 10/26/2021 Thu3:00 PM – 6:00 PM (Late afternoon)at Brooklyn CampusInstructed by

Faking the News (ITPG-GT 2151)

“Lies. Hoaxes. Conspiracies. Rumors. Propaganda. Fake news is an age-old phenomenon—but the internet is making targeted misinformation cheap and scalable. That is affecting politics, public opinion, and the everyday experience of the internet. In this 6-week class, we will explore the cutting edge of “fake news” by engaging in ethical research and fabrication. Participants will manufacture and observe a controlled “fake news” event. We will experiment with command-line tools for doctoring video, neural nets and deepfakes to fabricate reality, Twitter bots, behavioral psychology, and the dark underbelly of the ad economy.”

Interactive Telecommunications (Graduate)
2 credits – 5 Weeks

Sections (Fall 2020)


ITPG-GT 2151-000 (22632)09/09/2020 – 10/12/2020 Mon6:00 PM – 9:00 PM (Evening)at Brooklyn CampusInstructed by Moskowitz, Benjamin

The Code of Music (ITPG-GT 2653)

Credits: 4
Duration: 15 Weeks
Dates: Tue

This course explores how sound, code, and interaction can merge to create musical experiences that invite listeners to shape the music, not just hear it. Students create a series of browser-based musical systems that respond to users, incorporate randomness, and draw patterns from existing music. We begin by creating a series of audio-visual interfaces—an instrument, a score/mixer, and a loop-based piece—that invite deeper listening through play. Incorporating elements of sound and music production, these projects turn tools normally hidden in the studio into interactive spaces where listeners, performers, and audiences can engage with music in new ways. From there, we dive into the inner workings of music, examining how sound organizes into rhythm, melody, timbre, and harmony, and how these patterns can be expressed in code. Students design interactive studies on each musical element, reimagining tools like drum machines, sequencers, and synthesizers into experimental, playful, or educational systems that incorporate creative coding, machine listening, and machine learning techniques. Classes combine lectures, coding tutorials, listening sessions, design exercises, and discussions of existing interfaces. Throughout, students bring their own musical sensibilities into the work while developing their creative coding skills using p5.js and Tone.js. Students regularly share work and receive feedback, using input from the class to develop and iterate on their ideas. The semester culminates in an interactive or generative piece that builds on the semester’s studies, documented through sketches, demos, and code. Prerequisites: Introduction to Computational Media (ICM) or equivalent programming experience is required. About Luisa Hors: https://www.luisapereira.net/

Interactive Telecommunications (Graduate)
4 credits – 15 Weeks

Understanding Networks (ITPG-GT 2808)

“Interactive technologies seldom stand alone. They exist in networks, and they facilitate networked connections between people. Designing technologies for communications requires an understanding of networks. This course is a foundation in how networks work. Through weekly readings and class discussions and a series of short hands-on projects, students gain an understanding of network topologies, how the elements of a network are connected and addressed, what protocols hold them together, and what dynamics arise in networked environments. This class is intended to supplement the many network-centric classes at ITP. It is broad survey, both of contemporary thinking about networks, and of current technologies and methods used in creating them. Prerequisites: Students should have an understanding of basic programming. This class can be taken at the same time as, or after, Intro to Computational Media or an equivalent intro to programming. Some, though not all, production work in the class requires basic programming. There is a significant reading component to this class as well. Learning Objectives In this class, you will learn about how communications networks are structured, and you will learn how to examine those structures using software tools. By the end of this class, you should have a working knowledge of the following concepts: * The basics of network theory, some history of the internet and the organizations and stakeholders involved in its creation and maintenance * The Open Systems Interconnect (OSI) model and standard internet protocols such as Internet Protocol (IP), Transmission Control Protocol (TCP) , Universal Datagram Protocol (UDP), and Hypertext Transport Protocol (HTTP).  * Network addressing, private and public IP addresses * What hosts, servers, and clients are and a few ways in which they communicate * What a command line interface  (CLI) is and how to use the tools available in one * The basics of internet security * How telecommunications networks are similar to other infrastructural networks, like power and transportation, and how they are different.”

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Fall 2025)


ITPG-GT 2808-000 (11347)09/02/2025 – 12/09/2025 Tue9:00 AM – 12:00 AM (Morning)at Brooklyn CampusInstructed by Igoe, Thomas

The Neural Aesthetic (ITPG-GT 2994)

Making words and images public used to be difficult, complex, and expensive. Now it’s not. That change, simple but fundamental, is transforming the media landscape. A publisher used to be required if you wanted to put material out into the public sphere; now anyone with a keyboard or a camera can circulate their material globally. This change in the economics of communication has opened the floodgates to a massive increase in the number and variety of participants creating and circulating media. This change, enormous and permanent, is driving several profound effects in the media landscape today. This course covers the transition from a world populated by professional media makers and a silent public to one where anyone who has a phone or a computer can be both producer and consumer. This change, brought about by the technological and economic characteristics of digital data and networks, is upending old industries — newspapers, music publishing, moviemaking — faster than new systems can be put in place. The result is chaos and experimentation as new ways of participating in the previously sparse media landscape are appearing everywhere. This course covers the history and economics of the previous media landscape, the design of digital networks that upend those historical systems, and new modes of participation from weblogs and wikis and Twitter to fan fiction and lolcats. The course centers on readings and field observation, with three papers due during the course of the term.

Interactive Telecommunications (Graduate)
4 credits – 15 Weeks

Sections (Fall 2021)


ITPG-GT 2994-000 (23993)09/02/2021 – 12/14/2021 Wed12:00 AM – 2:00 PM (Early afternoon)at Brooklyn CampusInstructed by

Reading and Writing Electronic Text (ITPG-GT 2778)

Credits: 4
Duration: 14 Weeks
Dates: Fri

This course introduces the Python programming language as a tool for reading and writing digital text. This course is specifically geared to serve as a general-purpose introduction to programming in Python, but will be of special interest to students interested in language and computer-generated text. Among the topics we’ll discuss are: the history and aesthetics of computer-generated writing in literature and the arts; computational linguistics; ethics and authorship in the context of computer-mediated language; poetic structure and sound symbolism; performance and publishing. Programming topics covered include: data structures (lists, sets, dictionaries); strategies for making code reusable (functions and modules); natural language processing; grammar-based text generation; predictive models of text (Markov chains and neural networks); and working with structured data and text corpora. Weekly programming exercises and readings culminate in a final project. Prerequisites: Introduction to Computational Media or equivalent programming experience. Prerequisite: ICM

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Live Web (ITPG-GT 2734)

Credits: 4
Duration: 14 Weeks
Dates: Mon

The World Wide Web has grown up to be a great platform for asynchronous communication such as email and message boards. More recently this has extended into media posting and sharing. With the rise of broadband, more powerful computers and the prevalence networked media devices, synchronous communications have become more viable. Streaming media, audio and video conference rooms and text based chat give us the ability to create content and services tailored to a live audience. During this course, we focus on the types of content and interaction that can be supported through these technologies as well as explore new concepts around participation with a live distributed audience. In this course, we look at new and existing platforms for live communication on the web. We leverage existing services and use Flash, PHP, AJAX and possibly Processing/Java to develop our own solutions. Experience with ActionScript/Flash, PHP/MySQL and HTML/ JavaScript are helpful but not required.

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks