Creative Coding
Computational Foundations of Innovation
A broad introduction to the technological underpinnings of modern society, introducing the fundamental principles of digital technologies and introductory computer programming in Processing (Java) and Arduino (C++).
Semester undergraduate/graduate course at the University of Colorado Denver in fall 2018 and fall 2019.
You’re embarking upon a broad introduction to the technological underpinnings of modern society, introducing the fundamental principles and algorithms underlying computer programming. You will create generative visualizations, work with data, and create realistic artifacts with interesting behavior using Processing and Arduino, with optional opportunities to script chatbots and work with lab equipment to create hybrid digital/physical objects. In-class and in-world discussions and readings introduce important computer science ideas and concepts. Emergent topics in computer science will also be introduced.
Learning Outcomes
What you’ll make
- An automated nightlight
- A generative tile design
- A creative data visualization
- A robot, chatbot, or virtual world!
Training you’ll get
- Arduino programming language
- Processing programming language
- Lasercutter
- Basic electronics
What you’ll know by the end of the course
- The language of code: basic algorithms, data types, and object-oriented programming principles
- The meaning of fundamental software design principles and how they’re relevant beyond programming
- The basics of how computer hardware and software work
- Basic first-order logic
- How to continue to expand your programming and electronics knowledge
- Best practices for creating ethical, accessible, visually powerful data visualizations
What you’ll be able to do by the end of the course
- Solve new challenges with code
- Create basic programs in Arduino (C-based) and Processing (Java-based) languages
- Distinguish when problems call for computational solutions
- Evaluate the dual use possibilities of digital technologies
- Effectively critique projects at various stages of iteration
- Use an IDE for software development
- Think computationally
