Bryn Mawr College
CS 110: Introduction to Computing
Spring 2014
General Information | Syllabus and Schedule | Text and
Software |
Course
Policies |
Reference Links |
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. |
We will cover the entire text during this semester. Please refer to the text for more 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 | ||
|
|
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.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:
she++: The Documentary from Ellora Israni on Vimeo.
Created on Jan 16, 2014.