This exercise is intended to be done in part using LIVE-CODING, as follows: Step 1: Explain the exercise to the students. Step 2: Explain how to work in a SHARED project, per HowToShareModules.pdf herein. Step 3: Students practice by implementing the libs modules: - Team members 1 and 3 pair program: libs/rosebot_drive_system. - Team members 2 and 4 pair program: libs/rosebot_touch_sensor - If a team lacks team members 3 and/or 4, do single (not pair) programming. To do this step: - Step 3a: The instructor live-codes TODOs 1 through 3. They are the SAME in each module above so both sub-teams can work at the same time. - Step 3b: Then the instructor live-codes TODOs 4 through 7 in rosebot_drive_system while team members 2 and 4 watch to get the basic ideas. - Step 3c: Then the instructor live-codes TODOs 4 and 5 in rosebot_touch_sensor while team members 1 and 3 are working on the rest of rosebot_drive_system. Step 4: Students live-code the rosebot module, so that they understand the idea of accessing subsystems through a constructed RoseBot object. The students use ONE computer but TEAM-programs (using the ENTIRE team). Step 5: After one of the two sub-teams finish their rosebot_... module, students practice by implementing the labs modules, using pair-programming as before but SWAPPING goals: Each sub-team tests code that the OTHER sub-team wrote (so that the entire team is familiar with ALL classes/methods). To do this step: Step 5a: The instructor live-codes TODOs 1 through 5 in lab1_drive_system while the other sub-team does almost identical code in lab2a_touch_sensor Step 5b: The instructor explains the INPUT part of the testing code. Step 5c: Students finish from there.