The course specifies that ALBs need 2 public subnets. In reality, you can make one with two private subnets, there is even a scheme configuration item of internal or internet-facing. So, the only real requirement for subnets is to have two, not that they be public.
Good call, although the most common use would of course be for 2 public subnets
You need "at least one public subnet in each of the Availability Zones used by your targets". So 2 Pvt (or all Pvt) will not work.
When you are doing HA etc you would have multi-AZ so you would need multiple public subnets for LB. But no matter 1 public subnet minimum is a must.