Bryn Mawr College
CS 110 (Sect. 2): Introduction to Computing
Spring 2016

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

Last modified: Thu Apr 28 13:47:33 EDT 2016 Subject to change.


General Information
 

Instructor: David G. Cooper
E-Mail: dgc@cs.brynmawr.edu
When you e-mail me, make sure you put "CS110" at the start of the subject line to ensure a quicker response.
Website: http://cs.brynmawr.edu/Courses/cs110/spring2016dc/
Lecture:
Mondays & Wednesdays, 11:40PM - 1:00PM
Room: Park 338
Lab: Wednesdays 1:00pm - 3:00pm, Park 231 (Computer Science Lab)
Lab Assistants: Calla Carter   
Hanna Fields 
Jordan Henck  
Kalina Kostyszyn 
Katherine Lee   
Tu Luan
Lizzie Siegle   
Thursdays 8:15am-10:15am
Wednesdays 7pm-9pm
Mondays 6pm-8pm
Sundays 8pm-10pm
Tuesdays 7pm-9pm
Saturdays 4pm-6pm (canceled Saturday 1/22)
Fridays 10am-12pm

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.


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 $44.99 click here
A Kindle eBook is available for those comfortable learning from an eBook (Amazon price is $26.99). The Bryn Mawr Bookstore price is $44.99.


Book Web Site: Here you will find additional materials.

Code Examples: Book Example code

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 (www.processing.org).

Download the latest stable version (2.2.1) for your own computer/Operating System: (19 May 2014) Win 32 Win 64 Linux 32 Linux 64 Mac OS X

Processing Reference Here is the Processing 2.0+ reference. (The reference on processing.org is for version 3.0+.)

 

Syllabus and Schedule
 

Important Dates

Assignments:

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: First Sketch
  2. Assignment#2: Interactive Sketch
  3. Assignment#3: function based sketch
  4. Assignment#4: (Due on Wednesday, Mar 23): object based sketch (OOP)
  5. Assignment#5: (Due on Monday, Apr. 4): Aquarium Creature
  6. Assignment#6: (Due on Monday, April 18): --> Image Processing
  7. Assignment#7: (Part 1 Due on Sunday, April. 24, Part 2 Due on Friday April 29, 5:00pm): Data Visualization

Schedule (subject to change, check back for updates)
 

Week Date Topic

Reading (complete by beginning of class)

Assignments

Comments

1

01/18

Martin Luther King Jr. Day Observed


01/20

  • What is computing?
  • Drawing primitives: point, line, simple shapes
  • Color
processing.org

Book: Ch. 1

Download and install: Processing 2.2.1 on your
computer

Notes: slides

Class Examples:
coords
mag
rgba

2

01/25

  • Built-in Processing functions
  • Interaction: Keyboard/Mouse
  • Drawing primatives: arcs, curves, shapes
  • Color (continued)
  • Example Sketches

processing.org

Book: Ch. 2, pgs. 33-48

Book: Ch. 4, pgs. 124-146

Start: Assignment 1

Notes: slides

Assign Sub Instrs
Code_Formatting_Standards
Grading Policy

Class Examples:
events
arcEditor
curveEditor
bezierEditor
Example Sketches:
Ladybug
Monster
GiorgioMorandi
Ndebele
Penguin
SouthParkCharacter
Sushi

01/27

  • Variables
  • Primitive Data Types
  • Images
  • Expressions and Operators
  • Conditionals

Book: Ch. 2, pgs. 48-63


Book: Ch. 10, pgs. 369-371


Book: Ch. 3, pgs. 72-76

Do: teaching survey

Notes: slides

Class Examples:
variables1
variables2
imageExample
if1
if2
balldrop

3

02/01

  • Iteration

Book: Ch. 3, pgs. 88-91

Submit: Assignment 1


Do: Assignment 1 Quiz on Moodle.

Start: Assignment 2


Notes: slides

Class Examples:
balldrop2
ifKey
while1
while2
while3
gradientWhileLoop
for1
forText
forTextCircle
forSpiral
forTextSpiral
balldropForLoop
polarRose

02/03

  • More on Loops
  • Functions

Book: Ch. 3, pgs. 65-72

Read: Lab 01 Instructions
Do: Lab 01 (for practice)

Notes: slides


concentric
flowers
manyShapes
manyShapesFunction
penguinScale
penguinTranslate
Penguins
text

4

02/08

  • Parameters and Shapes
  • functions with return values.

Book: Ch. 4, pgs. 111-115

Notes: slides


Class Examples:
Scalable Moveable Door

02/10

  • Scope
  • Nested Loops
  • Polar-coordinates and basic trigonometry

Book: Ch. 3, pgs. 81-88
Book: Ch. 4, pgs. 120-123

 

Notes: slides
Class Examples:
Tile Grid

5

02/15

  • Polar-coordinates
  • Arrays

Book: Ch. 5, pgs. 149-165

Submit: Assignment 2

Do: Assignment 2 Quiz on Moodle.

Start: Assignment 3

Notes: slides

Class Examples:
Points on a Circle
10 Circles to the center

02/17

  • Simple data visualization

Book: Ch. 5, pgs. 166-185
 

Do: lab 02 Notes: slides

Class Examples:
Points on two Circles
Many balls

6

02/22

  • Simple data visualization
  • Objects

Book: Ch. 6, pgs. 187-210

Assignment 3 Example 1:

Notes: slides

Class Examples:
Snow Visualization (Bar Chart)
Plot sin(x) directly
Plot sin(x) indirectly

02/24

  • Objects
  • Inheritance


Book: Ch. 6, pgs. 210-232

Assignment 3 Example 2:


Notes: slides

Class Examples:
Many balls using classes

7

02/29

  • Review
 

 

Submit: Assignment 3
 

Notes: slides

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

03/02

  • Exam 1





03/07

Spring Break

 



03/09

Spring Break

 

 


8

03/14

  • Inheritance
 
Book: Ch. 6, pgs. 223-232
Start: Assignment 4


Notes: slides

Class Examples:
Inheritance
Many Objects

03/16

  • Transformations and Modeling Motion
 

Book: Ch. 3, pgs. 83-105

Read: lab 3

Notes: slides

Class Examples:
example1
example2
example3
example4
squareGrid
squares (3D)

9

03/21

  • More advanced data visualizations with OOP

Book: Ch. 8, pgs. 277-291

Notes: slides

Class Exercise

Class Example:
square Grid Exercise

03/23

  • Recursion

Book: Ch. 8, pgs. 292-309

Submit: Assignment 4
Do: lab 3
Start: Assignment 5
Read: lab 4 , go to lab hours to work on labs. They will help with the assignments and quizzes.

Notes: slides

Class Examples:
numViz
Zip (read and understand this version first)
ZipInteractive
zips.txt

10

03/28

  • Recursion


Notes: slides

Class Examples:
Recursive Draw (lines and angles)
Recursive Shape (rects and ellipses)

03/30

  • Two dimensional arrays

Book: Ch. 9, pgs. 319 - 334
 

Notes: slides

Class Examples:
graySquares
recursiveMaze
GameOfLife

11

04/04

  • Images and Image Processing

Book: Ch. 9

Submit: Assignment 5
Review: lab 4 , on recursion.
Do: Assignment 5 Quiz on Moodle. (Topic is recursion)

Start: Assignment 6
Notes: slides

Class Examples:
ragged
whiteNoise
colorNoise
pixelGradient
warholTint
warholRed
warhol
warholArray
blackWhite
negative
sepia

04/06

  • Image Processing (Cont'd)
  • Strings and Text, Text Formatting

Book: Ch. 9


 

Notes: slides


Class Examples: sepia
sepiaPalette
sepiaWithPalette
whiteLine
cone
blackWhite2
crumble
reassemble
fade
fade2
pointillism
imageVis
images used

12

04/11

  • Image Processing (Cont'd)

Book: Ch. 10

slides


Class Examples:
obamicon
randomNeighbor
convolution.pde
threshold
posterize
confluency
images used

04/13

  • Strings and Text, Text Formatting

Book: Ch. 7, pgs. 233-237

slides


Class Examples:
textLetter
textHeadline
textRotate
textCrawl

13

04/18

  • Files, Lists
  • Data Visualization
  • Text Visualization

Book: Book: Ch. 7, pgs. 233-237


Submit: Assignment 6
Do: lab 5 , on 2D arrays.
Do: Assignment 6 Quiz after completing 2D Arrays lab.
Start: Assignment 7

Notes: slides

Class Examples:
parsefile1
parseFile2
Reduced.csv

04/20

  • Text Visualization
  • ArrayList
  • HashMap
  • Data Structures

Book: Ch. 7, 238-249 

Submit: Assignment 7, Part 1 by Sunday April 24th, 11:59pm
 

Notes: slides

Class Examples:
boxDropper
fireworks
wordFreq2016
NewYorkPrimaries.txt (Tweets)

14

04/25

  • Word Clouds continued.
  • Transitioning to Java, Advanced Features

Book:

Start: lab 6 , on Strings.


slides
Class Examples:
selectionSortWords.pde

04/27

Review for Exam 2
 

 

Submit: Assignment 7, Part 2 by Friday April 29th, 5:00pm

slides

FINALS WEEK

05/02

Self Scheduled Exam 

 



 

 




Course Policies
 

Communication

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.

Grading

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: 20%
Exam 2: 35%
Assignments: 45%
Total: 100%

All graded work will receive a percentage grade between 0% and 100%.  Here is how the percentage grades will map to final letter grades:

Rounded Percentage
Letter grade

Rounded Percentage Letter grade
97% -100%
A+ (4.0)
77% - 79% C+ (2.3)
93% - 96% A (4.0) 73% - 76% C (2.0)
90% - 92% A- (3.7) 70% - 72% C- (1.7)
87% - 89% B+ (3.3) 67% - 69% D+ (1.3)
83% - 86% B (3.0) 60% - 66% D (1.0)
80% - 82% B- (2.7) 0% - 59% F (0.0)

The instructor reserves the right to adjust the percentage ranges for each letter grade upward in your favor.

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 by electronic submission through Dropbox. There will be a quiz on Moodle corresponding to each programming assignment. The submitted materials will depending on the instructions given in the assignment.  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.

Late submissions will receive a penalty of 20% for every 0-24 hours it is past the due date and time (e.g., assignments turned in 25 hrs late will receive a penalty of 40%).

Exams

There will be two exams in this course.  The exams will be open-book and open-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.


Links
 

Processing 2 Reference

A database of color names

Shiffman text web site

Dropbox

BMC @ OpenProcessing

Studio Sketchpad

ASCII Codes