Bryn Mawr College
CS 110: Introduction to Computing
Fall 2011 - Section 001

Syllabus and Schedule Course Information Text and Software
Course Policies
Links

Syllabus and Schedule

This is a tentative syllabus and schedule.  Topics, reading assignments, and due dates are subject to change.
All homework assignments are due by the start of class (2:15pm) on the day listed.

Wk Date Topic Reading Examples Assignments Comments                 
1 8/30 Course Introduction:  What is computing?
Ch 1:  Pixels
Ch 2:  Processing
Ch 3:  Interaction

Download and install Processing on your computer

Assignment 1 out
Submission Instructions
Code Formatting Standards
Grading Policy
9/1
Drawing primitives:  point, line, shapes, color
Week 1 Examples
Useful tools, including the arc and bezier editor
2
9/6
Variables & Control Structures
Ch 4:  Variables
Ch 5:  Conditionals


Assignment 1 due
Assignment 2 out

9/8
Ch 6:  Loops Week 2 Examples


3 9/13
Functions
Ch 7:  Functions



9/15
Tracing Function Calls & Random Numbers
Brief Intro to Arrays

Week 3 Examples
Assignment 2 due
Assignment 3 out

4 9/20
Objects & Top-Down Design
Ch 8:  Objects Week 4 Examples


9/22




5 9/27
Arrays
Ch 9:  Arrays Week 5 Examples

Ira Greenburg Examples
9/29


Assignment 3 due
Assignment 4 out

6 10/4
 Searching


In-class developed Brick Breaker Game
10/6
Review



Sample Exam 1 Questions
7 10/11
Fall Break - No Class




10/13




8 10/18
Exam 1





10/20
Structures and Structure Design Assignment 4 due
Assignment 5 out
9 10/25
Recursion and Algorithm Design

Week 9 Examples

In-class Recursion Example
10/27
Debugging




10 11/1
Transformations and Modeling Motion
Ch 14:  Translation and Rotation


11/3


Assignment 5 due
Assignment 6 out

11 11/8
Images and Image Processing
Ch 15:  Images Week 11 Examples


11/10
Text Formatting
Ch 17:  Text


12 11/15
File Input, Lists
(chalkboard lecture/lab, no slides)
Ch 18:  Input (excluding 18.7-18.8)
Week 12 Examples
Assignment 7 out
11/17
Data Visualization, Time Series
(chalkboard lecture/lab, no slides)





13 11/22
Data Structures, Advanced Algorithms
(chalkboard lecture, no slides)
Ch 22.1-22.3: 
Adv. OOP
Week 13 Examples
Assignment 6 due
Assignment 7 (Part A) due

11/24
Thanksgiving Break - No Class




14
11/29
Transitioning to Java
(for reference only, not included on exam 2)
Ch 23: Java


12/1
Review




15
12/6
Review


Assignment 7 (Part B) due Sample Exam 2 Questions
12/8
Exam 2


Assignment 8 (Optional)




General Information

Instructor: Eric Eaton, Ph.D.
E-Mail: (When you e-mail me, make sure you put "CS110" at the start of the subject line to ensure a quicker response.)

E-mail is the best way to reach me, and I make a concerted effort to respond to all e-mails within 24 hours on weekdays and 48 hours on weekends (often, much less!).

Office Hours:
1-2pm Monday/Thursday and by appointment


Website: http://cs.brynmawr.edu/Courses/cs110/fall2011/section01/
Lecture:
Tuesday/Thursday 2:15 pm to 3:45 pm
Room: Park 349
Lab: Wednesdays/Thursdays 10am-12pm in Park Room 231 (Computer Science Lab).
Teaching Assistants: TBA

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 the Processing language.  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 passage 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.
     - Daniel Shiffman, Learning Processing, page ix


Text & 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  (http://www.processing.org)

This software is already installed in the Computer Science Lab.
It is also available for your own computer from Processing web site listed above.



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, I am a proponent of two-way communication and I welcome feedback during the semester about the course. I am available to answer student questions, listen to concerns, and talk about any course-related topic (or otherwise!). Come to office hours! This helps me 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.

Whenever you e-mail me, be sure to use a meaningful subject line and include the phrase "CS110" at the beginning of that line. Your e-mail will catch my attention and I will respond quicker if you do this. I make an effort to respond to e-mails within 24 hours on weekdays and 48 hours on weekends.

Although computer science work can be intense and solitary, please stay in touch with me, 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: 20%
Exam 2: 24%
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 instructor reserves 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.

Late submissions will receive a penalty of 10% for every 0-24 hours it is past the due date and time (e.g., assignments turned in 25 hrs late will receive a penalty of 20%).  Submissions received more than one week late will not be accepted.  


Exams

There will be two exams in this course.  The exams will be closed-book and closed-notes.  They will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class).  So, keep up with those readings!


Study Groups

I want to encourage you to discuss the material and work together to understand it. Here are my 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