Get in Touch

Course Outline

Foundations of Agile Thinking

  • The Agile Manifesto and its relevance beyond software
  • Comparing agile with traditional waterfall and plan-driven models
  • Scrum roles, events, and artifacts mapped to academic project cycles
  • Kanban and flow-based management for research and teaching teams
  • Choosing agile hybrids suitable for engineering and design environments

Agile Planning and Collaboration

  • Writing user stories and defining acceptance criteria for engineering problems
  • Backlog prioritization techniques: MoSCoW, value vs. effort, risk-driven ordering
  • Sprint planning and estimation with non-software teams
  • Retrospectives and continuous improvement in an academic setting
  • Collaboration tools and boards for multi-disciplinary participants

Introduction to DevOps Culture

  • Defining DevOps: breaking silos between development and operations
  • The CALMS model: Culture, Automation, Lean, Measurement, Sharing
  • DevOps in research labs, civil engineering teams, and architecture studios
  • Building a blameless culture and feedback loops in educational institutions
  • Ethics, security, and compliance considerations in academic DevOps adoption

Version Control and Collaborative Code Management

  • Git fundamentals for reproducible engineering and design work
  • Branching strategies: trunk-based, feature branches, and GitFlow simplified
  • Pull requests, peer review, and code ownership in teaching teams
  • Managing non-code assets: CAD files, BIM models, simulation datasets
  • Repository organization for course materials and student projects

Continuous Integration and Build Automation

  • CI concepts and their application to compiled and scripted engineering tools
  • Setting up automated builds for software, simulations, and documentation
  • Pipeline stages: compile, package, lint, and pre-flight checks
  • Popular CI platforms overview: GitHub Actions, GitLab CI, Jenkins
  • Handling large artifacts, dependency caching, and parallel execution

Software Quality and Static Analysis

  • Defining software quality: maintainability, reliability, usability, efficiency
  • Code metrics: cyclomatic complexity, coupling, cohesion, and duplication
  • Static analysis tools for Python, Java, C++, and common engineering scripts
  • Documentation as quality: docstrings, README standards, and living docs
  • Integrating quality gates into CI pipelines without blocking student progress

Testing Strategies and Test Design

  • The testing pyramid: unit, integration, system, and acceptance testing
  • Writing unit tests for engineering calculations, simulations, and utilities
  • Test-driven development (TDD) and behavior-driven development (BDD) fundamentals
  • Mocking external systems: sensors, APIs, finite-element solvers
  • Structuring test suites for multi-disciplinary team projects

Test Automation and Continuous Testing

  • Automating test execution within CI/CD pipelines
  • Test reporting, coverage thresholds, and flaky test management
  • Property-based testing and fuzzing for engineering algorithms
  • Regression testing strategies for evolving course assignments
  • Performance and load testing for simulation and rendering workloads

Continuous Delivery and Deployment Concepts

  • CD fundamentals: delivery vs. deployment, environments, and promotion
  • Deployment patterns: blue-green, canary, and feature toggles
  • Applying CD principles to publish research artifacts, course sites, and apps
  • Container basics with Docker for reproducible engineering environments
  • Infrastructure as Code introduction: managing lab and cloud setups declaratively

Observability, Monitoring, and Feedback

  • Logging, metrics, and tracing for academic software and simulations
  • Setting up lightweight monitoring for student projects and research tools
  • Using feedback data to iterate on teaching materials and lab assignments
  • Dashboards and alerting appropriate for educational contexts
  • Post-deployment verification and rollback procedures

Security and Quality Best Practices

  • Secure coding fundamentals: input validation, authentication, and secrets management
  • Dependency scanning and vulnerability management in open-source stacks
  • License compliance for software used in teaching and publication
  • Data privacy considerations when handling student and research data
  • Building a security-aware culture in engineering and design programs

Translating Practices into Teaching Modules

  • Designing agile project assignments for systems, civil, design, and architecture students
  • Creating rubrics that assess process quality alongside product quality
  • Setting up template repositories with pre-configured CI for student use
  • Scaffolding DevOps concepts progressively across a semester
  • Evaluating student teams using real-world quality and automation metrics

Toolchain Selection and Academic Constraints

  • Evaluating free and open-source tools for budget-conscious departments
  • Integrating with existing LMS, file storage, and lab infrastructure
  • Managing technical debt in long-running research codebases
  • Onboarding students and faculty with varying technical backgrounds
  • Maintaining sustainability when key contributors graduate or rotate

Requirements

  • A basic understanding of software development concepts
  • Familiarity with general engineering or design workflows
  • Experience using computers for academic or project-based work

Audience

  • Professors and lecturers from Systems Engineering, Civil Engineering, Design, and Architecture programs
  • Academic staff seeking to modernize their teaching with industry-relevant practices
  • Research leads and lab coordinators integrating technology into curriculum
 42 Hours

Number of participants


Price per participant (excl. VAT)

Testimonials (2)

Upcoming Courses

Related Categories