Bryn Mawr College
CS 110: Introduction to Computing
Spring 2015

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/spring2015jt/
Lecture:
Tuesdays & Thursdays, 2:25PM - 3:45PM
Room: Park 338
Open Lab: Park 231 (Computer Science Lab)
Lab Assistants schedule

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 3: Click here for details
  2. Assignment#2: (Due on Thursday, Feb 12): Click here for details
  3. Assignment#3: (Due on Thursday, Feb 26): Click here for details
  4. Assignment#4: (Due on Thursday, Mar 19 Thursday, Mar 26): Click here for details
  5. Assignment#5: (Part1 due on Tuesday, Mar 31, Part2 due on Thursday Apr 9th): Click here for details
  6. Assignment#6: (Due on Thursday, April 23): Click here for details
Week Date Topic Assignments Comments
1
1/20
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

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

Class Example: House
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/22
2
1/27 Basic drawing & 2D shapes contd.: arc(), quad(), curve(), beginShape(), endShape(), vertex(), curveVertex(). Basic structure of a static Processing program.
Slides:
03_2DShapes

Assignment#1 (Due on Tuesday, Feb 3)
Do:
Read Chapter 2.

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

Review the Processing commands introduced; try them out, experiment with shapes, modes, attributes, and colors.
1/29
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, (usijng setup() and draw() functions), code blocks ({..}), interactivity with mouseX and mouseY variables, event listeners, frame rates.

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:
04_Variables
05_Functions
Do:
Read Chapter 2 again.
Read Chapter 3 (page65-72)

For more on drawing curves read the Drawing Curves tutorial on processing.org.

3
2/3
How to design and build functions and use them, and reuse them. Example using drawing trucks, clovers, and flowers. Transformations: translate, rotate, scale.

Class Example: truck

Assignment#2 (Due on Thursday, Feb 12)

2/5
4
2/10
Control Structures: Loops: for- and while-; if- and switch- Examples of using simple logical statements and loops.

Class Example: if1   if2   if3   if4   rotate1   rotate2   WalkingPac

Slides:
06_ControlStructures
Do:
Read Chapter 3 (pages 73-80, 88-91)

2/12
5
2/17
Examples of using simple logical statements and loops. Computing points on the plane using Trigonometry. Drawing Polygons. String Art.

Class Example: bounce   Polygon_1   Polygon_2   star   mandala   noise   spiral   StringArt_V0   StringArt_V1   StringArt_V2   StringArt_V3   StringArt_V4  

Assignment#3 (Due on Thursday, Feb 26)
Do:
Finish reading Chapters 3 and 4

2/19
6
2/24
String Art continued. Introduction to arrays. Arrays: defining, creatin, initializing, indexing. Basic Array Operations.

Slides:
07_Array

Class Example: logo and eye examples
Do:
Read Chapter 5 (pages 149-158).

2/26


7
3/3
Exam 1 is today!
3/5
Class canceled due to bad weather Do:
Read Chapter 5
8
3/10
Spring Break!
3/12
9
3/17
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.

Class Example: BirthDateViz     USPSFirstClassVolume     StatePop2012

Assignment#4: (Due on Thursday, Mar 26)

3/19


10
3/24
OOP - Object Oriented Programming. Fundamentals: objects, attributes, behaviors, classes, instances, etc. Doing OOP in processing. Defining constructors. The "this" keyword.

Class Example: BallWithEye    RotatingBall
BallInBox-unfinished

Assignment#5: (Part1 due on Tuesday, Mar 31, Part2 due on Thursday Apr 9th)
Do:
Read Chapter 6

3/26


11
3/31
OOP - Object Oriented Programming: Defining constructors, using "this" keyword, inheritance, super class, sub class, objects, attributes, behaviors, constructors, abstract classes, instances, overriding methods.

Class Example: BallinColoredBox

4/2


12
4/7
String methods: equals(), charAt(), indexOf(), toLowerCase(), toUpperCase(), length(), concat(). Work with Strings: split()
ArrayList

Class Example: Fireworks     TextCrawl     TextFun

Assignment#6: due on Thursday Apr 23

4/9


13
4/14
Abstract classes. Word Cloud Example.

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

Class Example: circle
Do:
Read Chapter 7

4/16


14
4/21
Object oriented design and implementation. Word Cloud Example, linear search, stopwords

Class Example: brickbraker

4/23


15
4/28

4/30
Exam 2 is today!

Important Dates

January 20: First lecture
March 3: Exam 1
April 30: 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 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.

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


Created on Jan 11, 2015.