Fundamentals of Programming
Aug 31 - Dec 11, 2026
Faculty: Zhenzhen Qi
Course Description
Introduction to programming for artists and designers through a combination of lecture and hands-on studio exercises. Students learn the basic principles of computer programming which set the foundation for future courses in game, web, and interactive media design.Course Goals and Objectives
Computational Thinking: Solve visual design problems logically and algorithmically to create dynamic and interactive designs, moving from static to rule-based thinking for complex and responsive outcomes.Coding Literacy: Translate design ideas into executable code, confidently using fundamental programming concepts (variables, data types, control flow, functions, and basic data structures) to build generative and interactive experiences.
Technology and Design Integration: Understand and apply relevant technology to expand creative exploration and critical research in art and design.
Build a Foundation for Further Study: Develop the necessary foundational knowledge for further coursework and project work in game development, web design, and interactive media.
Learning Materials
The primary learning resource for this class is " The Coding Train" (Language Track: p5.js, JavaScript) by Daniel Shiffman, a professor of New Media Art at New York University's Tisch School of the Arts. This free online course focuses on the fundamentals of computer programming (variables, conditionals, iteration, functions & objects) using JavaScript. In particular it leverages the p5.js creative computing environment which is oriented towards visual displays on desktops, laptops, tablets or smartphones. The course is designed for computer programming novices.Additionally, the official p5js website offers a quick reference guide, tutorials, examples, and community-contributed projects that explore art and design through technology. p5.js also includes numerous third-party libraries for advanced functionalities such as sound visualization, skeleton tracking, and machine learning. For game development, students can utilize " p5play. ," a dedicated library for creating browser-based games.
Students with prior experience in visual coding are encouraged to explore advanced series such as nature of code, Generative Art, and Generative Design.
Grading Structure
Midterm Grades Midterm grades will be calculated based on the following formula: Participation & Contribution to Class Environment 50% Weekly Coding Assignment 50%
Final grades Final grades will be calculated based on the following formula: Participation & Contribution to Class Environment 40% Weekly Coding Assignment 40% Midterm Project Proposal 10%
Final Project Presentation and Documentation 10%
Participation
Class participation is mandatory and essential. Since this course includes frequent in-class discussions and coding exercises, missing sessions will directly impact your progress and performance. Furthermore, irregular attendance not only affects your own learning but also disrupts the overall class environment. Aside from weekly assignments which are predominantly self-learning activities, in-class coding exercises are designed to let students contribute to a collective learning environment and support each other. Irregular attendance to these exercises does not just affect one's own learning but discourages the overall class environments. Therefore, they must be submitted by being physically in the classroom during the designated time window and cannot be submitted remotely or made up afterwards. During the first three weeks of the semester, all students receive full participation credit (100 points per week, totaling 300 points) until the add/drop deadline, as outlined in the academic calendar. After this deadline, absences will prevent you from completing in-class activities and will gradually lower your participation grade. Repeated tardiness will be recorded as absences. In cases when classes might be missed due to illness, travel, or an unforeseen emergency, please email the course instructor as soon as possible with details. Providing sufficient information allows for an excused absence and ensures your participation grade is not affected.Students may occasionally be required to use a computer or phone for interactive web-based activities. Otherwise, personal devices should be used solely for reference or note-taking during lectures.
Selected Student Works





