Project

File Type Analyzer (Kotlin)

Challenging
76 completions
~ 32 hours
4.3

Figure out multithreading and learn to work with Knuth-Morris-Pratt algorithm, a must-know for every developer. Consider Rabin-Karp algorithm the icing on the cake. Good luck!

Provided by

JetBrains Academy JetBrains Academy

About

 Files come in all possible formats: we usually see it specified in their names. Even if the file type was manual changed or even removed, information about the type is always contained within the file. And in this project, you will write a tool that will extract this info to determine the type of the file. You’ll try out different algorithms to solve this problem, and will see for yourself how using different algorithms will change the speed of the tool.

Training project icon

Training project

This project allows you to practice and strengthen your coding skills, helping you get ready for more advanced tasks ahead.

What you'll learn

Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
PDF or not PDF, that is the question. Teach your program to determine whether your file is of this format or not: it’s a nice start.
Using the old favourite Knuth-Morris-Pratt algorithm, improve your search and enable the program to display the time elapsed.
Practice your multithreading skills and apply Callable and Future interfaces to enable your analyzer to search for files with specific extensions.
With the help of Insertion and Merge sort, allow your program to recognize 14 different types of extension and prioritize your sort.
Improve and speed up the search using Rabin-Karp algorithm.

Reviews

Bernardo Antunes avatar
Bernardo Antunes
6 months ago
This is a very good project which created a great opportunity to learn about the Robin-Karp algorithm
Satish Nande avatar
Satish Nande
1 year ago
I learned various algorithms for String Search and also how to implement them efficiently using Threads.
Tai-Juan Rennie avatar
Tai-Juan Rennie
2 years ago
This was my first introduction to modern data structures and algorithms!

4.3

Learners who completed this project within the Kotlin Developer course rated it as follows:
Usefulness
4.6
Fun
4.4
Clarity
4.1