购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 Copilot如何改变我们学习编程的方式

为了阐明AI将如何改变学习编程的方式,我们将展示Copilot在解决编程任务方面的强大能力,而这些任务正是选自编程教材中分派给学生的题目。

在以往的编程学习过程中,学习者们往往将大部分时间投入程序的语法和基础结构中。能做到从零开始逐行手写一段完整的程序(例如,下面即将展示的这个示例),通常就是他们学习编程的最终目标了。然而,在深入探讨具体的编程题目之前,必须指出的是,尽管大多数编程教育者和图书作者都认为新手程序员应该能解决此类题目,但实际上许多初学者根本做不到这一点。下面列出的就是这类题目的一个代表 [4]

编写一段程序来读取每天的降雨量。若降雨量为负值,则认为这是不合法且不可接受的,应予以排除。该程序应输出以下信息:有效记录的天数、下雨的天数、整个时间段内的总降雨量及任何单日的最大降雨量。程序以9999作为结束输入的警戒值。

如果你以前尝试过学习编程,那么对于这种类型的题目应该并不陌生,而且你可能在解决此类问题时头疼不已。但现在,如果我们将这段明确的提示词交给Copilot,将立即得到一段Python代码,如代码清单1.1所示。(我们在前言中提到,Copilot的行为具有不确定性,所以,如果我们再次提问,可能会得到不一样的代码。)

代码清单1.1 Copilot生成的解决经典降雨问题的代码
rainfall = 0
total_rainfall = 0
num_rainy_days = 0
num_valid_days = 0
max_rainfall = 0
rainfall = int(input("Enter the amount of rainfall for the day: "))
while rainfall != 9999:
    if rainfall < 0:
        print("Invalid rainfall amount. Please try again.")
        rainfall = int(input("Enter the amount of rainfall for the day: "))
    else:
        num_valid_days += 1
        total_rainfall += rainfall
        if rainfall > 0:
            num_rainy_days += 1
        if rainfall > max_rainfall:
            max_rainfall = rainfall
        rainfall = int(input("Enter the amount of rainfall for the day: "))
print("Number of valid days:", num_valid_days)
print("Number of rainy days:", num_rainy_days)
print("Total rainfall over the period:", total_rainfall)
print("Maximum amount of rain that fell on any one day:", max_rainfall)

我们并不指望你立马就能从直觉上判断出这段代码的优劣。事实上,这段代码相当不错。作为计算机科学专业的教授,我们会给这段代码打高分。

以前学习编程的人们可能需要花费几周甚至几个月的时间才能写出这种水准的代码。而如今,Copilot能够瞬间生成这样的代码。后续的章节会一直强调,我们仍然需要验证这些代码的正确性,因为Copilot有可能犯错。但我们再也不需要从零开始手写代码了。我们相信,与Copilot的这次成功互动,预示我们过去教授编程和学习编程的方式已然终结。

作为一个有志于学习编程的人,你不必再像以往那样在语法、控制流程等众多Python概念上苦苦挣扎。诚然,我们会在本书中讲解这些概念,但目的不是让你通过从零开始手写代码来证明你已理解,因为Copilot已经能够轻松生成这些代码。我们学习这些概念,仅仅是因为它们有助于我们解决实际问题,并与Copilot进行更富有成效的互动。 正是由于AI助手从根本上改变了学习编程所需的技能,你才能更快地学会如何编写规模更庞大、意义更深远的软件。 WdJnS/6ChU+ocJ3ovY1sZckmASYmYhvxxknZyoURHD+U4YDvSZ4U1PjdriqXZhIJ

点击中间区域
呼出菜单
上一章
目录
下一章
×