Lessons Learned: The Evolution of an Undergraduate Robotics Course in Computer Science