Breaking it down into the three different episodes, because they may be caused by different triggers.
1. Growling at your other dog when she comes near his food is actually normal behaviour, although not appreciated by us owners! His ancestors before domestication would have needed to guard resources in order to survive. Some dogs don't seem to retain that instinct while others have it quite strongly. If he was mine I'd make sure he and your other dog are fed separately, either in different rooms or with a babygate between them. My two are quite equable and don't interfere with each other's meals but I choose to feed one in the kitchen and one in the hall so they can relax while they eat. They still bolt it down, but that's normal too.
It could be that he's had to eat quickly and competitively with his litter mates. That sometimes happens when a litter is fed from one big bowl or bowls placed close together, especially with big litters. There will always be some quick eaters who push their slower siblings off their food. Perhaps he had to bolt his food and guard it from litter mates.
2. Growling at other puppies at puppy class. Talk to your trainer about this. My guess is that he's nervous and feeling overwhelmed at class at the moment. It's not unusual. Some puppies will just hide quietly, others will warn with a growl when another puppy comes near but that doesn't signify aggression. He's just warning them that he doesn't want them nearby. Hopefully your trainer will have a strategy to gradually increase your puppy's confidence without pushing him too hard and making him more fearful. If your trainer doesn't have a good plan please find a different trainer.
3. Growling at your 3 year old child. Puppies and small children aren't always a match made in heaven. Puppies are still learning to read human body language, which takes time, and small children can be unpredictable in their actions and vocalisations, which can be unnerving to a puppy. If your puppy was tired or was startled that would make him more likely to give a warning growl. He was actually showing restraint by growling and not going straight to nipping.
I know you can't expect your 3 year old to recognise a tired or overexcited puppy, or to always behave perfectly with him, so keeping them apart when not closely supervised and when either child or puppy is overexcited or tired is a good plan. When your puppy is tired or asleep please make sure he has the chance to sleep in peace, with no disturbance. He needs up to about 20 hours sleep a day and if he doesn't get that he'll be like a tired grumpy toddler.
I really don't think you have an aggressive puppy, just one that is finding life in his new home a bit daunting at the moment. If you can help him by managing interactions with your child and other dog, not overfacing him at training classes and teaching him how to be calm and get plenty of sleep you'll help him to become more confident and less likely to react to situations