You are on page 1of 26

창의적컴퓨팅

2024 1학기
CUL0011 첫 번째 강의
계산적 사고
오늘의 수업 내용

❖계산적 사고(Computational Thinking)


❖추상화(Abstraction)
❖알고리즘(Algorithm)

3
계산적 사고

❖계산적 사고는 주어진 문제를 컴퓨터로 해결하는 방법


▪ 즉, 컴퓨터 프로그램을 통해 입력으로부터 원하는 출력을 만들어내는 것
▪ 예를 들어, 210이 주어지면, 결과를 계산하는 컴퓨터 프로그램을 만드는 것
❖입출력 사이의 블랙 박스를 만드는 방법을 학습하는 것이 이 수업의
초점임

입력 Black Box 출력

4
컴퓨터와 이진법 (1/3)

❖컴퓨터 주요 부품인 CPU, 메모리, SSD 모두 트랜지스터로 만들어짐


❖트랜지스터는 전기가 흐르는 상태를 ‘1’, 흐르지 않는 상태를 ‘0’으로
나타내며, 이러한 두 가지 상태를 만드는 전기 스위치임
❖컴퓨터는 두 개의 상태(0과 1)를 사용하는 이진법으로 작동함

*http://www.michaelsharris.com/electronics/images/animtransitorswtch.gif 5
컴퓨터와 이진법 (2/3)

❖사람은 0부터 9까지 10개의 숫자를 사용하는 ‘십진법(Decimal)’으로


숫자를 표현하고 계산함
❖이에 반해, 컴퓨터는 0과 1의 숫자 2개만 사용하는 ‘이진법(Binary)’
으로 모든 데이터를 표현하고 계산함

6
컴퓨터와 이진법 (3/3)

❖N개의 비트로는 0부터 2N-1까지 2N개의 숫자가 표현 가능함


▪ 예를 들어, 3비트는 0부터 23-1(= 7)까지 8개 숫자를 표현할 수 있음
❖십진수를 이진수로 바꾸려면 2의 거듭제곱으로 분해해야 하며, 예
를 들어 7은 22 + 21 + 20 (= 4 + 2 + 1)가 되므로, 최소 3비트가 필요함

7
이진수와 십진수 (1/8)

4 2 1

이진수 0 0 0

십진수 0
8
이진수와 십진수 (2/8)

4 2 1

이진수 0 0 1

십진수 1
9
이진수와 십진수 (3/8)

4 2 1

이진수 0 1 0

십진수 2
10
이진수와 십진수 (4/8)

4 2 1

이진수 0 1 1

십진수 3
11
이진수와 십진수 (5/8)

4 2 1

이진수 1 0 0

십진수 4
12
이진수와 십진수 (6/8)

4 2 1

이진수 1 0 1

십진수 5
13
이진수와 십진수 (7/8)

4 2 1

이진수 1 1 0

십진수 6
14
이진수와 십진수 (8/8)

4 2 1

이진수 1 1 1

십진수 7
15
문자 (1/3)

❖문자도 숫자와 동일하게 2진법으로 표현함


❖문자 → 숫자의 연결을 위해 8비트 ASCII 표준이 만들어짐
▪ 미국 정보 교환 표준 부호(American Standard Code for Information Interchange)
▪ 예를 들어, 문자 A는 숫자 65에 대응하는 것으로 정의됨

16
문자 (2/3)

❖문자가 입력되면 컴퓨터는 이를 ASCII 코드로 해석함


▪ 예를 들어, ‘HI!’가 입력되면 ASCII 코드를 사용하여 이를 각각 숫자 72, 73,
33으로 해석한 후, 다시 이진수로 변환

H I !
72 73 33

17
문자 (3/3)

❖8비트 ASCII로는 256개 문자만 표현 가능하여, 한글, 한자 등 다양한


문자를 표현하기에는 부족하므로 유니코드 표준이 등장함
❖유니코드는 비트 수를 2배로 확장하며, 16비트로 문자를 표현함
❖더 많은 문자와 이모티콘들이 유니코드에 추가되고 있음

<이모티콘> <유니코드와 한글> <유니코드로 표현한 ‘한글’>

18
색상

❖색상 또한 2진법으로 나타내는데, Red(빨강), Green(녹색), Blue(파랑)


을 나타내는 3개 숫자의 조합(RGB)으로 구성됨
▪ 색상은 한 점(Pixel)을 나타냄
▪ 세가지 색 각각의 강도를 8비트(0~255)로 조절하여 색을 표현함
❖예를 들어, 72, 73, 33으로 RGB 색상을 표현하면 아래와 같이 어두운
노란색이 만들어짐

19
멀티미디어

❖이미지는 점의 집합이므로, 결국 RGB값의 집합임


❖비디오는 연속된 이미지의 집합임
▪ 예) 플립 북(Flipbook)
❖음악도 숫자로 표현되며, MIDI Data로
표현될 수 있음
▪ 주파수 값(초당 Hz) → MIDI 숫자

20
추상화

❖문제 해결에 있어서의 블랙 박스: 추상화

입력 추상화 출력

21
복잡도(Complexity)와 추상화 (1/2)
❖프로그래밍은 문제가 간단하고 프로그램이 작을수록 쉬움
▪ 복잡도는 프로그래밍의 적
▪ 추상화는 복잡도를 정복하기 위한 열쇠임
❖추상화
▪ 중요한 부분을 강조하기 위해 불필요한 세부 사항은 제거
▪ 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순화
❖추상화의 예
▪ 자동차의 사용자 인터페이스: 오른쪽 페달 → ‘가속’, 왼쪽 페달 → ‘감속’
➢ 자동차 내부의 세부적인 것들은 알 필요가 없음
➢ 자동차 종류(가솔린차, 전기차)가 바뀌더라도 일반화된 내용은 바뀌지 않음
22
복잡도(Complexity)와 추상화 (2/2)

❖컴퓨터 프로그램을 블랙 박스로 생각하면 됨


▪ 세부적인 것은 볼 필요가 없으며, 보기도 원하지 않음
➢예를 들어, 윈도우 계산기 코드를 몰라도 사용 가능
▪ 일반적으로 프로그램은 자신 혹은 타인의 프로그램을
조합하여 만들게 되나 그 내용은 공개되지 않음
❖함수 명세(Specification)로 추상화를 달성할 수 있음
▪ 예) 페달 기능
➢입력: 오른쪽 → 가속됨
➢입력: 왼쪽 → 감속됨

23
추상화의 예

❖인사하는 기능을 추상화

<기본 코드>

<함수를 통해 추상화된 코드>

24
알고리즘

❖문제 해결에 있어서의 블랙 박스: 알고리즘


▪ 알고리즘이란 문제 해결을 위한 단계별 지침

입력 알고리즘 출력

25
수고하셨습니다!

26

You might also like