你还记得你在大学是如何学习Java、C、Python和其他语言的吗?让我们来看看经典教科书和在线课程,几乎所有这些都是以下例程:
学习专业词汇,如变量、数组、对象等。
检查编程示例,根据葫芦画编写代码。
重复上述步骤,直到完成课程。
然而,程序员杰夫·奥尔森(Jeff Olsen)认为这种教学方法太过时了。
编程和计算机科学与烹饪和化学是一样的。即使不清楚化学变化,你仍然可以做美味的煎蛋。
为此,他提出了一套程序设计教学的新思路。杰夫的想法得到了哈克新闻上大量程序员的认可。
就连fast.ai的创始人杰瑞米·霍华德也加入进来:“这类似于我们平台上的深度学习教学方法。”
一些网民指出,仅对于初学者来说,归纳推理能力的形成是非常重要的。
这种方法不仅对老师有意义,而且对自学成才的程序员来说也是一种更好的学习方法。由
改变教学方法
杰夫提出的教学方法被称为“预测第一”。首先,给学生一个简单的代码,让他们预测将会发生什么,然后从运行结果中学习一些语言特性。
为此,杰夫提出了5个程序设计教学标准,只有符合这些标准的教学课程才能传达到位的知识点。
年龄=15岁如果年龄=18:打印(‘您可以购买R级电影票’)其他3360打印(如果您在{18岁}
具体来说,他没有直接提出概念,而是首先提出了一个学生要解决的难题。
这个难题包含了当天的知识要点,然后要求学生根据这个难题创建一些新的代码,并在解决问题的过程中学习专业术语。
这不仅是教师的指南。当我们学习编程时,最好是思考和学习有问题的代码,而不是机械地重复书中的例子,这样我们才能真正掌握技能。
几个例子
杰夫首先展示了最基本的Hello World程序,他的方法与传统方法略有不同。让我们先看看这段代码:
运行上面的程序会发生什么?
一般来说,我们可以直观地猜测Tamara会出现在运行结果中,而实际的运行结果是HelloTamara,中间没有空格。
接下来,如何让程序输出带空格的结果肯定需要一轮调试。
杰夫在这个过程中没有提到字符串和变量的概念,但是在解决这个问题的过程中,我们已经掌握了一系列的用法,比如打印函数和字符串拼接。
杰夫还举了几个例子,希望能纠正传统教学课程中僵化的内容。
1、条件判断
传统教学:
在这个例子中,学生只能看代码,但不能通过使用代码来学习条件判断。
杰夫建议将代码改为:
终端将输出什么?你的答案应该是:再过3年你就18岁了。
然后杰夫抛出了几个问题:
在整个代码中没有3。你怎么知道会有“3年”?我们如何更改程序以显示其他语句?缩进对我们的程序有什么影响?
通过这三个问题,学生知道if-else语句的缩进格式,以及如何通过改变条件做出其他判断。
2、数组
传统教学:
在这个例子中,为什么是[2] 7的结果?没有学过编程的人可能不理解它,甚至有错误的理解:哦,它是第二个数字之后的数字。
杰夫建议改为:
这个程序的输出是什么?我们如何打印出第一份食物和最后一份食物?如果最后一句被改成最喜欢的食物[10,会发生什么?
通过这个简单的例子,学生可以理解数组和索引超出范围的错误。
3、对象
Traditional Teaching
class dog : DeF _ _ init _ _(self): passdefspeak(self): print(‘汪!)Fido=狗()Fido.speak()
虽然以小狗为例,这段代码看起来生动有趣,但实际上存在一些问题:
(1)狗不存在于网络空间。(2)使用9行代码来创建和调用函数实际上可以更短。(3)用这种方法创建的所有狗都有相同的功能,那么为什么要创建一个类呢?</p >
杰夫建议将其改为:
User 1=用户(‘ Ty ‘,’ Tdog@aol.com ‘,16,’ Pa$$word ‘)用户2=用户(‘ Sarai ‘,’ SMendes@hotmail.com ‘,15,’袋鼠!’)用户3=用户(“Osu”,“Osu22@gmail.com”,12,12345 ABCDE”)打印(用户2。AGE)
Question section:第一个用户的电子邮件是什么?哪个用户的密码最弱?最后一行输出什么?
学生们学会了如何用这种方式创建对象。至于代码中出现的用户(),他们可以自然地教他们如何创建类。
最后,附上杰夫博客的链接,希望他的方法能帮助你学习编程。
极牛网精选文章《自学编程方法,这篇国外网友的教程被fast.ai创始人点赞》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/1724.html