Bryn Mawr College
CMSC 330 Algorithms: Design & Practice
Spring 2020
Course Materials
Prof. Deepak Kumar

General Information

Instructor: Deepak Kumar
202 Park Science Building
dkumar at cs dot brynmawr dot edu

Lecture Hours: Tuesdays & Thursdays, 12:55p to 2:15p
Room: Park 337
Lab: Tuesdays 2:25p to 3:45p in Room 231 (Attendance in ALL labs is required)
Office Hours: Thursdays 2:30p to 4:30p, or by appointment.


Required Texts

Algorithms Unlocked by Thomas Cormen, MIT Press, 2013.

Nine Algorithms That Changed The Future by John MacCormick, Princeton University Press, 2013.


Course Description: This course examines the applications of algorithms to the accomplishments of various programming tasks. The focus will be on understanding of problem-solving methods, along with the construction of algorithms, rather than emphasizing formal proving methodologies. Some of the algorithms we will study/implement include: searching, sorting, search engine indexing, Page Rank, pattern recognition: nearest neighbor, decision trees, neural nets, graph algorithms, error correcting codes, data compression, digital signatures, database algorithms, cryptographic hash functions, etc. Additionally, we will learn how to measure program performance, programming pitfalls, code optimization, advanced programming structures, etc. Prerequisites: CS206 and CS231. This is a Writing Intensive (WI) course.

Important Dates

January 17: First lecture
April 27: Last Lecture


Unless explicitly specified, all assignments are due at the beginning of the class (BY 9:55a sharp) on the date due. No credit will be awarded for any late work.

  1. Lab#1 (Write-up Due in class on Tuesday, January 28): Language Standards, Reference Compilers, Programming Pitfalls
  2. Lab#2: (Write-up Due in class on Tuesday, February 4): Performance analysis of Linear Search algorithms.
  3. Lab#3: (Write-up due in class on Tuesday, Feb 11): Comparing Quicksorts: Bentley's QS, Hybrid (QS+Insertion Sort), Library sort.
  4. Lab#4: (Wtrite-up due in class on Tuesday, Feb 18): Special WTF Week Edition.
  5. Lab#5: (Wtrite-up due in class on Tuesday, Feb 25): Finding Anagrams
  6. Lab#6: (Wtrite-up due in class on Tuesday, March 3): Hash Tables & Hash Functions 

    COVID-19 Remote Mode

  7. Do this by March 17 at noon. Please check into Piazza and say "hi", post a pic (selfie, pet, flowers, whatever makes you happy!), and tell us where you are.
  8. Lab#7-8: [Week of March 16] (Submission due by e-mail on Tuesday, March 23 by 5p, Eastern): Computing Square Roots.
  9. Lab#9: [Week of March 23] (Submission due by e-mail on Tuesday, April 7 by 5p, Eastern): The Bryn Mawr (W-O-M-A-N) Puzzle: March to Washington, DC.
  10. Lab#10: [Week of April 7] (Submission due by e-mail on Tuesday, April 21, by 5p, Eastern): Dijkstra's Shortest Path Algorithm.


Course Policies


Punctual Attendance and active participation are expected in every class. Anyone arriving later than 1:00p will be considered absent for that class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments. 30% of your course grade (see below) is based on attendance & participation.

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 I won't have time to cover in-class.

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


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:

Labs & Written Work: 35%
Presentations: 35%
Class Participation: 20%
Attendance: 10%
Total: 100%

Incomplete grades will be given only for verifiable medical illness or other such dire circumstances. Please have any instances of medical illness or dire circumstances communicated to me thorugh your Dean.

Submission, Late Policy, and Making Up Past Work

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.

Study Groups

I encourage you to discuss the material and work together to understand it. Here are some 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 3, 2018.