numerical-mooc / assignment-bank

Contribute alternative assignments for Numerical Methods with Python
MIT License
14 stars 75 forks source link

How to organize the submissions to the Assignment Bank? #35

Open labarba opened 9 years ago

labarba commented 9 years ago

We need some way to organize submissions to this repository, so they are easy to browse and things can be found. The first thought was that we'd have a new folder for each contribution (where in addition to the .ipynb file there could be figures, data sets, etc.).

Another idea was to prepend a number to the folder name to relate the contributions to the course modules: prepend 01_ for something related to ODEs, 02_ for introductory PDE topics, 03_ for hyperbolic PDEs with first-order time derivative, 04_ for parabolic equations, and 05_ for elliptic equations. But contributions have immediately shown to be more diverse than that!

This will quickly become unwieldy, as we merge in the additional PRs with good contributed lessons. How do we rationalize this?

akashdhruv commented 9 years ago

Students who are (and will be) using numerical-mooc are pursuing majors in different areas of engineering. In my opinion, best way to organise assignment-bank should be according to different topics, i.e. Fluid Mechanics, Heat Transfer, Plasma, etc. We can provide tags to each notebook. For example a notebook containing convective heat transfer problem can be tagged under Fluid Mechanics and Heat-Transfer. If a student wants to browse a notebooks under different topics, he/she just needs to browse for relevant topics. This might be a little difficult to incorporate, but something close to this can be achieved.

labarba commented 9 years ago

That is an interesting suggestion that we never thought about … organized by context and application. Hmmm. Tags are a good idea, for sure!

gforsyth commented 9 years ago

The diversity of projects does present a problem -- either we shoehorn projects into a set of predefined folders (and maybe also a "misc" folder) or otherwise we should probably abandon the notion of directory structure as a navigational aid.

We might be best off creating a table of contents in markdown & one in a notebook. Markdown file can act as the front-page readme and provide links to NBViewer versions of the notebooks, while the ipython notebook version will work locally for opening the appropriate notebook.

How about an initial folder hierarchy with notebooks divided depending on whether they're predominantly about a numerical method vs. about physics

Then each notebook in its own folder (with data, figures, subfolders) within those. Then you can begin tweeting links to individual NBViewer links and we can build up a table of contents to point to them in a more friendly manner, but the notebook locations won't change

labarba commented 9 years ago

The landing page on GitHub can't be an unwieldy list of folders, so to start, we need top-level folders like in the main numerical-mooc repo:

Within "Lessons," I guess we can have one folder per submission, with whatever name the author gives it, containing the .ipynb and files.

And thus we need a table of contents, like you suggest.

Something like this? http://nbviewer.ipython.org/github/ipython/ipython/blob/2.x/examples/Notebook/Index.ipynb

labarba commented 9 years ago

Here's an example where the table of contents is in the wiki: https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks

gforsyth commented 9 years ago

I think I prefer the TOC as a notebook, as that will work both locally and on NBViewer (relative paths linking notebooks work on NBViewer)

labarba commented 9 years ago

Good thinking. Easier to work offline.

labarba commented 9 years ago

I've started an Index notebook, but it seems that it's not going to be that friendly as a long list of submissions, like I'm doing it now. http://nbviewer.ipython.org/github/numerical-mooc/assignment-bank/blob/master/Lessons.and.Assignments/Index.ipynb

Even that is unwieldy, and perhaps needs a hand classification by broad topics.