Open BrandonArmand opened 4 years ago
Hi @BrandonArmand I would like to contribute to a lesson. I wanted to ask, what would you like to do with the 2nd lesson, since the first lesson already has binary tree insertion?
@alti21 just do anything you would like. The first lesson is meant to be an overview of binary trees as a whole, so i’m still deciding what to do with it, but for each other lesson, feel free to get creating. We obviously want the basics first, such as insertion, searching, checking size, etc.. but don’t worry about the first one already having methods, something will be done to it in the future.
Hi @BrandonArmand I would like to contribute some lessons. Should I start working on it?
@hrishibawane please do :)
@BrandonArmand one question. The insertion code you wrote depicts a binary search tree, with lesser elements in left subtree and greater in the right. Except that there should not be any duplicates. So do you want to continue the next lessons for a BST or just a binary tree?
@hrishibawane that's a great question because I plan to (hope to at least) have all types of data structures, which is why it is simply called Binari. For now though, let's focus on BST and work our way up. I will add that clarification to issue, thanks.
Hey @BrandonArmand, I have created the search lesson for now and its working perfectly. Can you review it, so that I can work on next lessons too? Should I send a PR?
Also, I have updated the code for duplicates and the introduction of BST instead of binary tree.
@BrandonArmand Can you review the PR and also update this issue?
@BrandonArmand I would like to contribute to some lessons? Which ones are still open? If there is none then I'll like to add a lesson on deleting a node in BST. Should I start working on it?
Hey @Rohit-Arora-0508 !
You can absolutely do that; however, the app is going to evolve into a lesson by lesson process. This means that the user will need to figure out the algorithm themselves to move onto the next lesson, so what I would like to be done is to turn all of the large default codes into a minimal bit of code. It should only contain methods that the user would have already completed in the past AND are required to complete the current lesson. And the method being taught in the current lesson will be explained in the lesson section using pseudo-code and explanations, to which the developer will need to work out themselves and develop.
So in short, if you would like, you can expand on the current lessons by providing the user with pseudo-code and larger descriptions to work with. You can also explain the pseudo-code using the usual class structure as I will be changing how the text editor transpiles the code.
For tests, did you have in mind to implement the test.js files or to configure tests that work with npm test by making tests folders?
Hi @BrandonArmand, Is this repo still open for contribution? I am exploring it, inorder to contribute more lessons.
Hi @BrandonArmand, Can a first-timer propose and make a lesson? I wanted to add lessons for "Inorder Successor, Inorder Predecessor, kth Largest element, Find the LCA"? Should I start working on it?
lessons.
Who can help
Anyone. If you think you can contribute to the development on a lesson, go ahead.
How do I build a lesson?
Each lesson should clearly describe the chapter's method through pseudo-code with thorough explanations on how and why every step is happening. It should be possible for a new developer to dive in and build the method using nothing but the lesson's explanation.
There is a very precise structure for creating a lesson.
Binari\src\views\Playground\chapters
is where every lesson is laid out.Every chapter will have have it's own folder, and get referenced in
index.js
lesson.js
will be rendered in markdowndefaultCode.js
will be wrapped in a stringindex.js
will reference these files.When a new folder is added to
Binari\src\views\Playground\chapters\index.js
, it will automatically get added to the directory in the playground through this code.