ProjectBeta

File Type Analyzer (Go)

4 completions
~ 21 hours
5.0

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:
Using the old favorite Knuth-Morris-Pratt algorithm, improve your search and enable the program to display the time elapsed.
Practice your skills in concurrent programming by using goroutines, channels, and synchronization with WaitGroups to enable your analyzer to search for files with specific extensions concurrently.
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

Raymond Chavasse avatar
Raymond Chavasse
2 years ago
I learned to use the Rabin-Karp algorithm with the help of ChapGPT opening up a new way of programming.

5.0

Learners who completed this project within the course rated it as follows:
Usefulness
5.0
Fun
5.0
Clarity
5.0