GithubHelp home page GithubHelp logo

outreachy's Introduction

Outreachy Tasks

We are excited to welcome new contributors to the networkx project!

To participate with NetworkX as an Outreachy intern applicants are expected to go through multiple tasks in this repository. All tasks are presented as issues in this repository. Everyone is expected to do the first task.

Feel free to contact us if there are any questions regarding the process!

outreachy's People

Contributors

0ddoes avatar 29riyasaxena avatar achluma avatar akshayamadhuri avatar aliveevie avatar antimadwivedi avatar arpitadash avatar axif0 avatar chimaobi-okite avatar deepthi1107 avatar devotuoma avatar jeftersantiago avatar khushishikhu avatar lukong123 avatar manasviemmadi avatar mriduls avatar nsengiyumva-wilberforce avatar paulitapb avatar peacelovingng avatar phayena avatar purvichaurasia avatar qudirah avatar schefflera-arboricola avatar singhmansi25 avatar sirichandana-v avatar sreeyusha avatar tindi-plus avatar tiwavaldese avatar unna97 avatar xiaobenyin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

outreachy's Issues

[First task] Install networkx on your computer and create a PR to this repository

[Everyone can do this task. There is no need to claim/assign this issue]

As the first task, install networkx locally on your computer and make sure you can import it inside your python environment.

>>> import networkx as nx
>>> print(nx.__version__)
<note down this output>

Now create a pull request on GitHub against this repository (https://github.com/networkx/outreachy), first Fork this repository by clicking on the Fork button on the upper right corner on the GitHub UI.
Once you have forked the repository, download the repository locally (you would need to install git locally). If you are new to git and github you can go through an introductory video to better understand the git development workflow.

git clone [email protected]:your-github-username/outreachy.git

Go to the current round directory (2023-round-2) and then create a new folder using your github username.

cd outreachy/2023-round-2
mkdir your-github-username

Create a new file inside the new directory your-github-username you just created and call it nx_version.txt

Put the output of print(nx.__version__) inside the file nx_version.txt and commit it locally using git, push your changes to github and create a pull request against this repository.

As an example, we expect you to add something like this to the repository https://github.com/networkx/outreachy/tree/main/2023-round-2/MridulS to successfully complete this task.

Fix an issue in the NetworkX codebase

[Everyone can do this task. There is no need to claim/assign this issue]

Once the applicant has the local development environment setup they can work on open issues in the networkx repository.

If the applicant is interested in working on specific issues they can comment on them (Good First issues). Applicants can also pick any other open issue if they like or even open a new issue/discussion if there is something in our documentation or codebase that doesn't make sense :)

Once you have created a pull request in the networkx repository please add a link to that pull request in your folder created in the first task. Create a new file nx_pull_requests.txt in your folder in this repository and add links to the pull requests in the networkx repository.

Setup local development environment for NetworkX

[Everyone can do this task. There is no need to claim/assign this issue]

Make sure you have completed the first task before proceeding further. In this task applicants are expected to setup their local development environment, required to contribute code to the networkx project. Applicants should go through our Contributor Guide.

Once you have installed all the requirements and setup the environment, please run the tests locally. If all the tests pass then copy the output of $ PYTHONPATH=. pytest networkx and put it inside a file named nx_dev_test_output.txt. Add this file to your folder created in the first task and push the changes to github.

Create a pull request against this repository and add the file 2023-round-2/<your-github-username>/nx_dev_test_output.txt with the pytest output.

Read through the NetworkX tutorial and create a python script

[Everyone can do this task. There is no need to claim/assign this issue]

Please follow our introductory tutorial once you have installed networkx on your machine. This will give applicants a better overview of our codebase and API, which will help the applicant create a strong application.

Once you have gone through the tutorial create a python script (nx_tutorial_script.py) that perform the following operations

  • Create a NetworkX DiGraph graph object
  • Add nodes of multiple types to this graph object, at least one node of each type int, str, tuple. (Maximum 10 nodes)
  • Add multiple edges between these nodes
  • Find the shortest path between all pairs of nodes in this graph and print them.
  • Plot the graph using networkx.draw

Add this file to your folder created in the first task and push the changes to github.

Create a pull request against this repository and add the file 2023-round-2/<your-github-username>/nx_tutorial_script.py with the python script which performs all the operations above.

Run timing scripts from nx-parallel

[Everyone can do this task. There is no need to claim/assign this issue]

In this task we will look at the https://github.com/networkx/nx-parallel repository which contains the parallel implementations for some NetworkX algorithms. The task for this issue is to generate a heat map file heatmap_betweenness_centrality_timing.png and upload to this repository.

Add this file to your folder created in the first task and push the changes to github.

Create a pull request against this repository and add the file 2023-round-2/<your-github-username>/heatmap_betweenness_centrality_timing.png.

Create an explanatory Jupyter notebook

[Everyone can do this task. There is no need to claim/assign this issue]

Once you have installed networkx and are comfortable with the NetworkX API the next task is to create a Jupyter Notebook and submit that notebook to this repository. The Outreachy project is about creating Pedagogical Interactive Notebooks and this task will help you with getting familiar with the Jupyter notebook interface.

The applicant needs to submit a Jupyter notebook (.ipynb file) which does the following operations:

  • Create a random erdos-renyi graph with 100 nodes and a edge probability of 0.3
  • Plot the degree_centrality distribution (a histogram of the degree centrality values).
  • Change the edge probability of the erdos-reyni graph to 0.6 and plot the degree centrality distribution again.
  • Infer the changes in the plots, why does the degree centrality distribution change. Create a markdown cell in the jupyter notebook and write what you can infer from the plots.
  • Create a random barabasi_albert_graph with 100 nodes and attach 3 edges to a new node in the graph (m=3).
  • Plot the degree_centrality distribution (a histogram of the degree histogram).
  • Infer the changes in the plots, why does the degree centrality distribution change between these 2 random graph generators Create a markdown cell in the jupyter notebook and write what you can infer from the plots.

Create a pull request against this repository and add the file 2023-round-1/<your-github-username>/nx_notebook.ipynb with the notebook which performs all the operations above.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.