# Syllabus
## Day 1 (Monday, March 8): Overview
- Lecture: 9 am-11 am EST. Overview of the Goby3 project as a whole, explore some existing and potential applications, and lay down the groundwork for the rest of the week’s technical sessions.
- Slides: [goby3-course/lectures/day1-overview/2021-goby3-course-day1-overview.pdf][day1 slides]
- Lecture Notes: [goby3-course/lectures/day1-overview/day1-overview_notes.pdf][day1 notes]
- Homework assignment. Download, setup, and update the course Virtual Machine. Run the multi-vehicle missions that we will explore the rest of the week.
- Assignment: [goby3-course/homework/day1-overview/day1-overview_assignment.pdf][day1 assignment]
- Office hours (on Zoom): 1-3 PM and 7-9 PM EST. Check Slack for Zoom links
[day1 slides]: https://github.com/GobySoft/goby3-course/blob/master/lectures/day1-overview/2021-goby3-course-day1-overview.pdf
[day1 notes]: https://github.com/GobySoft/goby3-course/blob/master/lectures/day1-overview/day1-overview_notes.pdf
[day1 assignment]: https://raw.githubusercontent.com/GobySoft/goby3-course/master/homework/day1-overview/day1-overview_assignment.pdf
## Day 2 (Tuesday, March 9): Technical I: Communications
- Lecture: 9 am-11 am EST. Hands-on with nested publish/subscribe in Goby3, from interthread to intervehicle layers. A look into DCCL and Protobuf marshalling schemes. Understanding the Goby intervehicle comms implementation.
- Slides: None
- Lecture Notes: [goby3-course/lectures/day2-comms/day2-comms_notes.pdf][day2 notes]
- Homework assignment. Create a command message from the topside to the USV. Add a health monitoring process to the USV that is reported topside.
- Assignment: [goby3-course/homework/day2-comms/day2-comms_assignment.pdf][day2 assignment]
- Office hours (on Zoom): 1-3 PM and 7-9 PM EST. Check Slack for Zoom links
[day2 notes]: https://github.com/GobySoft/goby3-course/blob/master/lectures/day2-comms/day2-comms_notes.pdf
[day2 assignment]: https://raw.githubusercontent.com/GobySoft/goby3-course/master/homework/day2-comms/day2-comms_assignment.pdf
## Day 3 (Wednesday, March 10): Technical II: Autonomy
- Lecture: 9 am-11 am EST. Integration of Goby3 as a higher level autonomy architecture via the extensible frontseat interface. Interfacing with MOOS-IvP (IvP Helm) autonomy.
- Slides: [goby3-course/lectures/day3-autonomy/2021-goby3-course-day3-autonomy.pdf][day3 slides]
- Lecture Notes: [goby3-course/lectures/day3-autonomy/day3-autonomy_notes.pdf][day3 notes]
- Homework assignment. Develop a simple “helm” application and use it to control the vehicle through goby_frontseat_interface. At the end of the mission, command the AUVs to recover.
- Assignment: [goby3-course/homework/day3-autonomy/day3-autonomy_assignment.pdf][day3 assignment]
- Office hours (on Zoom): 1-3 PM and 7-9 PM EST. Check Slack for Zoom links
[day3 slides]: https://github.com/GobySoft/goby3-course/blob/master/lectures/day3-autonomy/2021-goby3-course-day3-autonomy.pdf
[day3 notes]: https://github.com/GobySoft/goby3-course/blob/master/lectures/day3-autonomy/day3-autonomy_notes.pdf
[day3 assignment]: https://raw.githubusercontent.com/GobySoft/goby3-course/master/homework/day3-autonomy/day3-autonomy_assignment.pdf
## Day 4 (Thursday, March 11): Technical III: Sensors
- Lecture: 9 am-11 am EST. I/O framework for interfacing with sensors (serial, TCP, UDP, CAN). Some Goby3 approaches to managing sensor drivers and data parsing.
- Slides: [goby3-course/lectures/day4-sensors/2021-goby3-course-day4-sensors.pdf][day4 slides]
- Lecture Notes: [goby3-course/lectures/day4-sensors/day4-sensors_notes.pdf][day4 notes]
- Homework assignment. Finalize a CTD simulator we started in class, and use it to publish data from the simulated AUVs to the USV.
- Assignment: [goby3-course/homework/day4-sensors/day4-sensors_assignment.pdf][day4 assignment]
- Office hours (on Zoom): 1-3 PM and 7-9 PM EST. Check Slack for Zoom links
[day4 slides]: https://github.com/GobySoft/goby3-course/blob/master/lectures/day4-sensors/2021-goby3-course-day4-sensors.pdf
[day4 notes]: https://github.com/GobySoft/goby3-course/blob/master/lectures/day4-sensors/day4-sensors_notes.pdf
[day4 assignment]: https://raw.githubusercontent.com/GobySoft/goby3-course/master/homework/day4-sensors/day4-sensors_assignment.pdf