Bryn Mawr College
CS 110: Introduction to Computing
Spring 2007
Course Materials
Prof. Deepak Kumar
General Information
Instructor: Deepak Kumar, 248 Park Hall, 526-7485
E-Mail: dkumar at cs brynmawr dot edu
WWW: http://cs.brynmawr.edu/~dkumar
Lecture Hours: Mondays & Wednesdays, 2:30 p.m. to 4:00.m.
Room: Park 349
Lab: Fridays 10:00 a.m. to 12:00 noon. in Room 231 (additional lab hours
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 assitants will be available during the week (names and schedules will be posted by the end of this week) for assistance on lab assignments.
- Deepak Kumar (dkumar): Fridays 10:00a to 12:00 noon
- Anne Miller (amiller): Mondays 4:00p to 6:00p and Fridays 10:00a to 12:00 noon
- Bhumika Patel (b2patel): Mondays & Wednesdays 10:00a to 12 noon
- Simona Radu (sradu): Fridays 6:00p to 8:00p and Sundays 7:00p to 9:00p
- Ashley Gavin: Robot Guru, IPRE Fellow, will be able to provide technical assistance. her office is Room 251 (across from the lab).
These are the hours when the Lab will not be available:
Mondays 2:30-4:00p (Emergence course)
Wednesdays 2:30 to 6:00p (Emergence and GIS courses)
Fridays 2:00p to 4:00p (GIS courses)
Texts & Software
Python Programming: An Introduction to Computer Science: by
John Zelle, Franklin Beedle & Associates, 2004. ISBN 1-887902-99-6
Python Software + IDLE + Myro (This software is already installed in the Computer Science Lab). The software is also available for your own computer from the CD included in your text.
Graphics Library (accompanies and distributed with the text is
also installed in the lab)
Scribbler Robot Kit: These will be handed out to you in Week#2.
This book is not yet named, by IPRE, 2007 (available online, click here) We will refer ot it below as TBNYN.
|


|
Important Dates
January 23 : First lecture
March 8: Exam 1
May 3: Last lecture/Exam 2
Assignments+Robot Videos
-
Assignment#1: (Due on Tuesday, January 30) Do Execrise 1 or Exercise 2, or Exercise 3, or Exercise 4 from Chapter 1 of TBNYN (based on your onw preference). Submit a printed short paper no longer than 3-5 pages (single spaced with 1-inch margins).
- Assignment#2: (Due on Thursday, February 8) Do Exercises 1 through 5 from Chapter 2 of TBNYN. Hand in a short answer/description in reponse to Exercises 1, 2 and 5. For Exercises 3 and 4 hand in a printout of your robot programs. Also, for Exercise 3 hand in the square drawn by your robot. The lab has larger sheets of paper that you can use to draw the squares. Make sure the square fits in that sheet. The following students will provide video demos: Sarah Allen & Michelle Beard, and Anisha Chirmule.
Videos: Videos from Assignment#2: Drawing a Square (0:09), Scribbler dance and drawing a square (0:51), Drawing a square (0:08), Scribbler dances to Punjabi MC's "Beware of the Boys" (0:59) , Another Scribbler dance to Punjabi MC's "Beware of the Boys" (0:58)
- Assignment#3: (Due on Thursday, February 15) Write a program for your Scribbler to draw a 5-point star. [Hint: Each vertex has an internal angle of 36 degrees]. Your program should include a function called, drawStar(sideLength), so that you can use it over and over again to draw stars of different sizes. Write a main program to use drawStar to draw at least 5 stars (use a loop) of different sizes (say sides of length 3-10 inches) on the same sheet of paper. Also, write a program for your Scribbler to create some abstract art. Hand in the two programs, and sheets that show your robot's drawings. For the second program, try and be creative, include repetition, use different colors etc. The following students will provide video demos: David Banat, Sarah Deibler, and Ellis Dong.
Videos from Assignment#3: Drawing stars, Another star,
- Assignment#4 (Due on thursday, February 22):
(1) A robot measuring device You have caliberated your robot with regards to how far it travel in a given amount of time. You can use that to design a robot that measures space. Write a program that enables a robot to measure the width of a hallway or any given bounded area. Show what measurements your robot comes up for the length and the width of the green table in the robot lab.
(2) Light follower: Write a program for your robot to follow a bright light. I.e, the robot goes towards the light.
The following students will provide video demos: Natasha Eilbert, Zulma Garcia-Morales, Jennifer Garrett
Videos from Assignment#4: Light Follower (AVI/WMV), Measuring Table (AVI/WMV)
- Assignment#5 is posted (Due on Tuesday, March 6) Click here for details.
- Assignment#6 (Due on Tuesday, April 3)
Design a Scribbler program to perfom the Corral Exiting exercise described in Chapter 6 of TBNYN. The lab will have several wooden 4x4 blocks and a lamp to construct the corral as described to test your programs. Video demos of the robots will be done by Laura Gudorf, Laurel james, Grace Kung, Christine Lee, and Mina Lee.
Videos from Assignment#6: Laura Gudorf, Mina Lee, Christine Lee, Grace Kung,
- Assignment#7 is posted (Due on Tuesday, April 17) click here for details
Videos from Assignment#7: DansingFest (by Natasha Eilbert and Caitlin Manley), Scribbler Flute (by Christine Lipuma)
- Assignment#8 (Due on Tuesday, May 2): Write a 3-5 page essay (1-inch margins on 8.5-11.0 inch paper, type-written and single-spaced) on personal robots, technology, and computer programming. Your essay should be based on your personal experiences with the use of personal robot(s) in this course and all of the assignments, concepts learned, etc. Your essay can take any direction you choose...make it as personal as you can. Be objective where you need to be, critical where you feel it needs to be, etc. It should be a reflection on this course and how it relates to you and your career and other plans in life.
Robot Videos and other demos from out there!
- Robot Dance (SONY Qrio robots) (03:25)
- Another robot dance (01:25)
- Robot Artist (3:21)
- Hektor: The graffitti drawing robot: Several videos
- AARON The Cybernetic Artist (visit the web page and even download a version for your computer)
- Ashley Gavin's Hell Week Rap :-) (AVI/WMV)
- We made the 6 'o clock news! (needs Microsoft Internet Explorer)
Lectures
- Week 1 (January 23, 25)
January 23 : First class meeting. Overview of the course. Introduction to computing and robots. Do the class questionnaire.
January 25: What is a computer? Programming Languages: an introduction; programs and program translation: compilers & interpreters. A simple Python program. What is a robot? How to control a robot? The Myro library in Python. Simple commands to control a robot.
Read: Chapter 1 from Zelle and Chapter 1 from TBNYN
Assignment#1: (Due on Tuesday, January 30) Do Execrise 1 or Exercise 2, or Exercise 3, or Exercise 4 from Chapter 1 of TBNYN (based on your onw preference). Submit a printed short paper no longer than 3-5 pages (single spaced with 1-inch margins).
- Week 2 (January 30, February 1)
January 30 : Meet the Scribbler! Today, the class will meet in the Lab, Room 231, where you will get your own Scribble robot kit, configure it to use with Python and try out some Python commands on the robot.
Read & Do (in Lab): Lab1.html
Pictures from Lab#1
are now available. Also, a short video (Quicktime)
February 1: Recap of Lab1. Basic commands for robot movement. Defining new commands or functions. Using the wait command to construct movement behaviors.
Read: Chapter 2 from TBNYN.
Assignment#2: (Due on Thursday, February 8) Do Exercises 1 through 5 from Chapter 2 of TBNYN. Hand in a short answer/description in reponse to Exercises 1, 2 and 5. For Exercises 3 and 4 hand in a printout of your robot programs. Also, for Exercise 3 hand in the square drawn by your robot. The lab has larger sheets of paper that you can use to draw the squares. Make sure the square fits in that sheet. The following students will provide video demos: Sarah Allen & Michelle Beard, and Anisha Chirmule.
- Week 3 (February 6, 8)
February 6 : Names, variables, and assignment statement in Python. Basic structure of a Python program. Definite loops. Computing and robot control. Computing percentages, car loan calculator (using the math library module). Infinite loops.
Read: Chapter 3 from TBNYN and Chapters 2 & 3 from Zelle.
Programs from class: percentages.py, carloan.py
February 8 : Review of assignment#1. Q&A and demos. The simple lawn mowing algorithm. The Roomba vacuuming algorithm. Repetition in Python: for- and while-loops. Sensing the world: An introduction to Scribbler sensors. External and internal sensing/propriception. Drawing Polygons.
Read: Chapter 4 from TBNYN.
Videos from Assignment#2: Drawing a Square (0.09secs), Scribbler dance and drawing a square (0:51 secs), Drawing a square (0.08secs), Scribbler dances to Punjabi MC's "Beware of the Boys"
Assignment#3: (Due on Thursday, February 15) Write a program for your Scribbler to draw a 5-point star. [Hint: Each vertex has an internal angle of 36 degrees]. Your program should include a function called, drawStar(sideLength), so that you can use it over and over again to draw stars of different sizes. Write a main program to use drawStar to draw at least 5 stars (use a loop) of different sizes (say sides of length 3-10 inches) on the same sheet of paper. Also, write a program for your Scribbler to create some abstract art. Hand in the two programs, and sheets that show your robot's drawings. For the second program, try and be creative, include repetition, use different colors etc. The following students will provide video demos: David Banat, Sarah Deibler, and Ellis Dong.
- Week 4 (February 13, 15)
February 13: Repetition in Python & robot behaviors. Review of program construction. Structure of a Robot control porgram. Drawing polygons. Generating random numbers. Doing multiple-choice Q&A. Speech and speech generation. measuring time using the internal clock.
Read: Chapter 4 from TBNYN
Snowball fight anyone?
February 15: Obtaining sensory data through myro commands. Robot decision making: Writing conditions. The if-statement in Python. Conditional expressions and logical operations in Python. Writing simple decision making robot behaviors: detecting a wall, truning towards light.
Read: Chapter 5 from TBNYN
Assignment#4 (Due on thursday, February 22):
(1) A robot measuring device You have caliberated your robot with regards to how far it travel in a given amount of time. You can use that to design a robot that measures space. Write a program that enables a robot to measure the width of a hallway or any given bounded area. Show what measurements your robot comes up for the length and the width of the green table in the robot lab.
(2) Light follower: Write a program for your robot to follow a bright light.
I.e, the robot goes towards the light.
The following students will provide video demos: Natasha Eilbert, Zulma Garcia-Morales, Jennifer Garrett
- Week 5 (February 20, 22)
February 20: Review of Python and Myro. Writing functions that return values.
February 22: Desiging programs. A simple game playing program (paper, scissors, rock).
Read: Chapter 5 from TBNYN and Chapter 3 from Zelle.
- Week 6 (February 27, March 1)
February 27: Doing graphics in Python. Using the graphics module. Drawing simple shapes, animating them. A quick introduction to objects and object-oriented programming.
Read: Chapter 5 from Zelle.
Assignment#5 is posted (Due on Tuesday, March 6) Click here for details.
March 1: Today's class will be turned into office hours as Deepak has laryngitis and is unable to talk (much). Please review the materials on graphics and continue to work on Assignment#5.
- Week 7 (March 6, 8)
March 6: Graphics in Python, contd. The turtle graphics class. Using the turtle as a simulated scribbling device. Drawing interesting things.
March 8: Exam 1 is today.
- Week 8 (March 13, 15)
No classes. Spring Break!
- Week 9 (March 20, 22)
March 20: Review of exam. Braitenberg vehicles.
Read: Chapter 6 from TBNYN.
March 22: Braitenberg vehicles, contd. More normalization functions for sensors values. A review of various behaviors; light following, obstacle avoidance and maze solving. program structure for desiging behaviros.
Read: Chapter 6 from Zelle (all about function design relevant to our class discussions)
Assignment#6 (Due on Tuesday, April 3)
Design a Scribbler program to perfom the Corral Exiting exercise described in Chapter 6 of TBNYN. The lab will have several wooden 4x4 blocks and a lamp to construct the corral as described to test your programs. Video demos of the robots will be done by Laura Gudorf, Laurel james, Grace Kung, Christine Lee, and Mina Lee.
- Week 10 (March 27, 29)
March 27: No class today. Deepak is out of town at a conference.
March 29: Avoiding obstacles. Other uses of the if-statement: computing daya in a month, computing leap years, etc.
Read: Chapter 7 from Zelle.
- Week 11 (April 3, 5)
April 3: How fresh are those eggs? Computing days of the year (and vice versa). Sound in Myro and robots. Playing notes, octaves, songs.
Read: Chapter 8 from TBNYN.
April 5: Robot control paradigms: Reactive/Direct control. Behavior-based control, finite-state-machine control.
Assignment#7 is posted (Due on Tuesday, April 17) click here for details
- Week 12 (April 10, 12)
April 10 : Strings in Python. String processing. Character encoding. File I/O: reading and writing from/to files. Examples: test encryption/decryption. Processing using dictionaries. Checking spelling.
Read: Chapter 4 from Zelle.
April 12 : Strings and strip/text processing in Python, contd. Counting words in a text file...
- Week 13 (April 17, 19)
April 17 : Today is Demo Day at the IPRE Grand Opening. Jane prey from Microsoft research will be present for the ceremonies. You all will demo your Assignment#7 to visitors. The demo session will be followed by a talk at 3:30P. Refreshments will be provided.
We made the 6 'o clock news! (needs Microsoft Internet Explorer)
Some pictures from this event.
April 19 : Recap of Assignment#7. Since every one didn't get a chance to see the other demos, today we will all talk about the demos, how they went, what went well, or nto so well, etc.
Please hand in a printout of your Assignment#7 program by Tuesday, April 24.
All robot kits should be returned to Deepak by the end of next week (4/27).
- Week 14 (April 24, 26)
April 24 : Processing text. File I/O. Processing/cleaning up text. A simple spelling checker. Dictionary look up: sequential search, binary search.
Read: Chapter 11 from Zelle.
Programs from class: readtext.py, spellcheck.py
Assignment#8 (Due on Tuesday, May 2): Write a 3-5 page essay (1-inch margins on 8.5-11.0 inch paper, type-written and single-spaced) on personal robots, technology, and computer programming. Your essay should be based on your personal experiences with the use of personal robot(s) in this course and all of the assignments, concepts learned, etc. Your essay can take any direction you choose...make it as personal as you can. Be objective where you need to be, critical where you feel it needs to be, etc. It should be a reflection on this course and how it relates to you and your career and other plans in life.
April 26 :
Processing text, contd. Counting words in a text. Doing a work frequency analysis. Dictionaries in Python. Using dictionaries to make a smarter Paper-Scissors-Rock game.
- Week 15 (May 1, 3)
May 1:
May 3: Exam 2 is today.
Grading
All graded work will receive a grade, 4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 2.0, 1.7,
1.3, 1.0, or 0.0. 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: 25%
Labs & Written Work: 55%
Total: 100%
Links
Created on
January 19, 2007.