책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 초중고 소프트웨어 교육/코딩 > 중등
· ISBN : 9791188831456
· 쪽수 : 291쪽
· 출판일 : 2020-02-28
책 소개
목차
PREFACE iii
◆◆CHAPTER 1 컴퓨팅 사고와 소프트웨어 001
Section 1 4차 산업혁명의 이해 003
1.1 4차 산업혁명 시대의 도래 003
1.2 4차 산업혁명 기반 기술의 이해 004
1.2.1 빅데이터(Big Data) 004
1.2.2 인공지능(AI : Artificial Intelligence) 005
1.2.3 사물인터넷(Internet of Thing, IoT) 009
1.2.4 가상현실(Virtual Reality, VR) 010
1.2.5 증강현실(Augmented Reality, AR) 012
1.2.6 디지털 트윈(Digital Twin) 013
1.3 미래 직업 변화 트렌드와 필요 역량 014
1.3.1 기존 직업의 고부가가치화 014
1.3.2 직업의 세분화 및 전문화 015
1.3.3 융합형 직업의 증가 015
1.3.4 과학기술 기반의 새로운 직업 탄생 015
Section 2 디자인 씽킹과 컴퓨팅 사고 016
2.1 디자인 씽킹(Design Thinking) 016
2.1.1 Empathize : 공감하기 016
2.1.2 Define : 문제 정의하기 017
2.1.3 Ideating : 아이디어 도출하기 017
2.1.4 Prototype : 프로토타입 만들기 017
2.1.5 Test : 시험하기 018
2.2 컴퓨팅 사고(Computational Thinking) 018
2.2.1 컴퓨팅 사고의 특징 019
2.2.2 컴퓨팅 사고 증진을 위해 필요한 핵심 요소 020
Section 3 컴퓨팅 사고와 소프트웨어 024
3.1 소프트웨어의 이해 024
3.2 소프트웨어의 특징 025
3.3 소프트웨어의 역할 변화 026
3.3.1 소프트웨어의 과거 026
3.3.2 소프트웨어 중심 사회 026
● EXERCISE 029
◆◆CHAPTER 2 데이터의 표현과 소프트웨어 실행 031
Section 1 컴퓨터의 데이터 표현 033
1.1 디지털 컴퓨터와 데이터 033
1.2 문자의 표현 035
1.2.1 아스키(American Standard Code for Information Interchange, ASCII) 코드 035
1.2.2 유니코드(Unicode) 037
1.3 숫자의 표현 039
1.3.1 진법 표현 039
1.3.2 정수의 표현 041
1.3.3 실수의 표현 042
Section 2 프로그램 실행 045
2.1 컴퓨터와 소통하는 방법 045
2.1.1 인간의 언어로 컴퓨터와 소통하기 045
2.1.2 컴퓨터의 언어로 소통하기 046
2.1.3 인간과 컴퓨터만의 공통 언어로 소통하기 046
2.2 프로그래밍 언어의 분류 047
2.2.1 저급 언어(Low-level language) 047
2.2.2 고급 언어(High-level language) 048
2.2.3 프로그램 언어 발전과 종류 049
2.3 컴퓨터의 프로그램 실행 051
2.3.1 컴파일러(Compiler)를 이용하는 방식 052
2.3.2 인터프리터(Interpreter)를 이용하는 방식 052
2.3.3 하이브리드(Hybrid) 방식 052
Section 3 코딩 환경 구축과 사용 053
3.1 랩터(Raptor) 이해하기 053
3.2 랩터 설치하기 054
3.3 랩터 실행하기 055
● EXERCISE 057
◆◆CHAPTER 3 알고리즘과 프로그램 논리 059
Section 1 알고리즘과 절차 표현 061
1.1 알고리즘(Algorithm) 061
1.2 문제해결과 절차 표현 061
1.2.1 논리적인 절차의 표현 062
1.2.2 랩터 기반 순서도 063
Section 2 프로그램 논리 만들기 068
2.1 알고리즘 수립 과정 068
2.2 프로그램 논리 069
2.2.1 순서 논리 069
2.2.2 선택 논리 071
2.2.3 반복 논리 072
Section 3 문제 분해와 해결 074
● EXERCISE 075
◆◆CHAPTER 4 변수와 연산 077
Section 1 변수 이해하기 079
1.1 변수란? 079
1.1.1 식별자 080
1.1.2 변수의 선언과 초기화 081
Section 2 데이터의 계산 083
2.1 컴퓨터 프로그램에서의 수식 표현 083
2.1.1 “=” 연산자 083
2.1.2 연산자의 표현과 생략 084
2.1.3 문자 연산 085
2.2 순차 논리를 이용한 데이터의 계산 085
● EXERCISE 090
◆◆CHAPTER 5 선택 논리와 알고리즘 사고 103
Section 1 선택 논리와 관계 연산 105
1.1 선택 논리 105
1.2 관계 연산 105
1.2.1 단순 선택 106
1.2.2 이중 선택 107
1.2.3 다중 선택 107
Section 2 선택과 논리 연산 109
2.1 단순 선택문 109
2.2 이중 선택문 112
2.3 다중 선택문 117
Section 3 복합 조건과 선택 논리 122
3.1 복합 조건과 논리 연산자 122
● EXERCISE 128
◆◆CHAPTER 6 반복 논리와 알고리즘 사고 139
Section 1 단순한 반복 논리 141
1.1 반복 논리의 이해 141
1.2 반복문 141
1.2.1 횟수 중심의 반복문 142
1.2.2 조건 중심의 반복문 144
Section 2 반복 논리의 활용 146
Section 3 중첩 반복과 복합 논리 153
3.1 중첩 반복문 153
3.2 복합 논리 161
● EXERCISE 166
◆◆CHAPTER 7 함수와 알고리즘 사고 173
Section 1 함수의 개념 175
1.1 함수의 필요성 176
1.2 함수의 종류 177
Section 2 랩터의 프로시저 179
Section 3 라이브러리 함수 사용 190
3.1 기본 함수 190
● EXERCISE 196
◆◆CHAPTER 8 시뮬레이션과 코딩 205
Section 1 시뮬레이션 준비하기 207
1.1 시뮬레이션과 그래픽 207
1.2 랩터의 그래픽 프로그램 208
1.2.1 시작하기 208
1.2.2 그래픽 처리를 위한 프로시저 211
Section 2 물체의 등속 운동 및 자유낙하 운동 시뮬레이션 218
2.1 등속도 운동 시뮬레이션 218
2.2 자유낙하 운동 시뮬레이션 224
Section 3 물체의 포물선 운동과 시뮬레이션 227
3.1 여러 방향으로 움직이는 물체의 위치 값 227
3.2 포물선 운동 시뮬레이션하기 228
● EXERCISE 232
◆◆CHAPTER 9 데이터 관리와 문제해결 237
Section 1 데이터와 자료구조 239
1.1 자료구조의 이해 239
1.2 배열을 이용한 프로그램 240
1.2.1 배열(Array) 240
1.2.2 2차원 배열 244
Section 2 데이터의 탐색 249
2.1 탐색이란? 249
2.2 배열을 이용한 데이터 탐색 250
2.2.1 순차 탐색(Sequential Search) 250
2.2.2 이진 탐색(Binary Search) 253
Section 3 데이터의 정렬 257
3.1 정렬이란? 257
3.2 배열을 이용한 데이터 정렬 258
3.2.1 선택 정렬 258
3.2.2 버블 정렬 259
● EXERCISE 263
◆◆P R O J E C T 1 271
Project 1-1 피보치 수열 계산 273
1. 피보나치 수열 이해 273
2. 재귀 호출(Recursive call) 274
3. 재귀 호출을 이용한 피보나치 수열 계산 275
4. 재귀 호출을 사용하지 않는 피보나치 수열 계산 277
Project 1-2 하노이 탑 문제 해결 279
1. 하노이 탑 문제 이해 279
2. 하노이 탑 문제 해결하기 280
◆◆P R O J E C T 2 283
Project 2-1 동전 게임 285
Project 2-2 주사위 확률 계산 290
책속에서
3.1 랩터(Raptor) 이해하기
랩터는 문제 해결을 위해 순서도(Flowchart)에 기반한 비주얼 프로그래밍 개발 도구이다. 순서도는 컴퓨터에게 작업을 지시하는 명령어와 논리적 절차와 같은 알고리즘을
표현하는 방법 중 하나이다. 쉽고 간단한 도형으로 구성된 순서도를 통해 알고리즘을 표현하면 전체 알고리즘을 한눈에 파악할 수 있어 유용하다.
순서도는 주로 프로그램에 대한 아이디어를 구현하는 코딩을 위한 기초 자료가 될 뿐만 아니라 프로그램의 변경 및 기능 추가 등에 유용하게 활용할 수 있다. 더불어 구현을 위한 코딩을 실시하기 전에 구현하고자 하는 기능의 알고리즘 등에 논리적 오류가 없는지 사전에 검증할 수 있게 한다. 그러나 순서도는 사람이 이해하기 쉽도록 보조적 인 역할을 수행할 뿐 직접 실행을 통해 그 결과를 확인할 수는 없다.
랩터는 이러한 순서도를 작성하고 작성된 순서도를 컴퓨터에서 프로그램을 실행시킨 것과 거의 유사한 결과를 제공한다. 따라서 랩터를 이용하여 만들고자 하는 컴퓨터 프로그램의 알고리즘을 순서도로 표현하는 훈련을 통해 코딩 역량을 효과적으로 향상시 킬 수 있다. 특히 컴퓨팅 사고와 디자인 씽킹 등에서 아이디어의 구체화를 위해 순서도를 작성하는 것만으로도 실제 동작의 결과를 확인하고 문제점을 손쉽게 개선할 수 있다는 점에서 매우 유용하게 활용될 수 있다.
랩터는 단순화된 최소한의 구문만으로 프로그래밍 언어에서 제공하는 대부분의 기능을 구현할 수 있기 때문에 프로그램의 핵심 논리와 알고리즘을 수립하는 과정의 학습
이 가능하다. 또한 작성한 순서도의 진행 과정을 시각화된 방법으로 제공하여 알고리즘의 흐름을 이해하고 개선하는 과정의 학습에 도움을 주는 코딩 학습 도구이다. 이와
더불어 랩터는 작성한 순서도를 기반으로 C/C++, Java 등의 프로그래밍 언어로 작성된 코드를 자동으로 생성하는 기능도 내장하고 있다.
랩터는 미 공군에서 개발하였으며 전 세계 17개국 이상의 나라에서 프로그래밍 교육용 도구로 사용하고 있다.




















