Bryn Mawr College
CS 110: Introduction to Computing
Spring 2015
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/spring2015jt/ |
Lecture: |
Tuesdays & Thursdays, 2:25PM - 3:45PM |
Room: | Park 338 |
Open Lab: | Park 231 (Computer Science Lab) Lab Assistants schedule |
|
We will cover the entire text during this semester. Please refer to the text for more 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! | |||
|
|
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:
Created on Jan 11, 2015.