Bryn Mawr College
CS 110: Introduction to Computing
Spring 2013
Course Materials
Prof. Deepak Kumar & Prof. Paul Ruvolo
General Information
Instructors:
Deepak Kumar
246-B Park Science Building
526-7485
dkumar at brynmawr dot edu
http://cs.brynmawr.edu/~dkumar |
Paul Ruvolo
250 Park Science Building
pruvolo at cs dot brynmawr dot edu |
Lecture Hours: Tuesdays & Thursdays , 2:15 p.m. to
3:45 p.m.
Room: Park 338
Lab: Wednesdays 1:30p to 3:30p in Room 231 (additional lab
hours will also available, see below)
Laboratories:
- Computer Science Lab Room 231 (Science Building)
- You will also be able to use your own computer to do the labs
for this course.
Lab Assistants: The following Lab assistants
will be available during the week (names and schedules will be
posted by the end of this week) for assistance on lab assignments.
- Angie Chen (Thursday 4pm-6pm, Saturday 4pm-6pm)
- Juliette Kingsberg (Monday / Thursday 6pm-8pm)
- Bryce Lewis (Tuesday / Thursday 8:45am-10:45am)
- Hanna Organick (Saturday / Sunday 10am-12pm)
- Mengjie Pan (Monday / Friday 2pm-4pm)
Texts &
Software
Learning Processing: A Beginner's Guide to
Programming Images, Animation, and Interaction by
Daniel Shiffman, Morgan Kaufmann Publishers, 2008.
Available at the Campus Bookstore.
Book Web Site: Here you
will find additional materials.
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).
|
|
Syllabus
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. The blurb below,
from Shifman's text is an excellent description of what we will
be doing this semester:
This book tells a story. It’s a story of liberation,
of taking the first steps towards understanding the
foundations of computing, writing your own code, and
creating your own media without the bonds of existing
software tools. This story is not reserved for computer
scientists and engineers. This story is for you.
From: Learning Processing,
by Daniel shiffman, page ix.
We will cover the entire text during this semester. Please
refer to the text for more details.
Important Dates
January 22 : First lecture
March 7: Exam 1
May 2: Last lecture/Exam 2
Assignments
- Assignment#1:
(Due on January 29)
- Assignment#2
(Due on February 12)
- Assignment#3
(Due on Thursday, February 21)
- Assignment#4
(Due on Tuesday, March 4)
- Assignment #5 (Due
on Tuesday, April 2)
- Assignment#6 is
posted (Part 1 Due on Thursday, April 11, Part @ on
Thursday, April 18)
- Assignment #7 (Due
on Tuesday, April 30)
Lectures
- Week 1 (January 22, 24)
January 22 1: Course Introduction. What is
computing? Algorithms, programming. What is creative computing?
Examples. Introduction to Processing. Basic shapes and colors:
point, line, rect, triangle, quad, stroke, fill, grayscale
color, rgb color.
Slides from lecture: Introduction
Read: Chapters 1-3 from Shifman. In case the books
are not yet in at the bookstore, you can read the online
tutorials posted at the Processing website. Read through the
sections: Getting Started, Overview, Coordinate System &
Shapes, and Color.
Install: Download and install Processing on your
computer and play with it. For downloads, go to www.processing.org
Install the Release 1.5.1 only. Processing is already installed
on all computers in the CS Lab (Room 231 PSB). You are
encouraged to use the lab to do all your assignments.
January 24: Drawing primitives: point, line, shapes
(ellipse, triangles, rectangles, quads, etc), color (grayscale,
rgb, alpha channels), curves, shapes, images, simple mouse
interaction.
Read: Chapters 1, 2, and 3 from Shifman.
Slides from lecture: Intro to Processing
Examples:
AlphaChannels,
CartoonCharacter1,
LadyBug1,
Monster1,
Ndebele,
Penguin1,
Sushi
Useful Tools:
Arc Editor,
Curve
Editor, Bezier
Editor
Assignment#1:
(Due on January 29)
- Week 2 (January 29, 31)
January 29: Review of basic Processing drawing
primitives. Review of Assignment#1. Static vs. Dynamic modes in
processing.
Read: Chapters 1&2 from GXK.
January 31: Creating shapes using vertices and
curves. Variables: data types, names, and values. Assigninment
and simple arithmetic operations. Mouse interaction.
Read: Chapters 4 from Shiffman. Start reading
Chapter 3 from GXK.
Examples: simpleShapes,
bluetoothV1,
bluetoothV2,
house#1,
house#2,
snowAngel
Assignment#2 (Due
on February 12)
- Week 3 (February 5, 7)
February 5: Deepak & Paul are out of
town. Class will be held by Prof. Eric Eaton.
February 7: Deepak & Paul are out of
town. Class will be held by Prof. Eric Eaton.
- Week 4 (February 12, 14)
February 12:
Review of loops and variables. For loops.
Read: Chapters 5 and 6 from Shiffman
- February 14: Nested
loops and functions. Passing parameters. How to draw a heart
using Bezier Curves. Hell Week entertainment...
Examples: Heart, a
simple heart using Bezier Curves, Heart with
functions, Happy
Together!
Assignment#3 (Due
on Thursday, February 21)
Read: Chapters 6 and 7 from Shiffman.
- Week 5 (February 19, 21)
February 19: Functions: return values,
parameters. Functions that do computing, draw objects. Designing
with functions.
Read: Chapter 7 from Shiffman. Also Chapters 3
& 4 from GXK.
Examples: basicFunctions
and parameters
February 21: Introduction to angles
(degrees, radians) and basic trigonometry. Examples: drawing
circles, polygons, stars, spirals.
Read: Section 13.7 & 13.8 from Shiffman.
Also Chapters 3 & 4 from GXK.
Examples: Trucks, Moving
Truck, Polygons
- Week 6 (February 26, 28)
February 26: Using basic trigonometry
in sketches.Drawing polygons, stars, and spirals. Randomness
versus Noise: An introduction to Perlin Noise. String Art: An
exposition on computational creativity.
Read: Section 13.6 from Shiffman.
Examples: Polygons,
Fillable
Polygons, Stars, String Art
(version 1)
Assignment#4
(Due on Tuesday, March 4)
February 28: String Art (uisng Perlin Noise),
Functions revisited.
Read: Chapter 7 again (from Shiffman)
Examples: String Art
(Final Version), Chairs
- Week 7 (March 5, 7)
March 5: Review. Transformations:
translate(), scale(), rotate(), pushMatrix(), popMatrix().
Visualizing using Pie Charts.
Read: Chapter 14 from Shiffman.
Examples: Deepak's
Mandala, Birthday
Pie Chart , anhe here is a colored
version of Deepak's Mandala.
March 7: Exam 1 is today.
- Week 8 (March 12, 14)
No Classes. Spring Break
- Week 9 (March 19, 21)
March 19: GXK Chapter 5, Shiffman Chapter 9.
Assignment 5 out (due
Tuesday April 2nd)
March 21: Data Visualization and Arrays
Examples: BarChart
(in class example using frequencies of birthday months)
- Week 10 (March 26, 28)
March 26: Arrays, Data Visualization:
Acquire, Filter, Input (loadStrings(...)), Parse (split(...)),
Process, Visualize.
Read: Chapter 5 from GXK.
Examples: Bar Chart
Version 2, Bar Chart
Version 3, the
birthday data file
March 28: Bar Charts, again! Making the app
completely generic! Acquiring some real data, cleaning, and
using it (we will work with US Census Data).
Read: Chapter 5 from GXK.
Examples: Interactive
Bar Chart
- Week 11 (April 2, 4)
April 2:
Introduction to Object Oriented Programming
Read: Chapter 6 from GXK
Examples: BouncingBall
April 4:
Object-Oriented Programming
Read: Chapter 6 from GXK
Examples: House
With Objects
Assignment#6 is
posted (Part 1 Due on Thursday, April 11, Part @ on
Thursday, April 18)
- Week 12 (April 9, 11)
April 9: OOP Design
recap: Designing with objects. Other examples: bank account,
PVector. Using PVector. The 'this' keyword. Writing generic
constructors.
Read: Chapter 6 from GXK.
Examples: Ball
with PVector and use of 'this'
April 11: OOP Design,
contd. The 'this' keyword. Inheritance in OOP. Interfaces.
Read: Chapter 6 from GXK
Examples: A
sample creature sketch with two creatures.
- Week 13 (April 16, 18)
April 16: Recursion.
Problem solving using recursion. Creative recursion.
Read: Chapter 8 from GXK.
Examples: Factorial,
Circles,
Trees
April 18: Recursion.
Read: Chapter 8 from GXK.
Examples: Fib, LSystem
Assignment #7 (Due on
Tuesday, April 30)
- Week 14 (April 23, 25)
April 23: Image manipulation in Processing. Pixel buffers.
Read: Chapter 15 from Shiffman & Chapter 10 from GXK.
Examples: Load an image, Negative, Grayscale/Sepia, Pixelation, Pixel Buffer
April 25: Pixel Buffers. Example of various image processing techniques.
Examples: Fade, Obamicon, Pointillism
- Week 15 (April 30, May 2)
April 30: From pixels to Computational Photography and other cool stuff. Review.
Sample Exam2: Exam from Fall 2012 (Ignore Q5 & 3)
May 2: Exam 2 is today.
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: |
22% |
Quizzes:
|
4% (total)
|
Assignments: |
56% (8% each)
|
Total: |
100% |
Incomplete grades will be given only for verifiable medical
illness or other such dire circumstances.
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 instructors reserve the right to adjust the percentage ranges
for each letter grade upward in your favor.
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.
Late submissions will receive a penalty of 15% for 0-24 every hours
it is past the due date and time (e.g., assignments turned in 25-48
hrs late will receive a penalty of 30%). No assignments will be
accepted after two days it is past due.
Quizzes
There will be a number of short open-book/open-notes quizzes
(approximately 4-8) over the semester. They will not be
announced ahead of time, and will be given in the first few
minutes of class (so be on-time!). If you miss a quiz, you
will not be able
to make it up. At the end of the semester, we will drop your
lowest quiz grade.
They will cover material from lectures, homeworks, and assigned
readings (including topics not discussed in class). So, keep
up with those readings!
Exams
There will be two exams in this course. The exams will be
closed-book and closed-notes. As with the quizzes, 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:
- The readings and lecture topics are group work. Please discuss
the readings and associated topics with each other. Work
together to understand the material. We highly recommend forming
a reading group to discuss the material -- we will explore many
ideas and it helps to have multiple people working together to
understand them.
- It is fine to discuss the topics covered in the homeworks, to
discuss approaches to problems, and to sketch out general
solutions. However, you MUST write up the homework answers,
solutions, and programs individually without sharing specific
solutions, mathematical results, program code, etc. If you
made any notes or worked out something on a white board with
another person while you were discussing the homework, you
shouldn't use those notes while writing up your answer.
- Under ABSOLUTELY NO circumstances should you share computer
code with another student. Similarly, you are not
permitted to use or consult code found on the internet for any
of your assignments.
- Exams, of course, must be your own individual work.
If you have any questions as to what types of collaborations are
allowed, please feel free to ask.
Links
Created on January 4, 2013.