Fruit Battery Still life by Caleb Pitkin

SCIMA 200: Introduction to Programming and Electronics
California College of the Arts, Spring 2016


Instructor: Margaretha Haughwout
Syllabus: Spring 2016

Meeting Time and Place:
Wednesday 8a-11a
SF Main Campus, Hybrid Lab

Course Website with Course Schedule:
Track changes to this website:

Email: mhaughwout at cca dot edu
Office: cafe
Office Hours: Wednesday 11-12p SF Cafe, and by appointment
Online Office Hours: TBA
Skype: mllebuffalo
Slack team: Note: This slack team is for two of my programming related classes to share questions, ideas and discoveries as they relate to code. If you need to ask me a question, it is still best to email a direct question. Please always remember Slack is an extension of the classroom, so all courtesies of the classroom apply.

Course Description:
This course will introduce students to practical applications of physics, programming, and electronics by designing and building functional interactive electromechanical devices. This course will cover basic elements of programming in both Processing and Arduino, electronics (basic circuits, Arduino, sensors and actuators), and some physics (mechanics, dynamics, energy conversion, and structural forces). Concepts in math will be reinforced through their application in designing, building, and programming electronic and electromechanical projects. The course assumes high school level competence in algebra and trigonometry. A laptop is highly recommended.

This Syllabus Is Subject To Change At Instructor's Discretion

Learning + Support:

Access and Wellness Services:
CCA: "Students with disabilities, including disabilities that are not clearly evident like chronic diseases or learning disabilities are encouraged to notify their instructor after class or during office hours. CCA will make reasonable accommodations for persons with documented disabilities. Students should contact Suzanne Raffeld, Director of Access and Wellness Services (email:; phone: 510.594.3775), to answer any questions or for assistance. For more information, consult CCA's webpage at:"

Me: We all learn in our own ways. While many different kinds of engagement with the course material are required, some of us will move through this class more conceptually, some more perceptually, others more technically, still others more rationally. Some will process the material in solitary ways, while others may be quite vocal. I expect to see visual, auditory, and linear learners. Please talk to me as soon as you can about the ways I can support your learning modes. If you do not have a documented disability, but feel you need some help, do remember that the Learning Resource Center is available to you. Your success in this class is important to me.

Learning Resource Center:
If you need any help with this class, whether it be taking notes, completing assignments, or reading texts, your first resource should be the Learning Resource Center, located in Irwin Hall, Room 207. Visit, or call 510.594.3756.
Academic coaching and tutoring at the Learning Resource Center, both for general topics (math, English) as well as dedicated tutors skilled in our topics. Contact the Coordinator of Learning Resources Virginia Jardim ( for more information.
Help documents at
Library (for finding documentation or textbooks for refreshing basic skills)

Programming Coaches in the Hybrid Lab:
Colin Wilson:
William Felker:

- (see Resources for more)
- Processing is a free download, available here:
- Do visit for labs and hours open at CCA

- There are no required textbooks for this course, however there are 2 books on Processing that are HIGHLY recommended:
- *Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction by Daniel Shiffman
- *Processing: A Programming Handbook for Visual Designers and Artists by Casey Reas and Ben Fry

We will be using github to organize our assignments. You can also use it to track changes and updates to the websites. Some introductions and tutorials on github are offered below:
- Good Resources for Learning Git and GitHub

Course Requirements + Expectations:

Grade Breakdown:
Participation, classwork, attendance 15%
Homework: 44%
Assignments and quizzes: 41%

Attendance/Participation: During class we will be engaging an array of visual, textual technical material. It is absolutely essential that you attend all classes. When learning a technical/ programming environment, missing one class can seriously impact your understanding. Make your decisions about class attendance very wisely, knowing your ability to complete assignments and follow along with course material hangs in the balance. Attendance will be taken during class. If you are not orally expressive in class, consider taking notes in class, sharing relevant doodles, contributing to online discussions, working in small groups. Also, be sure to inform me in advance if you know you will be unable to attend lectures for medical reasons, due to religious holiday observance, etc. Students who anticipate being absent from class due to religious observance should inform me by email previous to their absence. If you are absent from class, you are responsible for contacting a classmate for the information you missed. Communication is key.

As outlined in the CCA Student Handbook, attendance in class is mandatory and three or more unexcused absences will result in a failing grade.

Late Work Policy
Late work is not accepted.

Save your work constantly! Assignments not completed because of lost work will not be excused.

Grading Rubric:
A -- Excellent. Student exhibits exemplary conceptual, technical and perceptual ability implementing projects. Student demonstrates a close reading of the any required materials, and ability to successfully communicate ideas and processes to others. All work is lucid and engaging.
B -- Good. Student completes assignments, and demonstrates a grasp of most of the main aspects of each lesson, but not all. Is able to communicate information, and step by step processes well. In exams, critical analysis is present. In projects, conceptual, perceptual, and technical skills are present.
C -- Satisfactory. Student completes the assignment but may lack enthusiasm or drive to push the work into a detailed perceptual, technical, and conceptual space. Student does not demonstrate knowledge of the application or programming environment. In exams, problems exist in student's work, or the work is underdeveloped.
D -- Unsatisfactory. Student does not complete the work as assigned. Substantial problems exist in student's work.
F -- Fail. Student does not submit work, or work is below unsatisfactory level.

Final Grades:
Your final grade will be based upon the quality of your projects and your participation grade. See Course Requirements above for a point breakdown.

Digital Device Policy:
Use of cell phones and laptops for other purposes besides note taking in class significantly detracts your attention from class. For this reason, you may risk being marked absent should you be using your cell phone in class for uses other than class notes or looking things up.

Academic Honor Code
Typical: Cheating, plagiarism or fabrication will be dealt with in accordance to the college's policy as outlined in the Student Handbook. You are expected to be familiar with the college policy on dishonesty and disruption of the academic process. If you use outside sources in your work, you must attribute them.

Me: Find ways to copy work that facilitates learning. If you copy and paste code, make sure it is well commented to show me you understand what the code is doing. If you copy code, make sure to credit the programmer. Try to alter copied code in a way that pushes your understanding of how it works.

Naming Assignment Files
Students are required to submit assignments electronically to moodle. Assignment file names should begin with the assignment number, an underscore and the student's last name, another underscore, and then their first name:

Homework filenames should look like this:

- Hw1_lastname_firstname.filetype

If it is one of the 3 project/ assignments use the following naming schema

- A1_lastname_firstname.filetype

If it is an in-class assignment, please name in the following way:

- C1_lastname_firstname.filetype

Email Netiquette
Netiquette, Noun: 1. The social code of network communication. 2. The social and moral code of the internet based on the human condition and Golden Rule of Netiquette. 3. A philosophy of effective internet communication that utilizes common conventions and norms as a guide for rules and standards.
Please visit: for some tips on appropriate email practices. In your subject header, indicate your course, and a couple of words about your question/comment -- ie:

subject: SCIMA200 assignment question

Allow for a 48 hour response time from the professor (if it is urgent, please put URGENT in the subject header for quicker response time)

- Basic high school level algebra and trigonometry. If your have forgotten these skills, you should review basic equation manipulation, fractions, solving for variables, exponents, engineering prefixes (milli, micro, kilo, mega, etc.), sines, cosines, and tangents.
- You will need a laptop in this class. If you do not own one please check one out of the media center every morning before class starts.
- You will need a computer for every class session. Remember ABC: Always Bring Computer! If you do not have a laptop you must check one out of the media center. You must do this before class, or you will be marked late.

Goals of this class
- This class will use programming and electronics to study physics and mathematics. Students will learn the Processing and Arduino programming languages, and the Arduino prototyping system.
- Students will learn how to work with basic electronic components such as LEDs, transistors, andcommon sensors, electromechanical devices such as motors, loudspeakers, and relays, and how to build systems incorporating these elements.
- Students will learn how to read, understand, and create simple circuits and schematics, and how to use basic test equipment.
- Students will learn how to simulate in software the basic concepts of classical mechanics (statics, kinetics, and kinematics).
- Students will learn how to design systems consisting of hardware (Arduino) and software(Processing) working together.