Skip to content

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

* Learning Resources and Structured Activities detailed in individual session pages