CHAPTER 01 4차 산업혁명과 컴퓨터
<필수 이론>
01 4차 산업혁명의 시대
02 소프트웨어 중심사회
03 다양한 산업 분야 속 소프트웨어
<스크래치 실습>
04 컴퓨터 활용 기초
05 스크래치 소개
06 스크래치 가입하기
CHAPTER 02 컴퓨터 동작의 이해
<필수 이론>
01 컴퓨터와 소프트웨어
02 컴퓨터 하드웨어
03 컴퓨터의 동작과정
04 2진수와 비트
Lab 2진수 이해하기
Lab 2진수 게임
<스크래치 실습>
05 스크래치 홈페이지 둘러보기
06 스크래치 에디터
07 스크래치 블록
Lab 날아가는 새
Lab 나만의 밴드 만들기
Lab 뮤직비디오 만들기
CHAPTER 03 컴퓨팅 사고의 이해
<필수 이론>
01 컴퓨터와 인간
02 컴퓨팅 사고의 정의
03 왜 우리는 컴퓨팅 사고를 배워야 하는가?
<스크래치 실습>
04 스크래치 블록
05 “동작” 블록
06 “제어”블록
07 “펜” 블록
Lab 터틀 그래픽 사용해서 그림 그리기
Lab 바나나를 먹자
CHAPTER 04 컴퓨팅 사고 단계
<필수 이론>
01 컴퓨팅적 사고의 단계
Unplugged Lab 가우스의 덧셈법
Lab 웹 사이트의 비밀번호 기억하기
<스크래치 실습>
02 스크래치 화면 구성
03 스프라이트 모양 변경하기
04 사운드 재생하기
05 배경 변경하기
06 그림 편집기
Lab 간단한 애니메이션 만들기
Lab 간단한 게임 만들기
Lab 간단한 시뮬레이션 만들기
CHAPTER 05 분해
<필수 이론>
01 분해의 개념
02 분해 적용하기
Lab 큐브 스티커 붙이기
Solution 큐브 스티커 붙이기
Lab 비봇 게임
Solution 비봇 게임
<스크래치 실습>
03 자료형과 연산
04 변수
Lab 성적 관리 프로그램 만들기
Lab 핑퐁 게임 만들기
CHAPTER 06 분할정복
<필수 이론>
01 분할 정복 알고리즘
Unplugged Lab 보물찾기
Solution 보물찾기
Unplugged Lab 이진 탐색
Unplugged Lab 범죄 해결
Solution 범죄 해결
Unplugged Lab 감금 증후군
Solution 감금 증후군
Unplugged Lab 잘못된 선물 골라내기
Solution 잘못된 선물 골라내기
Unplugged Lab 합병 정렬
Solution 합병 정렬
Unplugged Lab 이미지 압축
Lab 숫자 추측 게임
Lab 컴퓨터 조립 비용 계산하기
<스크래치 실습>
02 3가지의 기본 제어 구조
03 선택 구조
04 비교 연산자
Lab 짝수 홀수 구별하기
Lab 비밀 코드 맞추기 게임
05 중첩 if/else 블록
Lab 3개 중에서 가장 큰 수 찾기
06 논리 연산자
Lab 3개 중에서 가장 큰 수 찾기
CHAPTER 07 패턴 인식
<필수 이론>
01 패턴 인식이란 무엇인가?
Unplugged Lab 숫자 패턴
Solution 숫자 패턴
Unplugged Lab 늘어나는 좌석은 몇 개?
Solution 늘어나는 좌석은 몇 개?
Unplugged Lab 세일보트 그리기
Unplugged Lab 터틀 그래픽스
Solution 터틀 그래픽스
Unplugged Lab 물리학에서의 패턴 인식
Unplugged Lab 콜레라의 발병 원인 찾기
Unplugged Lab 구글 검색에서 잘못된 단어 검색
Unplugged Lab 하노이 탑 문제
Solution 하노이 탑 문제
Unplugged Lab 암호학에서의 패턴 인식
Unplugged Lab 빈도를 이용한 암호 해독
Unplugged Lab 빈도를 이용한 암호 해독
Lab 목걸이의 비용 계산
<스크래치 실습>
02 반복 구조
03 스크래치에서 문자열 처리
Lab 문자열 안의 “a” 개수 계산
Lab 문자열 조작
Lab 두더지 게임
Lab 암호학에서의 패턴인식
CHAPTER 08 추상화
<필수 이론>
01 추상화란 무엇인가?
02 특성이나 특징은 무엇인가?
03 추상화하는 방법
Unplugged Lab 수학에서의 추상화
Unplugged Lab 추상화의 예: TV
Unplugged Lab 추상화의 예: 영어 문법
Unplugged Lab StarLogo TNG
Unplugged Lab 이진수와 컴퓨터
Unplugged Lab 컴퓨터에서의 추상화 계층
Unplugged Lab 버스 경로 찾는 작업
Unplugged Lab 지도의 추상화
<스크래치 실습>
04 함수 만들기
05 함수 안에서 함수 호출하기
06 순환 호출의 예
07 순환의 예
Lab 앵그리 터틀 게임에서의 추상화
Lab 목걸이의 비용 계산
CHAPTER 09 알고리즘 I
<필수 이론>
01 알고리즘이란 무엇인가?
Unplugged Lab 수학적인 알고리즘
Unplugged Lab 유클리드 GCD 알고리즘
Unplugged Lab 이진 탐색 알고리즘
02 알고리즘의 기술
03 의사 코드
Lab 화씨 온도를 섭씨 온도로 변경하는 알고리즘
Lab 음료를 바꾸는 문제
04 3가지의 제어구조
Unplugged Lab 프린터 고장 수리 알고리즘
Lab 큰수 출력하기
Unplugged Lab 숙제하기 알고리즘
Unplugged Lab 전화걸기 알고리즘
Unplugged Lab 로봇 청소기 알고리즘
Solution 로봇 청소기 알고리즘
Lab 로봇 청소기 알고리즘
<스크래치 실습>
Lab 1부터 10까지 합계 계산하기
Lab 3-6-9 게임
Lab 팩토리얼 계산
Lab 유클리드 GCD 알고리즘
Lab 선을 따라서 움직이는 자동차
Lab 주차장 알고리즘
Lab 엘리베이터 알고리즘
CHAPTER 10 알고리즘 II
<필수 이론>
01 자료 구조란?
02 리스트
03 배열을 이용하는 알고리즘
04 정렬
05 이진 탐색 알고리즘
06 최단 거리 찾기 알고리즘
<스크래치 실습>
07 리스트
08 리스트 관련 블록
09 동적 리스트
Lab 막대 그래프 그리기
Lab 최소값 찾기
Lab 평균구하기
Lab 탐색
Lab 버블 정렬
Lab 이진 탐색
CHAPTER 11 멀티미디어 처리
<필수 이론>
01 컴퓨터에서 다양한 데이터 표현
02 텍스트 표현
03 텍스트 압축
Unplugged Lab 런길이 엔코딩의 압축률
Lab 런길이 엔코딩
Unplugged Lab 텍스트 압축
04 컴퓨터에서 이미지는 어떻게 표현될까?
Unplugged Lab 디지털 이미지 처리
05 이미지 압축
Lab 이미지 압축
Solution 이미지 압축
Lab 흑백 이미지 표현하기
Lab 흑백 이미지 저장하기
06 컴퓨터에서 사운드는 어떻게 표현될까?
07 사운드 압축
Unplugged Lab 사운드 데이터 변환
<스크래치 실습>
08 이벤트 구동 프로그래밍
Lab 이벤트 구동 사용하기
09 방송하기
Lab 메시지 방송 사용하기
CHAPTER 12 인공지능과 병렬 컴퓨팅
<필수 이론>
01 인공지능의 시대
02 탐색
Unplugged Lab Tic-Tac-Toe 게임트리
Lab Tic-Tac-Toe 게임트리
03 기계 학습이란?
04 병렬 처리란?
05 병렬 처리와 순차 처리
06 병렬 처리가 가능한 문제
Unplugged Lab 토너먼트 게임의 병렬화
Unplugged Lab 영상 처리
Solution 영상 처리
Lab 영상 처리
Unplugged Lab 원주율의 계산
Solution 원주율의 계산
Lab 원주율의 계산
07 파이프라이닝
Unplugged Lab 파이프라인 처리
Unplugged Lab 정렬 네트워크
Lab 정렬 네트워크
<스크래치 실습>
08 인터랙티브 스토리 작성
09 방송하기
10 배경 변경하기
Lab 배경 바꾸기
Lab 인터랙티브 스토리 만들기
CHAPTER 13 창의 게임 프로그래밍
<필수 이론>
01 이번 장에서 학습할 내용
02 약육강식 게임
03 미로 게임
04 탁구 게임
05 스크롤 게임
06 확장 기능
07 프로젝트 계획서 작성하기
08 프로젝트 스케치 작성하기
09 프로젝트 피드백
스크래치, 이것은 게임인가 프로그래밍 언어인가.
과거의 컴퓨터 교육은 주로 오피스와 같은 문서작성 프로그램의 사용법을 익히거나 프로그래밍 언어를 배워서 간단한 프로그램을 만드는 과정에 치중하였다. 하지만 최근에는 문제 해결 능력, 창의력, 사고력 등이 더 강조되고 있다. 우리는 필연적으로 컴퓨터와 친해질 수밖에 없는 시대에 살고 있다.
스크래치는 블록기반의 프로그래밍 언어라 초보자도 재미있게 학습할 수 있다. 마치 레고 조립을 하듯 블록을 끌어다가 배치하면 그에 맞춰 고양이가 춤을 추거나 야옹 소리를 낸다. 학습자의 의도대로 캐릭터가 즉시 움직이므로 논리력과 창의성을 기르는 데 적합하다. 또한 C나 JAVA 언어와 달리 진입 장벽이 낮아 연령에 상관없이 학습할 수 있다. 스크래치를 통해 게임하듯 프로그래밍 언어를 배우다 보면, 나만의 프로그램이 완성되어 있을 것이다.