Bryn Mawr College
CS 110: Introduction to Computing
Fall 2015

General Information Syllabus and Schedule Text and Software
Course Policies
Reference Links

General Information

Instructor: David G. Cooper
When you e-mail me, make sure you put "CS110" at the start of the subject line to ensure a quicker response.
Mondays & Wednesdays, 2:40PM - 4:00PM
Room: Park 338
Open Lab: Wednesdays 11:00am - 1:00pm, Park 231 (Computer Science Lab)
TA Lab Schedule:
Sundays 2:00pm - 4:00pm Tu Luan
Mondays 6:00pm - 8:00pm Jordan Henck and Katherine Lee
Mondays 8:00pm - 10:00pm Jordan Henck
Tuesdays 6:00pm - 10:00pm Hanna Fields
Wednesdays 6:00pm - 8:00pm Katherine Lee
Wednesdays 8:00pm - 10:00pm Lizzie Siegle
Thursdays 6:00pm - 10:00pm Ziting Shen
Fridays 11:00am - 1:00pm Lizzie Siegle
Saturdays 4:00pm - 6:00pm Tu Luan

Text & Software

Processing: Creative Coding & Generative Art in Processing 2 by Ira Greenberg, Dianna Xu, Deepak Kumar, Friends of ed, 2013. Available at the Campus Bookstore. Also at amazon for $40.94 click here
A Kindle eBook is available for those comfortable learning from an eBook (Amazon price is $20.00). The Bryn Mawr Bookstore price is $44.99.

Processing Software (This software is already installed in the Computer Science Lab). The software is also available for your own computer from Processing web site ( Download the latest stable 2.X version for your own computer/Operating System.

Processing Reference The reference on is for version 3.0+. Here is the Processing 2.0+ reference.


Syllabus and Schedule

Course Description: An introduction to the nature, subject matter and branches of computer science as an academic discipline, and the nature, development, coding, testing, documenting and analysis of the efficiency and limitations of algorithms. Also includes the social context of computing (risks, liabilities, intellectual property and infringement).

This semester, we will be exploring the creative aspects of coding as a context for learning the above concepts. You will exercise your creativity by desiging programs in a language called, Processing. Processing is a new language/environment built upon the programming language Java. Processing was created by artists, designers, and computer scientists to explore ideas of creative coding sing computer algorithms.

We will cover the entire text during this semester. Please refer to the text for more details.

Important Dates

Aug 31: First lecture
October 7: Exam 1
December 9: Last lecture/Exam 2


Below is a list of programming assignment that will be handed in. In addition, you are expected to spend at least 10 minutes a day using Processing. Some of this time may be done while reading to prepare for class, some will be based on ungraded work listed under the assignments of the schedule, and some will be done to satisfy your own curiosity.
  1. Assignment#1: (Due on Wednesday, Sept. 16): First Sketch
  2. Assignment#2: (Due on Monday, Sept. 28): Interactive Object
  3. Assignment#3: (Due on Mon, Oct. 5): Animation w/ Collisions
  4. Assignment#4: (Due on Monday, Oct 26): Abstract Computational Art
  5. Assignment#5: (Due on Monday, Nov 9): Data Visualization
  6. Assignment#6: (Part A due on Monday, Nov. 16, part B due on Mon. Nov. 23): Underwater Creature
  7. Assignment#7: (Due on Mon, Dec. 7): Click here for details

Schedule (subject to change, check back for updates)

Week Date Topic






Introduction's Getting Started tutorial (by Casey Reas and Ben Fry).

Book: Ch. 1, pgs. 1-12. Skim pgs. 12-32

Open: Processing 2.2.1 application.
Do:    Getting Started tutorial (by Casey Reas and Ben Fry).

Grading Policy

If you'd like to be able to work on your own computer, go to's Download section and install Processing 2.2.1 on your computer. Ensure that you have a working implementation of Processing.


Processing Coordinate System and Shapes
Book: Ch. 2, pgs. 33-48

Start: Assignment 1
Do: Coordinate System and Shapes tutorial.
Play: Experiment with shapes and modes.
Book Ch. Examples:
Fig 2-5.   Simple house
Fig 2-11. Advanced house



Labor Day


More Drawing Color
Book: Ch. 2, pgs. 48-63

Do: Color tutorial.
Play: Experiment with attributes and colors.
Book Ch. Examples:
Fig 2-13. Simple face
Fig 2-17. arc() command
Fig 2-18. Advanced face
Exercise from Class:
This movable and scalable Barn has a few problems. As an exercise, see if you can complete the example so that if you change any of the reference variables, the barn will still look the same, but possibly smaller or bigger.



Rosh Hashanah



Variables & Functions

Program Structure

Book: Ch. 3 (pgs. 65-72)

Submit: Assignment 1
Start: Assignment 2

Book Ch. Examples:
Fig 3-1. Override rect()
Local variable scope.

Scalable barn example

Problem Set 1 (for practice)



Control Structures

Book: Ch. 3 (pgs. 73-80, 88-91)

Class Examples:
Random Ellipses

Transformation Example

Barn Function


Yom Kippur





Book: Ch. 3 (pgs. 93-97)
Book: Ch. 4 (pgs. 115-123)

Submit: Assignment 2
Start: Assignment 3

Book Ch. Examples:
Rotating Square imperfect collision
Rotating Square good collision

Class Examples:
Rotating Square decisions/collisions

Collision Examples

Problem Set 2 (for practice)


Keyboard and Mouse Interaction


Rotating Clovers, an example of reflections, wrap around, mouse interaction, and keyboard interaction.



Review for Exam 1

Submit: Assignment 3

Processing Quick Reference (included at the end of Exam 1)


Exam 1


Fall Break



Fall Break





Polygons, String Art  

Book: Ch. 3 (pgs. 81-88, 97-105)
Book: Ch. 4 (pgs. 124-147)

Start: Assignment 4  

Class Examples:
Rotating polygon
Modified polygon (Stars and pinwheels.)

Triangle string art
Animated String Art (color change, noise, an extra joint)

Simple Spiral
Multiple Samples Spiral


Symbolic Encryption




Arrays   Book: Ch. 5 (pgs. 149-158)
Submit: Assignment 4
Start: Assignment 5


Arrays and Files  

Book: Ch. 5 (pgs. 159-185)




Book: Ch. 6, pgs. 187-214

Example from class:
Array of Balls
Exercise from Class:
Convert this Pie Chart code into a PieChart class. The constructor should take an array of data, an array of labels, and an array of colors as parameters and build the necessary arrays for the chart. Most, if not all, of the global variables should become fields of the class instead of being global variables. The class should have a display() method that just displays the data. It should NOT have to recompute each time. You should first make a Birthdays file that you save with your sketch. In the setup, you should make a new PieChart with the birthday data. Then you should make a separate tab called PieChart and make your PieChart class in there. Please come to class on Wednesday with your code and any implementation questions that you may have.



Book: Ch. 6, pgs. 223-232

Problem Set 3 (for practice)



Text Processing

Book: Ch. 7, pgs. 233-250

Submit: Assignment 5
Start: Assignment 6


Sorting Numbers and Text
Book: Ch. 7, pgs. 250-276

Class Examples:
War On Christmas



Word Cloud Implementation

Submit: Assignment 6, Part A  

War On Christmas v1b
War On Christmas v1c


Tools: How to Approach specifications, how to size your creature, filtering loops, and tiling loops.

Book: Ch. 8, pgs. 277-291




Recursion and
Lindenmayer Systems

Book: Ch. 8, pgs. 292-309

Submit: Assignment 6 (Part B)
Start: Assignment 7

Class Examples:
Recursion with circles
Problem Set 4 (for practice)
Problem Set 5 (for practice)


Thanksgiving Break



Writing Programs

Book: Ch. 9, pgs. 311-325

Class Examples:
Five Coins V1
Five Coins V3
Five Coins V6
Five Coins V7 (refactored)
Five Coins V8 (file input)
Five Coins V9 (file input and function)


Refactoring and Image I/O

Book: Ch. 10, pgs. 369-389 


The last five pages of the class slides
have a study guide.




Book: Ch. 10, pgs 390-411

Submit: Assignment 7


Exam 2








Course Policies


Attendance and active participation are expected in every class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments.

As you will discover, we are proponents of two-way communication and we welcome feedback during the semester about the course. We are available to answer student questions, listen to concerns, and talk about any course-related topic (or otherwise!). Come to office hours! This helps us get to know you. You are welcome to stop by and chat. There are many more exciting topics to talk about that we won't have time to cover in-class.

Although computer science work can be intense and solitary, please stay in touch with us, particularly if you feel stuck on a topic or project and can't figure out how to proceed. Often a quick e-mail, phone call or face-to-face conference can reveal solutions to problems and generate renewed creative and scholarly energy. It is essential that you begin assignments early, since we will be covering a variety of challenging topics in this course.


There will be seven assignments, weighted equally in the final grading.  Assignments must be submitted according to the Assignment Submission instructions.  You should pay careful attention to the Code Formatting Standards and Grading Policy when doing your assignments.  The grading structure for individual assignments is broken down in the Grading Policy.

At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:

Exam 1: 18%
Exam 2: 26%
Assignments: 56% (8% each)
Total: 100%

Incomplete grades will be given only for verifiable medical illness or other such dire circumstances.

Submission and Late Policy

All work must be turned in either in hard-copy or electronic submission, depending on the instructions given in the assignment.  E-mail submissions, when permitted, should request a "delivery receipt" to document time and date of submission.  Extensions will be given only in the case of verifiable medical excuses or other such dire circumstances, if requested in advance and supported by your Academic Dean.

No assignment will be accepted after it is past due.

No past work can be "made up" after it is due.

No regrade requests will be entertained one week after the graded work is returned in class.


There will be two exams in this course.  The exams will be closed-book and closed-notes.  The exams will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class).

Study Groups

We encourage you to discuss the material and work together to understand it. Here are our thoughts on collaborating with other students:

If you have any questions as to what types of collaborations are allowed, please feel free to ask.


Processing 2 Reference

A database of color names

Last modified: Mon Dec 7 22:03:30 EST 2015