書名:AI 神助攻!程式設計新境界 - GitHub Copilot 開發 Python 如虎添翼 : 提示工程、問題分解、測試案例、除錯
原文書名:Learn AI-Assisted Python Programming: With GitHub Copilot and ChatGPT
產品代碼:
9789863127901系列編號:
F4706定價:
560元作者:
Leo Porter, Daniel Zingaro譯者:
施威銘研究室 編譯頁數:
368頁開數:
17x23x2.2裝訂:
平裝上市日:
20240417出版日:
20240417出版社:
旗標科技股份有限公司CIP:
312市場分類:
電腦資訊產品分類:
書籍免稅聯合分類:
電腦資訊類- ※在庫量小
商品簡介
【程式設計新浪潮 . 開發生態大革命】
你還在研讀程式語法手冊?還在網路上找程式碼來修修改改?還要繼續埋首在手刻程式碼的低效循環中掙扎嗎?就是現在,程式設計生態發生了史無前例的變革!
GitHub Copilot 是由 GitHub 與 OpenAI 大型語言模型(LLMs)合作開發的 AI 程式設計助手,它從巨量程式碼庫中學會所有的程式設計技巧,將人類過往的程式精華融為一體。只要你學會用正確的方法、下達明確的提示詞、妥善地用自然語言與其溝通,就能發揮它的無窮力量,大幅幫助你提高開發軟體的成效。
本書作者:兩位資訊教育學家 Leo Porter 博士與 Daniel Zingaro 博士為了 AI 程式設計時代的到來,在本書規劃出「函式設計循環」流程,整本書的編排圍繞著這個設計循環所需的技能,一遍遍演練、一步步學會進入 AI 程式設計必備的新技能。幫助你以正確的方式掌握 Python 程式設計(當然,其它程式語言也適用),高效快速解決實務上的任務。
【開發程式的重點:從寫程式轉換為寫提示詞】
與傳統的入門程式設計課程相比,使用 GitHub Copilot 協助寫程式需要學習新的技能,特別是問題分解、提示工程、測試與除錯技巧(如果您對這些技能還不太熟悉也無需擔心,本書都會詳細介紹),這些新技能對於現職的程式設計師來說同樣重要。
在以往傳統的程式設計課程中,學生往往需要將精力灌注在語法的細節上,然而在 AI 時代,程式語法已經有 GitHub Copilot 這位大神在身邊,完全不用你操心,你該學的是如何用自然語言,寫出有意義且 AI 工具能正確理解的提示詞,讓它為你寫出符合預期的程式碼。如果你真的很不會寫提示詞,Copilot 除了能夠反向幫助程式產生提示詞,甚至還可以利用提示模式(prompt patterns)翻轉問答對象,讓 Copilot 主動提問以達成你的目標。
本書特色:
● 精心設計為 AI 工具而生的函式設計循環。
● 使用與業界接軌的 Visual Studio Code 開發工具。
● 善用 Copilot Chat、inline Chat 提高生產力好助手。
● 撰寫提示詞:學會用 AI 看得懂的自然語言溝通。
● 看懂程式碼:程式由 AI 寫, 但你需要看得懂。
● 問題分解:用 Top-Down 設計將大問題分解成小任務。
● 測試案例:設計常見案例與邊界案例確認函式正確。
● 除錯技巧:當 AI 使不上力的時候要學會自救。
● 從設計模式轉變為提示模式的初體驗。
【程式設計新浪潮 . 開發生態大革命】
你還在研讀程式語法手冊?還在網路上找程式碼來修修改改?還要繼續埋首在手刻程式碼的低效循環中掙扎嗎?就是現在,程式設計生態發生了史無前例的變革!
GitHub Copilot 是由 GitHub 與 OpenAI 大型語言模型(LLMs)合作開發的 AI 程式設計助手,它從巨量程式碼庫中學會所有的程式設計技巧,將人類過往的程式精華融為一體。只要你學會用正確的方法、下達明確的提示詞、妥善地用自然語言與其溝通,就能發揮它的無窮力量,大幅幫助你提高開發軟體的成效。
本書作者:兩位資訊教育學家 Leo Porter 博士與 Daniel Zingaro 博士為了 AI 程式設計時代的到來,在本書規劃出「函式設計循環」流程,整本書的編排圍繞著這個設計循環所需的技能,一遍遍演練、一步步學會進入 AI 程式設計必備的新技能。幫助你以正確的方式掌握 Python 程式設計(當然,其它程式語言也適用),高效快速解決實務上的任務。
【開發程式的重點:從寫程式轉換為寫提示詞】
與傳統的入門程式設計課程相比,使用 GitHub Copilot 協助寫程式需要學習新的技能,特別是問題分解、提示工程、測試與除錯技巧(如果您對這些技能還不太熟悉也無需擔心,本書都會詳細介紹),這些新技能對於現職的程式設計師來說同樣重要。
在以往傳統的程式設計課程中,學生往往需要將精力灌注在語法的細節上,然而在 AI 時代,程式語法已經有 GitHub Copilot 這位大神在身邊,完全不用你操心,你該學的是如何用自然語言,寫出有意義且 AI 工具能正確理解的提示詞,讓它為你寫出符合預期的程式碼。如果你真的很不會寫提示詞,Copilot 除了能夠反向幫助程式產生提示詞,甚至還可以利用提示模式(prompt patterns)翻轉問答對象,讓 Copilot 主動提問以達成你的目標。
本書特色:
● 精心設計為 AI 工具而生的函式設計循環。
● 使用與業界接軌的 Visual Studio Code 開發工具。
● 善用 Copilot Chat、inline Chat 提高生產力好助手。
● 撰寫提示詞:學會用 AI 看得懂的自然語言溝通。
● 看懂程式碼:程式由 AI 寫, 但你需要看得懂。
● 問題分解:用 Top-Down 設計將大問題分解成小任務。
● 測試案例:設計常見案例與邊界案例確認函式正確。
● 除錯技巧:當 AI 使不上力的時候要學會自救。
● 從設計模式轉變為提示模式的初體驗。
作者簡介
Leo Porter(李奧.波特)博士現任職於美國加州大學聖地牙哥分校計算機科學與工程系,擔任教學教授。他在同儕教學對計算課程影響的研究、利用響應器(clicker)資料預測學生學業成就,以及基本資料結構觀念開發方面成就卓著。他是 coursera 上廣受歡迎的「Object-Oriented Java Programming: Data Structures and Beyond」課程的合作教授,該課程吸引了超過 30 萬名學生。此外,他還教授 edX MicrosMasters 的「Python for Data Science」課程,吸引超過 20 萬名學生。他曾獲得六項最佳論文獎、SIGCSE 五十周年紀念研討會歷史上十佳論文獎、沃倫學院的卓越教學獎,以及加州大學聖地牙哥分校學術參議院的卓越教學獎。他是 ACM 的傑出成員,曾在 ACM SIGCSE 董事會服務。
Daniel Zingaro(丹尼爾.辛加羅)博士是加拿大多倫多大學副教學教授,過去 15 年來致力於 Python 入門程式設計教學。他撰寫了許多文章,深入探討入門計算機科學的教與學的方法。他與 No Starch Press 合作出版過一本 Python 書與一本演算法的教學書,這些作品已被翻譯成多國語言。他也因教學和研究領域的卓越貢獻,獲頒多項傑出獎項,包括 50-Year Test of Time award 和一些最佳論文獎。
書籍目錄
目錄:
第 1 章 GitHub Copilot 簡介
1.1 本書用到的技術
1.1.1 GitHub Copilot 就是寫程式的 AI 助手
1.1.2 GitHub Copilot 背後運作方式
1.2 GitHub Copilot 改變寫程式的方式
1.3 GitHub Copilot 能幫我們做什麼其他事情?
1.4 使用 Github Copilot 的風險與挑戰
1.5 技能需求
1.6 AI 程式助手(如 Copilot)帶來的顧慮
第 2 章 GitHub Copilot 入門
2.1 使用 Copilot 必備工具
2.1.1 需要註冊 GitHub 帳號
2.1.2 需要安裝 Python 延伸模組
2.1.3 需要安裝 VS Code
2.2 設定您的開發環境
2.3 在 Visual Studio Code 中使用 Copilot
2.3.1 設定工作資料夾
2.3.2 檢查設置是否能正常運行
2.4 常見的 Copilot 問題
2.5 在 VS Code 中用 Copilot 產生程式碼
2.6 第一個程式任務
2.6.1 Copilot 在資料處理任務中的價值
2.6.2 計算 Aaron Rodgers 在 2019~2022 年的傳球碼數
2.6.3 查出那段期間所有四分衛的表現
2.6.4 將傳球碼數統計資料繪製成圖表
第 3 章 設計函式
3.1 函式(Functions)
3.1.1 函式的組成
3.1.2 使用函式
3.2 函式的好處
3.3 呼叫函式的執行順序與函式的不同角色
3.3.1 瞭解呼叫函式的執行順序
3.3.2 函式的其它角色
3.4 函式的合理任務
3.4.1 好函式的特色
3.4.2 好與不好的葉子函式例子
3.5 使用 Copilot 的函式設計循環
3.6 使用 Copilot 建立函式的例子
3.6.1 計算股票獲利的函式
3.6.2 檢查強密碼的函式
3.6.3 獲取強密碼的函式
3.6.4 拼字遊戲的計分函式
3.6.5 找出分數最高單字的函式
第 4 章 學習閱讀 Python 程式碼 (1)
4.1 為何需要閱讀程式碼
4.2 要求 Copilot 解釋程式碼的意思
4.2.1 用 Copilot Chat 窗格解釋程式碼
4.2.2 從 inline Chat 叫出 GitHub Chat 解釋程式碼
4.2.3 透過格式化文件命令窗解釋程式碼
4.3 Python 語言的 10 大構成要素
4.4 內建函式
4.5 變數(Variables)
4.6 條件語句(Conditionals)
4.6.1 當條件判斷只有兩種可能結果
4.6.2 當條件判斷多於兩種可能結果
4.6.3 每個 if 語句都是獨立的條件判斷
4.7 字串(Strings)
4.7.1 字串的 method 練習
4.7.2 請 Copilot 解釋 method 與使用情境
4.7.3 字串的串接與重複
4.8 串列(Lists)
4.8.1 串列中的元素
4.8.2 串列元素的索引
4.8.3 串列元素切片
4.8.4 用索引更改串列中的值
4.9 Python 前 5 種構成要素整理
第 5 章 學習閱讀 Python 程式碼 (2)
5.1 迴圈(Loops)
5.1.1 for 迴圈 - 讀取字串
5.1.2 for 迴圈 - 讀取串列
5.1.3 for 迴圈 – 搭配索引
5.1.4 while 迴圈
5.2 縮排(Identation)
5.2.1 縮排代表程式區塊
5.2.2 二層縮排
5.2.3 三層縮排
5.2.4 美觀性的縮排
5.2.5 縮排與巢狀迴圈
5.3 字典(Dictionary)
5.3.1 存取字典的內容
5.3.2 用迴圈取得字典的內容
5.4 檔案(Files)
5.4.1 開檔並讀取資料
5.4.2 用迴圈逐列讀取檔案中的資料
5.4.3 用模組簡化處理 CSV 檔案的過程
5.5 模組(Modules)
5.5.1 預設模組可直接載入 – 以 zipfile 模組為例
5.5.2 需要下載並安裝的套件
5.6 Python 後 5 種構成要素整理
第 6 章 測試與提示工程
6.1 程式碼測試的重要性
6.2 黑盒測試與白盒測試
6.2.1 黑盒測試
6.2.2 如何決定測試案例要測什麼?
6.2.3 白盒測試
6.3 如何測試您的程式碼
6.3.1 在 Python 提示符號下進行測試
6.3.2 直接在 Python 檔案中進行測試
6.3.3 用 doctest 模組進行測試
6.4 重新檢視 Copilot 函式設計循環
6.5 測試範例 1 – 安排學生座位
6.5.1 找出一列中最多還可安排幾位新學生
6.5.2 改進提示詞以得到更佳解決方案
6.5.3 測試新的解決方案
6.6 測試範例 2 – 用到外部檔案
6.6.1 準備進行的測試案例
6.6.2 建立函式
6.6.3 對函式進行測試
6.6.4 使用 doctest 容易出現的問題
第 7 章 問題分解
7.1 問題分解的過程
7.2 Top-Down 設計的小例子
7.2.1 用 Top-Down 思考獲取強密碼函式
7.2.2 用 Top-Down 思考找出分數最高單字函式
7.2.3 Top-down 設計可控制複雜性
7.3 作者身份識別任務
7.4 作者身份識別程式的三個階段
7.5 分解處理階段的問題
7.5.1 決定神秘書籍的未知特徵簽名
7.5.2 5 個特徵函式的詳細說明
7.5.3 找出每本已知作者書籍的特徵簽名
7.6 為 Top-Down 設計做個整理
7.7 將規劃的函式用 Copilot 實作出來
7.7.1 clean_word 函式
7.7.2 average_word_length 函式
7.7.3 different_to_total 函式
7.7.4 exactly_once_to_total 函式
7.7.5 split_string 函式
7.7.6 get_sentences 函式
7.7.7 average_sentence_length 函式
7.7.8 get_phrases 函式
7.7.9 average_sentence_complexity 函式
7.7.10 make_signature 函式
7.7.11 get_all_signatures 函式
7.7.12 get_score 函式
7.7.13 lowest_score 函式
7.7.14 process_data 函式
7.7.15 make_guess 函式
7.8 思考重構程式的可能.
第 8 章 除錯 – 使用 Copilot Chat 與debugger
8.1 造成 bugs 的原因
8.2 如何找出 bugs
8.2.1 使用 print 語句來瞭解程式碼行為
8.2.2 用 VS Code 的 debugger 觀察程式行為
8.3 利用 GitHub Copilot Chat 修正程式碼
8.4 將除錯融入工作流程
8.5 將除錯技巧應用於新問題
8.5.1 列出可能出現錯誤的假設
8.5.2 對假設進行除錯
8.6 線上除錯工具 PythonTutor
8.7 降低除錯的挫折感.
第 9 章 製作自動化工具
9.1 程式設計師自製工具的原因
9.2 用 Copilot 開發自動化工具
9.3 自動化工具 1:清理電子郵件多餘符號
9.3.1 與 Copilot 交談取得協助
9.3.2 實際撰寫程式
9.4 自動化工具 2:為數百個 PDF 報告加上封面頁
9.4.1 與 Copilot 交談取得協助
9.4.2 實際撰寫程式
9.4.3 更新函式開發循環
9.5 自動化工具 3:合併圖片庫中內容不重複的檔案
9.5.1 與 Copilot 交談取得協助
9.5.2 為函式補上 docstring
第 10 章 遊戲設計
10.1 遊戲程式的兩個主要功能
10.2 為遊戲加入隨機性
10.3 遊戲 1:猜數字遊戲(Bulls and Cows)
10.3.1 遊戲玩法
10.3.2 Top-Down 設計
10.3.3 函式的參數與傳回值資料型別
10.3.4 實現遊戲的函式
10.3.5 為猜數字遊戲加上圖形介面
10.4 遊戲 2:雙人骰子遊戲(Bogart)
10.4.1 遊戲玩法
10.4.2 Top-Down 設計
10.4.3 實現遊戲的函式
第 11 章 未來的方向
11.1 從設計模式到提示模式
11.2 翻轉互動模式 - Flipped interaction pattern
11.3 角色模式 - Persona pattern
11.4 AI 工具的限制和未來方向
11.4.1 Copilot 目前面臨的困難
11.4.2 程式語言會被自然語言取代嗎?
11.4.3 一個令人期盼的未來