Learning and Assessment Plan - Robotics Programming Course¶
ICTPRG430 (Apply introductory object-oriented language skills) + ICTPRG439 (Use pre-existing components)¶
Course Overview¶
Duration: 18 sessions (4 hours each, weekly delivery)
Focus: Object-oriented programming mastery and component reuse in robotics context
Language: Python throughout
Platform: ROS2 Gazebo simulation with GO2 quadruped robot, optional real robot deployment
Assessment: Portfolio-based with pass/fail requirements
Learning and Assessment Schedule¶
Phase 1: Programming Fundamentals (Sessions 1-3)¶
| Session | Element | Topic & Focus | Learning Resources* | Structured out of class activities* | Hours |
|---|---|---|---|---|---|
| Week 1 (4hrs) | ICTPRG430 Element 3.1 | IDE Debugger Mastery — Binary Search Exercise Focus: Test-driven development, debugging tools, algorithmic thinking |
Exercism Platform, pytest documentation | Complete Binary Search exercise with comprehensive test suite | 2 |
| Week 2 (4hrs) | ICTPRG430 Element 3.1 | Python Fundamentals - Objects, Data Structures & Testing Focus: Objects, lists, dictionaries, testing scenarios |
Python docs, pytest tutorials | Work with objects, dictionaries, and testing practices | 3 |
| Week 3 (4hrs) | ICTPRG430 Element 3.1 | Python Fundamentals - Working with Dictionaries Focus: Dictionary operations, data organization, testing |
Python data structures documentation | Practice dictionary manipulation and testing | 2 |
Phase 2: Object-Oriented Programming Theory (Sessions 4-7)¶
| Session | Element | Topic & Focus | Learning Resources* | Structured out of class activities* | Hours |
|---|---|---|---|---|---|
| Week 4 (4hrs) | ICTPRG430 Element 2.1 | Object Model & Class Fundamentals Focus: Classes, objects, instantiation, instance variables/methods |
OOP programming fundamentals, class design principles | Implement RobotBase class from specification with encapsulation | 3 |
| Week 5 (4hrs) | ICTPRG430 Element 2.1 | Object Composition & Component Design Focus: Has-a relationships, component-based architecture, composition over inheritance |
OOP composition patterns, component design | Refactor RobotBase to use component objects (Battery, Sensor, Motor components) | 3 |
| Week 6 (4hrs) | ICTPRG430 Element 2.1 | Inheritance & Polymorphism Focus: Class inheritance, super(), method resolution, polymorphic behaviors |
Inheritance design patterns, polymorphism examples | Design robot inheritance hierarchy (LineFollower, Gripper, Arm robots) | 4 |
| Week 7 (4hrs) | ICTPRG430 Element 2.2 | ConfigurationManager & File I/O Focus: File I/O, configuration management, JSON, professional documentation |
JSON documentation, Python I/O guides | Implement ConfigurationManager class with file I/O and factory pattern | 3 |
Formative Assessment: Sessions 1-7
ICTPRG430 Portfolio Evidence Collection (Continual through Week 7)
- Sessions 1-3: Testing and fundamentals evidence
- Sessions 4-7: OOP implementation evidence (RobotBase classes, inheritance, configuration)
- Submission: Portfolio 1 summary and reflection (due end of Week 7)
- Competency Requirements: Demonstrate ICTPRG430 Elements 2.1, 2.2 through working code and documentation
Phase 3: Advanced OOP & Software Architecture (Sessions 8-10)¶
| Session | Element | Topic & Focus | Learning Resources* | Structured out of class activities* | Hours |
|---|---|---|---|---|---|
| Week 8 (4hrs) | ICTPRG430 Element 2.2 | Design Patterns - Factory Pattern Focus: Creational patterns, object instantiation management, pattern integration |
Design patterns documentation, factory pattern examples | Implement RobotFactory class integrating with ConfigurationManager | 3 |
| Week 9 (4hrs) | ICTPRG430 Element 2.2 | Python Packaging & Distribution Focus: Package structure, pyproject.toml, semantic versioning, PyPI publishing |
Python packaging guides, PyPI documentation | Package ConfigurationManager + Factory for distribution; GitHub release | 3 |
| Week 10 (4hrs) | ICTPRG439 Element 1.1-2.5 | ARI Software Ecosystem & ROS2 Fundamentals Focus: ROS2 ecosystem, component evaluation, software architecture |
ROS2 documentation, component analysis guides | Explore ARI robot, clone go2_ros2_sim_py, understand ecosystem | 4 |
AT2-S9 Assessment: Session 9 Portfolio
AT2-S9: Python Packaging & Distribution Portfolio (Due end of Week 9)
- Part A: Professional package structure with pyproject.toml
- Part B: PyPI/GitHub package release with semantic versioning
- Part C: Integration of ConfigurationManager + RobotFactory
- Part D: Professional README and API documentation
- Competency Requirements: Demonstrate ICTPRG430 Element 2.2 through published, reusable package
Phase 4: ROS2 Foundations (Sessions 11-12)¶
| Session | Element | Topic & Focus | Learning Resources* | Structured out of class activities* | Hours |
|---|---|---|---|---|---|
| Week 11 (4hrs) | ICTPRG439 Element 2.3 | ROS2 Fundamentals & Publisher/Subscriber Focus: Nodes, topics, pub/sub patterns, CLI tools |
ROS2 documentation, turtlesim tutorials | Complete turtlesim tutorials; create custom pub/sub package | 3 |
| Week 12 (4hrs) | ICTPRG439 Element 2.3 | ROS2 Services, Parameters & Actions Focus: Request-response patterns, runtime configuration, goal-oriented tasks |
ROS2 services documentation, action tutorials | Complete services and actions tutorials; understand communication paradigms | 3 |
Phase 5: GO2 Capstone Project (Sessions 13-17)¶
| Session | Element | Topic & Focus | Learning Resources* | Structured out of class activities* | Hours |
|---|---|---|---|---|---|
| Week 13 (4hrs) | ICTPRG439 Element 3.1-3.2 | GO2 Simulation Setup Focus: Run GO2 Gazebo sim, explore codebase, understand existing behaviors |
go2_ros2_sim_py documentation, Gazebo tutorials | Run simulation, test existing behaviors (sit/stand/walk) | 3 |
| Week 14 (4hrs) | ICTPRG430 Element 2.1 | GO2Controller Wrapper Class Focus: Create ROS2 package, encapsulation, service client wrapper |
OOP design patterns, ROS2 service client examples | Implement GO2Controller class with sit/stand/walk methods, unit tests | 4 |
| Week 15 (4hrs) | ICTPRG430 Element 2.1 | Implementing the Wave Behavior Focus: Feature implementation, behavior extension, OOP patterns |
Codebase analysis techniques, behavior implementation guides | Implement wave behavior in GO2Controller following existing patterns | 4 |
| Week 16 (4hrs) | ICTPRG439 Element 3.3-3.5 | Integration & Testing Focus: Sim testing, dependency resolution, system assembly |
Testing frameworks, ROS2 testing tools | Complete integration testing, resolve issues, (optional) real dog deployment | 0 |
| Week 17 (4hrs) | ICTPRG439 Element 3.6 | Documentation & Portfolio Submission Focus: Professional documentation, portfolio evidence, final submission |
Documentation templates, portfolio guidelines | Complete system documentation, record demo video, finalize portfolio | 0 |
Phase 6: Assessment & Completion (Session 18)¶
| Session | Element | Topic & Focus | Learning Resources* | Structured out of class activities* | Hours |
|---|---|---|---|---|---|
| Week 18 (4hrs) | Both Units | Portfolio Review & Final Assessment Focus: Final competency validation, portfolio review, completion |
Course materials review, industry standards reference | Review portfolios, complete outstanding items, final assessment | 2 |
Portfolio 2 Assessment Point
ICTPRG439 GO2 Capstone Portfolio (Due end of Week 17)
- Part A: Component evaluation documentation - licensing, dependencies, suitability
- Part B: GO2Controller wrapper class with encapsulation
- Part C: Wave behavior implementation
- Part D: Integration testing and documentation
- Competency Requirements: Demonstrate all ICTPRG439 elements through portfolio evidence
- Resources: Course Materials by Week
- Assessment: Portfolio Requirements
- Reference: Course Glossary
* Learning Resources and Structured Activities detailed in individual session pages