CT week15.4 计算思维的4个关键要素
2025.06.09 Mon AM 3:21 ・ 16Minutes 49seconds
2025.06.09 周一 上午 3:21 ・ 16 分 49 秒
ZHANG YIWEN
张一文
Attendees 1 00:02
与会者 1 00:02
안녕하세요. 오늘도 우리 계산적 사고법 지난 시간에 이어서 한 학기 마무리하는 시간 계속 갖도록 하겠습니다.
大家好。今天我们将继续上一节课的计算思维课程,并完成本学期的最后一部分内容。
Attendees 1 00:18
参会人员 1 00:18
우리 지난 시간에 계산적 사고법 우리 교재에 있는 내용 중에서 쭉 살펴보면서 계산적 사고법에 컴퓨팅 사고의 기본적인 가장 중요한 요소 4가지 분해 패턴 인식 추상화 알고리즘 중에서 우리 분해 패턴 인식 추상화에 대해서 얘기를 했었고요.
在上次课程中,我们仔细查看了教材中关于计算思维的内容,探讨了计算思维最基本和最重要的四个要素:分解、模式识别、抽象化和算法,其中我们已经讨论了分解、模式识别和抽象化。
오늘은 알고리즘과 그 외에 다른 남은 챕터들에 대해서 얘기를 하면서 추가적으로 우리 교재에 없었던 알고리즘 내용 좀 추가해서 했던 그 알고리즘들이 있었죠.
今天我们将讨论算法和其他剩余的章节,并额外补充教材中未涉及的算法内容。
그것 중에서 특히 좀 다시 한 번 살펴봤으면 하는 부분들 다시 정리를 해가면서 보도록 하겠습니다.
我将把这些部分仔细梳理一遍,重新审视一下。
이제 컴퓨팅 사고 이제 이렇게 데이터가 수집이 됐으면 얘네들 가지고 뭘 할 거예요?
现在计算思维,既然数据已经收集好了,接下来我们要用这些数据做什么呢?
어떻게 컴퓨팅 사고에 적용을 할 건지에 대해서 한번 얘기를 해보자.
让我们来讨论如何应用计算思维。
첫 번째로 그중에서 첫 번째로 분해에 대해서 한번 얘기를 해보겠습니다.
首先,让我们来谈谈分解。
이게 첫 번째 단계가 아닙니다. 여러분 컴퓨팅 사고의 4개 요소는 순서가 정해져 있는 단계들이 아니에요.
这不是第一个步骤。计算思维的 4 个要素并不是一个有既定顺序的步骤。
Attendees 1 01:34
听众 1 01:34
4개의 요소가 물론 알고리즘은 이제 좀 마지막 단계 그 4개 중에서 가장 후단계에 해당되겠지만은 그 외에 분해하고 추상화 패턴 인식 이런 단계들이 어떤 순서가 정해져 있는 건 아닙니다.
这 4 个要素当然,算法现在可能处于最后阶段,但在这 4 个要素中,除了算法之外,分解、抽象和模式识别等步骤并没有固定的先后顺序。
네 가지 요 세 가지의 단계들은 거의 동시에 또는 순서가 서로 이렇게 바뀔 수도 있고요.
这三个阶段几乎是同时进行的,或者它们的顺序可以相互调换。
그런 식으로 크로스 오버돼서 이루어지는 단계 드리니까요.
我将为您逐步翻译这些段落为简体中文:
这就是通过这种方式进行交叉渗透而产生的步骤。
분해는 여러분들 분해라는 말 자체에서 용어 자체에서도 이해가 되게 될 수 있도록 되겠지만은 복잡한 문제를 해결 가능한 작은 크기로 나누어서 나누는 그 기술을 얘기합니다.
分解,正如你们从"分解"这个词本身就能理解的那样,是指将复杂的问题分解为可以解决的小规模问题的技术。
이것도 대충 막 나누면 되는 건 아니죠. 예 문제 부분 부분 문제들이 의미가 있게끔 나눠야 되니까 그래서 하나의 문제 큰 문제 또는 복잡한 문제 이런 문제들을 이렇게 조각을 내서 좀 분산해서 일종의 각개 전투하는 식으로 분산을 위해서 각계 파 하는 거죠.
这也不是随意划分就可以的。是的,需要有意义地将问题拆分,因此要把一个大问题或复杂问题分解成若干部分,像是分散战斗的方式去处理。
Attendees 1 02:49
听众 1 02:49
그런 식으로 처리를 하는 과정이 여기서 사용되는 분할 정보 알고리즘이라는 내용이 있는데 이건 대표적으로 예를 든 게 바로 이진 탐색입니다.
在这里使用的分割信息算法会这样处理,其中最典型的例子就是二分查找。
이진 탐색은 이렇게 정렬이 돼 있는 데이터 중에서 어떤 특정 값을 찾는 데 있어서 가운데를 기점으로 해서 크고 작다 좌우 앞뒤 이런 식으로 이제 분할을 해서 정복을 하는 알고리즘이죠.
二分查找是在已排序的数据中,以中间点为基准,通过比较大小,将数据不断分割并逐步缩小范围来查找特定值的算法。
그래서 이렇게 분할 정복 알고리즘의 대표적인 예로 이진 탐색을 설명을 하고 했었습니다.
所以我们曾经以二分查找作为分治算法的典型示例进行了说明。
그리고 패턴 인식 패턴 인식은 이제 데이터들의 어떤 특징 특성 이런 걸로 분류를 하면서 구분을 해내는 과정을 얘기를 합니다.
然后是模式识别。模式识别是通过数据的特征和特性来进行分类和区分的过程。
동일한 것이 반복되는 게 패턴이죠. 패턴에 대한 정의를 먼저 보면은 동일한 것이 반복되는 거 그리고 반복되는 시간이나 물체의 형태 이런 것들을 우리는 패턴이라고 부릅니다.
重复出现的事物就是模式。如果先看模式的定义,那么就是同样的事物反复出现,以及重复出现的时间或物体的形态,我们将这些称为模式。
무늬 같은 거 또 우리는 무늬가 반복되는 거 이러면은 무늬가 예쁘다 저 패턴이 마음에 든다 이런 식의 얘기를 하죠.
比如图案,或者图案重复出现,我们会说这个图案很漂亮,或者我喜欢这个模式,就是这种说法。
Attendees 1 04:14
听众 1 04:14
그리고 어떤 규칙이 반복돼서 나타나는 거 규칙성을 갖게 되는 거 이런 겁니다.
在某些规则重复出现时,就形成了一定的规律性。
패턴을 발견하는 발견을 하는 것에 중요한 이유는 단순화시킬 수 있다라는 거 그리고 불규칙 무질서한 현상을 정리를 할 수 있다라는 거 이런 것들이 패턴 발견의 중요한 요소가 됩니다.
发现模式的重要原因在于可以进行简化,并且能够整理原本混乱无序的现象,这些都是模式发现的重要要素。
패턴을 발견함에 있어서 발견함으로 있어서 문제를 굉장히 단순화시키고 그다음에 어수선한 거를 이렇게 정리가 되게끔 할 수 있는 그런 방식이 되는 거죠.
通过发现模式,可以极大地简化问题,并将混乱的事物整理得井然有序。
Attendees 1 04:56
参会人员 1 04:56
이렇게 패턴을 찾고 나면은 그걸 이제 인식을 해서 이제 뭔가를 이제 우리 해내야겠죠.
找到这些模式后,我们就需要识别它,然后想办法去解决问题。
만들어내야 될 텐데 패턴 인식은 보시면은 문제를 해결하기 위한 데이터 안에 있는 패턴 동향 규칙들을 관찰하는 과정을 얘기를 합니다.
在模式识别中,我们观察数据中解决问题所需的模式、趋势和规律。
그리고 여러 단계를 거치면서 데이터가 가진 특성 특징에 적합한 분류 방법을 사용하여 문제를 처리하는 거 이거를 우리가 패턴 인식이라고 정의를 하고 있습니다.
我们将通过多个步骤,使用适合数据特性特征的分类方法来处理问题,这就是我们所定义的模式识别。
이 패턴 인식은 추상화를 통해서 알고리즘을 만드는 필수적인 단계에 있기도 하고요.
这种模式识别也是通过抽象化来创建算法的必要阶段。
우리가 패턴 인식을 하게 되면은 굉장히 많은 문제들이 되게 단순해지죠.
当我们进行模式识别时,许多问题都会变得非常简单。
그리고 특징 속성 이런 것들을 한 단어 또는 그룹의 대표적인 의미로 다루게 되는 그런 내용을 갖게 됩니다.
并且开始以某个单词或群体的代表性意义来处理特定的属性。
그다음에 챕터 5에서 추상화에 대한 얘기들을 좀 했었는데요.
在上一章第 5 章中,我们讨论了抽象化的一些内容。
추상화는 이런 내용들을 가지고 있었습니다. 우리가 피카소나 이런 어떤 좀 약간 뭐라 그럴까요?
抽象化包含这些内容:就像我们谈到毕加索或者一些类似的……
좀 얼른 이해하기 힘든 그림 이런 것들을 추상화라고 하죠.
这种乍看很难理解的图像,我们称之为抽象化。
Attendees 1 06:28
与会者 1 06:28
그거를 떠올려서도 완전히 같은 의미라고 보기는 좀 어렵지만은 그런 것들을 먼저 떠올리시면은 핵심 특징을 일반적인 개념으로 만들어 가는 거 예 패턴하고 약간 좀 다르게 생각을 하시는 게 패턴은 어떤 반복되는 게 있는 거고 추상화는 반복된다기보다는 그 개개의 특징을 인식을 하는 겁니다.
虽然仅仅想到这一点可能不太能完全视为相同的意义,但是如果您先想到这些,就是将核心特征转化为一般性概念,这与模式有些不同。模式是指某些重复出现的事物,而抽象化则不太强调重复,而是在认识每个个体的特征。
그 패턴은 전체의 특징을 인식해서 전체의 특징에 반복적인 거를 찾아내는 걸 얘기하는 거고 패턴 인식은 추상화는 그 개개의 특징을 찾아내서 구별되는 포인트들을 찾아내는 것들을 얘기를 하는 거죠.
模式是通过识别整体的特征,找出整体中的重复部分。而模式识别和抽象化则是找出各个特征,发现可以区分的关键点。
그 복잡한 문제를 단순화시키는 단순화시켜서 중요한 특징만 남기는 거 이게 패턴이 저기 추상화의 기본 개념이 됩니다.
将复杂的问题简化,只保留重要特征,这正是模式识别中抽象化的基本概念。
물론 이 추상화를 좀 과하게 하면은 문제는 생길 수 있습니다.
当然,如果过度抽象化,可能会出现问题。
이 부분들 한번 살펴보시기 바라겠고요.
请您看一下这些部分。
Attendees 1 07:35
参会人员 1 07:35
추상화하는 기본 방법은 총 세 가지로 우리 책에서 저기 설명을 하고 있는데 특징을 추출하는 방법과 관계를 추론하는 방법 그리고 일반화하는 방법 이렇게 세 가지를 추상화의 방법으로 설명을 하고 있습니다.
在我们的书中,对抽象化的基本方法总共解释了三种,分别是:提取特征的方法、推断关系的方法,以及概括的方法,就是这三种方法被描述为抽象化的方法。
특징을 추출하는 거는 말 그대로 특징을 잡아내서 공통된 특징이나 차이점을 찾아내는 거를 얘기하고요.
提取特征就是按字面意思来说,捕捉特征并找出共同点或差异点。
관계의 추론 방법은 앞뒤 상황들을 봐서 규칙을 찾아내는 걸 얘기합니다.
关系推理方法是通过观察前后情况来发现规律。
우리가 홀수 1 3 5 7 9 이런 식으로 숫자가 배열이 돼 있다면 요 1과 3, 3과 5 이런 앞뒤 관계들을 봐서 1씩 더한다 또는 홀수 값들을 순서대로 나열했다 이런 식으로 이제 배열의 특징을 추론해서 일반화시키게 되는 거죠.
如果我们有这样一个由奇数 1、3、5、7、9 组成的数列,我们会通过观察相邻数字之间的关系,比如 1 和 3、3 和 5 之间的差值,推断出是每次加 1,或者说按顺序排列奇数值。这样我们就能推断出数列的特征并将其一般化。
그리고 그렇게 추론하고 추출하는 그 내용들을 가지고 또 일반화하는 방법이 있죠.
而且,我们还可以通过推断和提取这些内容来进一步实现一般化。
공식으로 만들어내거나 하는 것들을 우리 추상화의 방법으로 설명을 하고 있습니다.
我们正在用我们抽象化的方法来描述那些由公式生成或制作的内容。
추상화를 통해서 얻어내는 이점은 이렇게 네 가지를 먼저 설명을 했는데요.
关于通过抽象化能获得的优势,我之前已经解释了这四点。
Attendees 1 08:56
与会人员 1 08:56
문제를 명확하게 하고 아이디어를 얻을 수 있고 세부 사항을 불필요한 세부 사항을 제거를 하는 거 그다음에 문제의 개념을 형성한다.
阐明问题,获取想法,消除不必要的细节,然后形成问题的概念。
이렇게 네 가지를 이점으로 설명을 하고 다 알고리즘 알고리즘은 문제를 해결하기 위한 단계적 절차 또는 문제를 해결하는 방법을 각 단계별로 정리해 놓은 것이라고 정의를 하고 있습니다.
这样解释了四种优点,并且定义了算法是为了解决问题的分步骤程序,或是将解决问题的方法逐步整理出来。
그리고 특히 우리가 컴퓨팅 컴퓨터에서 컴퓨터 프로그램에서 이 알고리즘은 프로그램을 하는 데 굉장히 중요한 부분을 가지고 있죠.
尤其是在计算机、计算机程序中,这种算法在编程中扮演着非常重要的角色。
알고리즘을 제대로 활용을 해야만 프로그램의 결과가 아주 정확하고 그리고 효과적으로 나오게 되니까 알고리즘이 굉장히 중요하죠.
只有正确地运用算法,程序的结果才能非常准确且高效,所以算法非常重要。
Attendees 1 09:55
参会人员 1 09:55
알고리즘의 중요한 조건 몇 가지를 먼저 말씀을 드리겠습니다.
首先我要告诉你算法的几个重要条件。
입력이 있고 출력 명백성 유한성 유효성 이렇게 돼 있습니다.
这些条件包括:输入、输出、明确性、有限性和有效性。
입력은 외부에서 제공되는 0개 이상의 입력이 존재한다.
输入可以存在零个或多个从外部提供的输入。
여기서 0개 이상이라고 하는 부분 한번 체크를 좀 해 주시고요.
关于这里"零个或多个"的部分,请您再确认一下。
입력이 연계라는 거는 입력이 없다라는 의미가 되죠.
输入是连接,这意味着没有输入。
입력이 없으면은 사실 내부에서 자체적으로 사용을 하는 거니까요.
如果没有输入,实际上是在内部自行使用。
입력이 없을 수는 있습니다. 그리고 출력이 한 개 이상 존재를 해야 됩니다.
可能没有输入。但输出必须至少存在一个。
출력은 없을 수가 없죠. 출력이 없는 알고리즘은 글쎄요.
输出是不可能没有的。没有输出的算法,那可就难说了。
출력이 없다 그러면 좀 이상하죠. 뭔가 일을 했으면 결과물이 나와야 되니까 출력은 있어야겠죠.
如果没有输出,那确实有点奇怪。既然做了某件事,就应该有结果,所以必须要有输出。
그리고 그 명백성은 당연히 명백해야죠. 모호하다는 거는 컴퓨터한테는 할 수 없는 일인 것과 마찬가지 상황이 됩니다.
而且这种明确性当然必须是明确的。对于计算机来说,模糊就意味着无法执行,这种情况是无法接受的。
그리고 유한성 유한성은 한정된 수의 명령어가 실행된 후 반드시 종료할 것 요 종료라는 부분에 좀 포커스를 맞춰주시기 바랍니다.
并且关于有限性,有限性意味着经过有限数量的指令执行后必须终止。请您特别关注这个终止部分。
종료가 돼야 됩니다.
必须要终止。
Attendees 1 11:14
与会者 1 11:14
무슨 알고리즘이든 어떤 식으로든지 종료가 돼야 돼요.
无论什么算法,都必须以某种方式结束。
무한히 반복되는 거는 그거는 좀 뭔가 문제가 될 수 있습니다.
无限重复确实可能会引起一些问题。
그리고 유효성 실행이 가능한 연산이 돼야죠. 실행이 가능하지 않은 연산은 말이 안 됩니다.
而且这个操作必须是可以有效执行的。不可执行的操作是没有意义的。
이 유효성이라는 말이 여러분 그냥 단순하게 무한대 그러니까 어떤 숫자로 치면은 무한대 값 같은 거 그다음에 컵에 담겨 있는 물의 개수를 세라 이런 얼토당토하는 문제만을 뜻하는 말이 아닙니다.
这个有效性的概念并不仅仅是简单地指无限大,也就是说类似于某个数字的无穷大值,或者让你数一数杯子里的水有多少这种荒谬的问题。
컴퓨터는 우리가 생각할 때 컴퓨터 내부에는 유한한 수를 가지고 있습니다.
计算机在我们思考时,内部只有有限的数值。
우리는 우리가 생각할 때 우리는 숫자의 최고 숫자는 무한대 이렇게 얘기도 하고 그다음에 유씨 백 천만 10만 100만 억 10억 100억 조경 이렇게 쭉 나가는데 우리는 숫자에 대해서 어떤 한계나 제한을 두지는 않죠.
当我们思考数字时,我们会谈论无限大,然后依次说道 1 万、10 万、100 万、1 亿、10 亿、100 亿、兆、京等等,对于数字我们基本上不设置任何限制或边界。
근데 컴퓨터는 숫자의 한계와 제한이 존재합니다.
但是,计算机是存在数字限制和边界的。
Attendees 1 12:29
参会人员 1 12:29
예를 들어서 간단하게 짧게 짧은 아주 아주 단순하게 예를 들면은 만약에 16비트의 수를 가지고 있는 컴퓨터다 그러면은 16비트가 너무 크군요.
举个简单的例子,比如说,如果是一台拥有 16 位数的计算机,那么 16 位看起来就太大了。
4비트의 수를 가지고 있는 컴퓨터다. 그러면은 그 컴퓨터는 0에서부터 15까지의 10진수로 치면은 0에서부터 15까지의 숫자만 가지고 있습니다.
这是一台拥有 4 位数的计算机。那么这台计算机只能表示从 0 到 15 的十进制数字。
또는 마이너스 8에서부터 7까지의 숫자를 가지고 있어요.
或者说它可以表示从负 8 到正 7 的数字。
총 16개의 숫자를 갖고 있다는 얘기입니다. 0에서부터 15까지 또는 마이너스 8에서부터 7까지의 숫자만 갖고 있기 때문에 이런 숫자를 가지고 있는 컴퓨터한테 100 더하기 100을 해라 이거는 실행할 수가 없습니다.
总共有 16 个数字。因为只拥有从 0 到 15 或者从负 8 到 7 的数字,所以让这台电脑执行 100 加 100 这样的计算是不可能的。
자기가 가지고 있는 숫자의 범위를 벗어나기 때문에 100이라는 숫자는 이 컴퓨터 세계에는 존재하지 않는 숫자거든요.
因为超出了它所拥有的数字范围,100 在这个计算机世界中就是一个不存在的数字。
이제 그런 얘기도 이 유효성 실행 가능한 연산일 것이라는 말에 포함이 되는 겁니다.
现在这种说法也包含在这个有效性可执行的运算中。
우리 컴퓨터 프로그램 할 때 간혹 가다가 그런 부분에 대해서 문제가 발생하는 경우가 있거든요.
在我们编写计算机程序时,有时会出现这种问题。
Attendees 1 13:41
参会人员 1 13:41
이런 부분이 있다는 것도 한번 좀 체크를 해 두시기 바랍니다.
我希望你也能检查一下这部分内容。
알고리즘은 기본적으로 크게 두 가지 방법으로 기술을 한다라고 우리 교재에는 정리를 해놨습니다.
我们的教材总结道,算法基本上主要有两种描述方式。
물론 이 외에도 알고리즘을 기술하는 방법은 다양히 있겠지만 이제 기본적인 기본적인 인문 과정에서 하는 기본적인 물론 꼭 인문은 아니지만 많은 사람들이 사용을 하고는 있습니다.
当然,除此之外还有很多描述算法的方法,但这些是在基础课程中常用的方法,虽然不仅限于人文学科,但很多人都在使用。
기본적인 두 가지 방법을 제시를 했습니다. 하나는 순서도고 하나는 의사 코드 또는 유사 코드라고 부르는 겁니다.
我提出了两种基本方法。一种是流程图,另一种是我们称之为伪代码或类似代码的方法。
의사 코드 유사 코드는 우리 프로그램 하기 전에 이렇게 메모하듯이 끄적끄적대는 그런 것들도 이 인사 코드에 해당이 될 거고요.
伪代码类似代码是指在我们编程之前,像是记笔记一样随意涂写的内容,这些也属于伪代码的范畴。
그다음에 그 의사 코드처럼 좀 이렇게 끄적끄적 되는 것도 어느 정도 이렇게 순서도처럼 정리를 좀 해가면서 보게끔 볼 수 있게 하는 것이 순서도가 되겠죠.
接下来,就像伪代码那样,可以像流程图那样整理一下,让我们能够以这种方式查看内容,这就是流程图。
Attendees 1 14:43
与会者 1 14:43
의사 코드든 순서도든 또는 그 외에 어떤 것이든 알고리즘을 기술하는 방법은 있겠지만 본인이 편한 거 본인이 사용하기 좋고 기록하기 좋은 방식으로 선택해서 쓰면 되겠습니다.
无论是用伪代码、流程图还是其他任何方式描述算法,选择一种对自己来说最舒适、最容易使用和记录的方式就可以了。
이거는 먼저 우리 두 가지 중에 순서도에 대해서 얘기를 한번 해볼까요?
我们先来谈谈这两种方式中的流程图吧?
순서도는 영어로는 플로그 차트라는 말 흐름도 순서도 이렇게 표현을 하고 있습니다.
流程图在英语中称为"flowchart",也可以叫做流程图或顺序图。
몇 가지 그림 기호를 사용해서 화살표로 연결을 해가면서 그림 기호마다 또 어떤 의미를 가지고 있죠?
我们使用几种图形符号,并用箭头连接它们,每个图形符号都有其特定的含义。
마른 목걸 그리고 동그라미 사각형 이런 여러 가지 기호를 사용해서 각각의 의미를 두고 그 안에 있는 항목 항목이 뭐를 뜻하는지 가시적으로 좀 표현도 가능하게끔 그래서 직관적으로도 어느 정도 알 수 있게끔 그렇게 기호로 사용을 하고 있습니다.
通过使用各种符号,如干线和圆圈、方形等,我们可以为每个符号赋予特定的含义,并直观地表示其中的每个项目的具体含义,从而让人能够直观地理解。
그리고 이 순서도 같은 경우는 이제 아무래도 좀 단순한 표현 방법이다 보니까 그리고 또 이렇게 전체적으로 순서도가 전체적으로 흐름을 봤을 때 순차 구조를 가지고 있게 되죠.
而对于这种流程图,由于其表现方式相对简单,当我们整体审视流程图时,它通常呈现出顺序结构。
Attendees 1 16:01
与会者 1 16:01
그러다 보니까 이제 변경을 하려면은 이 순차 구조의 변경은 사실 전체의 순서를 다 검토를 해야 되는 또는 수정을 해야 되는 상황이 생길 수가 있기 때문에 변경이 좀 어렵다는 거 그런 부분들이 단점으로는 있지만은 이걸 이런 거를 굳이 단점이라고 얘기를 한다는 거는 조금 조금 좀 빡빡하죠.
因为这样的话,如果要进行变更,就需要检查或修改整个顺序结构,所以变更会变得比较困难。虽然这些可以说是缺点,但说这些是缺点似乎又有点太过苛刻了。
그런 게 있고요. 그다음에 의사 코드 이거는 이제 우리 프로그램 직접적으로 하기 전에 어떤 식으로 해야지 이렇게 계획 잡듯이 쓰는 거니까요.
就是那样。接下来,伪代码是在我们直接编程之前,就像制定计划一样,描述应该如何进行。
이거는 꼭 이렇게 어떤 용어적인 정의가 아니더라도 우리 많이 사용을 하고 있습니다.
即便不是严格的术语定义,我们也经常使用这种方法。
clovanote.naver.com