<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE FL_Course SYSTEM "https://www.flane.de/dtd/fl_course095.dtd"><?xml-stylesheet type="text/xsl" href="https://portal.flane.ch/css/xml-course.xsl"?><course productid="36407" language="en" source="https://portal.flane.ch/swisscom/en/xml-course/cydrill-raiisd" lastchanged="2025-10-29T08:35:37+01:00" parent="https://portal.flane.ch/swisscom/en/xml-courses"><title>Responsible AI in software development</title><productcode>RAIISD</productcode><vendorcode>CY</vendorcode><vendorname>Cydrill</vendorname><fullproductcode>CY-RAIISD</fullproductcode><version>1.0</version><objective>&lt;ul&gt;
&lt;li&gt;Understand various aspects of responsible AI&lt;/li&gt;&lt;li&gt;How to use generative AI responsibly in software development&lt;/li&gt;&lt;li&gt;Prompt engineering for optimal outcomes&lt;/li&gt;&lt;li&gt;How to apply generative AI throughout the SDLC&lt;/li&gt;&lt;/ul&gt;</objective><essentials>&lt;p&gt;General development&lt;/p&gt;</essentials><audience>&lt;p&gt;All people involved in using GenAI or developing machine learning&lt;/p&gt;</audience><contents>&lt;h4&gt;A brief history of Artificial Intelligence&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;The origins of AI&lt;/li&gt;&lt;li&gt;Neural networks and &amp;ldquo;probability engines&amp;rdquo;&lt;/li&gt;&lt;li&gt;Early ML coding tools&lt;/li&gt;&lt;li&gt;The AI coding revolution of the 2020s&lt;/li&gt;&lt;li&gt;Threats against ML systems&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Responsible AI&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;What is responsible AI?&lt;/li&gt;&lt;li&gt;Accountability and transparency&lt;/li&gt;&lt;li&gt;Mitigation of harmful bias&lt;/li&gt;&lt;li&gt;Validity and reliability&lt;/li&gt;&lt;li&gt;Validity and reliability &amp;ndash; non-determinism of the code&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Experimenting with validity and reliability in Copilot&lt;/li&gt;&lt;li&gt;Explainability and interpretability&lt;/li&gt;&lt;li&gt;Safety, security, privacy and resilience&lt;/li&gt;&lt;li&gt;Security and responsible AI in software development&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Using GenAI responsibly in software development&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;LLM code generation basics&lt;/li&gt;&lt;li&gt;Basic building blocks and concepts&lt;/li&gt;&lt;li&gt;Prompt templating&lt;/li&gt;&lt;li&gt;System prompts in AI-driven coding&lt;/li&gt;&lt;li&gt;GenAI tools in coding: Copilot, Codeium and others&lt;/li&gt;&lt;li&gt;Can AI&amp;hellip; boost your productivity?&lt;/li&gt;&lt;li&gt;Can AI&amp;hellip; take care of the &amp;lsquo;boring parts&amp;rsquo;?&lt;/li&gt;&lt;li&gt;Can AI&amp;hellip; be more thorough?&lt;/li&gt;&lt;li&gt;Reviewing generated code &amp;ndash; the black box blues&lt;/li&gt;&lt;li&gt;The danger of hallucinations&lt;/li&gt;&lt;li&gt;Can AI&amp;hellip; teach you how to code (better)?&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Experimenting with an unfamiliar API in Copilot&lt;/li&gt;&lt;li&gt;The effect of GenAI on programming skills&lt;/li&gt;&lt;li&gt;Some further long-term effects of using GenAI&lt;/li&gt;&lt;li&gt;Where AI code generation doesn&amp;rsquo;t do well&lt;/li&gt;&lt;li&gt;Prompt engineering
&lt;ul&gt;
&lt;li&gt;Why is a good prompt so important?&lt;/li&gt;&lt;li&gt;Establishing the context for generative AI&lt;/li&gt;&lt;li&gt;Zero-shot, one-shot, and few-shot prompting&lt;/li&gt;&lt;li&gt;Reasoning-based prompt engineering, chain-of-thought&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Experimenting with prompts in Copilot&lt;/li&gt;&lt;li&gt;Enforcing and following token limits&lt;/li&gt;&lt;li&gt;Prompt patterns
&lt;ul&gt;

&lt;li&gt;Prompt patterns and prompt priming&lt;/li&gt;&lt;li&gt;The 6 categories of prompt patterns&lt;/li&gt;&lt;li&gt;Prompt pattern: Meta Language Creation&lt;/li&gt;&lt;li&gt;Prompt pattern: Persona&lt;/li&gt;&lt;li&gt;Prompt pattern: Visualization Generator&lt;/li&gt;&lt;li&gt;Prompt pattern: Fact Check List&lt;/li&gt;&lt;li&gt;Prompt pattern: Alternative Approaches&lt;/li&gt;&lt;li&gt;Prompt pattern: Refusal Breaker&lt;/li&gt;&lt;li&gt;Prompt pattern: Flipped Interaction&lt;/li&gt;&lt;li&gt;Prompt pattern: Context Manager&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Some further prompting approaches
&lt;ul&gt;
&lt;li&gt;Least-to-Most and Self-Planning: decomposition of complex tasks&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Task decomposition with Copilot&lt;/li&gt;&lt;li&gt;Prompt engineering techniques for refinement and iteration&lt;/li&gt;&lt;li&gt;Unit tests, TDD and GenAI&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Test-based code generation with Copilot&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Integrating generative AI into the SDLC&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Using GenAI beyond code generation&lt;/li&gt;&lt;li&gt;Using AI during requirements specification&lt;/li&gt;&lt;li&gt;Prompt patterns for requirements capturing&lt;/li&gt;&lt;li&gt;Software design and AI&lt;/li&gt;&lt;li&gt;Prompt patterns for software design&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Requirements capturing and API design with Copilot&lt;/li&gt;&lt;li&gt;Using AI during implementation&lt;/li&gt;&lt;li&gt;Prompt patterns for implementation&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Finding hidden assumptions with Copilot&lt;/li&gt;&lt;li&gt;Using AI during testing and QA&lt;/li&gt;&lt;li&gt;Using AI during maintenance&lt;/li&gt;&lt;li&gt;Prompt patterns for refactoring&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Experimenting with code refactoring in Copilot&lt;/li&gt;&lt;li&gt;Prompt patterns for change request simulation&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Security of AI-generated code&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Security of AI generated code&lt;/li&gt;&lt;li&gt;Practical attacks against code generation tools&lt;/li&gt;&lt;li&gt;Dependency hallucination via generative AI&lt;/li&gt;&lt;li&gt;Case study &amp;ndash; A history of GitHub Copilot weaknesses (up to mid 2024)&lt;/li&gt;&lt;li&gt;A sample vulnerability
&lt;ul&gt;
&lt;li&gt;Path traversal&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Path traversal&lt;/li&gt;&lt;li&gt;Path traversal-related examples&lt;/li&gt;&lt;li&gt;Path traversal best practices&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Path canonicalization&lt;/li&gt;&lt;li&gt;Demonstration &amp;ndash; Experimenting with path traversal in Copilot&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Summary and takeaways&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Responsible AI principles in software development&lt;/li&gt;&lt;li&gt;Generative AI &amp;ndash; Resources and additional guidance&lt;/li&gt;&lt;/ul&gt;</contents><outline>&lt;ul&gt;
&lt;li&gt;A brief history of Artificial Intelligence&lt;/li&gt;&lt;li&gt;Responsible AI&lt;/li&gt;&lt;li&gt;Using GenAI responsibly in software development&lt;/li&gt;&lt;li&gt;Summary and takeaways&lt;/li&gt;&lt;/ul&gt;</outline><objective_plain>- Understand various aspects of responsible AI
- How to use generative AI responsibly in software development
- Prompt engineering for optimal outcomes
- How to apply generative AI throughout the SDLC</objective_plain><essentials_plain>General development</essentials_plain><audience_plain>All people involved in using GenAI or developing machine learning</audience_plain><contents_plain>A brief history of Artificial Intelligence


- The origins of AI
- Neural networks and “probability engines”
- Early ML coding tools
- The AI coding revolution of the 2020s
- Threats against ML systems

Responsible AI


- What is responsible AI?
- Accountability and transparency
- Mitigation of harmful bias
- Validity and reliability
- Validity and reliability – non-determinism of the code
- Demonstration – Experimenting with validity and reliability in Copilot
- Explainability and interpretability
- Safety, security, privacy and resilience
- Security and responsible AI in software development

Using GenAI responsibly in software development


- LLM code generation basics
- Basic building blocks and concepts
- Prompt templating
- System prompts in AI-driven coding
- GenAI tools in coding: Copilot, Codeium and others
- Can AI… boost your productivity?
- Can AI… take care of the ‘boring parts’?
- Can AI… be more thorough?
- Reviewing generated code – the black box blues
- The danger of hallucinations
- Can AI… teach you how to code (better)?
- Demonstration – Experimenting with an unfamiliar API in Copilot
- The effect of GenAI on programming skills
- Some further long-term effects of using GenAI
- Where AI code generation doesn’t do well
- Prompt engineering

- Why is a good prompt so important?
- Establishing the context for generative AI
- Zero-shot, one-shot, and few-shot prompting
- Reasoning-based prompt engineering, chain-of-thought
- Demonstration – Experimenting with prompts in Copilot
- Enforcing and following token limits
- Prompt patterns


- Prompt patterns and prompt priming
- The 6 categories of prompt patterns
- Prompt pattern: Meta Language Creation
- Prompt pattern: Persona
- Prompt pattern: Visualization Generator
- Prompt pattern: Fact Check List
- Prompt pattern: Alternative Approaches
- Prompt pattern: Refusal Breaker
- Prompt pattern: Flipped Interaction
- Prompt pattern: Context Manager
- Some further prompting approaches

- Least-to-Most and Self-Planning: decomposition of complex tasks
- Demonstration – Task decomposition with Copilot
- Prompt engineering techniques for refinement and iteration
- Unit tests, TDD and GenAI
- Demonstration – Test-based code generation with Copilot

Integrating generative AI into the SDLC


- Using GenAI beyond code generation
- Using AI during requirements specification
- Prompt patterns for requirements capturing
- Software design and AI
- Prompt patterns for software design
- Demonstration – Requirements capturing and API design with Copilot
- Using AI during implementation
- Prompt patterns for implementation
- Demonstration – Finding hidden assumptions with Copilot
- Using AI during testing and QA
- Using AI during maintenance
- Prompt patterns for refactoring
- Demonstration – Experimenting with code refactoring in Copilot
- Prompt patterns for change request simulation

Security of AI-generated code


- Security of AI generated code
- Practical attacks against code generation tools
- Dependency hallucination via generative AI
- Case study – A history of GitHub Copilot weaknesses (up to mid 2024)
- A sample vulnerability

- Path traversal
- Demonstration – Path traversal
- Path traversal-related examples
- Path traversal best practices
- Demonstration – Path canonicalization
- Demonstration – Experimenting with path traversal in Copilot

Summary and takeaways


- Responsible AI principles in software development
- Generative AI – Resources and additional guidance</contents_plain><outline_plain>- A brief history of Artificial Intelligence
- Responsible AI
- Using GenAI responsibly in software development
- Summary and takeaways</outline_plain><duration unit="d" days="1">1 day</duration><pricelist><price country="DE" currency="EUR">750.00</price><price country="SI" currency="EUR">750.00</price><price country="AT" currency="EUR">750.00</price><price country="SE" currency="EUR">750.00</price><price country="CH" currency="CHF">750.00</price></pricelist><miles/></course>