Things that we learned and things we strongly recommend anyone taking this course should do
Mechanical Design
Thinking about a design isn't always faster or better than building a prototype. Decide quickly which is more worthwhile and go with it.
Design things to be adjustable. It is very difficult to be precise with every measurement and maybe a hole ends up a few millimeters off of where it was supposed to be. Instead use slots which also allows mounted items to be moved if necessary.
Glue/tape is not a long-term solution. Mounting pieces down with screws will ensure structural integrity over time.
Electrical
Always pull test your connections!
Always create and test a circuit on a prototyping board before doing any soldering.
Determine whether a software solution for a hardware problem exists and the trade-offs that come with it.
Coding
Take the extra time to write neat and organized code. It will save you time in the long run when you are testing and have to go back and debug.
Plan out the different code modules before writing, it will make integration between modules easier.
Project Management
Keep a schedule and stick with it. Know what things you need to be done when and prioritize them accordingly. Also, gain an understanding of what your teammates are working on and let them know what you are working on. This will ensure that everyone stays up to task.
Learn the best way to effectively communicate with your team. Try to schedule quick meetings at set times where everyone can talk about their tasks and plans for the day.
When in disagreement with your team, try to reach a conclusion objectively via cost-benefit analysis or risk analysis. Yielding your idea is not a good solution and debating doesn't help anyone.