Skip to content

SICSR-ACM-Student-Chapter/50-Days-of-Euler

Repository files navigation

The 50 Days of Euler Challenge

50 Days of Euler is a series of random questions from Project Euler which are to be solved programmatically. It is organized by the Student Chapters of ACM & ACM-W at Symbiosis Institute of Computer Studies and Research and will begin 30 March 2020 onwards.

This repository contains the questions which will be released on a daily basis for participants to attempt and post completion the best answers among all the solutions.

If you are new to GitHub, do go through Getting started with GitHub. We recommend the quickstart, GitHub Desktop, Git cheatsheet for starters!

Join us on discord, click here!

Table of Contents

How to Join

  1. Create a new Issue with the Registration template.
  2. Ensure all the details mentioned in the template are filled.
  3. Make a note of the Issure ID via the 3 numbers after the #.

Rules

  1. The competition will begin on 30 March 2020 and end on 19 May 2020.
  2. One can register any time he/she wants while the competition is ongoing.
  3. All programs must be written in C or Python, though we recommend C.
  4. The answers can only be submitted in the same sequence as the questions and need to be marked as accepted before moving on to next submission. Refer to Rule 8 for acceptance criteria.
  5. There is no-time limit per answer, one can take as long as the competition runs for completing an answer as required considering Rule 4 is followed.
  6. Every submission should contain a README.md that explains how the program should be executed, any inputs if required and how will the output be generated.
    • Details on how to submit an answer can be found here.
  7. There will be strict plagarism checks for all submissions. If the plagarism is found to be above 60%, the contestant will be disqualified.
    • If the user has posted his/her code somewhere else, please ensure that it is mentioned in the README.md file. Verification of the same will also be performed.
  8. Only answers with less than ~15% plagarism will be accepted as valid submissions. Acceptance of an answer will be denoted by the Pull Request being marked approved.
  9. Strictly ensure that no details that compromise your privacy are present in the submissions.
  10. The best answer for each question will be merged into the repo at the end of the competition!

Instructions to Submit an Answer

  1. Create a fork of the respository on your account.
  2. Create a branch in the fork with the naming convention first_name-last_name-question_number(#issue_id).
    • The question_number refers to the Question number on the respository, indicated by the folder name.
    • The issue_id is the id of the issue indicated by the # of your issue.
    • E.g.: john-doe-1(#002) is the branch name for a participant by the name of John Doe for question number 1 with his registration issue id being #002.
    • If you need help regarding how to create a branch, go through Git Branch Cli Guide or Branches in GitHub Desktop depending on what you are using.
  3. In the branch create an Answer folder in the respective question's folder and add all the relevant code files to it.
  4. Once you are confident with your submission, open a Pull Request on the repository with the correct branch.
    • Please fill in all the information as mentioned in the template.
    • Your Pull Request won't be verified with missing information.
    • Feel free to open a draft PR incase your submission is Work in Progress.
    • Ensure your submission follows all the Rules.
    • If you need help regarding how to create a Pull Request, go through Creating a Pull Request and Creating a Pull Request from a fork
  5. A volunteer from the Verification team will approve the validity of your answer.

Judging Criteria

Marking will be performed at the end of the 50 days by the judges based on the following criteria:

  1. Documentation and Code Readability.
  2. Consistency within the Code, e.g. Coding Standards.
  3. Performance of the Program based on CPU Usage, Memory Usage and Time taken.

How do I keep my fork updated?

In order to obtain the latest questions on your fork, a procedure known as a Rebase needs to be performed. Here are the basic steps to follow:

  1. You need to add a remote to your fork's clone. We will call it upstream following the convention. The command is:
$ git remote add upstream https://github.com/SICSR-ACM-Student-Chapter/50-Days-of-Euler.git
  1. Check if the command is succesful via:
$ git remote
  1. Next, run git fetch to update your local Git Database with all the history from all your remotes.
$ git fetch upstream
  1. Now, ensure you are on the master branch of your repository by using:
$ git checkout master
  1. Now perform a rebase by using the --rebase flag while pulling. Then push the changes to your GitHub.
$ git pull --rebase upstream master
$ git push

Still have questions? Ask us

Please connect with us via the Discord server and ask your questions in the #support text channel.

If you are new to Discord, we recommend going through Getting Started - Discord.

About

Base repository responsible for hosting and managing 50 Days of Euler 2020 event.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published