Programming: A 21st Century Creative Medium