Movie and Movie Base: Allisa Ho

(1a) In terms of choosing a data structure, we originally thought it would be best to have a map of vectors for the movieBase. The key would have been the movie index and the vector would have stored the title, year and genre.
In the end, we chose thought it would be easier to just have the movie object to hold these variables. In the movieBase, there is a method to calculate the averages of each individual movie. 

(1b) We chose to make a separate genre class to be used by both the user and movie classes, instead of duplicating the code in the two classes. The movie code calls a method in the genre class, and pushed it back into a vector of genres in the movie class.

User and User Base: Jimmy Huang

(1c) For User Base I used vectors, and maps to create the data structure. I choose to use maps because it allowed me to keep a key to each movie and sometimes have a vector as the value so that I could store the needed information without over complicating it. Vectors and maps were easy to use and manage.

(1d) While doing the average for each user and their genres I used the idea of creating six vectors, one for each sub-genre and would get all the ratings for each respective sub-genre and calculate the average. This was all done inside the user class where all the data needed was already present.

2) For the simulation for top k movies I believe our run time would be O((M*U)+R). To get the top movie we iterated users and movies to find it’s the movies that fit user’s preference factor to genre and ratings are done for each user for each sub-genre.

