Coding the Future: AI's Role in Software Evolution
Merging Innovation with Intelligence in Software Engineering
ITIN 2990 - Guest Lecture

Matt Hale
Associate Professor of Cybersecurity

Father, Dog Father, Husband, Software Engineer, STEM Evangelist, Researcher, Teacher, Web Developer, Board Gamer, Philosopher, Artist
(roughly in that order)


Who is this guy?

Today's Talk
AI in Software Development
GitHub Copilot: Powering Code with AI
Reimagining Code Creation: Copilot's Influence
ChatGPT Prompt Engineering for Coding
Requirements engineering with AI
Q/A
AI in Software Development
- AI is transforming numerous industries, including software development.
- Machine Learning models, like OpenAI's GPT, have shown strong performance in code generation.
- Benefits include increased productivity, code suggestions, and bug detection.

GitHub Copilot: Powering Code with AI
- A collaboration between GitHub & OpenAI.
- Built on OpenAI's GPT-3 model.
- Provides real-time code suggestions as you type.
- Adapts to coding style and provides context-aware recommendations.
- DEMO

Reimagining Code Creation: Copilot's Influence
-
Copilot's Uptake :
-
> 1.2 million developers participated in the technical preview¹
-
About ~4 million installs of the co-pilot extension (as of Feb. 2023) & 400+ orgs using it¹
-
46% of code created using GitHub Copilot is accepted by developers across all programming languages (as of Feb. 2023) up from 26% in June 2022 ². Likely higher now
-
-
Streamlines the coding process & reduces boilerplate.
-
Allows developers to explore new languages with ease.
-
Controversies: Dependency on AI, potential for code plagiarism, and issues around licensing.
-
The future: Continuous AI integration in coding platforms for improved developer experience.
1: https://www.linkedin.com/pulse/github-copilot-business-increasing-enterprise-michael-spencer/
2: https://github.blog/2023-02-14-github-copilot-for-business-is-now-available/
Reimagining Code Creation: Copilot's Influence

https://github.blog/2023-02-14-github-copilot-for-business-is-now-available/
Reimagining Code Creation: Copilot's Influence
The >2,000 responses received came from developers that were signed up in the Technical Preview. They were primarily professional developers (~60%), though they also received responses from students (~30%), and developers who identified as hobbyists (~7%).

https://github.blog/2023-02-14-github-copilot-for-business-is-now-available/
CHATGPT PRompt Engineering For Coding
-
Prompt Engineering: Tailoring inputs to guide AI output.
- ChatGPT’s strength lies in its versatility: from chatbots to code suggestions.
- Best practices:
- Be explicit and clear with prompts for better code results.
- Iteratively refine prompts based on AI feedback.
- Applications: Code debugging, algorithm suggestions, syntax checks, and more.
- Fun Fact: While ChatGPT is often used for human-like conversation, it’s just as skilled in understanding and generating code!
- Basic DEMO
---- I'm your technical manager Geoffrey Hinton who likes kanban boards and always requires you submit complete output, complete code that just works when I copy paste it to use in my own work.
----
Respond with tree of thought reasoning in the persona of a very tech savvy manager Daniel Kahneman who does code reviews and curses a lot while being very concise and calculative like this:
📉Kanban:"A kanban table of the project state with todo, doing, done columns."
🧐Problem: "A {system 2 thinking} description of the problem in first principles and super short {system 1 thinking} potential solution ."
🌳Root Cause Analysis (RCA):"Use formal troubleshooting techniques like the ones that electricians, mechanics and network engineers use to systematically find the root cause of the problem."
❓4 Whys: "Iterate asking and responding to Why: 4 times successively to drill down to the root cause."
Complete solution: Dont write categories as 🧐problem: ❓4 Whys: 🌳Root Cause Analysis (RCA): system 2: just the emojis 📉: 🧐: 4❓: 🌳: 2️⃣: 1️⃣: instead of full category names. Always answer with the COMPLETE exhaustive FULL OUTPUT in a "John C. Carmack cursing at junior devs" way that I can copy paste in ONE SHOT and that it will JUST WORK. So DO NOT SKIP OR COMMENT OUT ANYTHING.
Never include comments in output code, just make the code itself verbosely console log out info if need be.
License: MIT
Copyright: Nisten (x.com/nisten/)
REquirements Engineering with AI / ChatGPT
- Requirements Engineering: The process of defining, documenting, and maintaining requirements.
-
AI in User Story Modeling:
- Automatic extraction of user needs from vast data sources.
- Assists in creating clear, concise user stories from complex user feedback.
- Can even generate synthetic personas to provide feedback (BEWARE - please dont do this)
-
ChatGPT & Acceptance Criteria:
- Generate acceptance criteria based on user stories.
- Ensures a tighter alignment between user needs and final product.
- Provides an iterative feedback mechanism for refining requirements.

REquirements Engineering with AI / ChatGPT
- Scenario one:
-
Generate acceptance criteria for the following user stories
- As Max, I want to invite my friends, so we can enjoy this service together.
- As Sascha, I want to organize my work, so I can feel more in control.
- As a manager, I want to be able to understand my colleagues progress, so I can better report our sucess and failures.

user stories examples are from atlassian https://www.atlassian.com/agile/project-management/user-stories
REquirements Engineering with AI / ChatGPT
- Scenario two:
- I'm thinking of developing ___
- Who are some potential users?

REquirements Engineering with AI / ChatGPT
- Scenario three:
- Given the following user interviews...

REquirements Engineering with AI / ChatGPT
- Scenario four
- Generate a software architecture...

Questions?
©2023 Matthew L. Hale


Matt Hale, PHD
University of Nebraska at Omaha
Associate Professor, Cybersecurity
mlhale@unomaha.edu
twitter: X @mhale
ITIN 2990 Guest Lecture
By Matt Hale
ITIN 2990 Guest Lecture
AI in software engineering talk
- 188