Dynamic Web Development +

Dynamic Web Development introduces the fundamentals of building “full stack” web applications. This course will focus on modern, client- and server- side web technologies and provide practical methods for approaching web development for creative and functional applications. The core technologies used in this course are HTML5, JavaScript, Node.js with the Express framework, and MongoDB database. Students will learn to design, develop, and deploy web applications and gain the necessary skills to extend and explore web development independently.

Prerequisite: ICM

Understanding Networks +

Tom Igoe | Syllabus | ITPG-GT.2808 | Tues 09:30am to 12:00pm in 370 Jay St, Room 412 Meetings:14
Last updated: March 24, 2025

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.

Live Web +

The web has become an amazing platform for live communication.  Streaming media, audio and video conferencing, text chat and other real-time data transmission give us the ability to create a wide array of platforms that enable live cooperative and collaborative performance, real-time games, and novel real-time communications experiences.  

In 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 live participation.  We utilize browser based technologies such as WebSockets and WebRTC in combination with JavaScript and Node to build client/server based applications.  Experience with HTML and JavaScript are helpful but not required.