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

General Information

Instructor(s)
Deepak Kumar
202 Park Science Building
526-7485
dkumar at brynmawr dot edu
https://cs.brynmawr.edu/~dkumar/

Lecture Hours: Mondays & Wednesdays from 10:10a to 11:30a
Office Hours: MW 11:30a to 12:30p, or by appointment.
Lecture Room: Room 336 Park Science Building
Lab: Attendance in labs is REQUIRED.

Laboratories


Texts & Software

Main Texts (Required)

  • Algorithms Unlocked by Thomas Cormen, MIT Press, 2013.
  • Nine Algorithms That Changed The Future by John MacCormick, Princeton University Press, 2013.
  • Make It Clear: Speak and Write to Persuade and Inform by Patrick Henry Winston, The MIT Press, 2020.

Syllabus

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 (Junior/Senior standing in the major prefered). This is a Writing Intensive (WI) course.

Important Dates

January 19 First class meeting
April 27 Last class meeting

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.

Wellness

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.


Assignments

  1. Lab 1 (Write-up Due in class on Wednesday, January 26): Language Standards, Reference Compilers, Programming Pitfalls
  2. Lab 2 (Write-up Due in class on Wednesday, February 2): Analyzing Linear Search implementations.
  3. Lab 3 (Write-up Due in class on Wednesday, February 9): Implementations: Quicksort vs Hybrid Sort vs Library Sort (Also, Dual-Pivot Quicksort)
  4. Lab 4 (Write-up Due in class on Wednesday, February 16): Programming Puzzles.
  5. Lab 5 (Write-up Due in class on Wednesday, February 23): Finding anagrams.
  6. Lab 6 (Write-up Due in class on Wednesday, March 16): Hash Tables & Hash Functions - A Refresher and Collision Analysis
  7. Lab 7 (Write-up Due in class on Wednesday, March 23): Blind Search in Graphs - The W-O-M-A-N Puzzle. Data File: USStates.csv
  8. Lab 8 (Write-up Due in class on Wednesday, March 30): Dijkstra's Shortest Path Algorithm.
  9. Lab 9 (Write-up Due in class on Wednesday, April 6): Computing Fibonacci numbers using Python iterators, generators, and decorators.
  10. Lab 10 (Write-up Due in class on Wednesday, April 13): Cryptographic Hash Functions
  11. Lab 11 (Write-up Due in class on Wednesday, April 20): LZW Compression

Lectures

Course Policies

Punctual Attendance and active participation are expected in every class. Anyone arriving later than 10:15a 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.

Communication

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

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:

Labs & Written Work 35%
Presentations 35%
Class Participation 20%
Attendance 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.

Study Groups

All submitted work should be solely your individual work. 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.