Coding with creativity: How ATLAS students think beyond algorithms
With his computer plugged into a projector at the front of the room, Hudson Blankner, a freshman in Gabe Johnson’s Computational Foundations 1 class, displayed his final project: a trio of classic games—rock, paper, scissors; tic tac toe; and table tennis.
The assignment required students to build an interactive game using the programming skills they’d learned over the semester, and to experiment with different problem-solving strategies—including, if they wanted, “vibe” coding, the practice of prompting artificial intelligence models to generate code.
Blankner did try using AI, and he wasn’t subtle about his feelings.
“I coded this all in one prompt, but I really hate vibe coding,” Blankner told the class. “AI is like a Division I gaslighter. It took 15 prompts to make the game look like this.”
Johnson expects students to explore AI tools, as he sees more and more companies requiring software engineers to use AI to some extent to program more, and faster. But Johnson also expects students—like professional software engineers—to understand the logic behind their programs and learn to write their own code, that way they know what AI gets right, wrong, good, bad or mediocre.
“These students, for the most part, have not programmed before—they’re coming into this class fresh,” said Johnson, who teaches introductory computer programming courses for the Creative Technology and Design (CTD) curriculum at the ATLAS Institute. “Maybe some of them had taken ‘computer science classes’ in high school, but that’s often just building a web page.”
Engineering meets design
CTD degrees are granted through the College of Engineering, where coding and computational thinking are essential skills across disciplines. At ATLAS, CTD majors build that engineering foundation alongside deep design practice, giving them a holistic and strategic approach to problem solving. Rather than following trends or treating design as aesthetics alone, CTD students learn to analyze human needs and create solutions that are usable, meaningful and durable. That means students not only learn to code, they also build skills in web development, interaction design, physical prototyping, audio and video production, digital media, theory and project management.
“I think CTD students can better explain their programming work,” Johnson said. “Yes, they have the technical knowledge, but they fit that knowledge into the broader context of society, of designing for humans. Communicating what you are doing is almost more important than the thing you are doing. CTD students are able to explain not just what they did, but why and how and what else they considered. Telling a story is much richer—much more human.”
Creative logic in action
When presenting midterm projects, Johnson found first-time programmers in his Computational Foundations I class thinking outside the engineering box to solve problems. Laura Baker, a sophomore, wrestled with how to determine when a player-controlled bee had reached a flower at the center of a maze.
“This was an annoyingly difficult problem that seemed so simple,” Baker said. “I took an artist's approach using a simple Boolean statement and an array of RGB color codes: If the bee was touching the appropriate color, then it stopped moving. I was very proud because I didn’t use AI to help me. I tend to lean toward artsy solutions in all of my projects. The only setback with the solution I used for the bee in the maze is that you cannot change the color of the walls of the maze because then the RGB code will not link back up to the if statement correctly. It worked for my presentation, though.”
While Baker could have created a traditional hitbox math test to determine where rectangles intersect, Johnson was impressed with her solution: “She needed to figure it out, and she had a creative solution rather than the ‘right’ solution.”
Of course, Johnson teaches Computational Foundations students the “right” solutions as well, but he fosters unconventional thinking because it can lead to innovation—more necessary than ever in a world driven by generative artificial intelligence.
“Programming is in upheaval right now because of AI,” Johnson said. “Future programmers are going into a world where large language models and AI chatbots can do all sorts of creative-approximate stuff. Programmers need skills that AI can’t approximate. One of the main functions of a university is to teach people to think critically, because now we have machines that can do thinking-like things. So future programmers can either evaluate the machines and push back against them, or just roll over and let the machines win.”
A ‘joyful experience’
Johnson, who also teaches introductory programming classes for computer science majors, believes creativity is necessary for coding. Far too many people, he said, see programming as “an arcane mathematical thing.”
Learn more about the ATLAS Institute and CTD programs including undergraduate major, minor and certificate; professional master’s; and PhD.
- Online info sessions about all CTD programs are held regularly throughout the year.
Prospective students can email atlascommunications@colorado.edu to schedule a student-led tour.
That creative mindset shows up in his students’ work. Computational Foundations I students blended math and design in midterm projects, with one student creating billowing clouds moving across the sky, and another coding a Price Is Right-style Plinko game simulator—both of which present a visualization of a Gaussian distribution.
“I teach Computational Foundations I basically in the same way I teach Computer Science 1300, except in Computational Foundations I, I have much more leeway in making it fun and design-oriented,” Johnson said. “I provide the most creative and joyful experience that you can have when learning to code, and let students figure out for themselves whether they want to learn more. And because it's so fun, many of them are enthusiastic about doing it.”
Baker—who had “very minimal coding experience before starting Computational Foundations”—said her view of coding has changed dramatically since taking the class.
“This class has shown me how creative coding is, that you can design with code and get an awesome, artistic output,” Baker said. “Coding has given me a new medium to make art with, and I’m very excited about that.”