Bryn Mawr College
CMSC 110: Introduction to Computing
Fall 2019
Course Materials
Prof. Deepak Kumar


Texts  Important Dates  Assignments  Lectures Course Policies Links

General Information


Deepak Kumar
202 Park Science Building
dkumar at brynmawr dot edu

Lecture Hours: Tuesdays & Thursdays, 12:55 p.m. to 2:15 p.m.
Office Hours: Wednesdays from 2:00p to 3:30p
Room: 245 Park Science Building
Lab: All labs will meet in Room 231 PSB. Students should register for ONLY ONE of the labs shown below:


Lab Assistants: The following TA Lab Hours are available for assistance on lab assignments. Remember, TAs are there to assist you in resolving programming issues, not to tutor or explain concepts.

TA Lab Hours (Rooms 230 & 231)
  6:00 to 8:00p 7:00 to 9:00p 8:00 to 10:00p
Sundays Lisa Hou Sarah Coufal Nadine Adnane
Mondays Al Mazzoli Faith Meecham Elia Agnostou
Tuesdays Valerie Jin Viktoria Braun Faith Meecham
Wednesdays Valerie Jin Sarah Coufal Elia Agnostou, Lisa Hou
Thursdays Viktoria Braun Nadine Adnane Al Mazzoli

Texts & Software

Learning Processing: A Beginner's Guide to Programming Images, Animations, and Interaction, 2nd Edition by Daniel Shiffman, Publisher: Morgan Kauffmann, 2015. Available at the Campus Bookstore. Also at amazon for $34.97 (as of August 22, 2-19).

Processing Software (This software is already installed in the Computer Science Lab). The software is also available for your own computer from Processing web site ( Download the latest stable 3.X version for your own computer/Operating System.

Dropbox Account: Please go to and register. You will be using dropbox to submit many of your assignments. You will need to have this set up by the end of Week#1.



Course Description: Class Number: 2614 The course is an introduction to computing: how we can describe and solve problems using a computer. Students will learn how to write algorithms, manipulate data, and design programs to make computers useful tools as well as mediums of creativity. Contemporary, diverse examples of computing in a modern context will be used, with particular focus on graphics and visual media. The Processing/Java programming language will be used in lectures, class examples and weekly programming projects, where students will learn and master fundamental computer programming principals. Approach: Quantitative Methods (QM), Quantitative Readiness Required (QR), Scientific Investigation (SI); Haverford: Natural Science and Quantitative (NA/QU) ( ) Enrollment Cap: 24; Freshmen Spaces: 20; If the course exceeds the enrollment cap the following criteria will be used for the lottery: Major/Minor/Concentration; Freshman

We will cover the entire text during this semester. Please refer to the text for more details. The following topics will be covered:

Introduction to the Java/Processing Language & Environment
Translation & Rotation
Data Visualization
Images & Video
Data Input
Data Streams
From Processing to Java


Important Dates

September 3: First lecture
October 1: Exam 1
November 7: Exam 2
December 12: Exam 3


  1. Assignment#1 (Due on Tuesday September 12): Click here for details.
  2. Assignment#2 (Due on Thursday, September 19): Click here.
  3. Assignment#3 (Due on Thursday, Octobe 3): Click here.
  4. Assignment#4 (Due on Thursday, October 31): Click here.
  5. Assignment#5 is posted (Due on Thursday, November 14): Click here for details.
  6. Assignment#6 is posted (Due on Thursday, December 5): Click here for details.


Course Policies


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

Attending the TA Sessions and availing of their assstance in doing programming assignments is HIGHLY RECOMMENDED.


There will be several programming 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, posted in each assignment.

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: 20%
Exam 3: 20%
Lab Attendance 10%
Total: 100%

Incomplete grades will be given only for verifiable medical illness or other such dire circumstances. Consultation with and approval of Academic Dean is required.

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.

No assignment will be accepted after it is past due.

No past work can be "made up" after it is due.

No regrade requests will be entertained one week after the graded work is returned in class.


There will be three 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).

Technology in the classroom

The class meetings/lectures will be a place to learn the concepts that are a part of the syllabus. I will, in the course of a lecture, write code on the board, and/or even do some live coding in class. The objective of this is to illustrate to you how to go about applying the concepts in practice. It is NOT a place for you to open your laptops and start to code with me. In fact, you are encouraged NOT to bring your laptops to class to use them for any purpose. It is distracting to other students. Phone (smart or otherwise) and tablet use during class meetings is also strongly discouraged (unless you are taking class notes on them, NO audio recording please). Listen, understand, ask questions, and take notes in a notebook if you need to. You will learn more! You will be doing coding in the labs under my supervision.

The labs and assignments in this course are a place for you to exercise your learning of the concepts and apply them in actual working programs. The best way to get the most of of this course is to try out and code the concepts learned in the class (outside the class!). Do not be afraid to try things! This will improve your understanding and raise questions that you should feel free to bring forward in class. A quick word of advice: stay abreast of the material covered in class, and start your assignments on the day they are announced.

ALL work submitted for grading should be entirely YOUR OWN. Sharing of programs, code snippets, etc. is not permitted under ANY circumstances.

Study Groups

We encourage you to discuss the material and work together to understand it. Here are our thoughts on collaborating with other students:

If you have any questions as to what types of collaborations are allowed, please feel free to ask.


A database of color names


Created on August August 23, 2019.