Creative Coding

CREATIVE_CODING_I

Course Number: ADN 311-001 / ADN 502-001 (Fall 2020)
Meeting Time: M/W 10:15AM-1:00PM
Location: Hybrid Online / Brooks 203D

Instructor: Prof. Todd Berreth – tmberret@ncsu.edu
Office Hours:  by appointment

Code Repository for Class: https://www.openprocessing.org/class/64897  (CD465F to join)

Course Description:
In this course we will learn how to make works of art and design in the medium of software. We will explore poetic and creative computation using the free and open-source programming environments, P5.js, and in the process learn JavaScript, and some basic HTML and CSS (which are essential foundational technologies of the Web). We will learn fundamental programming concepts, explore the potentials of computation as an artistic medium, and look at a range of practitioners who work in this area. We will experiment with a range of techniques to realize your creative projects, solve problems and do things with algorithms and code, which will be documented, posted and shared online (or in the future, on your own websites). Topics will include programming interactivity, generative design and graphics, game design and play, incorporating novel interactivity and interesting external data into your projects, among others.

You will be introduced to the process of flexibly using software and other digital technologies to realize your visions — this it intended to give you the confidence and foundations to grow your skills and explore/experiment down the road. This is critically important, if you aspire to be a designer/maker in realms such as computer game design, computational art, interactive exhibition design, VR/AR/mobile app development, web design, or so many other emerging realms. Do you contemplate designing/developing your own functional digital projects and/or interactive media work in the future, instead of merely describing it conceptually (and depending on/paying someone else to develop it)? If you do, great! If you don’t, this still could be the right course for you — it will give you an understanding of the processes, logics and vocabulary of digital systems and software design, to make you a more informed designer and artist when designing for these environments.

Coding skill and a deep understanding of digital systems is a critical tool in the toolbox of this generation’s artists and designers!

Course Objectives:
+ Ideate and conceptualize original creative works in the medium of software and understand its relevancy for general art and design practice.
+ Integrate a creative design process with a software design process to develop a computational artifact (a computer program)
+ Develop a basic cultural literacy of the computational arts by critically engaging with historic and contemporary practices and precedents.
+ Learn the fundamentals of computational and algorithmic thinking, applied in the P5.js/JavaScript coding environments.
+ Learn elementary best practices for designing software within an event-driven, object-oriented, real time framework.
+ Gain a basic understanding of how computers work (at a machine level) and their associated technologies (both hardware and software systems), so that you can begin to incorporate them flexibly into your creative projects.