This week I researched possible project subjects, which included cryptography (Signal protocol, Blockchain), AI (AI for the game of go), and data compression (Huffman code and possibly LZW algorithm). In the end I realized that the last idea was the best fit for this course, in terms of complexity, time required, and relevance.
I've created the GitHub repository, initialized the Gradle project, added the repo to Travis, Codecov and Codacy. I've also written the software requirements specification.
I've learned some things about compression algorithms but I still have to do some research. I've learned much also about the topics that I didn't choose in the end, and I've thought about learning more about them in the future (attend some related course or research them on my own).
The most difficult thing was coming up with concrete project ideas for some of the subject areas I was interested into (namely cryptography and AI). In the end I couldn't come up with anything defined well enough to become this course's project.
In the coming week I will further research the Huffman code, and I will start to implement it. If there's time, I'll start also another compression algorithm's implementation.