AI神助攻! 程式設計新境界: GitHub Copilot開發Python如虎添翼

AI神助攻! 程式設計新境界: GitHub Copilot開發Python如虎添翼

提示工程、問題分解、測試案例、除錯

Learn AI-Assisted Python Programming: With GitHub Copilot and ChatGPT

出版日期:
2024/04/15
79
560442
查詢門市庫存
本書特色:
● 精心設計為 AI 工具而生的函式設計循環。
● 使用與業界接軌的 Visual Studio Code 開發工具。
● 善用 Copilot Chat、inline Chat 提高生產力好助手。
● 撰寫提示詞:學會用 AI 看得懂的自然語言溝通。
● 看懂程式碼:程式由 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 使不上力的時候要學會自救。
● 從設計模式轉變為提示模式的初體驗。
目錄:
第 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 一個令人期盼的未來


展開看更多

作者介紹

作者簡介:
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 和一些最佳論文獎。

規格

誠品貨碼 / 2682551624003
ISBN13 / 9789863127901
ISBN10 /
EAN貨碼 / 9789863127901
頁數 / 368
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 23X17X2.2CM
級別 / N:無
重量(g) / 811
提供維修 / 無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送