Definitivamente sin usar
isset no van a poder evitar que php siga imprimiendo la notificacion de que existe una variable indefinida.
Si un campo se envia vacio ese campo simplemente no pasa al script php por tanto no esta definido y no puedes comprobarlo con strlen de manera que te seguira tirando la notificación al menos que ocultes todos los errores y notificaciones.
error_reporting(0);
También pudieras crear una funcion en javascript que siempre defina el campo aun cuando este vacio.
Lo que me parece extraño por que tu profesor te enseno como usar primero strlen antes que isset

Saludos.