One quantitative approach to this is as follows.
1. Determine the load. Write down what things you want to use, when you use them, and for how long each time, over the weekend;
2. find the current that these things draw in use;
3. you can now calculate the aggregate load for the weekend (in Ah);
4. size the battery so that, assuming no solar contribution, you can make it through the weekend without discharging the battery more than 50% of its capacity;
5. determine the peak current at any particular time (from above); if it's less than the 20 hour discharge rate for the battery, don't worry about it; if it's more, see note 1;
6. size the solar panel so that in average summer weather it will fully charge the battery before next weekend; assume a charging efficiency of 91% - you need to put back 110% of what you take out;
7. to be very conservative - size the panel so that the battery is charged up in two or three days, so it can spend more time fully charged.
Note 1: for discharge rates higher than the 20 hour rating, you will get less energy out of the battery. This is called the Peukert effect. If you end up with this issue, you can de-rate the battery capacity for your calculations using Peukert's law (see wikipedia), and if necessary, arrive at the needed battery size by iterative calculations.
This algorithm makes a bunch of assumptions, and is simplified to err on the conservative side.
As for charge controllers, some are quite a bit more sophisticated than simply shutting off when the battery is full. I just bought a Morningstar Sunsaver - SS-10-12V. I found it online for $42. It not only does three-stage charging, but it performs an equalization charge every 28 days. It is selectable for wet or AGM cells. You can spend a lot less, too. A controller is definitely a requirement!
Note that you can make the battery bigger, that won't hurt anything, it just makes it heavier and more expensive, and it will probably last longer.