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

Courses that count in IMA’s Programming and Data category

Intro to Programming for Games (GAMES-UT 180)

Introduction to Programming for Games is a course that introduces students to the concepts, problems, and methods of computer programming, and how these apply to the creation of video games. The course assumes no prior programming knowledge, and is designed to touch on the basic principles of digital design in the form of computer code. There will be an emphasis on programming fundamentals; they will be motivated through the lens of designing and producing video games.

Undergraduate

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

ABC Browser Circus (INTM-SHU 227T)

Welcome to the ABC Browser Circus (ABC), where acrobats juggle with hyperlinks, dance across scrolling grids and jump through open server ports. This course introduces the students to the history of the internet, the World Wide Web, and specifically to the browser as a cultural object and its role in (net)art; in parallel, students are guided to creative uses of the web. In three consecutive modules, the browser is interpreted as a blank canvas, a susceptible agent and as a window to other realities respectively. Technologies used in the ABC Browser Circus are advanced HTML, CSS and JavaScript as well as Node for server-side programming. Participants must have completed either Communications Lab or Creative Coding Lab (IMA Foundation Classes). Students are expected to comfortably apply fundamental programming concepts to solve problems.

Interactive Media Arts (Undergraduate)
4 credits – 13 Weeks

Sections (Fall 2020)


INTM-SHU 227T-000 (21565)09/14/2020 – 12/15/2020 Tue,Thu9:00 AM – 11:00 AM (Morning)at ShanghaiInstructed by Eckert, Leon

Learning with Turtles (INTM-SHU 151T)

We will explore a range of programming languages, systems, and activities designed to help learners acquire computational skills and become creative problem solvers and project designers, including arts and interactive projects. We will create projects in turtle geometry, animation, and programmable embroidery (Snap!, Turtle Geometry, TurtleArt, and TurtleStitch), and in simulation systems which model complex systems in the life and social sciences in order to acquire a deeper understanding of their underlying phenomena (NetLogo). The course is fundamentally about ideas, and how some powerful ideas from computation can empower a learner to be a better creator and problem solver, acquire a deeper understanding of social and scientific phenomena, and become a self-directed learner. We will identify these ideas and actively engage with the pedagogical theories that underlie embodying them by creating with systems designed for children, beginners, or people coming from disciplines which traditionally had less emphasis on computing-based tools. We will emphasize reflection on our own learning within the course.”

Interactive Media Arts (Undergraduate)
4 credits – 13 Weeks

Sections (Fall 2020)


INTM-SHU 151T-000 (21563)09/14/2020 – 12/15/2020 Thu3:00 PM – 6:00 PM (Late afternoon)at ShanghaiInstructed by Minsky, Margaret

Creative Coding Lab (INTM-SHU 103)

In this foundation course students will learn the fundamentals of computation, software design, and web technologies, through a series of creative projects. The course is intended to equip students with the skills to develop artistic and business projects that include a significant computational component. Topics such as variables, functions, components, and functional and reactive programming will be brought together to create interactive applications, generative art, data visualization, and other domains. Within the framework of these creative projects students will develop a greater understanding of how computer programs operate, be exposed to various concepts used to create experiences and interactions, and become more familiar with some of the technologies that constitute the internet. This course is intended for students with no prior programming background. Prerequisite: None. Fulfillment: CORE AT; IMA Major Other Foundation; IMB Major Emerging Media Foundation.

Interactive Media Arts (Undergraduate)
4 credits – 15 Weeks

Sections (Fall 2022)


INTM-SHU 103-000 (17271)09/05/2022 – 12/16/2022 Tue,Thu9:00 AM – 11:00 AM (Morning)at ShanghaiInstructed by


INTM-SHU 103-000 (17272)09/05/2022 – 12/16/2022 Tue,Thu11:00 AM – 12:00 AM (Morning)at ShanghaiInstructed by


INTM-SHU 103-000 (17273)09/05/2022 – 12/16/2022 Tue,Thu1:00 PM – 3:00 PM (Early afternoon)at ShanghaiInstructed by


INTM-SHU 103-000 (17274)09/05/2022 – 12/16/2022 Tue,Thu3:00 PM – 4:00 PM (Late afternoon)at ShanghaiInstructed by


INTM-SHU 103-000 (17276)09/05/2022 – 12/16/2022 Fri9:00 AM – 11:00 AM (Morning)at ShanghaiInstructed by


INTM-SHU 103-000 (17277)09/05/2022 – 12/16/2022 Fri11:00 AM – 12:00 AM (Morning)at ShanghaiInstructed by


INTM-SHU 103-000 (17278)09/05/2022 – 12/16/2022 Fri1:00 PM – 3:00 PM (Early afternoon)at ShanghaiInstructed by


INTM-SHU 103-000 (17279)09/05/2022 – 12/16/2022 Fri3:00 PM – 4:00 PM (Late afternoon)at ShanghaiInstructed by

Creative Coding (MCC-UE 1585)

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

This is a practice-based course designed to teach basic programming skills in the context of critical and cultural media studies and digital humanities. Requires no prior programming experience, simply a willingness to explore code at a more technical level with the aim of using computation as an expressive, analytical, critical and visualizing medium. Students learn basic coding techniques such as variables, loops, graphics, and networking, all within a larger conversation on the social, cultural, and historical nature of code and coding practices.

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

Discrete Mathematics (MA-UY 2314)

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

Logic, proofs, set theory, functions, relations, asymptotic notation, recurrences, modeling computation, graph theory. | Prerequisite: Math Diagnostic Exam or MA-UY 914 (minimum calculus level required) | Prerequisite for Shanghai students: MATH-SHU 131. Note: This course and CS-GY 6003 cannot both be taken for credit.

Mathematics (Undergraduate)
4 credits – 15 Weeks

Introduction to Embedded Systems Design (ECE-UY 4144)

The course covers architecture and operation of embedded microprocessors; microprocessor assembly language programming; address decoding; interfacing to static and dynamic RAM; Serial I/O, Parallel I/O, analog I/O; interrupts and direct memory access; A/D and D/A converters; sensors; microcontrollers. Alternate-week laboratory. Objectives: to provide foundations of embedded systems design and analysis techniques; expose students to system level design; and teach integration of analog sensors with digital embedded microprocessors. | Prerequisites: CS-UY 2204 (C- or better) and EE-UY 2024 or EE-UY 2004 (C- or better). ABET competencies: a, c, d, e, g, j, k.

Elect. Engineering – ECE UGRD (Undergraduate)
4 credits – 14 Weeks

Sections (Fall 2025)


ECE-UY 4144-000 (4051)


ECE-UY 4144-000 (4052)


ECE-UY 4144-000 (4053)


ECE-UY 4144-000 (4054)


ECE-UY 4144-000 (4055)


ECE-UY 4144-000 (4061)


ECE-UY 4144-000 (4050)09/02/2025 – 12/11/2025 Tue,Thu10:00 AM – 11:00 AM (Morning)at Brooklyn CampusInstructed by Campisi, Matthew

Communication Networks (ECE-UY 3613)

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

This course develops basic techniques used in communication networks. After protocol layering is introduced, algorithms and protocols are discussed for use in each of the five layers: physical, data link, network, transport and application. Specific protocols such as TCP/IP, ATM, SS7 are included. | Prerequisite for Brooklyn Engineering Students: Junior status in electrical engineering, computer engineering, or computer science. Co-requisites for Brooklyn Engineering Students: ECE-UY 2233 (EE majors) or MA-UY 2224 (CompE/CS majors) | Prerequisites for Abu Dhabi Students: ENGR-AD 194 (or co-req of MA-UY 3113) and ENGR-AD 195 (or co-req of ECE-UY 2233) . ABET competencies: a, c, e.

Elect. Engineering – ECE UGRD (Undergraduate)
3 credits – 15 Weeks

Signals and Systems (ECE-UY 3054)

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

This course centers on linear system theory for analog and digital systems; linearity, causality and time invariance; impulse response, convolution and stability; the Laplace, z- transforms and applications to Linear Time Invariant (LTI) systems; frequency response, analog and digital filter design. Topics also include Fourier Series, Fourier Transforms and the sampling theorem. Weekly computer-laboratory projects use analysis- and design-computer packages. The course establishes foundations of linear systems theory needed in future courses; use of math packages to solve problems and simulate systems; and analog and digital filter design. | Prerequisites for Brooklyn Engineering Students: MA-UY 1044, MA-UY 2012/2132 or MA-UY 2034. | Prerequisites for Abu Dhabi Students: MATH-AD 116 and MATH-AD 121. | Prerequisites for Shanghai Students: MATH-SHU 124 and MATH-SHU 140. ABET competencies a, b, c, e, k.

Elect. Engineering – ECE UGRD (Undergraduate)
4 credits – 15 Weeks

INTRO TO COMPUTER ENGINEERING (ECE-UY 1012)

This course helps students to understand computer engineering as a balance among hardware, software, applications and theory, the notion of abstraction, computer layers and how they relate to various aspects of computer engineering, implementation of abstract and physical computer layers: Number systems, digital logic, basic processor structure, instruction set architecture, machine languages, assembly languages and high-level programming in C. Other computer concepts, including compilers, operating systems and algorithms, are presented, along with the simulator concept and its usage for understanding computer design, testing and analysis. Experts present special topics in the area. Also discussed are invention, innovation, entrepreneurship and ethics in these topics and in Computer Engineering. Cross listed as CS-UY 1012. | ABET competencies: e, h, j | Prerequisite: Only first-year students are permitted to enrol in this course.

Elect. Engineering – ECE UGRD (Undergraduate)
2 credits – 15 Weeks

Introduction to Machine Learning (ECE-UY 4563)

This course provides a hands on approach to machine learning and statistical pattern recognition. The course describes fundamental algorithms for linear regression, classification, model selection, support vector machines, neural networks, dimensionality reduction and clustering. The course includes computer exercises on real and synthetic data using current software tools. A number of applications are demonstrated on audio and image processing, text classification, and more. Students should have competency in computer programming. | Prerequisites: ECE-UY 2233, MA-UY 2233, MA-UY 3012, MA-UY 2224 or MA-UY 2222, MA-UY 3514

Elect. Engineering – ECE UGRD (Undergraduate)
3 credits – 14 Weeks

Sections (Fall 2025)


ECE-UY 4563-000 (3942)09/02/2025 – 12/11/2025 Mon,Wed12:00 AM – 1:00 PM (Early afternoon)at Brooklyn CampusInstructed by

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

Introduction to Parallel and Distributed Systems (CS-UY 3254)

This course offers a solid grounding in the basic issues and techniques of parallel and distributed computing. The material covers the spectrum from theoretical models of parallel and distributed systems to actual programming assignments. | Prerequisite: (CS-UY 2134 or CS-UY 1134) and (CS-UY 2124 or CS-UY 1124) (C- or better) and CS-UY 3224.

Computer Science (Undergraduate)
4 credits – 14 Weeks

Sections (Fall 2023)


CS-UY 3254-000 (15277)09/05/2023 – 12/15/2023 Mon,Wed12:00 AM – 1:00 PM (Early afternoon)at Brooklyn CampusInstructed by Epstein, Jeff

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

Engineering Problem Solving and Programming (CS-UY 1133)

This introductory course in engineering problem solving and computer programming is for all undergraduate engineering students without prior programming experience in any language. The course covers the fundamentals of computer programming and its underlying principles using the MATLAB programming language. Concepts and methods are illustrated by examples from various engineering disciplines. Useful numerical techniques and their applications to real-world problems in science and engineering are also discussed. ABET competencies: a, e, k. | Corequisite: EX-UY 1.

Computer Science (Undergraduate)
3 credits – 15 Weeks

Sections (Spring 2021)


CS-UY 1133-000 (17100)01/28/2021 – 05/10/2021 Fri9:00 AM – 10:00 AM (Morning)at Brooklyn CampusInstructed by


CS-UY 1133-000 (17101)01/28/2021 – 05/10/2021 Fri11:00 AM – 12:00 AM (Morning)at Brooklyn CampusInstructed by


CS-UY 1133-000 (17102)01/28/2021 – 05/10/2021 Fri12:00 AM – 1:00 PM (Early afternoon)at Brooklyn CampusInstructed by


CS-UY 1133-000 (17103)01/28/2021 – 05/10/2021 Fri2:00 PM – 3:00 PM (Early afternoon)at Brooklyn CampusInstructed by


CS-UY 1133-000 (16932)01/28/2021 – 05/10/2021 Mon,Wed9:00 AM – 10:00 AM (Morning)at Brooklyn CampusInstructed by

Data Structures and Algorithms (CS-UY 1134)

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

This course covers abstract data types and the implementation and use of standard data structures along with fundamental algorithms and the basics of algorithm analysis. Not open to students who have taken CS-UY 2134. | Prerequisite for Brooklyn Students: CS-UY 1114 or CS-UY 1121 (C- or better) | Prerequisite for Abu Dhabi Students: CS-UH 1001 or ENGR-UH 1000 | Prerequisite for Shanghai Students: CSCI-SHU 101 | Corequisite for all Students: EX-UY 1

Computer Science (Undergraduate)
4 credits – 15 Weeks

Introduction to Machine Learning (CS-UY 4563)

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

This course provides a hands on approach to machine learning and statistical pattern recognition. The course describes fundamental algorithms for linear regression, classification, model selection, support vector machines, neural networks, dimensionality reduction and clustering. The course includes computer exercises on real and synthetic data using current software tools. A number of applications are demonstrated on audio and image processing, text classification, and more. Students should have competency in computer programming. | Prerequisite for Brooklyn Students: CS-UY 1134 AND (MA-UY 2034, MA-UY 2034G, MA-UY 1044 or MA-UY 3054) AND (MA-UY 2224, MA-UY 2222, MA-UY 2233, ECE-UY 2233, MA-UY 3012, MA-UY 3014, or MA-UY 3514) | Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) AND (MATH-UH 1022 or MATH-UH 1023) AND (MATH-UH 2011Q or ENGR-UH 2010Q) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) AND (MATH-SHU 140 or MATH-SHU 141) AND MATH-SHU 235

Computer Science (Undergraduate)
3 credits – 15 Weeks