_ The project format for your report (5 to 10 pages single-space) consists of the following components:
1) Abstract (Executive Summary): This project involves developing a program that assists users in selecting a movie to watch based on specific features or genres by analyzing a dataset in a .csv file. The dataset includes various movies’ titles, genres, release years, ratings, and other relevant features like runtime, director, and cast. The program will read the .csv file, process the data, and offer personalized movie recommendations to the user. (NEED MORE OF THIS PART)
2) Background information (Motivation) + In today’s world, where streaming services offer thousands of movie options, finding the perfect film to watch can feel overwhelming. With so many choices, users often spend too much time scrolling through endless lists, trying to pick something that matches their tastes. This project aims to simplify that experience by creating a program that allows users to filter movies based on key attributes like genre, rating, release date, and runtime, helping them quickly find films that fit their preferences.
+ The motivation behind this project comes from the growing need for more efficient ways to navigate large datasets. As the variety of available content continues to expand, users benefit from tools that can provide personalized recommendations. By developing a movie search tool that takes user input and filters through a dataset of movie details, this program offers a faster, more intuitive way to discover films without the hassle of manually searching.
+ Ultimately, the goal is to make the movie-watching experience more enjoyable by offering a tailored selection that meets each user’s specific criteria. This project also highlights the importance of creating software that is both functional and user-friendly. In a world full of information, being able to sort through data quickly and efficiently is invaluable, making this movie search program a practical solution for everyday users looking to find their next favorite film.
3) Define the problem to be solved
4) Brief Literature Reviews
5) Your Proposed Algorithms and Applications:
The algorithms and methods in this project aim to efficiently filter and display movies based on user-defined criteria. Here’s a breakdown of the proposed algorithms and applications:
Reading and Parsing the Dataset: The project uses a helper method, readCsvFile, to read and parse the CSV file. This method processes the file line by line, using a regular expression to handle cases where values are quoted (common in CSV files with commas inside fields). The parsed data is stored as a list of string arrays, where each array represents a movie’s details. This method ensures efficient data extraction and proper handling of CSV formats.
Movie Attribute Mapping: After reading the CSV, the code constructs two keymaps:
movieTitles: A map that links each movie’s unique ID to its title. This allows for quick lookups when displaying the results.
movieGenres: This map links movie IDs to a list of genres. By splitting genre strings on the “, ” character, the program accommodates movies with multiple genres. This approach simplifies genre-based filtering later in the program.
movieRatings: This map links movieIDs to a list of ratings, which will be stored in a float variable.
movieReleaseYear: This map links movie IDs to a list of release years.
movieRuntime: This map links movieIDs to a list of runtimes (min).
Filtering by Genre: The filtering algorithm allows the user to specify up to three genres (e.g., Action, Adventure, Sci-Fi). It iterates over the list of movies, checks if any of the movie’s genres match the desired genres, and includes only those that do. This genre filtering is flexible, allowing multiple genre criteria, and efficiently narrows down the selection.
Sorting Filtered Movies: The filtered movies are stored in a map (filteredMovies) where each entry contains a movie’s ID, an arbitrary placeholder rating (set to 0.0), and the minimum number of ratings required (though ratings are removed in this case). The algorithm then sorts the filtered movies by rating in descending order. While the current code uses placeholder values, this could easily be replaced with real ratings from the dataset.
Displaying Results: The program prints all the movies from the dataset .cvs file matching the filter criteria. It efficiently formats and displays the movie titles, ensuring that only a portion of each title (up to 40 characters) is printed for readability. The use of formatted output makes the results user-friendly and visually organized.
This approach ensures that the system remains scalable and can easily be adapted for more sophisticated filtering and sorting methods in the future, such as adding runtime or release date filters. The use of maps and lists provides efficient data access and manipulation, making the program capable of handling large dataset
6) Implementation and Experimental Results (I will upload my code under the attachment)
7) Advantages and Drawbacks
8) Summary and Conclusion (New applications and discoveries)
9) References
_ The project format for your report (5 to 10 pages single-space) consists of t
By admin