Does the portfolio have to be equal weighted and contain 50 stocks all the time?

Just want to make sure that the portfolio we are building has to be equal weighted and contain 50 stocks all the time as stated in the objectives.

Yes your understanding is correct, the portfolio should always contains 50 different stocks at any moment of time, these stocks should be part of the S&P 500 at the time they are invested. Check the function getTickersSP500 available in R and Python for more details.