Most Marriott hotel reservations allow you to cancel either the day of the reservation or a few days earlier without any penalty (places with high demand, i.e. Times Square on New Year's eve being clear exceptions).
Since you only need a credit card to hold the reservation, booking a room in advance would be the way to go. You do not have to pay in advance, like airline tickets, for hotel reservations in general.
Sadly, pinniped is right about how hotels in college towns that can support only a few mid-range properties. The hotel is probably going to earn in the high demand periods about half of their yearly profit.