Electronic problem based learning of electromagnetics through software development | Synapse