Course Overview

In nearly every software application, data must be stored and managed to meet the needs (i.e. time and space efficiency) of the user. This course introduces basic data structures and their application using the Python programming language. We introduce a mathematical framework for evaluating the efficiency of code, and develop implementations of basic data structures such as lists, stacks and queues. We study searching and sorting algorithms and introduce recursion as a strategy for improving the running time of these algorithms. This leads us to study more advanced data structures that are defined recursively, such as trees and heaps. We cover several advanced topics, such as hash tables and the storage and exploration of graphs.

Course Goals

At the end of this course, you should be able to:

  • Use the object-oriented programming paradigm to write understandable and maintainable Python programs.
  • Given a specification, design and implement an algorithm in Python that correctly satisfies the specification.
  • Rigorously analyze the time and space efficiency of a Python program.
  • Compare and contrast the relative merits (in terms of efficiency) and applicability of standard data structure

Class Meetings

There are two types of class meetings held for this course:

  • Lectures will be held twice a week by Professor Zink. The main goal of the lectures is to present and discuss the main content that is covered in this course. It is expected that you have worked through the assigned reading and that you are familiar with the topic of the lecture. Lectures are not intended and cannot be a replacement for reading assignments and practicing coding.
  • Discussion sessions are held weekly by Professor Zink and the TAs. The goal of the discussion session is to reemphasize the topics covered in the lecture and illustrate the concepts using specific code examples. The discussion sessions are held in smaller groups to encourage questions and discussion. You are expected to have studied the topics covered in lecture and to prepare questions that might have arisen.

These components of the course are designed to provide ample opportunity for you to clarify reading assignments, ask questions, and practice your skills. You are encouraged to seek any additional help you need from the instructors and TA’s during their office hours.


Your final grade will be derived from your performance in three areas:

  • Homework consists of sets of theoretical problems and short coding assignments. Homework will be graded using a nonlinear "A/B" grading system that encourages both thoroughness and correctness. Each homework assignment will receive two separate scores:
    • A-Grade: The grade reflects the fraction of assigned problems for which complete solutions were submitted.
    • B-Grade: The grade is the score achieved on a subset of the assigned problems that are selected for full grading.
    The total score assigned for a given homework assignment is Grade = (A+B)/2.
  • Projects are larger coding assignments that require the development of solutions to more practical problems.
  • Exams consist of two exams during the semester and one final exam. The exams are closed-book, closed-notes and evaluate how well you retained and understood the course content as well as how well you can apply the course concepts to new problems. For each exam, an in-class review session will be held to provide time for resolving issues regarding the content and procedure of the exam.

Homework and projects are assigned according to the schedule posted on the course website. Solutions to homeowrk and project assignments must be submitted on Moodle. Late submissions will not be accepted. In case of a medical emergency, late submission or a make-up exam can be requested if a note from a medical professional is provided. Midterms are held according to the schedule on the course website. The final exam is scheduled by the university.

The final grade will be norm-referenced (i.e., graded “on a curve”) with the following weighting:

  • Homework: 20%
  • Projects: 50%
  • Exam I: 10%
  • Exam II: 10%
  • Final Exam: 10%

You are encouraged to track your scores on Moodle to ensure that you have received the appropriate credit for each of your assignments and exams. No extra credit or “make-up” assignments will be given (with exception to the cases stated in the examination policy below).

Fall 2020 Modified Grading for UG Courses

Students will be allowed to select Pass/Fail grading for up to three courses in Fall 2020, including courses for satisfaction of major, School/College, and University requirements. For Fall 2020, a Pass will suffice in cases in which a minimum letter grade was required. The deadline to declare Pass/Fail will be extended to Friday, November 20th. Actual course grades may be needed for application to graduate school, medical school, professional programs, other post-baccalaureate purposes, and to meet scholarship eligibility requirements. Students have up to six months after graduation to revoke P/F grading before their University record/transcript is “frozen” and no further changes are allowed. (After this period, a student may request an official letter from the Registrar indicating the letter grade that was submitted by the faculty member.)

Course Policies

Attendance and Punctuality

You are expected to attend all of the lectures and discussion sessions for which you are enrolled. You are expected to come to lectures, discussions, and examinations on time; arriving late and/or leaving early is disrespectful and disrupts the entire class.

Late / Make-Up Policy

Assignments are due as posted on the course web page. Late submissions will not be accepted. Scheduling conflicts regarding exams should be reported to the instructor immediately. In case of a medical emergency, late submission or a make-up exam can be requested if a note from a medical professional is provided. The note must indicate that the student was medically incapable at the time of the exam. If advanced notice is possible and not given, the instructor may refuse the request.

Support for Homework and Projects

Due to the very large class size email-based requests for homework and project assignment will be limited to a maximum of three per assignment per student. If you need further help, we highly encourage you to make use of office hours. Please CC the TAs on all homework and project related email. They are able to answer many (if not all) of your questions and you might get a quicker answer than just sending an email to only me. You are also higly encouraged to use Piazza to discuss any homework and project related issues.

Office Hours

Office hours are an important part in supporting you throughout this course. Even if you don’t have specific questions, needs, or concerns, I would love to chat with you at least once during the semester. On a general basis, I will be available to talk with you every Friday between 9 and 11 am. If that doesn't work for you, please email me and we will find another day and time. You can also book an appointment with me through the EAB.


I always answer e-mails and will do my best to answer your message within 48 hours. Please include a salutation, your name, COURSE NUMBER, and the question/issue.

Academic Integrity

Consultation with fellow students is encouraged. However, directly copying another student's work (past or present) defeats the purpose of the assignments and exams and is an honor code violation. Unless otherwise noted, you are expected to complete all assignment individually. Violations will result in serious penalties including course failure and possible disciplinary action. If in doubt, please consult the instructor or the official UMass guidelines regarding academic honesty. Please read and be aware of the academic honesty policy.

Health and Wellbeing

During this time, you may be experiencing new stresses related to the COVID-19 pandemic in addition to other pressures such as health, money, family, and academic concerns or stress and trauma from societal inequities and violence. You are not alone at UMass – many people care about your wellbeing and many resources are available to help you thrive and succeed. The College recognizes that coursework is challenging and that classes are not the only demand in your life. Success in this course and the College of Engineering depends heavily on your personal health and wellbeing. Recognize that stress is an expected part of the college experience, and it often can be compounded by unexpected setbacks or life changes outside the classroom such as those related to COVID-19. I strongly encourage you to reframe challenges as an unavoidable pathway to success. Reflect on your role in taking care of yourself throughout the term, before the demands of exams and projects reach their peak. Please feel free to reach out to me about any difficulty you may be having that may impact your performance as soon as it occurs and before it becomes too overwhelming. I encourage you to contact support services on campus that stand ready to assist you. You can learn about the confidential mental health services available on campus by calling the Center for Counseling and Psychological Health (CCPH) by visiting their website at Within the College, you may reach out to your academic advisor, the Office of Student Affairs ( or the Office of Community Equity and Inclusion ( There are many other resources on campus for students facing personal, financial or life challenges to find support, stay in school, and graduate ( Please reach out to me for support finding the resources you need.


The diversity of the participants of this course is a valuable source of ideas, problem solving strategies, and engineering creativity. If you feel that your contribution is not being valued or respected for any reason, please speak with me privately. If you wish to communicate with someone else in the College, speak with Assistant Dean Dr. Paula Rees ( You may also report a Climate Incident to campus at or anonymously through the College of Engineering Climate Concerns and Suggestions on-line form ( and/or the Positive and Negative Classroom Experience online form ( We are all members of an academic community with a shared responsibility to cultivate a climate where all individuals are valued and where both they and their ideas are treated with respect.

Disability Accommodation and Inclusive Learning Statement.

Your success in this class is important to me. We all learn differently and bring different strengths and needs to the class. The University of Massachusetts Amherst is committed to making reasonable, effective and appropriate accommodations to meet the needs of students with disabilities and help create a barrier-free campus. If you have a qualifying disability and require accommodations while participating in this course, please work with Disability Services to have an accommodation letter sent to me in a timely manner. If you have a disability but are not yet affiliated with Disability Services, please register with Disability Services ( Information on services and materials for registering are also available on their website If you are eligible for exam accommodations, your exams will be administered by the exam proctoring center. Contact Disability Services immediately, and comply with their exam scheduling policies, including the requirement that you book your exams at least seven days in advance of the exam date. It is incumbent upon you contact me during the first few weeks of the semester, or shortly following registration with Disability Services, to ensure that your accommodations are being sufficiently met, including extra time and note-taking access, as applicable. Finally, beyond disability accommodations, if there are aspects of the course that prevent you from learning or make you feel excluded, please let me know as soon as possible. Together we’ll develop strategies to meet both your needs and the requirements of the course.

Pronouns and Names

Everyone has the right to be addressed by the name and pronouns that they use for themselves. Students can indicate their preferred/chosen first name and pronouns on SPIRE, which appear on class rosters. Please let me know what name and pronouns I should use for you if they are not on the roster. A student’s chosen name and pronouns are to be respected at all times in the classroom. To learn more, read the Intro Handout on Pronouns:

Gender Respect and Title IX

The University of Massachusetts Amherst aspires to be a university environment that is free of discrimination, sexual harassment, and sexual violence. Faculty have the responsibility to inform students of resources and reporting options. If you or someone you know has experienced sexual assault, sexual misconduct, or sexual discrimination please see for information about resources and reporting options. A report to the Title IX Coordinator may be made at any time (including during non-business hours) by using the Title IX Coordinator’s email (, telephone number (413.545.6124) or mail. UMass Amherst is committed to supporting community members who report concerns of prohibited conduct. Please reach out to me if you would like assistance connecting with any of these resources/options.

In-Class Recordings

Students can only use the notes they take from class for their own personal use, and not share (sell) these notes via an outside vendor or entity without the my permission. This pertains to in-class recordings as well. Usage of the notes or in-class recordings in this way without my permission is a violation of the faculty member's copyright protection.