CS 110 - Fall 2012, Section 001

Bryn Mawr College
CS 110: Introduction to Computing
Fall 2012 - 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 (10:10am) on the day listed.

Wk Date Topic Reading Examples Assignments 1 Comments 9/3 Labor Day - No Class 9/5 Course Introduction:  What is computing? Ch 1:  Pixels Ch 2:  Processing Ch 3:  Interaction Alpha Channels Cartoon Character1 Ladybug1 Monster1 Ndebele Penguin1 Sushi Download and install Processing version 1.5.1 on your computer Assignment 1 out Code Formatting Standards Grading Policy 9/7 Drawing primitives:  point, line, shapes, color Submission Instructions 2 9/10 Variables & Control Structures Ch 4:  Variables Ch 5:  Conditionals Week 2 Examples Useful tools, including the arc and bezier editor 9/12 Ch 6:  Loops Assignment 1 due Assignment 2 out 9/14 Hands-On: Variables and Control Structures (meet in computer labs) 9/17 Loops Ch 6:  Loops BBwithFunctions blockTrain Chalkboard Clovers Ex5_1Conditionals ImageSketch Leaves randomFlowers randomRectangles rdexample Sawtooth Shape1 9/19 Loops Continued and Intro to Functions Ch 7:  Functions Assignment 2 due Assignment 3 out 9/21 Functions 9/24 Objects & Top-Down Design Ch 8:  Objects Week 4 Examples 9/26 9/28 Ball Code 10/1 Objects Continued Ch 9:  Arrays BBWithArrays BBWithClasses DividingPolygons Flower MauiBusFlower StarV1 StarV2 StarV3 Wheel MrPotatoHead CrazyMrPotatoHead GrowingBall 10/3 Assignment 3 due Assignment 4 out 10/5 10/8 Searching 10/10 Review Sample Exam 1 Questions 10/12 Exam 1 7 10/15 Fall Break - No Class 10/17 10/19 10/22 Structures and Structure Design Assignment 5 out 10/24 Assignment 4 due In-class developed asteroid game 10/26 10/29 Hurricane Sandy Ch 14: Translation and Rotation BallWithEye 10/31 Transformations and Modeling Motion 11/2 11/5 Transformations and Modeling Motion Continued BallWithEyeRotate Spirograph (in class version) Spirograph (fancier) 11/7 Recursion and Algorithm Design Assignment 5 due 11/9 11/12 Images and Image Processing Ch 15:  Images Crumble Fade HorseSequence1 HorseSequence2 Reassemble Warhol More Image Examples Assignment 5 due Assignment 6 out 11/14 11/16 Hands-On: Image Processing (meet in computer labs) 11/19 Images and Image Processing Ch 17:  Text GrayScale Sepia FalseColor SpatialFiltering 11/21 Ch 18:  Input (excluding 18.7-18.8) 11/23 Thanksgiving Break - No Class 11/26 Strings and Files 11/28 Data Visualization, Time Series files examples Assignment 6 due Assignment 7 out 11/30 Hands-On: Data Visualization (meet in computer labs) Week 13 Examples 12/3 Data Visualization Ch 22.1-22.3:  Adv. OOP HighScore Fireworks BallDropper TextAnalysis Assignment 7 (Part A) due 12/5 12/7 Data Structures, Advanced Algorithms Ch 23: Java 12/10 Catch-Up Day / Review SpellChecker (data folder) SpellCheckerBinary (data folder) SuperCrumble Sample Exam 2 Questions 12/12 Review Assignment 7 (Part B) due TBD Exam 2

### General Information

 Co-Instructors: Eric Eaton, Ph.D. and Paul Ruvolo, Ph.D. E-Mail: (This e-mail address reaches both instructors.  Be certain to use this e-mail for course-related topics instead of our individual e-mails.) E-mail is the best way to reach us, and we 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, Eric Eaton: Tuesday/Wednesday 1:30-2:30pm and by appointment in Park 249 Office Hours, Paul Ruvolo: Monday 3-4pm and by appointment in Park 246-D Website: http://cs.brynmawr.edu/Courses/cs110/fall2012/section001/ Lecture: Monday/Wednesday/Friday 10am to 11am Room: Park 349 (Lecture)      Park 231 & 232 (Hands-On) Open Lab: Park 231   Monday 11am-12:30pm, Tuesday 11:15am-12:45pm, Friday 11am-12:30pm Teaching Assistants: TA 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 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, version 1.5.1  (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. Be sure to download Version 1.5.1.

### 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.

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.

 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.

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.

In addition to submitting your assignment for grading, you are required to upload your assignment to the course showcase on Open Processing.  Open Processing is a website designed to share Processing sketches with people all around the world.  The course showcase is beneficial for two reasons: (1) you will be able to see the interesting things you peers are doing with Processing and (2) you can show off your own works of art!  The course exhibition is available at: http://www.openprocessing.org/classroom/1972

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.