It's the home stretch for Hacktober fest! For my final contribution, I decided to tackle my last goal, which was simply to do something fun and interesting. Once again, thanks to GitHub user vichitr and his brilliant project, I was able to quickly find something to contribute. I've always thought that programming algorithms was a good challenge and invited great learning experiences, so for my final PR, I decided to program an example of the sliding window technique in Python.
The sliding window technique is a very useful algorithm that is used across many disciplines of software design. It allows users to compare subsets of data (i.e. windows) within a larger collection, in order to find significant items. Personally, I have encountered the sliding window technique during some applied research projects that I have tackled in the past. In a particular machine learning project, I used the sliding window technique to construct subsets of data that were then fed into a separate pattern mining algorithm. If you're at all interested, you can find a summary of the aforementioned project here.
The sliding window code for the research project I'd done could not be used for this contribution, primarily due to the fact that the implementation we'd written was far too specialized to use as a general example, so it would not fit the purpose of vichitr's project. The second reason is that it is proprietary code written for a client, so it would simply be unlawful to use it for open source purposes! So, I just wrote an original example using Python. Even though I'm familiar with the concept, it was still a good learning experience... mostly due to the fact that I've grown rusty with the fundamentals of the algorithm. A quick Internet search brought me back up to speed, and the rest was simply figuring out an implementation that would be simple and straightforward enough to teach other beginners about the concept of sliding window technique.
You can the issue here, and find the pull request here.
The sliding window technique is a very useful algorithm that is used across many disciplines of software design. It allows users to compare subsets of data (i.e. windows) within a larger collection, in order to find significant items. Personally, I have encountered the sliding window technique during some applied research projects that I have tackled in the past. In a particular machine learning project, I used the sliding window technique to construct subsets of data that were then fed into a separate pattern mining algorithm. If you're at all interested, you can find a summary of the aforementioned project here.
Visual example of sliding window technique (image from https://www.researchgate.net/) |
You can the issue here, and find the pull request here.
Console output of my sliding window program, coded in Spyder |
With this final contribution, I've finished my 4 required PRs for Hacktoberfest. Hopefully all of them pass the review period. I'll be looking forward to my T-Shirt!
Comments
Post a Comment