Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 2.51 KB

File metadata and controls

84 lines (63 loc) · 2.51 KB

Contributing to DAA-Lab

We welcome contributions to the Design and Analysis of Algorithms (DAA) Lab repository. This document outlines the guidelines for contributing to ensure a consistent and collaborative experience.


How to Contribute

1. Fork the Repository

  1. Navigate to the repository.
  2. Click the Fork button to create a copy of the repository in your account.

2. Clone Your Fork

Clone the forked repository to your local machine:

git clone https://github.com/yourusername/algorithms.git
cd DAA-algorithms

3. Create a Branch

Create a new branch for your changes:

git checkout -b feature/your-feature-name

4. Make Changes

  • Navigate to the relevant topic folder (e.g., DivideAndConquer/, DynamicProgramming/) and add or modify code.
  • Follow consistent coding styles:
    • Proper indentation
    • Meaningful variable names
    • Add comments explaining complex parts of the code

5. Test Your Code

  • Ensure your code runs without errors.
  • Test with multiple inputs to validate correctness and robustness.

6. Commit Your Changes

Commit your changes with a descriptive message:

git add .
git commit -m "Add code for [specific algorithm or feature]"

7. Push to Your Fork

Push your branch to your forked repository:

git push origin feature/your-feature-name

8. Open a Pull Request

  1. Go to the original repository.
  2. Click on the Pull Requests tab and select New Pull Request.
  3. Select your branch and provide a detailed description of your changes.
  4. Submit the pull request.

Contribution Guidelines

  • Ensure your code is relevant to the syllabus and fits within the existing structure.
  • Clearly explain your code with inline comments and, if needed, in a separate README.md within the folder.
  • Write clean, efficient, and modular code.
  • Use consistent naming conventions for files and variables.
  • Avoid unnecessary dependencies; stick to the standard libraries whenever possible.

Areas for Contribution

Code Contributions

  • Add missing algorithms or techniques from the syllabus.
  • Optimize existing code for better time or space complexity.
  • Provide alternate solutions for existing problems using different paradigms.

Documentation

  • Improve documentation in README.md or add explanations for new code.
  • Fix typos or clarify ambiguous instructions.

Testing

  • Report bugs or incorrect outputs.
  • Add test cases for existing algorithms to handle edge cases.