In 2019 I defended my PhD dissertation with the cryptic title “public class Graphic_Design implements Code { // Yes, but how? }: an investigation towards bespoke Creative Coding programming courses in graphic design education”
The dissertation is situated at the intersection of graphic design, programming, and pedagogy. Taking pragmatism and constructionism its theoretical stance, the research question of the dissertation was:
How should programming ideally be taught to graphic designers to account for how they learn and how they intend to integrate programming into their vocational practice?
The core of the 128-page dissertation is three papers, which together examine and answer a number of sub-questions. The conclusion to the dissertation’s main question read: “Programming should ideally be taught to graphic designers as a studio-based social activity practiced in a safe environment using relatable metaphors, familiar materials, visual examples, and live, interactive demonstrations. Courses should be planned to utilize a design-first perspective to allow the graphic design students to use their pre-existing, domain-specific skills to leverage their acquisition of programming knowledge and relate it to their vocational practice. Ideally, flipped classroom and blended learning instructional strategies should be used advantageously to move transferable knowledge out of the classroom, allowing instead for contact time to be used to engage in plenary discussions, presentations, troubleshooting, and transfer of tacit knowledge through experiential, hands-on discovery learning. Assignments should be available in varying difficulties, solvable individually or in pairs/groups, provide a fixed goal, include premade assets, and limit the need for aesthetic decisions to ensure students stay focused on learning to program. Also, assignments should have a clear utilitarian purpose within a graphic design workflow and mimic restrictions found in the professional industry.”
Heuristics
My dissertation also contains a separate section dedicated and written directly to teachers at design schools who are responsible for teaching students programming, most often through the so-called “creative coding” courses. The essence of the findings I obtained through my PhD study is distilled down into 24 action-oriented heuristics (all further explained in the thesis):
- Remember that graphic designers are not artists
- Use relatable materials
- Arouse and inspire
- Highlight utilitarian value
- State a vocational purpose
- Provide authentic restrictions
- Limit the need for aesthetic decisions to keep the focus on programming
- Stimulate positive aesthetic responses
- Allow students to enjoy their work
- Assess aesthetic quality— not code quality
- Contextualize programming
- Show how programming concepts have been used in graphic design
- Remember that graphic design students are visual learners
- Allow for pair programming AND individual programming
- Use live coding
- Build on existing graphic design history
- Show commonalities between graphic design and programming
- Introduce programming concepts relevant to computational graphic design
- Make programming concepts fit graphic design
- Make assignments “hard fun”
- Offer pre-made elements
- Use interactive demonstrations
- Introduce assignments with different difficulty levels
- Spend more time helping, and less time lecturing