From my home I have access to my home wifi network as well as a public network that is deployed throughout the city. The public network has a lower signal strength and is unprotected. However, my computer sometimes connects to that network instead of my home network. Other than "forgetting" the public network, is there a way to tell NetworkManager to prefer my home network over other networks?
Yes. You could choose the public city wifi setting from networkmanager and disable automatic connection:
Manage Connections -> Wireless -> Choose Access Point(City's Wifi in this case) -> Uncheck "Connect Automatically"