We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

AI for Efficient Programming

Harnessing the Power of LLMs

Elizabeth Humphries, PhD, Carrie Wright, PhD, Candace Savonen, MS, and Ava Hoffman, PhD

This course on Artificial Intelligence (AI) for software development explores the use of AI large language models such as ChatGPT, Bard, and others and their potential benefits and challenges. Through examples and hands-on activities, you will develop an understanding of the ways in which AI can speed up software development tasks and free up time for more creative and strategic work.

Read more

This course on Artificial Intelligence (AI) for software development explores the use of AI large language models such as ChatGPT, Bard, and others and their potential benefits and challenges. Through examples and hands-on activities, you will develop an understanding of the ways in which AI can speed up software development tasks and free up time for more creative and strategic work.

Unique Features of this Course

- Exploration of multiple browser-based AI tools

- Hands-on, yet simple activities requiring no installations of software

- Emphasis on responsible and ethical use of AI

- Beginner friendly for those who want to get started using generative AI tools

- Useful ideas for how to leverage tools to make your work better and more efficient

- Tried and tested strategies for using AI tools from practicing data scientists and scientific software developers

- A fun and playful approach to learning

Key Words

Artificial Intelligence (AI), ChatGPT, Generative AI, Large Language Models (LLMs), Software Development, Coding, Data Science

Intended Audience

- Professionals looking to improve efficiency

- Students hoping to learn more about programming

- Anyone curious about how AI can be harnessed for technology

Note: Those completely new to programming will find using AI tools to create software solutions challenging at this time. It is helpful to have some fundamental knowledge to write appropriate prompts and to discern when code is not working as expected. We advise novices to seek expert review.

Learning Objectives

- Explain the basics of AI and its potential for improving software development workflows

- Implement strategies to write and debug code using AI-based tools

- Describe the benefits of refactoring code using AI-powered techniques, such as making code readable, keeping it brief, and optimizing code

- Apply best practices for annotating code using AI

- Recognize strategies for using AI-based tools to understand and analyze code, such as code comprehension of unfamiliar languages or functions

- Discuss the challenges and ethical implications of using AI for different aspects of software development

Accessibility

We are committed to making our content accessible and available to all. We welcome any feedback you might have at https://forms.gle/3sTZpctxzYyhj74NA. Questions related to accessibility accommodations should be directed to https://studentserviceportal.force.com/s/.

PDF versions of this course can be found at https://leanpub.com/courses/fredhutch/ai_for_software.

Enroll now

What's inside

Syllabus

Introduction; Ethics of Using AI
This module provides a general overview of AI Large Language Models, how this technology will change software development, and ethical considerations for using LLMs when creating code and software.
Read more
Writing Code; Refactoring Code
This module covers using LLMs to write, debug, and plan your coding project, as well as how LLMs can help with common refactoring tasks.
Annotating Your Code; Understanding Unfamiliar Code
This module covers how to use LLMs to properly annotate your code and to understand code and functions that you did not write.
AI for Bioinformatics
This bonus section covers possible uses and caveats for LLMs in bioinformatics, particularly when working with private data.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches learners how to use AI Large Language Models (LLMs) for software development, which is standard in the industry
Taught by four instructors who are PhDs and reputable data scientists and scientific software developers
Explorest the use of AI Large Language Models (LLMs) to improve software development workflows
Provides hands-on activities that require no software installations, making it accessible to learners with different levels of technical expertise
Suitable for professionals looking to improve their efficiency and students interested in learning more about programming

Save this course

Save AI for Efficient Programming: Harnessing the Power of LLMs to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in AI for Efficient Programming: Harnessing the Power of LLMs with these activities:
Explore pre-trained language models (LMs)
Familiarize yourself with different types of LMs and their capabilities.
Browse courses on Large Language Models
Show steps
  • Read articles and watch videos on LMs.
  • Try out different LM tools and experiment with their features.
Review LLMs
Review the definitions and basics of AI and its potential for improving software development workflows.
Browse courses on AI
Show steps
  • Read the course description.
  • Re-familiarize yourself with the basics of AI.
  • Review online articles, videos, or other resources about LLMs.
Review Programming Fundamentals
Refresh your knowledge of programming fundamentals to strengthen your understanding of AI concepts and their implementation in software development.
Browse courses on Programming Fundamentals
Show steps
  • Revisit basic syntax and data types.
  • Practice writing simple algorithms and code snippets.
  • Review object-oriented programming principles.
23 other activities
Expand to see all activities and additional details
Show all 26 activities
Brush up on basic coding concepts
Solidify your foundation by reviewing the basics of coding before starting the course.
Browse courses on Programming
Show steps
  • Review variables, data types, and operators
  • Practice writing simple code snippets
  • Solve coding challenges on platforms like LeetCode or HackerRank
Organize coursework
Organize your notes, assignments, and resources to enhance your understanding of the fundamentals of AI for software development.
Browse courses on Large Language Models
Show steps
  • Gather all course materials
  • Sort and categorize materials by topic
  • Create a study schedule and plan
Gather resources on AI for software development
Build your own knowledge base by compiling a collection of resources on AI tools and techniques for software development.
Show steps
  • Search for articles, tutorials, and documentation on AI for software development
  • Organize the resources into a structured collection
  • Share your collection with others
Discuss ethical implications of AI in software development
Engage in thoughtful discussions on the ethical considerations of using AI in software development.
Browse courses on Ethics of AI
Show steps
  • Research ethical frameworks for AI.
  • Identify potential biases in AI systems.
  • Discuss strategies for mitigating ethical risks.
Join a study group to discuss AI applications
Enhance your understanding by engaging in discussions and sharing insights with peers about AI applications in software development.
Browse courses on AI Applications
Show steps
  • Find or create a study group with other students taking the course
  • Set regular meeting times and a structured agenda
  • Discuss topics related to AI applications in software development
Practice writing code using LLM prompts
Develop your skills in crafting effective prompts for AI-assisted code writing.
Browse courses on Code Generation
Show steps
  • Identify a coding task you want to complete.
  • Write a clear and concise prompt for the AI.
  • Iterate on your prompts to refine the output.
Experiment with AI Tools
Practice using various AI tools to get a feel for their capabilities and limitations.
Browse courses on AI Tools
Show steps
  • Explore different AI tools available online.
  • Write prompts to generate code using AI.
  • Use AI to debug code.
Follow Tutorials on AI-Based Techniques
Follow tutorials and articles to learn about different AI-based techniques for software development.
Show steps
  • Find tutorials and online resources on using AI in software development.
  • Complete the tutorials and practice the techniques.
Explore ChatGPT Tutorials
Engage in hands-on tutorials to familiarize yourself with the capabilities of ChatGPT and its applications in software development.
Show steps
  • Follow video or written tutorials on ChatGPT's features.
  • Practice writing code using ChatGPT's prompts.
Join a study group
Connect with peers by joining a study group to engage in discussions, share knowledge, and work together on course-related projects.
Browse courses on AI
Show steps
  • Find or create a study group with like-minded individuals
  • Set regular meeting times and stick to them
  • Discuss course concepts and work on assignments together
Follow interactive tutorials on AI tools
Expand your knowledge and gain practical skills by following guided tutorials on using AI tools for software development.
Browse courses on AI Tools
Show steps
  • Explore tutorials on platforms like Coursera, edX, or YouTube
  • Try out different AI tools and their features
  • Experiment with using AI for code generation, debugging, and analysis
Practice using LLM tools
Follow online tutorials to strengthen your skills in using AI-based tools for software development, such as ChatGPT or Bard.
Browse courses on LLMs
Show steps
  • Find reputable tutorials
  • Choose tutorials that align with your skill level
  • Complete the tutorials and apply what you learn
Refactor code using AI
Engage in coding exercises to practice refactoring code using AI techniques, optimizing and improving your code quality.
Browse courses on AI
Show steps
  • Identify areas of code that need refactoring
  • Use AI tools to suggest refactoring strategies
  • Implement the suggested changes and evaluate the results
Create code using AI
Utilize AI tools to plan and construct code projects, taking advantage of their capabilities to enhance your coding process.
Browse courses on AI
Show steps
  • Define the purpose and scope of your code project
  • Use AI tools to generate code or suggest algorithms
  • Refine and modify the generated code to meet your specific requirements
Build a simple software application using AI tools
Gain practical experience applying AI tools to solve real-world software development challenges.
Browse courses on Software Development
Show steps
  • Define the problem you want to solve.
  • Design the architecture of your application.
  • Use AI tools to assist with code generation and optimization.
  • Test and refine your application.
Write Detailed Code Comments
Write detailed comments in your code to help improve code readability and maintainability.
Show steps
  • Identify sections of your code that could benefit from clearer explanations.
  • Use AI to assist you in writing comments.
  • Review and refine your comments to ensure clarity and accuracy.
AI-Assisted Coding Practice
Utilize AI tools to practice coding, identify errors, and enhance your problem-solving skills.
Browse courses on AI-Assisted Coding
Show steps
  • Write code using ChatGPT or other AI tools for assistance.
  • Analyze the output and identify potential errors.
  • Correct the errors and optimize the code.
Contribute to AI Open-Source Projects
Deepen your understanding of AI by contributing to open-source projects, expanding your knowledge and building your portfolio.
Show steps
  • Identify open-source AI projects that align with your interests.
  • Review the project documentation and codebase.
  • Suggest improvements or contribute new features.
Practice writing code using AI assistance
Enhance your coding skills by practicing using AI tools to write, debug, and refactor code.
Browse courses on AI-Assisted Coding
Show steps
  • Use AI assistants to generate code snippets
  • Practice debugging code using AI tools
  • Try refactoring code with the help of AI
Present your work to peers
Prepare and present a topic related to the course to your peers, fostering a deeper understanding and encouraging constructive feedback.
Browse courses on AI
Show steps
  • Choose a topic that you are passionate about and well-versed in
  • Research and prepare your presentation
  • Deliver your presentation to your peers
AI-Powered Project
Apply the skills learned in the course to create a software project that leverages AI capabilities.
Show steps
  • Identify a problem or need that AI can address.
  • Design and plan the project's architecture and functionality.
  • Implement the project using AI tools and techniques.
  • Test and evaluate the project's performance.
Develop a software prototype
Design and create a software prototype to demonstrate your understanding and application of AI techniques in software development.
Browse courses on Software Development
Show steps
  • Identify a problem or opportunity that can be addressed with a software solution
  • Use AI tools to design and develop a prototype solution
  • Test and refine your prototype
Develop a software application using AI tools
Demonstrate your understanding and skills by building a software application that leverages AI tools.
Browse courses on Software Development
Show steps
  • Identify a problem or need that can be solved using AI
  • Design and plan your application
  • Implement your application using AI tools for code generation, debugging, and optimization
  • Test and evaluate your application

Career center

Learners who complete AI for Efficient Programming: Harnessing the Power of LLMs will develop knowledge and skills that may be useful to these careers:
Machine Learning Engineer
Machine Learning Engineers research, design, build, and implement machine learning models that can help solve complex problems. This course supplements the knowledge and skills needed to be an effective Machine Learning Engineer. Course modules like `Writing Code`, `Refactoring Code`, `Annotating Your Code`, and `Understanding Unfamiliar Code` will aid in the development and maintenance of machine learning models.
Software Engineer
Software Engineers apply the principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software. This course will teach the fundamentals of using AI to accelerate a Software Engineer's workflow.
Data Scientist
Data Scientists use scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. The skills learned in the `AI for Bioinformatics` module of this course will be particularly useful to those who work with biological data.
Artificial Intelligence Engineer
Artificial Intelligence Engineers are responsible for the design, development, and maintenance of AI systems. This course will give a good foundation of how to work with AI and may be especially useful in conjunction with other courses.
Bioinformatics Scientist
Bioinformatics Scientists use computational tools to analyze and interpret biological data. The `AI for Bioinformatics` module of this course will be particularly useful to those who work with biological data.
Computer Programmer
Computer Programmers write, test, debug, and maintain the code that makes computers and applications work. This course will introduce the fundamentals of working with AI to automate coding tasks.
Computational Biologist
Computational Biologists use computer science, mathematics, and statistics to solve biological problems. The `AI for Bioinformatics` module of this course will be particularly useful to those who work with biological data.
Data Analyst
Data Analysts collect, clean, and analyze data to identify trends and patterns. The skills learned in the `Refactoring Code` and `Annotating Your Code` modules of this course will be particularly useful to those who work with large datasets.
Software Architect
Software Architects design and develop the overall structure and architecture of software systems. This course will teach the fundamentals of using AI to accelerate a Software Architect's workflow.
Information Technology Specialist
Information Technology Specialists provide technical support to users of computer systems and software. This course will teach the fundamentals of using AI to automate some aspects of technical support.
Database Administrator
Database Administrators manage and maintain databases. The skills learned in the `Refactoring Code` and `Annotating Your Code` modules of this course will be particularly useful to those who work with large databases.
Systems Analyst
Systems Analysts study an organization's current business processes and develop plans for how to improve them. This course may be useful for Systems Analysts who are looking to learn more about how AI can be used to improve business processes.
Web Developer
Web Developers design and develop websites. This course will teach the fundamentals of using AI to accelerate a Web Developer's workflow.
Computer Support Specialist
Computer Support Specialists provide technical support to users of computer systems and software. This course will teach the fundamentals of using AI to automate some aspects of technical support.
Business Analyst
Business Analysts analyze an organization's business processes and develop plans for how to improve them. This course may be useful for Business Analysts who are looking to learn more about how AI can be used to improve business processes.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in AI for Efficient Programming: Harnessing the Power of LLMs.
Provides a set of best practices for writing effective Java code. It covers topics such as performance, concurrency, and security.
Provides a catalog of design patterns that can be used to solve common software engineering problems. It covers topics such as creational patterns, structural patterns, and behavioral patterns.
Save
Provides an annotated version of Alan Turing's seminal paper, 'On Computable Numbers, with an Application to the Entscheidungsproblem.' It includes commentary by Charles Petzold, explaining Turing's ideas and their relevance to computer science.
Provides a set of principles for writing clean and ethical code. It covers topics such as professionalism, craftsmanship, and community involvement.
Provides a comprehensive guide to software engineering best practices. It covers topics such as coding standards, design patterns, and testing.
Provides a practical introduction to deep learning with fastai and PyTorch. It covers topics such as convolutional neural networks, recurrent neural networks, and transformers.
Provides a fictionalized account of a software development team that is struggling to meet its deadlines. It covers topics such as DevOps, continuous delivery, and lean software development.
Provides a practical introduction to machine learning for software developers. It covers topics such as supervised learning, unsupervised learning, and reinforcement learning.
Provides a detailed overview of the architecture of open source applications. It covers topics such as modularity, dependency management, and version control.
Provides a comprehensive introduction to natural language processing (NLP) with Python. It covers topics such as text preprocessing, tokenization, stemming, lemmatization, and machine learning for NLP.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to AI for Efficient Programming: Harnessing the Power of LLMs.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser