ChatGPT Prompt Engineering for Developers

Brought by: Coursera

Overview

Go beyond the chat box. Use API access to leverage LLMs into your own applications, and learn to build a custom chatbot.

In ChatGPT Prompt Engineering for Developers, you will learn how to use a large language model (LLM) to quickly build new and powerful applications. Using the OpenAI API, you’ll be able to quickly build capabilities that learn to innovate and create value in ways that were cost-prohibitive, highly technical, or simply impossible before now. This short course taught by Isa Fulford (OpenAI) and Andrew Ng (DeepLearning.AI) will describe how LLMs work, provide best practices for prompt engineering, and show how LLM APIs can be used in applications for a variety of tasks, including:

- Summarizing (e.g., summarizing user reviews for brevity)
- Inferring (e.g., sentiment classification, topic extraction)
- Transforming text (e.g., translation, spelling & grammar correction)
- Expanding (e.g., automatically writing emails)

In addition, you’ll learn two key principles for writing effective prompts, how to systematically engineer good prompts, and also learn to build a custom chatbot. All concepts are illustrated with numerous examples, which you can play with directly in our Jupyter notebook environment to get hands-on experience with prompt engineering

Syllabus

  • Project Overview
    • In ChatGPT Prompt Engineering for Developers, you will learn how to use a large language model (LLM) to quickly build new and powerful applications. Using the OpenAI API, you’ll be able to quickly build capabilities that learn to innovate and create value in ways that were cost-prohibitive, highly technical, or simply impossible before now. This short course taught by Isa Fulford (OpenAI) and Andrew Ng (DeepLearning.AI) will describe how LLMs work, provide best practices for prompt engineering, and show how LLM APIs can be used in applications for a variety of tasks, including: 1. Summarizing (e.g., summarizing user reviews for brevity). 2. Inferring (e.g., sentiment classification, topic extraction). 3. Transforming text (e.g., translation, spelling & grammar correction). 4. Expanding (e.g., automatically writing emails)In addition, you’ll learn two key principles for writing effective prompts, how to systematically engineer good prompts, and also learn to build a custom chatbot. All concepts are illustrated with numerous examples, which you can play with directly in our Jupyter notebook environment to get hands-on experience with prompt engineering.

Taught by

Andrew Ng

ChatGPT Prompt Engineering for Developers
Go to course

ChatGPT Prompt Engineering for Developers

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • beginner
  • English
8.1.2PHP Version1.16sRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (735ms)
    • Application (425ms)
    • 1 x Booting (63.21%)
      735.31ms
      1 x Application (36.54%)
      425.06ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed10.48ms
      • select * from `courses` where `slug_en` = 'chatgpt-prompt-engineering-for-developers' limit 1
        8.31ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. chatgpt-prompt-engineering-for-developers
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-23 07:54:42' where `id` = 592
        600μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-23 07:54:42
        • 1. 592
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (33)
        390μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        270μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (34) and `institutions`.`deleted_at` is null
        320μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        270μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 586 limit 1
        320μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 586
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        iCtXfCnjh2ffXNOWgCRQ09lk2nweMZDQDzDwhHvP
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/chatgpt-prompt-engineering-for-developers...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/chatgpt-prompt-engineering-for-developers
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.110" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.110" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "95426b390bf42249-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.110" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.110" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "95426b390bf42249-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "10942" "REMOTE_ADDR" => "172.71.254.41" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/chatgpt-prompt-engineering-for-developers" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1750665281.74 "REQUEST_TIME" => 1750665281 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 23 Jun 2025 07:54:42 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IitueHUxdXM2WTdYS3JqSnZvTmZjUEE9PSIsInZhbHVlIjoiUUphTi9leEtiOXp1OGtzRG9FZGZqaU1RYm5UemlheXNsWFNnbFJueEJjUlgwK08rT1NWTFAvdGZLSkc1QjVTclN1WDBONkdaY2tYbldGSllzQUhSd1V2VVNKMUdOK1pqa2l3MGdyRHQvWmwvam9lQTZMcXBaOEdjeUZ0QzlVNmkiLCJtYWMiOiJlNjkyMWY0MjI4MTVjMmU1MmQ4MGFhZThjYWQwYTQzOWFmMTgyNTEwOTg0YjhjNDlmN2QwZGUxNDE3MGQwZDIxIiwidGFnIjoiIn0%3D; expires=Mon, 23 Jun 2025 09:54:42 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IitueHUxdXM2WTdYS3JqSnZvTmZjUEE9PSIsInZhbHVlIjoiUUphTi9leEtiOXp1OGtzRG9FZGZqaU1RYm5UemlheXNsWFNnbFJueEJjUlgwK08rT1NWTFAvdGZLSkc1QjVTclN1WDBON" 1 => "laravel_session=eyJpdiI6InQyOWEwNFdORUg1aWJCRFNvb1pWNmc9PSIsInZhbHVlIjoiM3JtaElYMU1KODBGUENkWFlheHgxbEk4T09qR2ZGUU9laGhObmNZUnk3dzBka0g4TzhxRVpxTUV5SjY0VW5yU2pHMjd6cS82VDVwL3hvYUR4MlM4eVA4Z2ZFQU9YYkFScHk3Tk1VWEJ5RU5ncjZta0tMazVNcHl2Uld5MEFzdEQiLCJtYWMiOiI2YTg4ODBkZWRkNzQzYTk3M2JjY2I2Mzk5MjI0ZmNlMzg0OThkYzE0YjMxYjY3ZDcxNTU2M2NkZDZjNzQyYWU1IiwidGFnIjoiIn0%3D; expires=Mon, 23 Jun 2025 09:54:42 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InQyOWEwNFdORUg1aWJCRFNvb1pWNmc9PSIsInZhbHVlIjoiM3JtaElYMU1KODBGUENkWFlheHgxbEk4T09qR2ZGUU9laGhObmNZUnk3dzBka0g4TzhxRVpxTUV5SjY0VW5yU2pH" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IitueHUxdXM2WTdYS3JqSnZvTmZjUEE9PSIsInZhbHVlIjoiUUphTi9leEtiOXp1OGtzRG9FZGZqaU1RYm5UemlheXNsWFNnbFJueEJjUlgwK08rT1NWTFAvdGZLSkc1QjVTclN1WDBONkdaY2tYbldGSllzQUhSd1V2VVNKMUdOK1pqa2l3MGdyRHQvWmwvam9lQTZMcXBaOEdjeUZ0QzlVNmkiLCJtYWMiOiJlNjkyMWY0MjI4MTVjMmU1MmQ4MGFhZThjYWQwYTQzOWFmMTgyNTEwOTg0YjhjNDlmN2QwZGUxNDE3MGQwZDIxIiwidGFnIjoiIn0%3D; expires=Mon, 23-Jun-2025 09:54:42 GMT; path=/XSRF-TOKEN=eyJpdiI6IitueHUxdXM2WTdYS3JqSnZvTmZjUEE9PSIsInZhbHVlIjoiUUphTi9leEtiOXp1OGtzRG9FZGZqaU1RYm5UemlheXNsWFNnbFJueEJjUlgwK08rT1NWTFAvdGZLSkc1QjVTclN1WDBON" 1 => "laravel_session=eyJpdiI6InQyOWEwNFdORUg1aWJCRFNvb1pWNmc9PSIsInZhbHVlIjoiM3JtaElYMU1KODBGUENkWFlheHgxbEk4T09qR2ZGUU9laGhObmNZUnk3dzBka0g4TzhxRVpxTUV5SjY0VW5yU2pHMjd6cS82VDVwL3hvYUR4MlM4eVA4Z2ZFQU9YYkFScHk3Tk1VWEJ5RU5ncjZta0tMazVNcHl2Uld5MEFzdEQiLCJtYWMiOiI2YTg4ODBkZWRkNzQzYTk3M2JjY2I2Mzk5MjI0ZmNlMzg0OThkYzE0YjMxYjY3ZDcxNTU2M2NkZDZjNzQyYWU1IiwidGFnIjoiIn0%3D; expires=Mon, 23-Jun-2025 09:54:42 GMT; path=/; httponlylaravel_session=eyJpdiI6InQyOWEwNFdORUg1aWJCRFNvb1pWNmc9PSIsInZhbHVlIjoiM3JtaElYMU1KODBGUENkWFlheHgxbEk4T09qR2ZGUU9laGhObmNZUnk3dzBka0g4TzhxRVpxTUV5SjY0VW5yU2pH" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "iCtXfCnjh2ffXNOWgCRQ09lk2nweMZDQDzDwhHvP" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/chatgpt-prompt-engineering-for-developers" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]