Skip to content


Digital Literacies Block

As indicated by Laurel, she, Caroline and I are collaborating on a set of related courses that encourage digital literacy and personal reflection in the context of a variety of subject matter. I’m heading up the programing for artist class which focuses on self-portraiture through the medium of coding. I’ve laid out the basics of the course below and how I think the first few weeks would look:

Introduction to Programing for Artists

Course Description:
The applications enabled through the practice of computer science permeate our existence. These structures have transformed and diversified  human communication, interaction and expression. While computer science is conventionally restricted as a specialized practice, the increasing prevalence of programmatic structures  has necessitated the expansion of a more general study of the field.  Like writing, filmmaking, and many other forms of human expression, computer science can be applied to a multitude of applications and is capable of conveying complex world views.

Primarily, this course considers the  question: how can programming be used as a tool for self-expression? In particular, we will approach programing in the vein of art making. In exploration of the aforementioned question, students will be instructed in the application of a variety of programing languages for both web desktop and hardware applications. We will investigate methods of data analysis, interactivity, and visualization, all the while maintaining a personal introspective focus through each sub-discipline. There is no prerequisite knowledge of programing or software development required for this course. Furthermore, there is no requirement for prior art education. We begin with the basic assumption that all individuals have personal stories to tell and emotions and ideas to express. Through the course of this class, programming will serve as the primary medium for conveying these aspects of ourselves.

Objectives:

  1. Develop an understanding of the basics structures and principles of programming
  2. Re-examine the relationship between conventional attitudes towards computer science and methods of producing art
  3. Experiment with forms of web development
  4. Explore innovative forms of data modeling
  5. Practice creating art and beauty with code

Technical Skills to be addressed:

  1. Processing
  2. Physical Computing/Arduino
  3. openFrameworks/ C++
  4. javascript / html

Course Texts:
Programming Interactivity: A Designer’s guide to Processing, Arduino and openFrameworks by Joshua Nobel
Turtles Termites and Traffic Jams: Mitchell Resinck
A Giacometti Portrait by James Lord

Week 0: (before semester begins)
All students are responsible for acquiring and reading A Giacometti Portrait by James Lord. We will discuss the book on the first day of the semester.

Week 1: The Essentials
Required Reading: Programming Interactivity chapter 2

Lesson: Examine the building blocks of programing through C++ syntax and the Xcode IDE
The variable

  1. simple types: strings, integers, booleans
  2. lists/ arrays
  3. Operators

Control Statements

  1. if/then statements
  2. for loops
  3. while loops
  4. case statements

Functions

  1. Function syntax
  2. Parameters
  3. Returns

Challenge: Write a program that asks a question and responds to the answer
Spend 30 minutes writing a function that requires at least one parameter, performs at least one operation and returns a value.

Discussion: The nature of code.
What are the limitations of these foundational elements of code? What are the advantages? How do the choices that programmers make differ from the choices Giacometti made in Portrait? What do these choices say about the nature of programing languages?

Week 2: Generating visuals with code
Required Reading: Programming Interactivity chapter 3
Turtles, Termites and Traffic Jams, chapter 1
Lesson: Drawing Methods in Processing
The Processing IDE

  1. Installing the IDE
  2. Processing syntax
  3. Writing functions
  4. Running and Debugging applications

Basics of Drawing in Processing

  1. the Setup() and Draw() methods
  2. lines(), circles() ellipses() and background() methods
  3. Bezier techniques in processing

Capturing User input

  1. mouse Input
  2. keyboard Input

Challenge: Spend 45 minutes creating your interpretation of a paint program in processing. After the 45 minutes is up, swap with another student in the class. Each student will spend 20 minutes using someone else’s program to generate a self-portrait sketch. These sketches can be in any manner of interpretation and are not required to be “photo-realistic”. The more non-conventional your mindset, the more interesting the results!

Discussion: As a group we will review all of the self-portraits created by the class. We will discuss the similarities and differences between them and talk about individual approaches, successes and challenges. Throughout this critique, we will discuss the divergence of our programs between non-digital methods of image generation and how the processing IDE impacted our choices both as programmers and users.

Week 3: Visualizing Information
Required Reading: Getting Started with Processing and Data Visualization by Jer Thorp: http://blog.blprnt.com/blog/blprnt/your-random-numbers-getting-started-with-processing-and-data-visualization
Turtles, Termites and Traffic Jams chapter 2

Lesson: Visualizing web data in processing
The value of visualization

  1. Proliferation of Data
  2. Case study: Web Seer
  3. Case study: Project Cascade

Data Visualization

  1. Parsing Data
  2. Generating a Spectrum
  3. Generating a Bar Graph
  4. Generating a Text Cloud

Challenge: A portrait from data: create a visualization that interprets an individuals data. Students will be provided with a 1 of 3 anonymized data-sets associated with publicly well-known individuals. Using processing, students must generate a visual representation of some aspect of the data they are given. Students will have 1 hour to complete this task.

Discussion: As a group we will compare each unique visualization for each respective data-set and discuss what elements of the information are privileged by the respective representations and which are diminished. The identities of the individuals from which the data was drawn will be revealed and we will consider how accurately or inaccurately the visualizations correspond to our perceptions of these individuals. Then reflecting on the methods for gaining access to online information, students will discuss strategies and considerations they would take into account if required to parse and visualize their own data, and how this data may represent them.

Week 4: Coding for the Web Basics
Required Reading: W3Schools HTML Basics: http://www.w3schools.com/html/default.asp
and CSS Basics: http://www.w3schools.com/css/
Turtles, Termites and Traffic Jams chapter 3

Lesson: Scripting and Styling HTML
HTML

  1. Tag syntax
  2. BasicTags
  3. Metatags
  4. HTML5 tags

CSS

  1. CSS syntax
  2. Linking external style sheets
  3. Styling Backgrounds
  4. Styling Images and Divs
  5. Styling lists
  6. Styling text

Challenge: Create and style a personal home page without the use of text. Each student will be provided with a basic un-styled html page containing an assortment of html elements and pre-selected images. Over the period of 45 minutes, students must modify and style their page so that it reflects them as an individual. Students are limited to the use of HTML and CSS and cannot insert their own text or images into the page.

Discussion: As a class, we will review each student’s personal page and discuss the rationale behind the choices that were made in their design. We will contrast the pages created in class with existing forms of personal representation online such as personal profile pages and talk about the differences and similarities in the designs of each. We will conclude with a discussion of the wider implications of personal representation through the format of a web-page

Week 6: Coding Dynamic Web pages
Required Reading:
Lesson: Javascript
Javascript Essentials

  1. Javascript syntax
  2. Incorporation into HTML
  3. Forms

Drawing with Javascript

  1. Introduction to the Canvas tag
  2. Javascript Drawing API

Javascript Alternatives

  1. jQuery
  2. processing.js

Posted in Project Concepts.


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Christopher Stein says

    First, in general the courses you’re describing are well thought out and look to be interesting courses. It is probably too much (and too late) to comment on the details of the courses but if you would like me to do that later I would be happy to (I of course have more experience with the programing course).

    A specific comment/question I hope you can cover in the class presentation: After reading it again and reading Joe’s comment I am not quite sure whether the shared multimedia project actually involves students directly collaborating on the creation of a project or whether the students create their projects and then see what the other classes have done. It seem more like the latter, especially since I didn’t see any evidence of direct collaboration in the course outlines.

    One of the challenges I’ve found of integrating classes in the same semester (whether it’s direct collaboration or indirect in looking at each other’s work) is that classes won’t be producing work at exactly the same time. If you’re planning on having the sociology class look at the work from the programming class for example you may want to make it flexible enough that if you need to change weeks you can do it without effecting the general flow of either class.

    Also related to that kind of logistical thing. I would argue that you may not want the shared assignment to also be the culminating one. Part of the nice thing about your idea is that it allows students to see through the focus of other students and disciplines. To guide it and really know it’s happening you may need some kind of reflective writing assignment around the experience of seeing the work from the other classes. Using a culminating assignment prevents this from happening and to be honest if the culminating assignment is at the end of the class most students will just be focused on finishing the class and not so much on work from other students.

    In my head when I read the idea I was thinking of something like:
    1) Classes do individual assignments related to common theme
    2) Assignments are shared across classes
    3) Classes do individual assignments that are reflections on the experience

    That is not to say you have to do it that way at all.

    Another thing to think about is that, if the focus is really on expanding students’ conception of a central theme (Autobiograpy in this case but could be others) through shared assignments and multimedia projects, you could take this basic idea and use it with other themes and even with existing classes. Each course can be seen as a separate entity and the “blocking” of them is done in addition to that. ALso using existing courses could possibly be done with no formal OK required by any administrator, as long as the current learning objectives of the courses were satisfied.

  2. Joseph Ugoretz says

    I’m leaving this comment on Jennifer’s post, but it’s really for all three of you–so please share! 🙂

    I very much like the learning community concept you’ve got started with here, and I think pulling these three courses together is going to be a fairly appealing and productive approach. The challenges Laurel described are really not seeming too difficult to me–the technical part of a “mother-blog” for the three courses is not going to be a big deal, and the challenge of the common culminating project is actually one of the most interesting pieces–and if you leave enough flexibility, it will grow and shape itself in some surprising ways, I’m sure. (I would make sure to keep that project committed to public display at least to some degree–remember what we talked about in terms of social pedagogies, and see if you can make this community benefit from some of those types of approaches).

    I think there are some other challenges that you can work with, that you haven’t really mentioned, to take this out of the realm of blow-your-mind and into something that can really be practically accomplished. The first is justifying, as clearly as possible, why these three specific courses make a good community. You’ve got some resources about the value of learning communities, but why (other than the fact that these are the three that the three of you teach) should these three in particular be linked? It’s probably an easy case to make for the comp course, because everyone is pretty much already convinced that writing is a part of everything. I’m sort of still missing the sociology and autobiography link, though. I don’t think that’s a hard case to make, but it does need to be made explicitly. Similarly, and maybe more of a challenge for traditional department structures, why programming? There, too, I don’t think it’s a hard case to make, but you can’t assume that it’s self-evident. What does programming (even when seen as creating an art project as you’re seeing it here) have to do with writing, or with sociology?

    I guess what I’m pushing for here is something closer to a formal proposal…something that will get through a curriculum committee or a foundation board or similar. Learning communities are logistically (and even financially) difficult. They can certainly be worth overcoming that difficulty, but a strong proposal will explain why they’re worth it–in the specific case being proposed. It might be asking too much, but it’s also not a bad idea to at least make a nod to resolving some of the practical challenges (registration, grading, scheduling) which would have to be overcome.



Skip to toolbar