CSCI 273/201 Processing: Introduction to Algorithms
- REQUIRED TEXTS AND MATERIALS
- Processing: A Programming Handbook for Visual Designers and Artists by Casey Reas and Ben Fry
- TIME AND PLACE
- TR 1:45-3:25PM Robinson Hall 223 (late start: 2:30-3:50PM)
- Rebecca Bruce
- Robinson Hall 220
- Office Hours: M,W,F 1:00-2:00PM
- Phone: 828.232.2275 (email preferred)
DESCRIPTION This course is a practical introduction to computer programming for artists, designers, and anyone who wants to have fun developing their ideas on a computer. The course will be taught using the Processing programming language which won a Golden Nica award at the Arts Electronica 2005 festival. CSCI 273, Processing, may be substituted for CSCI 201.
COURSE LEARNING OBJECTIVES:
Upon successful completion of this course:
- Students should be able to develop and implement computer-based solutions to problems.
- Students should master the essential features of most programming languages including:
- variables and assignment to variables
- primitive types, e.g., integer, character, floating-point
- commonly-used built-in reference types, e.g., single-dimension arrays, strings
- conditional control structures, e.g., if, if-else
- logical and arithmetic operators
- iterative control structures, e.g., for, while
- methods/functions and parameter passing
- Students should be able to recognize and use the features listed above in three programming languages: Processing, Java, and the Arduino programming language.
- Students should be able to understand code in the three languages listed above. Students should be able to trace the execution of code by keeping track of the values of variables through a short series of computations, including branches, loops, and method calls.
- Students should be able to apply the steps necessary for software development with classes including using and extending existing classes and developing new classes.
- Students should be able to use elements of GUI design and event-driven execution in Processing.
Lecture: Students are expected to attend all class meetings. Failure to do so will impact your class grade and will be considered a lack of interest in success on the part of the student. Students are responsible for completeing all work missed due to class absense on their own.
Exams: There will not be makeup exams. Please do not ask me to make an exception unless it is an emergency, and you have the necessary documentation for an excused absence.
LATE ASSIGNMENT POLICY
Late assignments will be accepted with a late penalty.
|Up to ONE week past due date:||10% off regular grade|
|More than ONE week past due date:||NO CREDIT|
As per the catalog, students will be excused from the late penalty if they have documented emergencies or are representing UNCA on university-sanctioned travel. An equipment failure is not an excuse for turning in an assignment late.
When you submit your code, please only submit the source code file (.pde) unless specifically requested otherwise. Your code should be commented. Make sure any submitted code begins with your name, the date, a one-line description of your program, and the assignment number. Each function should be preceded by a one-line comment. Also comment any programming statement of which you are particlarly proud or you do not think you will understand in a month. Most assignments will have an technical aesthetics component worth 10% of your grade - this is the 10% that distinguishes stellar work from work that simply meets requirements.
- Day 1: Class Canceled Due to Weather
- Day 2: Course overview and goals, Processing in context (how does it relate to Java, Coordinate system (x,y dimensions), Environment, Open, Save, Run, Sketchbook, Exporting (JAR file), Structure, Comments, Statements, Point, Line.
- Day 1: Shapes (fill, stroke, ellipse, curve, quad, attributes, grayscale)
- Day 2: Data & Calculate: Variables, Data Types, Arithmetic Operators ( +, -, *, / %), Operator Precedence.
- Reading: pp. 1-35 & 37-50
- Homework 1
- Day 1: Conditionals and Boolean Operators
- Day 2: Repetition
- Reading: pp. 51-59 & 61-68
- Homework 2
- Day 1: Repetition
- Day 2: Transformations
- Reading: pp. 133-143
- Homework 3
- Day 1: Continuous & Random & Flying Hog
- Day 2: Functions
- Reading: pp. 127-130, 173-180 & 181-194
- Day 1: Review for Test, & Images
- Day 2: Test 1, Exam Results
- Reading: pp. 95-99
- Day 1: Interactive Mouse Input
- Day 2: Text
- Reading: pp. 205-213 & 101-110
- Homework 4
- Day 1: Keyboard Input and Events
- Day 2: Arrays
- Reading: pp. 223-236 & 301-311
- Snow created with a nested for-loop
- Homework 5
- Spring break
- Day 1: Class Canceled
- Day 2: Objects
- Reading: 395-411 & 453-460
- Resubmit Homework 4
- Resubmit Homework 5
- Day 1: Objects
- Day 2: Review for Test
- Day 1: Test 2 Solution & Exam Results
- Day 2: PImage & Java
- Homework 6
- Day 1: Greenfoot
- Day 2: Greeps
- Project 1
- Day 1: Greeps Competition
- Day 2: Arduino---aborted due to setup problems
- Project 2
- Day 1: Music Visualization with Minim
- Day 2: Undergraduate Research Symposium Day--No class
- 05/03/11 @ 11:30AM
- Project 2 due in the final exam period
|Description||Number||Individual Points||Net Points|
|Daily Lab Exercises||n||2||2n|
|Totals||150 + 2n|
Letter grades are assigned based on the percentage of available points obtained by a student. 100% to 90% guarantees an A, 89% to 80% guarantees a B, and so on. The instructor reserves the option of relaxing the cut-offs for a letter grade in special circumstances. Plus and minus grades will be used for this course.
Return to Rebecca Bruce's home page
Last modified: March 12, 2011