This document is long, but contains much important information. Please take the time to read it all.
This course focuses on both understanding how visual media are represented in computers and how they are manipulated and generated programmatically. It introduces students who may have no background in programming to simple programs with clear graphical output, written in Processing. Processing is a computer language designed for artists that provides a simplified yet powerful interface. By first manipulating sample programs, students learn the connection between the commands and the generated output. They will then move towards developing their own programs for manipulating and generating media. Students will also study how media – images, sound and movies – are represented, stored and transmitted in/by computers. This gives students a solid basis for understanding digital media, and more generally, how computational processes operate. The programming concepts transfer well to other languages and other tasks.
Storage media for backing up work (flash drive, etc.). PLEASE BACKUP YOUR WORK OFTEN.
There is a required textbook:
Learning Processing, Second Edition: A Beginner's Guide to Programming Images, Animation, and Interaction by Daniel Shiffman
In addition, there are a number of great online resources
Class Sessions: Tues. and Thurs. 4:40 - 6:00 PM Soc Sci 1100.
Labs: required, please see below
Office Hours: Tues. 2-3, Thurs. 3-4 or by appointment; Kemper 3031.
Drop-in Help Sessions: Wed. 7-9 in 93 Hutchison and Friday 12-1 in 73 Hutchison.
There are a number of resources for getting help during the course:
Find our class page at: https://piazza.com/class/k4kqca456i67k6 If you have not been enrolled already, you can self enroll.
Instructor:
Michael Neff
Kemper Hall 3031
mpneff AT ucdavis DOT edu (preferred)
530-754-9510
Please only e-mail the instructor about private matters. All other questions should be posted to the discussion forum on Piazza (see above). Please start the subject of emails with [12]. Also please come to my office hours to ask any course questions.
Teaching Assistants:
Simba Nyatsanga <simnyatsanga AT ucdavis.edu>
Ahsan Abdullah <aabdullah AT ucdavis.edu>
Students are expected to attend a one hour lab session every week, starting in week two. Labs are cancelled on days when the university is closed. There will be a short assignment in each lab and the rest of the time will be to work on and get help with your assignments. There will be both a TA and tutors available in the lab. Lab sections are assigned based on the first letter of your last name. If you have a conflict with your assigned time, please send an e-mail to: 12labtime@gmail.com with the following information:
Your name and student number:
Nature of conflict: (e.g. other class)
Lab Assigned:
Requested Alternative time:
All times that you can attend:
Labs are between 10-1 & 3-6 on Mondays and are in Hutchison 93.
Last Name Starts with: |
Your lab: |
A – Do |
Mon. 10-11 |
Du – Huang, W. |
Mon. 11-12 |
Huang, Y – Mar |
Mon. 12-1 |
Mat - Qia |
Mon. 3-4 |
Qua – Thom |
Mon. 4-5 |
Thorn – Z |
Mon. 5-6 |
A few things to keep in mind that will help your assignments go smoothly:
This course will be letter graded. The distribution of marks will be as follows:
Course Component |
Weight |
A1 |
5% |
A2 |
10% |
A3 |
10% |
A4 |
10% |
A5 |
10% |
A6 |
15% |
Lab Assignments |
5% |
Midterm |
15% |
Final |
20% |
Assignments A1-A5 are due at 11:55pm on the day indicated in the class schedule. The dates are also setup in Canvas. A6 must be presented in class with the final code being submitted by 11:55pm on the day you present
Note 1: All submitted code must run. That is, syntax errors must have been fixed so that when the play button in Processing is pressed, the program runs rather than generating an error message.
Note 2: For the last five assignments, students are invited to submit a one page summary that describes what you were trying to achieve, how you went about it and possibly what you feel did or did not work. This will be considered when evaluating your piece. It is optional, but can be very helpful for the TA, especially if things don’t run perfectly.
All assignments must be submitted on time or they will receive a grade of zero. To deal with any personal issues that may come up (illness, family matter), every student is given two extension days that they can apply towards a deadline. Only whole days can be used (i.e. for any assignment you can use 0, 1 or 2 days, adding to a maximum of 2 over the entire course). To use an extension day, simply include a text file with your submission that says “I am using 1 (or 2) extension days.” Save them until you need them. Extension days cannot be used with the final assignment. This must be presented in class as scheduled.
Academic Misconduct Policy
Department of Computer Science, UC Davis
Misconduct-implies-F policy. It is the policy of the Computer Science department that, for ECS courses, any academic misconduct violation in a class will normally result in getting an “F” grade for that class. This is in addition to any disciplinary sanctions from the Office of Student Support and Judicial Affairs (OSSJA). This also applies to the CDM version of this class.
Rationale. In recent years, faculty have been referring more and more cases to OSSJA, and there is a general perception that cheating has become increasingly prevalent. Both students and faculty are unhappy about this. Academic misconduct is unfair to other students, robs faculty of time, violates ethical norms, and causes reputational damage to the department and the campus.
In the past, ambiguity in an Academic Senate regulation often resulted in a student getting a “0” or “F” grade only for the work in which academic misconduct occurred. Many faculty viewed this as an inappropriately small penalty, even when combined with OSSJA disciplinary sanctions. The UC Davis Academic Senate has clarified the regulation, making it unambiguous that an “F” may be assigned for a course in which a student commits academic misconduct.
What misconduct entails. The UC Davis Code of Academic Conduct describes expectations common to all courses. You are responsible for following those requirements. Precise expectations can vary somewhat from course to course, and it is your responsibility as a student to understand what the rules are for each course you take. If in doubt, ask the instructor.
By default, ECS courses define the following as academic misconduct: (1) Viewing past assignments or exams for your class; (2) During an exam, sitting next to (left, right, behind, diagonal) any student you’ve been working with academically or interacting with socially; (3) Using unattributed source code in an assignment, or any source code you don’t understand; (4) Uploading an instructor’s materials to a site like CourseHero. Note that assignments are often screened for plagiarism using software tools and datasets of past work.
This is an expanded discussion of cheating on programs taken from the Prof. Stevens syllabus of 32A that I think provides useful guidance. If you have questions, ask.
It is pretty clear what it means to cheat on a test, in this class just like any other. It is sometimes less clear to students when they are cheating on a programming assignment. We want you to help each other, and we want you to look at examples of similar programs. So how do you know when helping and looking crosses the line into cheating? Here's our basic rule:
You should write each line of your program yourself, and you should know what it does and why it is there. To check yourself, you should type each line of your program yourself; never copy or cut-and-paste from another file. While you're typing, ask yourself, do I know what this line does? Why am I including it in this program? When you write comments, use your own words.
Often the easiest way to write a program, even in industry, is to take an already-existing program that does something similar, and change it around. This is fine in "real-life", but in this class you should not cut-and paste whole programs or even single lines, since as a beginner you need to concentrate on every line. You should, however, look very carefully at the example programs from lecture or the textbook, and figure out how your programs should be similar or different. If you cut-and-paste from another program, that is cheating and you are very likely to be caught.
Writing programs can be very, very frustrating. Sometimes you don't know how to start. Sometimes your program seems perfect, but it doesn't do what you think it should be doing. We want you to talk to the other students, to friends who are programmers, to the TAs, to the instructor, to anyone who can help! We want you to show them your programs and ask them what's wrong. But make sure when the conversation is over that you understand every line of your (hopefully improved) program.
Advice. We have found OSSJA investigations to be thorough, fair, and respectful. However, academic misconduct referrals are not a pleasant experience for anyone. If you are in violation, we urge you to acknowledge your mistake, accept the consequences, learn from the experience, and move on. Not telling the truth only makes the situation worse.