$30 off During Our Annual Pro Sale. View Details »

Generative AI for Teaching Software Development 101

Stephen Howell
September 20, 2023

Generative AI for Teaching Software Development 101

Teaching Software Development 101 / Foundational Programming
Introducing Amazon CodeWhisperer
Live Coding Assistance
Automated Code Analysis and Translation
Identifying Vulnerabilities
Preparing Students for an AI-Driven Future
Discussion

Stephen Howell

September 20, 2023
Tweet

Other Decks in Education

Transcript

  1. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Generative AI for Teaching
    Software Development 101
    Stephen Howell
    Academic Developer Advocate
    Amazon Web Services

    View Slide

  2. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Agenda
    1. Teaching Software Development 101 / Foundational Programming
    2. Introducing Amazon CodeWhisperer
    3. Live Coding Assistance
    4. Automated Code Analysis and Translation
    5. Identifying Vulnerabilities
    6. Preparing Students for an AI-Driven Future
    7. Discussion
    2

    View Slide

  3. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Teaching Software Development 101
    3

    View Slide

  4. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Common Teaching & Learning Frustrations
    PEBKAC/PICNIC
    1. Syntax errors
    2. Multiple languages
    confusion
    3. Low interest –
    mandatory module
    4. Weak problem
    solving skills
    Pitfalls
    1. Logical Errors
    2. Environment
    3. Running before
    walking
    4. SDev 2/3/4… will
    cover it
    5. “A different
    language/IDE/OS
    will make this
    easier to teach”
    Paradigms
    1. Imperative Vs
    Declarative?
    2. Procedural,
    Functional, or
    Object-oriented?
    3. Not differentiating
    4. Trying to fit too
    much into a
    semester/term
    5. Poor alignment on
    independent
    modules
    Practice
    1. Never seeing tutor
    live-code (slideitis)
    2. Underestimation of
    hours needed on
    the keyboard
    3. Always more
    practice questions
    wanted
    4

    View Slide

  5. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Introducing Amazon CodeWhisperer
    5

    View Slide

  6. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Amazon CodeWhisperer
    AI coding companion
    • trained on billions
    of lines of code
    • can generate code
    suggestions ranging
    from snippets to
    full functions
    • Bypass time-
    consuming coding
    tasks
    • accelerate building
    with unfamiliar APIs
    Code with confidence
    • flag or filter code
    suggestions that
    resemble open-
    source training
    data.
    • Get the associated
    open-source
    project’s repository
    URL and license
    • easily review them
    and add attribution.
    Use your tools
    • 15 programming
    languages,
    including Python,
    Java, C#, JavaScript
    • IDEs: VS Code,
    IntelliJ IDEA, AWS
    Cloud9, AWS
    Lambda console,
    JupyterLab and
    Amazon SageMaker
    Studio
    Individual Tier
    6
    • Free for individual use
    • Unlimited code
    suggestions
    • Reference tracking
    • 50 security scans (per
    user, per month)

    View Slide

  7. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Live Coding Assistance
    7

    View Slide

  8. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Getting Started (examples in Python)
    8
    Lines 1, 5, 10, 14 are human

    View Slide

  9. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Problem Solving Steps
    9

    View Slide

  10. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    General Knowledge Examples
    10

    View Slide

  11. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Paradigm Examples
    11

    View Slide

  12. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Automated Code Analysis and Translation
    12

    View Slide

  13. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Switching Languages / Stack / Versions
    13

    View Slide

  14. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Identifying Vulnerabilities
    14

    View Slide

  15. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Detecting Security Errors
    • Outrageous (fake) keys on
    lines 6 and 7!
    • CWE-798 - Hardcoded credentials: Access
    credentials, such as passwords and access keys,
    should not be hardcoded in source code. Hardcoding
    credentials may cause leaks even after removing
    them. This is because version control systems might
    retain older versions of the code. Credentials should
    be stored securely and obtained from the runtime
    environment.
    15

    View Slide

  16. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Preparing Students for an AI-Driven Future
    16

    View Slide

  17. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    AWS Academy
    https://aws.amazon.com/training/awsacademy/faq/
    AWS Academy provides higher education institutions with a free,
    ready-to-teach cloud computing curriculum that prepares students
    to pursue industry-recognized credentials and in-demand jobs. Our
    curriculum helps educators stay at the forefront of AWS Cloud
    innovation so that they can equip students with the skills they need
    to get hired in one of the fastest-growing industries.
    17

    View Slide

  18. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    AWS Cloud Clubs https://s12d.com/students
    18

    View Slide

  19. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Thank you!
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Stephen Howell
    [email protected]
    twitter.com/howell_cloud
    instagram.com/howell_cloud/

    View Slide

  20. GENERATIVE AI FOR TEACHING SOFTWARE DEVELOPMENT 101
    © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    About the Speaker
    Stephen Howell is a technologist and educator with over 25 years
    of experience in software engineering, lecturing, program
    management, and education.
    As a software engineer, he worked on diverse projects involving
    technologies from finance to IoT systems. For over a decade, he
    was a computing lecturer at universities including Dublin City
    University and Institute of Technology Tallaght (now
    Technological University Dublin).
    He taught modules covering algorithms, data structures, object-
    oriented programming, software engineering, cloud computing,
    computer graphics, visual design, and interactive media.
    Currently at Amazon Web Services, Stephen is an Academic
    Developer Advocate supporting students and faculty in building
    cloud and AI skills.
    20

    View Slide