PyCon 2016 in Portland, Or
hills next to breadcrumb illustration

Bringing Introductory Computer Science Concepts to Life Using Graphics

Emilia Gan, Ravi Gandham

Audience level:


Students in introductory computer science classes are often too focused on doing things “right” to have fun with programming. Assignments involving graphics add an element of playfulness and foster a more relaxed environment for learning. Students typically produce work that exceeds assignment specifications, while concurrently internalizing programming concepts and developing debugging skills.


Beginning students often have difficulty organizing their programs and following the logical flow of their code. At the same time, computer science students are typically adept users of technology and are often underwhelmed by the “console” output of the programs they are struggling to create. A program involving graphics can be satisfying, even if simple, as it allows students a chance for personal expression. The “ownership” students feel towards their graphical creations enhances their learning. Instead of trying to get some “trivial” piece of code to produce some pre-determined “correct” output, they are focused on translating their creative vision to the computer screen. Graphical outputs also provide students with useful visual feedback – they can instantly see whether or not their code is successfully reproducing their vision. This reinforces the concepts being taught and allows students to understand how their programs are working on a much more personal level. Students often spend hours tweaking their code to get their graphics to turn out just as they had envisioned. This repeated pattern of coding and evaluation leads to a solid understanding of how the program is working.