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

Courses that count in IMA’s Programming and Data category

Probability and Statistics for Engineers (MA-UY 2224)

Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed

An introductory course to probability and statistics. It affords the student some acquaintance with both probability and statistics in a single term. Topics in Probability include mathematical treatment of chance; combinatorics; binomial, Poisson, and Gaussian distributions; the Central Limit Theorem and the normal approximation. Topics in Statistics include sampling distributions of sample mean and sample variance; normal, t-, and Chi-square distributions; confidence intervals; testing of hypotheses; least squares regression model. Applications to scientific, industrial, and financial data are integrated into the course.NOTE: Not open to math majors or students who have taken or will take MA-UY 2054 or MA-UY 3014 or MA-UY 3514 or ECE-UY 2233. | Prerequisite: MA-UY 1124, MA-UY1424, or MA-UY 1132 or MATH-UH 1020 or MATH-UH 1021 or MATH-SHU 151

Mathematics (Undergraduate)
4 credits – 15 Weeks

Computational Text from A to Z (ITPG-GT 2536)

This course focuses on programming strategies and techniques behind procedural analysis and generation of text-based data. We’ll explore topics ranging from evaluating text according to its statistical properties to the automated production of text with probabilistic methods to text visualization. Students will learn server-side and client-side JavaScript programming and develop projects that can be shared and interacted with online. This fall the course will also explore topics in machine learning as related to text. There will be weekly homework assignments as well as a final project.

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Fall 2025)


ITPG-GT 2536-000 (11345)09/02/2025 – 12/09/2025 Tue12:00 AM – 2:00 PM (Early afternoon)at Brooklyn CampusInstructed by Shiffman, Daniel

Digital Logic (CENG-SHU 201)

This module provides a rigorous introduction to topics in digital logic design. Introductory topics include: classification of digital systems, number systems and binary arithmetic, error detection and correction, and switching algebra. Combinational design analysis and synthesis topics include: logic function optimization, arithmetic units such as adders and subtractors, and control units such as decoders and multiplexers. In-depth discussions on memory elements such as various types of latches and flip-flops, finite state machine analysis and design, random access memories, FPGAs, and high-level hardware description language programming such as VHDL or Verilog. Timing hazards, both static and dynamic, programmable logic devices, PLA, PAL and FPGA will also be covered. Prerequisite: Intro to Programming or Intro to Computer Science or placement test or interaction lab. Fulfillment: Core Curriculum: Science Experimental Discovery in the Natural World Courses ; Major: CS Electives, CE Required, EE Required.

Computer Engineering (Undergraduate)
4 credits – 15 Weeks

Advanced Coding Workshop (MCC-UE 1154)

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

Project-based course designed to guide students through three advanced projects: data visualization with APIs, games that communicate specific experiences, and cooperative networked interactions where two users work together to achieve a common goal. Each project is split into 3-4 weeks, so students have ample time to thoughtfully design a program, think through the technical architecture, develop it, and iterate based on in-class feedback.

Media, Culture & Communication (Undergraduate)
4 credits – 15 Weeks

Code Lab 2: Code Literacy (GAMES-GT 303)

Code Lab 2 is a continuation in exploring how to craft game with programming. In Code Lab, we examined how to make games in openFrameworks, starting from scratch. This class will be a workshop, building off of that knowledge, but focusing on learning how to work with code that is already written. Students will learn to work with a new Integrated Development Environment (IDE), eclipse, learn to work with a version control system, and work in depth with Java and Processing. Over the course of the class, students will be given several versions of classic games (Pong, Space Invaders, Asteroids, etc.) that are incomplete or have an obvious bug. They will learn to read the code, identify how to correct the issue with the game, and then eventually modify it to make their own new version of the game. These skills are essential to work with code from other developers, whether they are members of the same team, open source projects, or examples provided in tutorials and readings.

Game Design (Graduate)
4 credits – 14 Weeks

Sections (Fall 2024)


GAMES-GT 303-000 (21771)09/03/2024 – 12/12/2024 Fri11:00 AM – 1:00 PM (Morning)at Brooklyn CampusInstructed by Parker, Matthew

Programming with Data (ITPG-GT 3049)

Credits: 4
Duration: 14 Weeks
Dates: Mon

Data is the means by which we turn experience into something that can be published, compared, and analyzed. Data can facilitate the production of new knowledge about the world—but it can also be used as a method of control and exploitation. As such, the ability to understand and work with data is indispensable both for those who want to uncover truth, and those who want to hold power to account. This intensive course serves as an introduction to essential computational tools and techniques for working with data. The course is designed for artists, designers, and researchers in the humanities who have no previous programming experience. Covered topics include: the Python programming language, Jupyter Notebook, data formats, regular expressions, Pandas, web scraping, relational database concepts, simple data visualization and data-driven text generation. Weekly technical tutorials and short readings culminate in a self-directed final project.

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Re-decentralizing the Internet (ITPG-GT 3032)

Decentralization has become a buzzword in the technology space, and there is much more to decentralized technology than NFTs and cryptocurrency. In this course, we will examine the fundamental concepts of the existing internet infrastructure, work to define what decentralization means, learn about the “why” of decentralization, survey the landscape of decentralized, distributed, and p2p protocols, and develop decentralized applications. We learn about will examine the implementation of decentralized technology and throughout the course, we will look at different use cases of decentralization such as evading censorship, protecting privacy, and creating resilient applications. We will also consider ethical questions about the decentralization movement—how will it grow, who benefits from decentralization, and whether a decentralized internet is even a good solution at all. We will examine the underlying technologies that enable decentralization, as well as looking at the current implementations of decentralized protocols and apps built on top of decentralized protocols. Finally, we will touch on adjacent topics such as local networks, mesh networking, and p2p networks. While this course will cover a breadth of decentralized and self-hosted applications, we will steer away from decentralized financing and NFTs and instead focus on decentralized information sharing. The goal of the class is to challenge students to think critically about the future of the decentralized web and develop applications that leverage these technologies. Students with or without a background in networking are both highly encouraged to enroll.

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Fall 2023)


ITPG-GT 3032-000 (21891)09/08/2023 – 12/15/2023 Fri9:00 AM – 12:00 AM (Morning)at Brooklyn CampusInstructed by

Shared Minds (ITPG-GT 3033)

“What capabilities does computational media have for depicting and conveying the experience of our minds? In this course we will start out using 3D graphics to depict the conventional physical reality that appears before us. Then we will turn inward to reflect the multidimensional reality of our minds, using artificial neural networks. Finally we return to embodied interfaces connected with cloud networking and databases to share with other people. The class will operate at a conceptual level, inviting students’ empirical psychological and philosophical investigations of the nature of their experience and how to convey it with art and story. It will ask students to look critically at existing computational media’s tendencies to bore, divide or inflame its users. But this is also very much a coding class where students will prototype their own ideas for new media first with 3D graphics using the threejs library, and then with machine learning models like Stable Diffusion using Huggingface APIs or Colab notebooks and finally with networking and databases using Firebase or P5 Live Media. Students can substitute other coding tools but game engines will not work for this class. The coding is in javascript, with a possible touch of python, and is a natural sequel to Introduction to Computational Media.” Prerequisite: ICM / ICM: Media (ITPG-GT 2233 / ITPG-GT 2048)

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Fall 2025)


ITPG-GT 3033-000 (11392)09/03/2025 – 12/10/2025 Wed12:00 AM – 2:00 PM (Early afternoon)at Brooklyn CampusInstructed by O’Sullivan, Daniel

Seeing Machines (ITPG-GT 3031)

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, and coordinate mapping. 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.

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Spring 2025)


ITPG-GT 3031-000 (11434)01/27/2025 – 05/05/2025 Mon6:00 PM – 8:00 PM (Evening)at Brooklyn CampusInstructed by Zananiri, Elie

Listening Machines (Digital Synesthesia: Seeing Sound) (ITPG-GT 3018)

“In even the tiniest fragment of digital sound (especially music) there lies a multiplicity of information hidden within. Using audio analysis techniques, this data can be distilled into a vast array of characteristics that describe various different features of the sound. These include things like the loudness, pitch, or the spectrum of frequencies being detected. Through additional analysis, these data points can be used to detect higher level musical features representing things like tempo, rhythm, or melody. Furthermore, the sound and music information can be used to train deep learning models that can then make accurate predictions (eg. what a sound is, what genre a song is, what mood a song evokes). Or, we can use machine learning for generative purposes using the data to guide the creation of new sounds, synthesizers, or even entire songs. The preceding are activities that fall under the areas of digital signal processing, music information retrieval, and machine learning, a trifecta that form the technological foundation for the research area known as machine listening. With a focus on ambient sound and music, this class will explore how tools and techniques from the field of machine listening can become a powerful aspect, or even strategy, in the realm of creative applications. This course will not cover, nor will it assume knowledge of, the underlying technical aspects of machine listening, or music theory. Resources for further pursuance of each week’s topics will be provided but will not be required for class. Instead, our aim will be on understanding what these techniques are doing, when and where to apply them, and how to access and apply them effectively through powerful software libraries. This high level approach will allow us to keep our efforts directed towards creative experimentation without becoming bogged down. Ultimately, students will synthesize the semester’s work into their own creative application involving sound. Here are some examples of the types of projects this class could support: An app that visualizes audio through graphics or DMX/LED lighting to create synesthesia-like effects An automatic system for transcribing music based off of a recording or real-time input A music remixing system where tracks are automatically selected, spliced, processed, and rearranged A musical instrument that adapts to its player based on real-time analysis of the played sound A synthesizer that uses machine learning to optimize and tune its parameters A music education software that visualizes rhythm and melody for the purpose of instruction A rhythm game that derives its gameplay from music information (Guitar Hero, Rock Band, DDR) A tool that analyzes the health of a machine based on its sound through a contact microphone The course will be taught in JavaScript with ICM-level programming experience recommended. No formal training in sound or music is expected or required. This course will be a great fit for any student that is interested in sound and wants to explore it more deeply. Please feel free to reach out to me via email with any questions about the class.”

Interactive Telecommunications (Graduate)
2 credits – 7 Weeks

Sections (Fall 2023)


ITPG-GT 3018-000 (21877)09/11/2023 – 10/23/2023 Mon6:00 PM – 8:00 PM (Evening)at Brooklyn CampusInstructed by

Text-to-Image Ais (ITPG-GT 3020)

“Over the past few years, the unprecedented advancement in text-to-image artificial intelligence models has sparked widespread attention, discussion, and mainstream adoption of these innovative co-creative interfaces, which has resulted in novelty, excitement, and curiosity, as well as concern, anger, and insult. Alongside this, the booming open-sourced text-to-image model development contributes to expanding access to working with AI tools beyond experts, tech giants, and professional technologists. In this 14-week course, we will go over the landscape of text-to-image AIs and dive deep into some of the most well known ones (such as Stable Diffusion and its variants), to see what potential they have in terms of exploring new modes of content creation and helping us re-examine our language pattern. This will be a practice technique course – in the first half, we’ll focus on building good prompting practices, and in the second half, we’ll explore different image synthesis skills related to text-to-image AIs, use Python to train our own models to create customized visuals, and create animations from text. We’ll also discuss how such tools could intervene in the workflows of artists and technologists, what they can provide for researchers, and what are the caveats and things we should look out for when we’re creating with these AIs. Pre-requisites: Introduction to Computational Media (ICM) or the equivalent.” Prerequisite: ICM / ICM: Media (ITPG-GT 2233 / ITPG-GT 2048)

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Fall 2024)


ITPG-GT 3020-000 (15729)09/06/2024 – 12/11/2024 Fri3:00 PM – 5:00 PM (Late afternoon)at Brooklyn CampusInstructed by Zhang, Yuguang

Writing Good Code (ITPG-GT 3014)

As software projects become more complex, it becomes increasingly important to keep the code organized and manageable; otherwise, it becomes extremely difficult to implement new ideas, and the project is much more likely to be prone to mysterious and frustrating bugs. This course will demonstrate several approaches to organizing code for larger-scale projects, including how to write and name functions and classes, DRY (Don’t Repeat Yourself), pure functions, unit testing and Test-Driven Development (TDD), and why to avoid “magic numbers” and global variables. The focus of the course will be on JavaScript, using P5.js, but the principles will apply to most languages. We will be doing an ongoing, step-by-step, in-class refactor* of a complex sketch. We will also be using version control to track our changes every class. Students will be expected to complete weekly readings and assignments, and to refactor one of their previous projects, using the principles learned in this course. * Refactoring means rewriting the code, without any changes to how the program behaves. Students should have some programming experience prior to taking this course, and would ideally have an existing software project they would like to develop.

Interactive Telecommunications (Graduate)
1 credits – 1 Week

Sections (Spring 2025)


ITPG-GT 3014-000 (11433)

Canvas for Coders (ITPG-GT 3016)

Your web browser is a digital canvas for 21st-century artists. While being one of the most common mediums today, web space has infinite possibilities for new aesthetics. This course covers Three.js fundamentals, providing students with the skills and insights to create arts in web 3D. This course requires ICM or equivalent coding experience. Prerequisite: ICM / ICM: Media (ITPG-GT 2233 / ITPG-GT 2048)

Interactive Telecommunications (Graduate)
2 credits – 7 Weeks

Sections (Fall 2025)


ITPG-GT 3016-000 (11382)10/23/2025 – 12/11/2025 Thu6:00 PM – 8:00 PM (Evening)at Brooklyn CampusInstructed by Park, Joo Hyun

Experiments on the Embodied Web (ITPG-GT 3013)

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. Experiments on the Embodied Web will explore the new realm of embodied interactions in the browser across networks. The course will include discussion of influential works in the development of online embodied interaction, including the works of Kit Galloway and Sherrie Rabinowitz, Susan Kozel, and Laurie Anderson. Together we’ll explore pose detection across webRTC peer connections in p5.js and Three.js. Experience with Node, HTML and JavaScript is helpful but not required. ICM level programming experience is required. Prerequisite: ICM / ICM: Media (ITPG-GT 2233 / ITPG-GT 2048)

Interactive Telecommunications (Graduate)
1 credits – 1 Day

Sections (Fall 2024)


ITPG-GT 3013-000 (15725)

Electronic Rituals, Oracles and Fortune-Telling (IMNY-UT 289)

According to anthropologists Filip de Boeck and René Devisch, divination “constitutes a space in which cognitive structures are transformed and new relations are generated in and between the human body, the social body and the cosmos.” In this class, students will learn the history of divination, engage in the practice of divination, and speculate on what forms divination might take in a world where the human body, the social body, and even the cosmos(!) are digitally mediated. Starting with an understanding of ritual and folk culture, we will track the history of fortune-telling from the casting of lots to computer-generated randomness to the contemporary revival of Tarot; from reading entrails to astrology to data science; from glossolalia to surrealist writing practices to the “ghost in the machine” of artificial intelligence. Weekly readings and assignments culminate in a final project.

Interactive Media Arts (Undergraduate)
4 credits – 15 Weeks

Sections (Fall 2022)


IMNY-UT 289-000 (21942)09/07/2022 – 12/14/2022 Mon,Wed5:00 PM – 6:00 PM (Late afternoon)at Brooklyn CampusInstructed by Parrish, Allison

Interactive Multi-Screen Experiences (ITPG-GT 3002)

Credits: 2
Duration: 6 Weeks
Dates: Fri

We experience screens daily in many forms: in our hands, on our desktops, on walls and public installations as we travel. This course will explore the creative possibilities of real-time interactive and reactive art on screens in various forms. Using the recently developed p5VideoKit we will create standalone installations. p5VideoKit is a new library of live video effects – building on p5js – presented as a dashboard for mixing video in the browser. This library allows the user to apply visual effects to live video from connected cameras and sensors or streaming from devices on the internet. p5VideoKit is open source and can be extended with the user’s p5js code for a plethora of visual effects and interactivity. One possible application of p5Videokit would be a public facing installation allowing anonymous people on the street to use their hand held devices to interact with large street facing screens, thereby collaborating on real time creation of “digital graffiti”. Building on ICM, students will learn how to adapt simple sketches into components of p5VideoKit so that algorithms can be quickly composited and orchestrated into more complex works. Students will also learn how to edit and share code beyond the p5js editor, use nodejs/javascript to automate deployment of installations, and remotely configure dedicated computers with long running installations. Several dedicated computers and screens will be available to preview installations on the floor and street facing areas of the 370 Jay Street campus. Prerequisites: ICM or equivalent coding experience. About John Henry Thompson: http://johnhenrythompson.com

Interactive Telecommunications (Graduate)
2 credits – 6 Weeks

Mobile App Development Lab (ITPG-GT 2372)

One of the most transformative consumer products in history, the iPhone remains the standard bearer for great design and user experience. With the latest versions of iOS and iPhone, Apple puts depth sensing and augmented reality in our pockets. How do we take advantage of this incredible platform to produce our own compelling experiences? This course will be a hands-on workshop where we explore the world beyond generic apps and push the boundaries of what’s possible on iOS hardware. Each week, you’ll be asked to complete a programming exercise meant to foster your understanding of iOS application development. We’ll leverage existing open source libraries to quickly build out your app with features such as real time communication and cloud storage. We aim to create distributed instruments for computed expression. Full-time access to an iOS device and a Mac laptop computer running the latest operating system and development tools are required. Prereq: Some programming experience (such as ICM) and willingness to learn Apple’s Swift programming language.

Interactive Telecommunications (Graduate)
4 credits – 15 Weeks

Sections (Spring 2025)


ITPG-GT 2372-000 (11411)01/21/2025 – 05/06/2025 Tue9:00 AM – 12:00 AM (Morning)at Brooklyn CampusInstructed by Thompson, John

No Screens Allowed (ITPG-GT 3010)

“Since the introduction of the iPhone in 2007, the touchscreen has become the dominant manner for navigating Mobile devices. UX pattern best practices are enshrined in documents such as Apple’s ‘HIG’ (Human Interface Guidelines) or Google’s more recent Material Design. ‘No Screens Allowed’ is a class that challenges this ’Touchscreen first’ interaction approach. Taught in the Kotlin language, students will prototype solutions in response to Instructor directed assignments. The various projects structured to interrogate mobile device capabilities such as: Voice Recognition, Computer Vision, Machine Learning, and built in sensors. Students will be provided with identical hardware: Pixel 3 phones running Android, the chosen development platform for the class. Successful completion of Introduction to Computational Media and Introduction to Physical Computing are required for entry into class. “

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Spring 2024)


ITPG-GT 3010-000 (14801)01/25/2024 – 05/02/2024 Thu6:00 PM – 8:00 PM (Evening)at Brooklyn CampusInstructed by Jones, Brian

Introduction to Quantum Technologies (ITPG-GT 3003)

Quantum technologies are the next frontier of electronics and computing. Quantum Computers, Quantum Sensors, Quantum Materials are just beginning to emerge from laboratories and enter the realm of practical application. The course introduces the underlying principles of quantum physics, and reviews emerging capabilities of quantum computers and related technologies. Coursework will include programming quantum algorithms on a simulator, and running programs on actual cloud-based quantum computing hardware. The topics will be highly technical and will require the study of scientific principles and experimental apparatus. We will cover some basic mathematical operations in linear algebra, and we’ll be encountering some equations from physics and computer science.

Interactive Telecommunications (Graduate)
2 credits – 7 Weeks

Sections (Spring 2025)


ITPG-GT 3003-000 (11429)03/17/2025 – 05/05/2025 Mon6:00 PM – 8:00 PM (Evening)at Brooklyn CampusInstructed by Shakar, Gregory

Code Your Way (ITPG-GT 3007)

Credits: 4
Duration: 14 Weeks
Dates: Mon

This course provides students an opportunity to sharpen their coding skills in several ways: by reviewing fundamental programming concepts, acquiring techniques to systematically develop code-driven projects, and then implementing those to develop an independent project with the structure and support of a classroom learning community. The first part of the semester consists of weekly exercises to practice strategies for learning new algorithms, writing pseudocode, pair programming, debugging, refactoring, version control, and more. Screen-based code examples for the activities and assignments draw inspiration from the history of creative coding. The second part of the semester shifts to a project development studio format for students to apply these strategies to a self-directed project. This could be an existing idea or one devised during the course. Ultimately this course aims to empower students to reflect on their process and teach themselves how to program with greater efficiency and independence. It is a direct follow-up to Introduction to Computational Media (ICM) or for anyone interested in advancing their coding practice. Examples and exercises will be provided in JavaScript using the p5.js library. However, students are welcome to consult the instructor about working with another programming library, framework, or language with which they have interest or prior experience. Prerequisite: ICM or equivalent experience

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks