I took an advanced algorithms course at uni which was purely programming projects, code must be written in either C or C++, and this was on the quarter system. Professor would just give a quick overview of the projects and used class for q&a which most students didn't partake in.
The first was to implement a search algorithm that combines binary search and interleaving search which was pretty easy.
The second was to implement a prime number generator that generates >=1024-bit prime numbers without relying on bignum library. I miserably failed at this, been meaning to revisit this (over 15 years since).
The third was to implement a huffman encoder/decoder and an lz77 compressor/decompressor. Huffman was easy, but I found lz77 pretty difficult to implement efficiently (poor choice of data structure for the dictionary and phrase search on my part). I got a very minor deduction for the implementation not being quick.
Despite not doing well I hold the course in high regard.
The first was to implement a search algorithm that combines binary search and interleaving search which was pretty easy.
The second was to implement a prime number generator that generates >=1024-bit prime numbers without relying on bignum library. I miserably failed at this, been meaning to revisit this (over 15 years since).
The third was to implement a huffman encoder/decoder and an lz77 compressor/decompressor. Huffman was easy, but I found lz77 pretty difficult to implement efficiently (poor choice of data structure for the dictionary and phrase search on my part). I got a very minor deduction for the implementation not being quick.
Despite not doing well I hold the course in high regard.