Joel SwansonBy Prof. Joel Swanson

Programming is quickly becoming an essential skill of the 21st century. The traditional definition of literacy is expanding to incorporate new forms of reading and writing that include markup, scripting, and programming. Having a basic understanding of how code operates, and thereby structures the world in which we live, is a key differentiator in the contemporary workforce. Within higher education, the pedagogy of programming needs to expand beyond computer science, and with it, we need to critically evaluate our methods of instruction and assessment to meet the learning styles and diverse backgrounds of all students. For these reasons, I have chosen to develop this teaching portfolio around a course that I teach frequently, ATLS3000, Code.

Code teaches students the fundamentals of programming within a creative studio environment. This means that I teach the fundamental concepts of programming, and students use those concepts towards the production of creative and speculative works. This stands in contrast to the traditional models of teaching programming, which are often more rote and prescriptive. Students within this class are typically Juniors and most are Technology, Arts, & Media (TAM) minor or certificate students from a diverse set of majors with highly variable experiences with programming. Eventually, we would like this course to be accepted as equivalent to Computer Science and Information Science’s introductory programming course. This course is required for students who haven’t taken an introductory programming course in another department, and it is a pre-requisite for many of the upper division electives within the TAM Program’s curriculum.


This portfolio is divided into four sections. Background provides an overview of the course and how it has evolved since I began teaching it several years ago. It also contains a general description of the course as well as overall course goals, course objectives and teaching questions. The Implementation section details the specifics of the course, as well as my rationale for the course structure and content. The Student Work section contains example projects and evaluation metrics from the course. And lastly, I have written my Reflections on the latest offering of this course, Spring 2017, and what I plan to change as I will be teaching it again in a different format in Fall of 2017.

I teach this course regularly as part of my teaching duties. This course has proven difficult for many students who struggle with the technical aspects of coding. I relate with this perspective because programming was difficult for me to learn. However, in retrospect, I don’t believe my struggle was because programming is inherently difficult; the challenge of programming has more to do with how it is taught. I take it upon myself to make programming approachable, relevant, and dare I say fun for students who may not view themselves as technically inclined.

I would like to capture the experience of those students who may come into this course feeling apprehensive about programming, yet manage to do well in the course. I feel the message behind this experience is important and compelling for computer science education, and many of its attendant biases and stereotypes.

I want to figure out what works and what doesn’t work within my teaching methods. I have had a great deal of success with teaching programming to a wide range of students, but I would like to be better able to articulate which practices and approaches are the most successful. It is my hope that this portfolio could be useful to others teaching introductory programming courses and simultaneously reflects my commitment to teaching.

Read full portfolio (PDF)