Bryn Mawr College
CS 110: Introduction to Computing
Spring 2014

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


General Information

Instructor: Jia Tao
E-Mail: jtao@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/spring2014/
Lecture:
Tuesdays & Thursdays, 2:15PM - 3:45PM
Room: Park 338
Open Lab: Tuesdays and Thursdays 4pm - 6pm Park Room 231 (Computer Science Lab)
Lab Assistants:
The following Lab assistants will be available during the week for assistance on lab assignments.
A full schedule of TAs can be found here.

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.


Assignments:
  1. Assignment#1: (Due on Thursday, Feb 6 Saturday, Feb 8): Click here for details
  2. Assignment#2: (Due on Thursday, Feb 20): Click here for details
  3. Assignment#3: (Due on Tuesday, March 18): Click here for details
  4. Assignment#4: (Due on Tuesday, April 1 Thursday, April 3): Click here for details
  5. Assignment#5: (Due on Tuesday, April 15): Click here for details
  6. Assignment#6: (Due on Tuesday, April 22): Click here for details
  7. Assignment#7: (Due on Thursday, May 1): Click here for details
Week Date Topic Assignments Comments
1
1/21
The college is closed due to bad weather
1/23
Course introduction, adminstrivia. Computing: an introduction, examples of modern day computing. Algorithms, programs, and programming languages. Creative computing: an introduction with examples.
Slides: 01_Introduction
2
1/28 Introduction to Processing. Art By Numbers. Processing, Drawing basics: canvas, shapes, and colors. Introduction to Processing commands: size(), background(), 2D shapes (point(), line(), triangle(), rectangle(), quad(), ellipse(). Drawing attributes and modes. Structure of a static processing program. CS/Programming principles: Algorithms, psuedocode, code, syntax, sequencing.

Slides:
02_ArtByNumbers
03_2DShapes

Do: Go to the computer lab, log in and start the Processing 2.0 application. Go to the Tutorial section of the Processing web site:
http://www.processing.org/tutorials/gettingstarted/

Read the Getting Started tutorial (by Casey Reas and Ben Fry) and try out the two examples of simple Processing programs presented there.

If you’d like to be able to work on your own computer, go to processing.org’s Download section and install Processing on your computer. Ensure that you have a working implementation of Processing.
After completing the above tutorial, read Chapter 1 (Read pages 1-12, skim 12-32, return to IDE details as needed)
1/30
Do: Read Chapter 2 (pages 33-50)

Read and do the Coordinate Systems & Shapes and Color tutorials on processing.org.

Review Processing commands: size(), background(), 2D shapes: point(), line(), triangle(), rectangle(), quad(), ellipse(). Attributes and modes: stroke(), noStroke(), strokeWeight(), fill(), noFill(), rectMode(), ellipseMode(). Color values (grayscale and RGB) and trasparency.

Understand the concept of an algorithm, psuedocode, syntax, and sequencing.

3
2/4
Variables, types (int, flot, String, boolean, color), naming rules, declarations, arithmetic operators. Predefined Processing variables: width, height, displayWidth, displayHeight, PI, HALF_PI, TWO_PI, mouseX, mouseY. How to draw simple text.
Static vs. Dynamic Program modes, (using setup() and draw() functions), code blocks ({..}), interactivity with mouseX and mouseY variables, frame rates.

Slides:
04_Variables

Functions: mathematical functions, parameters/arguments, return values, definition vs. application, defining and using functions in Processing, variables and scope. Creating shape abstractions using functions, using mathematical functions in Processing: random().

Slides:
05_Functions

Examples:
truck_v1     truck_v2     truck_v3    
Do: Read

Finish reading Chapter 2. For more on drawing curves read the Drawing Curves tutorial on processing.org.
Read Chapter 3 (page65-72)

2/6
Do: Read Chapter 3 (pages 65-72)

Assignment #1 is due
4
2/11
How to design and build functions and use them, and reuse them.

Examples:
happyFace     rotateWords    

2/13
5
2/18
Control Structures: for, while, do-while, and if-statements. Examples of using simple logical statements and loops.

Slides:
06_ControlStructures

Examples:
rotate1   rotate2   while1   while2   while3   if1   if2   if3   if4  
Do: Read Chapter 3 (pages 73-80, 88-91)
2/20
Assignment #2 is due

6
2/25
Examples of using simple logical statements and loops.

Examples:
WalkingPac   bounce  
Do: Read Chapters 1-4
2/27
Computing points on the plane using Trigonometry. Drawing Polygons. String art.

Examples:
Polygon_1   Polygon_2  


7
3/4
Exam 1 is today!
3/6
String Art. Exam 1 review

Examples:
noise example   StringArt_V0   StringArt_V1   StringArt_V2   StringArt_V3   StringArt_V4  
Do: Read Chapter 3 again. Pay more attention to mandala examples (pp 93-105).
8
3/11
Spring Break!
3/13
9
3/18
Introduction to arrays. Arrays: defining, creatin, initializing, indexing. Basic Array Operations.

Slides:
07_Array

Examples:
eye and logo examples   BirthDViz_incomplete  
Assignment #3 is due
Do: Read Chapter 5 (pages 149-158).


3/20


10
3/25
Using array to draw pie chart. Using the map() function. Reading data from files. Strings: splitting strings. Text formatting basics. Doing a Time Series Visualization.

Examples:
PieChart   BarGraph   Bubble   DividedBar  
USPSFirstClassVolume   StatePop2012  
Do: Read Chapter 5.
3/27


11
4/1
Data visualization with two dimensional arrays: StatePop2012-2D   data  

Word frequency visualization with ArrayList and sorting: wordCloud   Data: EliotLoveSong.txt   stopwords.txt  

OOP - Object Oriented Programming. Fundamentals: objects, attributes, behaviors, classes, instances, etc. Doing OOP in processing. Defining constructors. The "this" keyword.
RotatingBall
Do: Read Chapter 9 (pages 319-326).
4/3
Assignment #4 is due

12
4/8
OOP - Object Oriented Programming: Defining constructors, using "this" keyword, PVector Class in Processing, inheritance, super class, sub class, objects, attributes, behaviors, constructors, abstract classes, instances, overriding methods.

Examples:
BallinColoredBox    
Do: Read Chapter 6.
4/10


13
4/15
Abstract classes.
String methods: equals(), charAt(), indexOf(), toLowerCase(), toUpperCase(), length(), concat().
Work with Strings: split(), splitTokens(), join().
Assignment #5 is due

Do: Read Chapter 7.

4/17
Making Movies using Processing Tool "Movie Maker". Using frameRate() and frameCount to control the loop of draw().

Examples:
circles    


14
4/22
Word Cloud Example. How to swap the value of two variables. How to check whether two word tiles overlap.
Examples:
insertionSort     selectionSort     spiral    
Assignment #6 is due
4/24


15
4/29
Word Cloud Example. Course Review.
Examples:
wordCloud    

5/1
Exam 2 is today! Assignment #7 is due

Important Dates

January 21: First lecture
March 4: Exam 1
May 1: Exam 2/Last lecture



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 (www.processing.org). Download the latest stable 2.X version for your own computer/Operating System.

 




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: 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 assignments will be accepted after it is past due.

Exams

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.


Links

A database of color names


she++: The Documentary from Ellora Israni on Vimeo.

Created on Jan 16, 2014.