1. 컴퓨팅 사고 - 스크래치: 기초
*boostcourse의 '모두를 위한 컴퓨터 과학 (CS50 2019)' 코스 강의를 듣고 정리한 글입니다.
모든 내용, 이미지의 출처는 boostcourse의 해당 코스에 있습니다.
1. 스크래치란?
- MIT의 미디어 랩에서 만든 그래픽 언어 (scartch.mit.edu에서 사용 가능)
- 퍼즐 조각처럼 보이는 블럭들을 끌어 놓는 방식으로 연결시켜 컴퓨터가 무엇을 할 지 단계적으로 프로그래밍 함
2. 스크래치 편집기 화면 구성
(scartch.mit.edu에서 Create를 클릭하면 나오는 화면)
1) 여러 색으로 나누어진 퍼즐 조각들
2) 거대한 흰 캔버스
- 왼쪽의 퍼즐 조각들을 끌어당기고 서로 연결하여 프로그램을 만들 수 있음
3) 초록색 깃발/정지 버튼
- 각각 프로그램 실행/중단
4) 스테이지
- 2)번의 '화면의 중간'에서 프로그램을 만들면, 그에 따라 상하좌우로 움직이거나 다른 여러 일들을 할 수 있음
- 고양이 캐릭터 외에도, 다양한 요정과 캐릭터들을 여럿 추가할 수 있음
3. 스크래치 예제
- 이름을 물어봤을 때 대답하면, 인사 후 대답한 이름을 불러주는 프로그램
- 버그가 발생함
- 실행해 보면, 'Hello!'는 출력되지 않고 대답한 이름 'David'만 출력되는 것을 알 수 있음
-> 'Hello!'가 출력되었으나, 'David'가 연달아 출력되는 바람에 미처 볼 수 없었던 것
- 'Hello!'를 2초간 출력되게 한 후, 대답한 이름이 2초간 출력되도록 프로그램을 수정함
-> 'Hello!'가 출력되고, 대답한 이름 'David'가 출력되는 것을 알 수 있음
- 여전히, 자연스럽지 않은 프로그램
- 'Hello, [대답한 이름]'이 출력되도록 프로그램을 수정함
-> 'Hello, David(=대답한 이름)"이 출력됨
4. 알고리즘과의 관계성
- 알고리즘은 입력(input)에서 받은 자료를 출력(output)형태로 만드는 처리 과정을 뜻함
: Input -> Algorithms -> Output
- 스크래치가 알고리즘에 완벽하게 적용됨
1) 보라색 퍼즐 조각만을 이용해서 캐릭터가 'hello, world'를 말하게 하기
- Input = 'hello, world', Algorithms = 보라색 'say' 블록, Output = 캐릭터가 'hello, world'를 출력함
2) 하늘색 퍼즐 조각만을 이용해서 캐릭터가 이름을 물은 후 기다리게 하기
- Input = 'What's your name?', Algorithms = 하늘색 'ask and wait' 블록, Output = 하늘색 'answer' 블록
3) 보라색, 초록색, 하늘색 퍼즐 조각으로 'Hello, [대답한 이름]'을 말하게 하기
- Input = 'hello,'/하늘색 'answer' 블록, Algorithms = 초록색 'join' 블록, Output = 캐릭터가 'hello, [대답한 이름]'를 출력함