# LAHG Automatic Differentiation [![Build Status](https://app.travis-ci.com/cs107-lahg/cs107-FinalProject.svg?token=EBNKXkiBqDrUCF2XhQZz&branch=main)](https://app.travis-ci.com/cs107-lahg/cs107-FinalProject) [![codecov](https://codecov.io/gh/cs107-lahg/cs107-FinalProject/branch/main/graph/badge.svg?token=8M04YJW24L)](https://codecov.io/gh/cs107-lahg/cs107-FinalProject)

A simple package for automatic differentiation for Harvard AC207/CS107.

## Group number: 34

## Members: Hazel, Geoffrey, Anjali, Ling

## Broader Impact and Inclusivity Statement

### The potential broader impacts and implications of your software

Automatic differentiation has a large impact in many fields including Statistics, Mathematics, Bioinformatics, Physics, Machine Learning and so on. Its application diverges in various context not only in scientific research, but also in business and governance. Nowadays these data-driven technologies that employs automatic differentiation as its basic algorithm has shaped the world to be a better one. It provides more accurate financial service using NLP, provides medical artificial intelligence to advise physicians, as well as making more accurate predictions of Economic trends.

As developed in recent years, machine learning and deep learning technologies have been applied in many fields, especially in the IT industry for advertisement recommendation, user classification, and facial recognition. However, these applications rely on the collection and potential misuse of personal data, sometimes without their awareness and consent. Ethical use of our software would avoid these misuses that encroach on privacy and safety. Examples of misuse include in machine learning when it comes to illegal surveillance and classification tasks that are biased with real world impacts. In this aspect, these applications are at risk causing harm to society and the public.

After thorough consideration, we still would like to distribute our package on PyPI, as its benefits overweigh its potential harms. We also require all those who would like to make use of this package be aware of the negative impact of these technologies and affirm they will use the code ethically and without malicious intent to commit the misuse described above and others not mentioned that violate personal privacy and rights of the public.

### How is your software inclusive to the broader community?

The package is freely distributed through PyPI, it should be accessible to anyone who has Internet access. We recognize the accessibility issue posed through GitHub in that the user must have an account, be familiar with GitHub, etc. Those who are interested in applying automatic differentiation function can easily install our package through either Github or PyPI, but we have also recognized that lack of Internet access could be a potential problem of accessing this package.

Our code is also open-sourced under the protection of MIT license, which means everyone could contribute to our code base, which is welcomed and encouraged. Our teammates will review the pull request and carefully evaluate the quality of code contribution without discriminating against race, color, religion, gender, gender expression, age, national origin, disability, marital status, sexual orientation, or military status, in any of its activities or operations. If a pull request is rejected, detailed comments will be provided.

Some criteria upon which we will decide which pull requests to approve are:

- Consistency in formatting to how we have formatted the rest of the code
- Presence of thorough documentation and Docstrings
- Describes how we can test their code
- Includes test files that we can run
- Tests have a minimum code coverage of 90%
- Code makes a significant contribution to the existing package
