Changes between Version 23 and Version 24 of ControlSystemTrainingCurriculum
- Timestamp:
- Aug 3, 2016, 12:07:47 AM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ControlSystemTrainingCurriculum
v23 v24 1 1 === Control Systems/ Software Training Curriculum 2 === =Guiding Principles3 * Students hate lecture style teaching. Better to be hands on. 4 * Wide variety of skill levels. Take care not to cater to any one particular level.2 === Guiding Principles 3 * Students hate lecture style teaching. Better to be hands on. Avoid powerpoint lectures. 4 * Students have a wide variety of skill levels. Take care not to cater to any one particular level. 5 5 * Not all students go to all sessions (due to family conflicts, etc). 6 * Make sure to coordinate with Software Leads.6 * Make sure to coordinate/ review with Software Lead and validate with Seniors. 7 7 8 === General Student Skill Set 9 * Robocode 8 The basic plan is that there there are three technical skill levels that build on their predecessors. Not all students start at level one. 9 ''Idea: If we come up with 3-5 activities at each level we can mix and match.'' 10 11 === Skill Level 1: Students new or beginners at Java programming ([http://robocode.sourceforge.net/ Robocode]) 10 12 * Software fundamentals. 11 13 * Java Programming Basics 12 14 * Computer focused. 13 15 * Individual Challenges/ Competition 14 * Minibots 15 * Basic bot usage and control with java. 16 * Sensor, Drive manipulation with java. 17 * Small Team challenges 18 * Midbots (Peanut, etc) 19 * Roborio 20 * Safety 21 * Software Development Practices (CM, Design ,etc) 22 * Git 23 * Testing 24 * Basic Design 25 * Problem Solving/ Debugging 26 * Teambuilding 27 28 There are three technical skill levels that build on their predecessors. Not all students start at level one. 29 30 === Skill Level 1: Students new or beginners at Java programming ([http://robocode.sourceforge.net/ Robocode]) 31 * Compile in Java 32 * Eclipse 16 * Learn to compile and run Java 17 * Eclipse Basics 33 18 * For while loops,if statements, functions. 19 * Emphasis on Individual Challenges/ Competition. 34 20 * Supplement with online training resources (on student's own time) 35 21 * '''Zhaozhou running point on this task.''' 36 * Action: Talk to dev lead, identify key constructs, create a few exercises on Robocode. See something working, change it, create something new.22 * Action: Talk to dev lead, identify dependencies (machines?), create a few exercises on Robocode. See something working, change it, create something new. 37 23 * Set up robocode environment. 38 24 * Show idea/walk them through it. 39 25 * Have them make changes. 40 * Custom activity/challenge .26 * Custom activity/challenge: Battle Royale? 41 27 42 28 === Skill Level 2: Familiar with simple programming, no embedded/io/robot experience ([wiki:PiBotHardware Minibots]) 43 29 * Bots are fully built up front with OS installed. A bit of risk given timeline. 44 * Equipment Familiarization30 * Basic bot / hardware familiarization (This is power, this is control, different parts) 45 31 * Basic IO manipulation with Java 46 * Drive manipulation/autonomous without sensors 47 * Sensor manipulation 32 * Drive manipulation/autonomous without sensors with Java 33 * Sensor manipulation with Java 48 34 * Integration Challenges 35 * Small Team 49 36 * '''Chris D running point (Alan helping).''' 50 37 * Action: Build minibot. Come up with exercises like above. 51 38 52 === Skill Level 3: Familiar with embedded java/simple robots (Midbots/Robo RIO/WPILib)53 * Robo RIO54 * F RCSim55 * W PILib39 === Skill Level 3: Familiar with embedded java/simple robots (Midbots/Roborio/Wpilib) 40 * Roborio 41 * Frcsim 42 * Wpilib 56 43 * '''Alan running point''' 57 44 * Action: Get simulator running, figure out what there is to learn. … … 61 48 62 49 === Software Development 50 * Git 51 * Testing (Blackbox/Clearbox) 52 * Phases of Software Development 53 * Basic Design 54 * Problem Solving/ Debugging 55 * Teambuilding 63 56 * All students take software dev class 64 57 * Student to teach git