Students hate lecture style teaching. Better to be hands on. Avoid powerpoint lectures.
Students have a wide variety of skill levels. Take care not to cater to any one particular level.
Many students do not attend every meeting (due to conflicts with sports, band, family obligations, etc).
Make sure to coordinate/ review with software leads
There are three technical skill levels that build on their predecessors. Not all students start at level one. Idea: If we come up with 3-5 activities at each level we can mix and match.
Identify the challenges and activities for the first 4 weeks.
Software fundamentals.
Java Programming Basics
Computer focused.
Individual Challenges/ Competition
Learn to compile and run Java
Eclipse Basics
For while loops,if statements, functions.
Emphasis on Individual Challenges/ Competition.
Supplement with online training resources (on student's own time)
Zhaozhou/Jill? running point on this skill level.
Action: Talk to dev lead, identify dependencies (machines?), create a few exercises on Robocode. See something working, change it, create something new.
Set up robocode environment.
Show idea/walk them through it.
Have them make changes.
Custom activity/challenge: Battle Royale?
Pibots
Bots are fully built up front with OS installed. A bit of risk given timeline.
Basic bot / hardware familiarization (This is power, this is control, different parts)
Basic IO manipulation with Java
Drive manipulation/autonomous without sensors with Java
Sensor manipulation with Java
Integration Challenges
Small Team
Alan running point on this skill level (Chris D helping).
Action: Build minibot. Come up with exercises like above.
Roborio
Frcsim
Wpilib
Jason running point on this skill level.
Action: Get simulator running, figure out what there is to teach from Student Software Lead.
Challenges:
Autonomous navigation (navigate an increasingly difficult course)
PID control (balancing something e.g. on an arm, constant speed despite terrain, etc.)
Vision/targeting
Shooting/grabbing/lifting/driving
All students take safety class.
"Bob taking point on this"
Git
Peer reviews
Testing (Blackbox/ Clearbox)
Phases of Software Development
Basic Design
Problem Solving/ Debugging
Teambuilding
All students should take this?
Student to teach git?
Block diagrams flow charting
OOA&D
Problem Solving/ Broken Code (Fix some code?)
Can we mesh in the Ardinuo stuff?
Encoders
Switches
IR reflectors/interrupters
Ultrasonic
LIDAR
Accelerometer/9DOF
Cameras/vision
Level 0: Basic Java
Level 1: Robocode
Battle Royale: Design own bot to win!
Level 2: Minibots
Wheres my dinner? Have the minibot transport me a bag lunch in the next room.
King of the Hill! Stop a robot on a landing on a top of a ramp at specific point.
Level 3: Midbots
Develop wpilib like interface for midbots
Go through code of current bot, discuss design
Figure out FRCSim
Mobile app to control minibot via Bluetooth
Software Engineering
Classic OOA&D decomposition
Find the error. Take turns breaking the code, using git toolset to figure out what happened
Mock peer review
Sensor Crosstraining
Study/ Try out common sensors
Apply minibot ultasonic sensor
Apply install minibot 9DOF sensor
Electrical Crosstraining
Mechanical Crosstraing
design and 3D print a carry / table assembly for the minibot
design and make a simple gripper/manipulator for the minibot (can be done with a single servo motor)