Bryn Mawr College
CMSC 113 Computer Science 1
Spring 2022
Course Materials
Prof. Deepak Kumar

General Information

Deepak Kumar
202 Park Science Building
dkumar at brynmawr dot edu

Lecture Hours: Tuesdays & Thursdays from 12:55p to 2:15p
Office Hours: Thursdays 10:30a to 11:30a, or by appointment.
Lecture Room: Room 338 Park Science Building
Lab: Students should register for ONLY ONE of the labs shown below:

Note: No Labs in Week 1. Labs will begin from Week 2 of classes.


Lab TAs: The following Lab Assistants will be available during the week for assistance on Lab assignments:

  1. Mia Ellis-Einhorn
  2. Jasmine Lei
  3. Jac McCarty
  4. Yen Nguyen
  5. Isabelle Sanford
  6. Linh Tran
  7. Judy Wang

TA Schedule:

Sundays, Mondays, Thursdays from 7:00p to 10:00p in CS Lab (Room 231 PSB).
Tuesdays and Wednesdays from 6:00p to 10:00p in CS Lab (Room 231 PSB)

Texts & Software

Main Texts (Required)

Introduction to Programming in Java (Second Edition)
by Robert Sedgewick & Kevin Wayne. Addison-Wesley 2017. Available in Campus Bookstore, or purchase online from (Price on January 10, 2022 is $35.99 for e-text, $62.49 paperback). Book's companion website: Click here.

The Linux Command Line: A Complete Introduction by William E. Shotts, Jr. No Starch Press, 2012. Available for free download through both the Bryn Mawr and Haverford libraries.

Software: We will be programming in Java on Windows/Apple Mac computers. The CS Labs all have Windows computers that will have the software installed in them. We will also provide SPECIFIC instructions for you to install the Java environment on your own computers so you will be able to work on them. More details in the first week of class. Tools we will be using: JDK, Visual Studio Code (VS Code), Git Bash (Windows), Bash (Linux/Mac), and Dropbox.


Course Description: This is an introduction to the discipline of computer science, suitable for those students with a mature quantitative ability. This fast-paced course covers the basics of computer programming, with an emphasis on program design and problem decomposition. Graduates of this course will be able to write small computer programs independently; examples include data processing for a data-based science course, small games, or other data-intensive applications. No prior computer programming experience is necessary or expected. Prerequisite: Must pass either the Quantitative Readiness Assessment or the Quantitative Seminar (QUAN B001). Approach: Course does not meet an Approach, Quantitative Methods (QM), Quantitative Readiness Required (QR); Haverford: Quantitative (QU). Enrollment Limit; 24: Frosh (First Year) Spaces 20.


  1. Elements of Programming: Basic Java program structure, data types, conditionals & loops, arrays, input and output.
  2. Functions and Modules: Defining functions, libraries and clients, recursion.
  3. Object-Oriented Programming: Using data types, creating data types, designing data types.
  4. Algorithms: Performance, searching, sorting.

Lab Attendance: Attendance in Lab is REQUIRED. Students are not required to attend both labs, and will need to chose one out of the two scheduled labs.

Important Dates

January 18 First class meeting
February 15 Exam 1
March 29 Exam 2
April 28 Exam 3

Creating a Welcoming Environment

All members of the Instruction Staff are dedicated to the cause of improving diversity, equity, and inclusion in the field of computing, and to supporting the wellness and mental health of our students.

Diversity and Inclusion

It is essential that all members of the course community – the instructor, TAs, and students – work together to create a supportive, inclusive environment that welcomes all students, regardless of their race, ethnicity, gender identity, sexuality, or socioeconomic status. All participants in this course deserve to and should expect to be treated with respect by other members of the community.

Class meetings, lab sessions, office hours, and group working time should be spaces where everyone feels welcome and included. In order to foster a welcoming environment, students of this course are expected to: exercise consideration and respect in their speech and actions; attempt collaboration and consideration, including listening to opposing perspectives and authentically and respectfully raising concerns, before conflict; refrain from demeaning, discriminatory, or harassing behavior and speech.


Additionally, your mental health and wellness are of utmost importance to the course Instruction Staff, if not the College as a whole. All members of the instruction staff will be happy to chat or just to listen if you need someone to talk to, even if it’s not specifically about this course.

If you or someone you know is in distress and urgently needs to speak with someone, please do not hesitate to contact BMC Counseling Serices: 610-526-7360 (610-526-7778 nights and weekends). If you are uncomfortable reaching out to Counseling Services, any member of the Instruction Staff will be happy to contact them on your behalf.

We understand that student life can be extremely difficult, both mentally and emotionally. If you are living with mental health issues such as anxiety, depression, ADHD, or other conditions that may affect you this semester, you are encouraged to discuss these with the Instructor. Although the details are up to you to disclose, the Instruction Staff will do their best to support and accommodate you in order to ensure that you can succeed this course while staying healthy.


Sample Assignment Submission to see how all Assignments are to be submitted.

  1. Assignment 1 (Due on Thursday, February 3): Click here.
  2. Assignment 2 (Due on Thursday, Feb 10): Click here.
  3. Assignment 3 (Due electronically on Friday, March 4, 2022 by noon): Click here.
  4. Assignment 4 is posted (Due in class on Tuesday, March 29, 2022). Click here. Data file: tolstoy.txt.
  5. Assignment 5 is posted (Due on Thursday, April 14, 2022 Tuesday, April 19, 2022): Click here.
  6. Assignment 6 is posted (Due in class on Thursday, April 28, 2022). Click here. Data files for web access (through the In object): testZip.csv, uszipcodes.csv


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 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 7-10 assignments, weighted equally in the final grading.  Assignments must be submitted according to the Assignment Submission instructions. 

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:

Eaxm 1: 15%
Eaxm 2: 20%
Exam 3 20%
Assignments 25%
Labs 10%
Citizenship/Contribution 10%

Incomplete grades will be given only for verifiable medical illness or other such dire circumstances.

Submission and Late Policy

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.

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


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

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.

Created on January 10, 2022.