兒童學習遊戲化學習國高中程式

微軟開發出一款會寫程式的人工智慧「DeepCoder」!不過現在只能寫 5 行,而且還要靠「剪下貼上」!?

2017-03-01

瀏覽次數:4974

本文轉載自《科技新報》,約 2017 年報導,介紹當時微軟與劍橋的 AI 研究成果。

DeepCoder 是什麼?微軟研究院與劍橋大學聯合開發的 AI 寫程式系統,給定輸入值與期望輸出,自動從現有程式碼庫中搜尋、組合出可執行的程式。當時(2017 年)只能寫約 5 行程式,目的是協助工程師處理重複性工作,而非取代工程師。這個概念在 2026 年 AI 普及後已是主流——它是今日所有 AI 程式助理(GitHub Copilot、Claude、Cursor)的早期雛形。

本文轉載自《科技新報》,2017 年報導。

隨著人工智慧的進步,可以被機器取代的工作也越來越多,而這次,輪到軟體工程師了。微軟研究院和劍橋大學研究人員開發出一套可自己寫程式的人工智慧「DeepCoder」,未來就算不會寫程式,也能透過 DeepCoder 打造出符合需求的程式,大幅縮短開發時間和成本。

從現有程式碼找到適合片段來組合:DeepCoder 的「複製貼上」邏輯

DeepCoder 使用被稱作「程式組合」(program synthesis)的方法,只要給定系統輸入值和需要的輸出結果,DeepCoder 便可透過搜尋其他程式的程式碼,挑出適合的程式碼片段,再組合成可運作的程式,讓程式順利生成需要的結果。

事實上,這個步驟就像許多工程師常做的事:在程式問答網站 Stack Overflow 上搜尋適合的程式碼,再「複製貼上」他們認為可行的程式碼片段。

研究團隊指出,和人類工程師相比,DeepCoder 能更全面、廣泛地搜尋程式碼範例,因此程式碼的組合方式可能是過去人類從未想過的。此外,DeepCoder 將機器學習應用在每次的搜尋和組合程式碼,相較於舊有系統需要花費好幾分鐘才能選出正確的程式組合,DeepCoder 只需幾秒就能寫好程式,且速度還會隨著練習越來越快。

仍是早期研究:只能寫 5 行,寫不出企業等級軟體和 App

看完 DeepCoder 的介紹,或許不少以寫程式為生的工程師開始擔心未來是否將被人工智慧取代。不過好消息是,該研究尚在早期階段,目前只能寫出 5 行左右的程式碼,難度相當於程式競賽網站中最簡單的問題。

此外,DeepCoder 只能透過組合程式碼片段來寫程式,並不能靠自己生成一段全新的程式碼,也還沒辦法寫出企業等級的軟體,或是 App 等更複雜的程式碼。

研究人員也指出,該系統的目的並非想要取代人類工程師,而是讓電腦協助完成寫程式過程中最無趣的地方,工程師可以將時間拿去做更複雜、更有創造力的工作。

常見問題 FAQ

2026 年 AI 這麼強了,DeepCoder 當年預測的「AI 會寫程式」已經成真了嗎?

大幅超越。2017 年的 DeepCoder 只能寫 5 行,而 2026 年的 GitHub Copilot、Claude、Cursor 等 AI 工具已能協助撰寫數百行的完整功能模組。但 DeepCoder 研究人員說的那句話仍然成立:「目的是協助工程師處理無趣的工作,讓他們去做更複雜、更有創造力的事。」AI 工具讓工程師的生產力大幅提升,但判斷「什麼值得做」、「程式邏輯是否正確」、「如何設計系統架構」——這些核心能力仍然需要人來承擔。

「AI 會寫程式了,還有必要讓孩子學程式嗎?」

更有必要,原因是反直覺的:AI 工具讓「會一點程式」和「不會程式」的人之間差距更大。不懂程式基礎的人看著 AI 輸出的程式碼,無法判斷它對不對、有沒有安全漏洞、能不能擴展。懂程式的人能精準地描述問題、審視 AI 的輸出、指導 AI 完成更複雜的任務。就像計算機普及後數學思維反而更重要,AI 普及後程式邏輯反而是區分人才的關鍵能力。

Stack Overflow「複製貼上」被視為工程師壞習慣,AI 這樣做算可以嗎?

這是個很有趣的問題。人類工程師複製貼上時,有時候不完全理解那段程式碼,導致日後難以維護或出現隱藏 bug。AI 工具在「搜尋和組合」這一步確實比人快,但同樣可能組合出「在特定情境下有問題」的程式碼。這就是為什麼「會讀程式碼、理解程式邏輯」的能力在 AI 時代反而更重要——你需要看懂 AI 給你的東西對不對。橘子蘋果教的不只是「怎麼寫」,也教孩子「怎麼讀懂和除錯」。

孩子學 Python 或 Scratch,和 AI 工具有什麼關係?

直接的關係:孩子學 Scratch 和 Python 所建立的「邏輯思維」,正是使用 AI 工具的基礎。當一個孩子能清楚描述「我要輸入什麼、我期望得到什麼輸出」,他就掌握了和 AI 工具溝通的核心能力——這正是 DeepCoder(以及今日所有 AI 程式助理)運作的基本概念。未來這些孩子在使用 AI 工具時,能比從未學過程式的同齡人更快、更準確地獲得想要的結果。

程式設計師的工作真的會被 AI 取代嗎?

部分會,整體不會——但職缺的內容會大幅改變。重複性高、規格明確的程式開發任務(如簡單的 CRUD 介面、固定格式的報表)確實正在被 AI 工具加速或部分取代。但系統架構設計、複雜業務邏輯實作、跨系統整合、資安審查等高層次工作的需求量反而在增加。台灣資訊服務業的就業人數在 AI 普及後持續成長,關鍵原因是:AI 工具讓一個工程師能做更多事,因此公司能用更少人完成更大規模的專案——但每個工程師的能力要求更高了。

什麼是「程式組合」(program synthesis)?這個概念現在還重要嗎?

程式組合是讓電腦根據「範例輸入/輸出」自動推導出程式邏輯的技術。DeepCoder 在 2017 年是前沿研究,而這個概念已被深度整合進今日的 AI 程式助理中——當你在 ChatGPT 或 Claude 說「幫我寫一個函數,輸入一個清單,輸出裡面所有偶數的和」,你用的正是這個邏輯。對孩子來說,理解「輸入/輸出」的概念是程式思維最基礎也最重要的一塊——這是橘子蘋果每個課程階段都持續強化的核心概念。

AI 時代,懂程式邏輯的孩子才能真正駕馭 AI 工具

  • 橘子蘋果教孩子理解「輸入/輸出/邏輯」——這正是使用 AI 工具的核心能力
  • 從 Scratch 到 Python 到 AI 人工智慧班,每個階段都在強化程式思維
  • 免費試聽一堂,讓孩子從小建立 AI 時代最需要的底層能力