Syllabus

Location/Time/Instructor/Etc:
ARTS 444: Interaction II
Spring 2015, University of Illinois
3 hours credit
2-4:40pm, Tuesday/Thursday
Room 225 A+D
Instructor: Ben Grosser

Prerequisites:
ARTS 344

Optional Textbook:
Getting Started with p5.js, by Lauren McCarthy, Casey Reas, and Ben Fry

Overview:

This course is about interaction in the context of cultural production, with an emphasis on the implementation of software-based computational art works.  Read more…

Prerequisites:
Successful completion of ARTS 344: Interaction I

Learning Goals:
Students who successfully complete the course should expect to learn:

  • some basic history about canonical artworks made with code
  • the potential opportunities of code-based art making
  • an understanding of how and when a custom-made tool can exceed a pre-made one
  • an understanding of the fundamentals of computer programming using JavaScript (variables, loops, arrays, functions, libraries, etc.)
  • how to write relatively complex and reliable code-based artworks using a variety of interaction methods and outputs
  • how to debug code
  • how to document an interactive code-based work for a remote audience

Required Supplies:
A Box account, or some other way of storing files when needed.
Notebook & pen/pencil!  For notes and visual thinking.  Important!!
Headphones (so you can work with sound w/o bothering others).

Submitting Projects and Project Management:
All projects will require code submissions and project documentation via the blog. Usually these code submissions will be possible by posting a link to the p5js web editor. Occasionally it may be required to post a .zip file. We’ll talk about how to do all of this in class.

How to (not!) take notes during class:
When I teach code-based material, I often find that students feel a need to write everything down that I type on the screen, a need to get all the code captured. In general, if you’re doing this, you are missing the most important part of the lecture! The point of the lecture is for us to walk through that day’s material together, for me to present it and for you to take it in and see if you get it. While this may mean you’ll want to write some notes down, I will urge you to not worry about capturing the code itself. Instead, grab a notebook/pencil, turn your chair towards the projection, and concentrate. After each lecture portion of a class, I will post everything I do online so you can grab a copy of just what I typed. This will also help you given the less than ideal configuration of our classroom, where it’s hard for many of you to type on the lab computers while eyeing the projection anyway.

Your Responsibilities as a Student in this Class:
Since the class material will be new for most of you, I want to outline some specific responsibilities that I expect. First, as I outlined above, you must listen during lecture and do your best to focus! While this will of course include putting aside social media and texting, it also includes an expectation that you follow what I’m presenting. Second, you’ll need to read and/or watch the material I ask you to complete as homework. This is not optional (unless so marked); it’s for your benefit to read/hear/see material in multiple ways, and the assignments are an essential part of that. Third, you’re going to have to sweat it a bit. Programming can be frustrating, and you will get frustrated! But the most important learning often happens when you keep working a problem. However, if you find yourself completely stuck, don’t despair; just come in to the next class and we’ll figure it out. Fourth, you’ll need to embrace experimentation. Change values. Look up new functions and try them. Play! And finally, you absolutely need to ask questions when you’re confused. I guarantee, if you have a question that someone else in the class does too. Ask! I can’t always tell if you’re lost unless you ask (some of you are good at hiding it :)).

I should also add that you need to adhere to university’s academic integrity policies (see section down below).

My Responsibilities:
I promise to plan well, to listen attentively, to think carefully about how to present material, to adapt if it’s not working, and to provide useful critique.

Facebook, Texting, Phone, Etc.:
When anyone is presenting, whether it’s myself as instructor or your peers during critique, do not disrespect the presenter by texting or otherwise paying attention to your phone. When we are in lab mode (individual work time), you are free to use whatever device you want, but please keep diversions to a minimum.

Contacting Ben:
You can email me at grosser@illinois.edu.  If you do so, please put ARTS444 as the first part of the subject line so I can easily track it!

Office Hours:
Because this is a lab course, we have a lot of work time built-in to our nearly six hours in class each week. In other words, the course is designed so that you can ask for and get individual help during class time. Please try to ask your questions during class. That said, if we have already worked together in class on your question(s) and you still need more time, let me know and we can arrange extra time outside of class. I am also likely to add some specific extra open lab times as needed.

Attendance:
Regular attendance is a necessity.  Sometimes I’ll present important material needed for the completion of your projects.  Other times will include presentations by you or your colleagues, as well as individual work time.  During that work time I will be available for consultation and help when you get stuck. There will also be lots of group work in the course, and you’ll need to be present so you don’t harm your group’s ability to complete projects. You need to attend all classes to get the most benefit.

Because of this, excessive absences (5 or more) will result in the lowering of your final grade by 1/2 letter for each additional absence. However, note that this gives you four absences before it counts against your grade. You should use these “free” absences for sick days, or other reasons. Only absences resulting from extreme illness or otherwise documentable circumstances will be excused (IOW, not just a McKinley visit, but a family emergency or emergency hospital/doctor visit). All other absences will be counted. Three late arrivals to class will constitute one absence. If you show up without required work (e.g not prepared to present on critique day) you will be considered absent. If you don’t agree to abide by this policy then you should drop the class.

I will track attendance through your signing an attendance sheet each class. It is your responsibility to sign the sheet!

Participation:
Regular participation is an important part of this class. Contribute to critique. Ask questions during discussions and lectures.

Grading Criteria:
The artwork created in and for this class will be evaluated and graded according to the following criteria, and is not a relative scale based on the output of the class (i.e. no bell curve guarantee):

A:
 outstanding; thoughtful and intelligent ideas presented in a clear, organized, and engaging manner; both concept and execution illustrate critical thinking and engagement with course material.

B:
 good; the ideas are interesting and successfully presented; shows potential, but not necessarily distinctive.

C:
 mediocre; achieves minimum requirements of the assignment, but not particularly clear, successful, or ambitious.

D:
 poor; does not satisfy the minimum requirements of the assignment; generally unsatisfactory in terms of quality and clarity.

F:
 you probably didn’t submit a finished assignment.

Grade Calculation:
Your final grade will be determined roughly as follows (including attendance):

25%: Project 1
25%: Project 2
20%: Project 3
25%: Project 4
5%: Participation

Workload:
I suggest you budget 5 – 6 hours a week for doing course work outside of our class time.

What is Academic Integrity in the Context of this Class? Can I use code from others?

The work you submit for this course must be yours. This means that 1) the idea presented by the work is an idea that originates with you, and 2) that the algorithms that implement that idea in code were authored by you.

That said, it is normal practice to explore the code of others for inspiration and learning. This is fine. But when it comes to the code you turn in for this class, it should substantially be something you wrote, not something you just copied and tweaked.

Exceptions:
You may take any code I have written and use it as a launching-off point if it helps you. Other potential sources of launching-off code include the optional textbook and the Coding Train videos. However, if you use such code as a place to start, your submitted project must still demonstrate original ideas and include substantial sections of code that you wrote on your own.

You may use any commonly-accessible code library as a source of functions for your work. In fact, p5.js is an example of this!

You may find and utilize any short algorithms for specific functions, such as shuffling an array. A good place to look for these is https://stackoverflow.com. Another way of thinking about this is that I don’t expect you to rebuild the wheel, but you still have to design your own car.

References/Citations:
In any case where you draw code from others (including me, the book, or the Coding Train videos), you need to reference that source in the code comments. For example, if you are using code from me, write a comment that says something like “// extension of code from ben grosser at https://editor.p5js.org/bengrosser/sketches/23lkjslkj2”. In other words, treat your code like any other kind of research object (e.g. a research paper) that draws from the work of others, and use references/citations. When in doubt, it’s best to use a reference!

Be Able to Explain Your Code:
Turn in code you understand. You should be able to walk me through your program, showing me how it works, when it does what, and why. I would much rather you turn in a simple program you understand than a complex copied and tweaked one you don’t. If you have any questions on this at all, please ask!

Questions?
If you have any question, just ask! The name of the game here is transparency. If you want to adapt something but aren’t sure if your adaptation would be substantial enough to constitute original work, then let’s talk about it. These lines aren’t black/white or the above would be shorter!

Violations:
If, as outlined above, you represent work as your own which you did not create, then I will pursue it as a violation of the UIUC Academic Integrity code.

Facilities:
You are responsible for following the A+D computing facilities guidelines.
You will be assessed a facility access fee of $95 for using the A+D labs.