Visit this course's friendly frontend
CU Boulder ATLAS program
ATLS 5660 | Fall 2024
Class time: Mondays @ 4:00–6:30pm
Office hours: Thursdays (Justin) @ 4:00-6:00pm via Zoom
Location: Remote via Zoom
Instructor: Justin Gitlin
Class Policies
This course explores creative uses of software development while introducing foundational programming concepts, techniques, and best practices. Primarily using p5.js, students will learn a wide variety of tools that enable the creation of art, animation, interactivity, music, data visualization, and even utilitarian applications. While focusing on graphics, multimedia, and interactivity, the class will also cover the importance of building the "digital plumbing" that supports our creative work.
- Gain and reinforce basic programming skills to build creative software applications
- Learn how to self-educate and find answers to very specific problems while developing code skills
- Learn to love code via exposure to (and practice with) a wide array of tools, techniques and concepts
- Learn about the landscape of artists, tools, and roles of people in the "creative coding" field
- Build, document, and present original pieces of software
Class 01 - Aug 26
- Introductions
- What is (creative) code?
- Get your tools ready
- Code basics overview
Class 02 - Sep 9
- Basic drawing tools
- Iteration
- Layout
- AI Demo
Class 03 - Sep 16
- Programming Languages
- IDEs
- How does a program execute?
- Shaping our sketches
- Time
- Animation
Class 04 - Sep 23
- Strings
- Typography
- Images
- Looping animation
Class 05 - Sep 30
- Software design
- How to build anything
- Graphics effects & algorithms
- Math
Class 06 - Oct 7
- Data structures
- APIs
- Databases
- Data Visualization
Class 07 - Oct 14
- CLI
- 3D
- CPU vs GPU
Class 08 - Oct 21
- Hardware
- Computer vision
Class 09 - Oct 28
- Open Source
- Audio
Class 10 - Nov 4
- Final projects
- Web Browsers
- Jobs
Class 11 - Nov 11
- Debugging
- Machine learning
Class 12 - Nov 18
- Shaders
Class 13 - Dec 2
- Final project help
Class 14 - Dec 9
- Present final projects in class
- Final project due in Canvas