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

Courses that count in IMA’s Programming and Data category

Object Oriented Programming (CS-UY 2124)

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,Fri
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Fri
Credits: 4
Duration: 15 Weeks
Dates: Mon,Wed,Fri

This intermediate-level programming course teaches object-oriented programming in C . Topics: Pointers, dynamic memory allocation and recursion. Classes and objects including constructors, destructors, methods (member functions) and data members. Access and the interface to relationships of classes including composition, association and inheritance. Polymorphism through function overloading operators. Inheritance and templates. Use of the standard template library containers and algorithms. | Prerequisite: CS-UY 1134 (C- or better); Corequisite: EX-UY 1

Computer Science (Undergraduate)
4 credits – 15 Weeks

Application Security (CS-UY 4753)

Credits: 3
Duration: 15 Weeks
Dates: 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. | Prerequisite: CS-UY 3923

Computer Science (Undergraduate)
3 credits – 15 Weeks

Computer Networking (CS-UY 4793)

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

This course takes a top-down approach to computer networking. After an overview of computer networks and the Internet, the course covers the application layer, transport layer, network layer and link layers. Topics at the application layer include client-server architectures, P2P architectures, DNS and HTTP and Web applications. Topics at the transport layer include multiplexing, connectionless transport and UDP, principles or reliable data transfer, connection-oriented transport and TCP and TCP congestion control. Topics at the network layer include forwarding, router architecture, the IP protocol and routing protocols including OSPF and BGP. Topics at the link layer include multiple-access protocols, ALOHA, CSMA/CD, Ethernet, CSMA/CA, wireless 802.11 networks and link-layer switches. The course includes simple quantitative delay and throughput modeling, socket programming and network application development and Ethereal labs. | Prerequisite for Brooklyn Students: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) | Prerequisite for Abu Dhabi Students: ENGR-UH 3510 or CS-UH 1050 (C- or better) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better)

Computer Science (Undergraduate)
3 credits – 15 Weeks

Artificial Intelligence (CS-UY 4613)

Credits: 3
Duration: 15 Weeks
Dates: Fri

Artificial Intelligence (AI) is an important topic in computer science that has many diversified applications. It addresses one of the ultimate puzzles human are trying to solve – How is it possible for a slow, tiny brain, whether biological or electronic, to perceive, understand, predict, and manipulate a world far larger and more complicated than itself? And, how do we go about creating a machine (or computer) with those properties? To this end, researchers in the AI field have been trying to understand how seeing, learning, remembering, and reasoning could, or should be done. This course introduces students to the many concepts and techniques in artificial intelligence. | Prerequisite for Brooklyn Students: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) | Prerequisite for Abu Dhabi Students: ENGR-UH 3510 or CS-UH 1050 (C- or better) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better)

Computer Science (Undergraduate)
3 credits – 15 Weeks

Applied Cryptography (CS-UY 4783)

Credits: 3
Duration: 15 Weeks
Dates: 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: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MA-UY 2314.

Computer Science (Undergraduate)
3 credits – 15 Weeks

Interactive Computer Graphics (CS-UY 4533)

Credits: 3
Duration: 15 Weeks
Dates: Mon

An introduction to the field of computer graphics: displays, image formation, visual perception, images, transformations (viewing and projection), programmable pipelines (vertex and fragment programs), modeling (primitives, polygon meshes, smooth curves and surfaces), animation (keyframing, procedural), rendering and realism (visibility, lighting, shading, shadows, texturing, ray tracing). | Prerequisite for Brooklyn Students: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and (MA-UY 2034 or MA-UY 3044 or MA-UY 3054) | Prerequisites for CAS Students: CSCI-UA 201 (C- or better) and (MATH-UA 140 or MATH-UA 148) | Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) and (MATH-UH 1022 or MATH-UH 1023) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) AND (MATH-SHU 140 or MATH-SHU 141)

Computer Science (Undergraduate)
3 credits – 15 Weeks

COMPUTER SECURITY (CS-UY 3923)

This course covers cryptographic systems. Topics: Capability and access control mechanisms, authentication models, protection models. Database and operating system security issues, mobile code, security kernels. Malicious code, Trojan horses and computer viruses. Security policy formation and enforcement enforcement, legal aspects and ethical aspects. | Prerequisite for Brooklyn Students: CS-UY 2214 | Prerequisite for CAS Students: CSCI-UA 201 | Prerequisite for Abu Dhabi Students: CS-UH 2010 or ENGR-AD 3511 | Prerequisite for Shanghai Students: CENG-SHU 202 | Co-requisite for ALL Students: CS-UY 3224

Computer Science (Undergraduate)
3 credits – 14 Weeks

Sections (Fall 2025)


CS-UY 3923-000 (7835)09/02/2025 – 12/11/2025 Tue6:00 PM – 9:00 PM (Evening)at Brooklyn CampusInstructed by Cappos, Justin

Introduction to Databases (CS-UY 3083)

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

This course introduces database systems and their approach as a mechanism to model the real world. The course covers data models (relational, object-oriented), physical database design, query languages, query processing and optimization, as well as transaction management techniques. Implementation issues, object oriented and distributed databases also are introduced. | Prerequisites for Brooklyn Students: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and MA-UY 2314 | Prerequisites for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) and CS-UH 1002 | Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and CSCI-SHU 2314

Computer Science (Undergraduate)
3 credits – 15 Weeks

Geographic Information Systems (URB-UY 2114)

Geographic Information Systems are computer systems for the storage, retrieval, analysis, and display of geographic data, that is data about features and phenomena on the surface of the earth. This course will introduce the students to GIS through hands-on computer exercises, as well as readings and lectures about cartography, tools, data, and the social impacts of GIS. GIS projects start with data and move through analysis to cartographic display. Pedagogically, we will be starting at the end moving backward to data and analysis. | Note: This course cannot be used to satisfy Humanities/Social Science requirements for majors outside of the TCS department. | Prerequisite: EXPOS-UA 1 or EXPOS-UA 4

Urban Studies (Undergraduate)
4 credits – 15 Weeks

Sections (Spring 2023)


URB-UY 2114-000 (21070)01/23/2023 – 05/08/2023 Tue5:00 PM – 7:00 PM (Late afternoon)at Brooklyn CampusInstructed by Mistry, Himanshu

Dynamic Web Applications (DM-UY 3193)

In this course, students focus on client and server side programming, as well as the web design and development process. Students are also introduced to databases for the web. Examples of dynamic web applications include content management systems, registration systems, and social media solutions. | Pre-requisite: DM-UY.2193

Integrated Digital Media (Undergraduate)
3 credits – 14 Weeks

Sections (Fall 2025)


DM-UY 3193-000 (15787)09/02/2025 – 12/11/2025 Tue,Thu8:00 AM – 9:00 AM (Morning)at Brooklyn CampusInstructed by Adee, Katie

Shader Lab (GAMES-UT 208)

Shader Lab is an introduction to shaders for game designers that are artists first, and technicians second. This course attempts to bridge gaps in the necessary knowledge and establish the contextual foundation to allow students to make sense of the disparate sub-disciplines necessary to meaningfully express themselves aesthetically in a rendered environment. Ultimately, Shader Lab is a primer for students seeking to create unique and expressive aesthetics for their digital games. The course empowers designers by providing a conceptual and functional understanding of 3D rendering in order to enable the design and implementation of their personal style.

Undergraduate

Math for Artists (ITPG-GT 2058)

In this class students will learn math tools to boost their digital practice, fix common problems, and understand the math behind our human perception of the physical world. This course spans different branches of math including geometry, linear algebra, logarithmic thinking, and statistics as they relate to a programmer making digital art with our contemporary media ecosystem. The aim of this course isn’t to become calculators, rather strengthen our intuition through historical and ethnomathematics perspectives and foster a new relationship to math. The prerequisites to this class are basic arithmetic skills and an introduction to programming. We will create applications using free and open-source software, including Python and p5.js.

Interactive Telecommunications (Graduate)
4 credits – 15 Weeks

Sections (Spring 2020)


ITPG-GT 2058-000 (23070)01/27/2020 – 05/11/2020 Thu6:00 PM – 9:00 PM (Evening)at Brooklyn CampusInstructed by Kraft, Robert

Data and Publics (ITPG-GT 2053)

In this course, we’ll investigate two closely related ideas: public data and data publics. We’ll learn how to access and represent data from an assortment of existing public data sources, how to liberate currently obfuscated data sets, and how to create our own useful/whimsical/critical APIs from scratch. We’ll also investigate the act of putting data into public space – through sculpture, projections, performance, and participatory interventions. Particular attention will be paid to methods which bring data back to communities from which it was collected, and to tactics which build grassroots literacies, respect local ways of knowing and reinforce capabilities for stewardship and sovereignty.

Interactive Telecommunications (Graduate)
4 credits – 12 Weeks

Critical Communications (ITPG-GT 2056)

The ways in which we communicate has changed radically in the last 100 years. As the communication systems we use have increased in complexity, so has the effort it takes to understand how they work. Most of us use protocols like LTE, HTTP, TCP/IP, and BLE every day. We take them for granted, almost like we do the laws of nature. But there are more than the laws of physics, more than techniques of engineering, embedded in the design and implementation of our protocols of communication. To understand their role in our lives, we need to look into the societal and economic contexts in which they came to be. In this class, we will examine communication protocols using Raspberry Pi’s, Arduinos, Software Defined Radios, and other connected devices. We will look closer at organizations like iSOC, ICANN and IEEE to better understand how protocol designs are implemented and standardized. Through readings, research and hands-on work we will build an understanding of how these protocols work, how their designs incorporate the physical, technical, cultural, corporate and political assumptions of the actors behind them. In the first half of the class readings and assignments will help familiarize students with some of the different protocols we rely on every day. In the second half, students will work in groups to investigate a communications protocol and consider its impact from a technical, societal and environmental perspective. Final projects will communicate their findings in whatever form students deem appropriate – explanatory blog posts, physical or digital installations, or even videos and podcasts.

Interactive Telecommunications (Graduate)
2 credits – 6 Weeks

Sections (Spring 2020)


ITPG-GT 2056-000 (22886)03/30/2020 – 05/11/2020 Mon6:00 PM – 9:00 PM (Evening)at Brooklyn CampusInstructed by Mattu, Surya

Machine Learning for Physical Computing (ITPG-GT 2050)

With Machine Learning models are getting smaller, and microcontrollers are getting more computing power, Machine Learning is moving towards edge devices. This class explores the idea of how machine learning algorithms can be used on microcontrollers along with sensor data to build Physical Computing projects. In this class, we will learn about TensorFlow Lite, a library that allows you to run machine learning algorithms on microcontrollers. We will talk about common machine learning algorithms and techniques and apply them to build hands-on interactive projects that enrich our daily lives. Students will learn to use pre-trained models, and re-train the models with sensor data. We are going to talk about Image Classification, Transfer Learning, Gesture and Speech Detection. For each topic, we will first discuss its history, theory, datasets, and applications, and then build simple experiments based on the topic. Prospective students are expected to have taken Introduction to Physical Computing and Introduction to Computational Media course, or have equivalent programming experience with Arduino and JavaScript.

Interactive Telecommunications (Graduate)
2 credits – 6 Weeks

Sections (Spring 2020)


ITPG-GT 2050-000 (22889)03/24/2020 – 05/05/2020 Tue6:00 PM – 9:00 PM (Evening)at Brooklyn CampusInstructed by Shi, Yining

All Maps Lie (ITPG-GT 2049)

Introduction to Critical Mapping and Open Source Geospatial Web Analysis and Visualization is an introduction to critical perspectives in cartography and geospatial information systems and web technologies. This course will introduce students to the foundations of geographic data analysis and visualization, grounding practical studio based exercises and projects with critical readings and theory. Students taking this course will gain an appreciation for geographic thinking, learn to ask geographic questions, and apply basic methodologies to “make sense” of geographic data. The course will be conducted with open source geographic information systems and web technologies. Students are not expected to enter the class with knowledge of these tools, but will be expected to learn and apply them through studio exercises and project briefings.

Interactive Telecommunications (Graduate)
2 credits – 6 Weeks

Sections (Spring 2020)


ITPG-GT 2049-000 (22872)03/30/2020 – 05/11/2020 Mon6:00 PM – 9:00 PM (Evening)at Brooklyn CampusInstructed by Lee, Joseph K

Autonomous Artificial Artists (ITPG-GT 2497)

Autonomous Artificial Artists (AAA) is a class to explore ways of making artworks “autonomous.” In this context, “autonomy” brings together three independent but related criteria: 1) artificial intelligence being a primary determinant in an artwork’s aesthetics 2) autonomous software principles culled from peer-to-peer network design, blockchain and decentralization technology, serverless and federated machine learning, cryptoeconomics, and agent-based multiplayer simulation. 3) crowd-sourced art where mass, unbounded cooperation of many participants creates novel artworks which represent the “hive mind” or collective input. The goal of this class is to learn a little bit about each of these seemingly disparate fields, and see how they may interact in interesting new ways. The idea of autonomous artworks is very new, and is being actively discussed by a small group of interdisciplinary researchers and artists since 2016/2017. Although the topic is highly experimental, it is nevertheless based on concrete technologies, making simultaneous use of several techniques which are under active development and have potentially far-reaching ramifications well outside the domain of art. The time is ripe for people within more design-oriented fields to begin thinking about how they might be used in a broader context. The class has both a theoretical component (learning about each of the individual technologies and their interplay) as well as a practical component: training and deploying generative models on computational environments that are as close to decentralized or autonomous as possible. In addition, we will explore prior notions of crowd-sourced or mass-collaborative art, touching on older principles and strategies such as Oulipo, exquisite corpse, and crowd-sourced computational artworks like Electric Sheep, Exhausting a Crowd, and others.

Interactive Telecommunications (Graduate)
2 credits – 5 Weeks

Sections (Spring 2020)


ITPG-GT 2497-000 (22882)04/06/2020 – 05/11/2020 Mon3:00 PM – 6:00 PM (Late afternoon)at Brooklyn CampusInstructed by Kogan, Gennady

Music Interaction Design (ITPG-GT 2475)

This class is a project development studio for interactive music projects —that is, pieces of music that are not linear, but rather offer multiple dimensions for listeners to explore (on their phones in a crowded subway, at an abandoned factory in Palermo, back on their couches after a long day, at a classical concert hall). Students will take a project from concept to execution over several iterations, applying Interaction Design principles and techniques. During the first half of the semester, they will gather aural and visual references, compose graphic notations, and create interactive studies to explore specific elements of their composition. This work will lead to the implementation of the midterm project: a functional, high-fidelity prototype. For their final projects, students will evaluate their midterm pieces from the perspectives of music, visual design and interaction design, and refine them to produce an expressive piece of interactive music. ICM or equivalent experience is required. Some experience in making or producing music will be useful, but is not required.

Interactive Telecommunications (Graduate)
4 credits – 14 Weeks

Sections (Spring 2020)


ITPG-GT 2475-000 (22929)01/28/2020 – 05/05/2020 Tue12:00 AM – 2:00 PM (Early afternoon)at Brooklyn CampusInstructed by Pereira Hors, Luisa

Sound in Space (ITPG-GT 2485)

Stereo (2-speaker) sound is the default way we produce and distribute most audio. This class challenges the stereophonic-centricity of digital sound and instead focuses on the context of listening, interfacing and interacting with audio beyond 2 speakers. We will take a novel approach to spatialization by interfacing web technologies (Javascript, Web Audio, WebRTC) with multichannel audio to create room-scale interactive music and sonic spaces, and then make our findings publicly available through musical artifacts, open source tools, and documentation. We will explore conventional and unconventional loudspeaker arrangements ranging from 3 to 40 channels and how distribution and context affects music. Together, we will participate in a semester-long project examining the affordances of spatial and multichannel sound, designing and build open source tools to interface Tone.js, Higher-Order Ambisonics (HOA) and other multichannel techniques. Students will perform/install their final on the 40-channel speaker array at Dave&Gabe’s studio in Bushwick. Topics include 3D sound, open source, space and listening. Prerequisites: willingness to listen critically, some programming experience. No formal music training required.

Interactive Telecommunications (Graduate)
2 credits – 12 Weeks

Sections (Spring 2020)


ITPG-GT 2485-000 (22868)01/27/2020 – 04/20/2020 Mon6:00 PM – 9:00 PM (Evening)at Brooklyn CampusInstructed by Mann, Yotam

Device to Database (ITPG-GT 2473)

How do you process data from connected devices? This class examines how to build systems to collect, process, store, and visualize data from connected devices. The class will review and discuss real world IoT systems using case studies and actual projects. We will build system using Arduino hardware and open source software. We will discuss how to IoT systems are built on commercial cloud infrastructure. Students will learn about IoT devices and the data pipelines for processing data. They will build an Arduino based device to send and receive data over WiFi via MQTT. Students will write code to move data from MQTT into a database. Students will learn how to query the database and present data as tabular data and graphs. To gain an understanding of an entire IoT system from device to application, we will start at a high level and then drill into each of the pieces — we will: * Discuss sensor hardware and wireless options (WiFi, Cellular, LoRaWAN, LTE-M, etc) for moving data to the server * Discuss transport options MQTT, CoAP, AMQP, HTTPS, etc. * Examine SQL, NoSQL, and Time Series Database * Look at tools and techniques for querying and visualizing data. Prerequisite: * Introduction to Physical Computing * Introduction to Computational Media (suggested) The class will be a mix of lecture, discussion, and building IoT systems. Real world examples and case studies will be used to demonstrate how IoT can be built.

Interactive Telecommunications (Graduate)
2 credits – 6 Weeks

Sections (Spring 2020)


ITPG-GT 2473-000 (22887)01/30/2020 – 03/12/2020 Thu12:00 AM – 2:00 PM (Early afternoon)at Brooklyn CampusInstructed by Coleman, Don