중간고사 내용
Chapter 01 소프트웨어와 스크래치
- Hardware (하드웨어) = 눈으로 보고 만질 수 있는 딱딱한 물건
- Software (소프트웨어) = 눈으로 보거나 만질 수 없는 프로그램이나 애플리케이션
(소프트웨어는 하드웨어의 상대적 개념입니다.)
- System software (시스템 소프트웨어) = 하드웨어를 제어합니다.
- Application software (응용 소프트웨어) = 시스템 소프트웨어의 도움을 받습니다.
- User (사용자)가 응용 소프트웨어를 사용합니다.
- Program (프로그램) = 컴퓨터에 어떤 일을 시킬 때 수행해야 할 일
- Programmer (프로그래머) = 프로그램을 만드는 사람
- Programming (프로그래밍) = 프로그램을 만드는 행위
- Programming language (프로그래밍 언어) = 프로그램을 적을 때 사용하는 언어 (C, Python, …)
- Machine language (기계어) = 0과 1로 이루어진 언어만
- Assembly language (어셈블리어) = 어셈블러가 기계어로 변환되고 사람 읽을 수 있는 어
- Low-level programming language (저급 프로그래밍 언어) = 기계어와 어셈블리어
- High-level programming language (고급 프로그래밍 언어) = 기계어 프로그래밍의 어려움을 극복하고자 일상 언어와 기호를 사용하는 프로그래밍 언어 (C, Python, …)
- Sprite (스프라이트) = 스크래치에서 사용하는 모든 것 (여러가지 행동, 동작)
- Stage (무대) = 스프라이트가 움직이는 배경 (여러가지 배경)
목차로 돌아가기
Chapter 02 블록 사용법 익히기
- Block (블록) = 스크래치에서 사용하는 모든 것 (여러가지 행동, 동작)
- Script (스크립트) = 블록을 연결하여 만든 프로그램
- Event (이벤트) = 스크래치 프로그램이 실행되는 시점
스크래치 블록의 종류
- Motion (동작) = 스프라이트의 위치와 방향을 바꾸는 블록
- Looks (형태) = 스프라이트의 모양과 소리를 바꾸는 블록
- Sound (소리) = 스프라이트의 소리를 바꾸는 블록
- Events (이벤트) = 스프라이트의 이벤트를 만드는 블록
- Control (제어) = 스프라이트의 반복과 선택을 만드는 블록
- Sensing (감지) = 스프라이트의 감지를 만드는 블록
- Operators (연산) = 스프라이트의 연산을 만드는 블록
- Variables (변수) = 스프라이트의 변수를 만드는 블록
- My Blocks (내 블록) = 스프라이트의 블록을 만드는 블록
스크래치 블록의 형태
- Statement block (문장 블록) = 제어 블록
- Variable block (변수 블록) = 변수 블록
- Condition block (조건 블록) = 연산 블록
- Control block (제어 블록) = 제어 블록
- Event block (이벤트 블록) = 이벤트 블록
- Procedural block (절차 블록) = 제어 블록
목차로 돌아가기
Chapter 03 스프라이트 사용법 익히기
- Vector graphics (벡터 그래픽스) = 점과 선을 이용하여 그림을 그리는 방식
- Raster (bitmap) graphics (래스터(비트맵) 그래픽스) = 점을 이용하여 그림을 그리는 방식
- 무대 크기 = 480 x 360 (가로 x 세로)
- 무대 중심 = (0, 0) - x값은 왼쪽이 -240, 오른쪽이 +240, y값은 위쪽이 +180, 아래쪽이 -180
스프라이트를 모양이 바꾸고 싶다면:
- 중심 좌표(x좌표, y좌표) 변경
- 바라보는 방향을 기준으로 전진 또는 후진,
- 마우스 포인터 위치로 이동,
- 다른 스프라이트가 있는 위치로 이동,
- 무작위 위치로 이동 등을 통해 구현할 수 있습니다.
- 회전하기
- 왼쪽/오른쪽으로 돌기
- 회전하지 않기
특별한 블록
- Sound (소리) = 스프라이트의 소리를 바꾸는 블록 (악기, 음높이, 음정, 박자, 음량)
- TTS (Text To Speech) = 스프라이트가 말하는 블록 (언어, 음량, 음성)
- Pen (펜) = 스프라이트의 펜을 바꾸는 블록 (색깔, 굵기, 투명도, 펜 내리기, 펜 올리기, 펜 색깔, 펜 굵기, 펜 투명도)
- Stamp (도장) = 스프라이트의 도장을 찍는 블록
목차로 돌아가기
Chapter 04 자료형과 연산, 변수 익히기
- Data type (자료형) = 변수에 저장할 수 있는 값의 종류
- Simple data type (단순 자료형) = 하나의 값만 저장할 수 있는 자료형
- Variable (변수) = 값을 저장하는 공간
- Integer (정수) = 소수점이 없는 숫자
- Real number (실수) = 소수점이 있는 숫자
- Character (문자) = 알파벳, 숫자, 기호 등
- String (문자열) = 문자의 나열
- Boolean (부울) = 참과 거짓
- Structured data type (구조적 자료형) = 여러 개의 값을 저장할 수 있는 자료형
- Array (배열) = 같은 자료형의 변수를 여러 개 모아 놓은 것
- List (리스트) = 다른 자료형의 변수를 여러 개 모아 놓은 것
- Scope (범위) = 변수가 유효한 범위
- Local variable (지역 변수) = 함수 내에서 선언된 변수
- Global variable (전역 변수) = 함수 외부에서 선언된 변수
- Comment (주석) = 프로그램의 실행에 영향을 주지 않는 설명
목차로 돌아가기
Chapter 05 조건과 문장 제어 익히기
- Condition (조건) = 참과 거짓을 판단하는 것
- Statement (문장) = 프로그램을 실행하는 최소 단위
- Sequence (순차) = 문장을 순서대로 실행하는 것
- Repetition (반복) = 문장을 반복적으로 실행하는 것
- Iteration (반복) = 반복을 의미하는 말
- Selection (선택) = 조건에 따라 문장을 선택적으로 실행하는 것
- Nested execution (중첩 실행) = 반복과 선택을 중첩적으로 실행하는 것
- Loop (루프) = 반복을 의미하는 말
논리식 표현
- Comparison operator (비교 연산자) = 두 개의 값을 비교하는 연산자
- Equality (같음 ==) = 두 개의 값이 같으면 참
- Inequality (다름 !=) = 두 개의 값이 다르면 참
- Greater than (크다 >) = 왼쪽 값이 오른쪽 값보다 크면 참
- Less than (작다 <) = 왼쪽 값이 오른쪽 값보다 작으면 참
- Greater than or equal to (크거나 같다 >=) = 왼쪽 값이 오른쪽 값보다 크거나 같으면 참
- Less than or equal to (작거나 같다 <=) = 왼쪽 값이 오른쪽 값보다 작거나 같으면 참
- Logical operator (논리 연산자) = 논리식을 만드는 연산자
- 논리합 (OR V) = 두 개의 논리식 중 하나라도 참이면 참
- 논리곱 (AND ^) = 두 개의 논리식이 모두 참이면 참
- 논리부정 (NOT ~) = 논리식의 참과 거짓을 반대로 바꿈
- Iterative statement (반복문) = 조건이 참인 동안 반복적으로 실행하는 문장
- while 문 = 조건이 참인 동안 반복적으로 실행하는 문장
- do-while 문 = 조건이 참인 동안 반복적으로 실행하는 문장
- for 문 = 조건이 참인 동안 반복적으로 실행하는 문장
- until 문 = 조건이 참이 될 때까지 반복적으로 실행하는 문장
- Conditional statement (조건문) = 조건에 따라 문장을 선택적으로 실행하는 문장
- if 문 = 조건이 참이면 문장을 실행하는 문장
- if-else 문 = 조건이 참이면 문장을 실행하고, 거짓이면 다른 문장을 실행하는 문장
- if-elif-else 문 = 여러 개의 조건을 차례로 검사하여 참인 조건에 해당하는 문장을 실행하는 문장
- Nested execution (중첩 실행) = 반복과 선택을 중첩적으로 실행하는 것
목차로 돌아가기
Chapter 06 프로시저(함수)와 병렬 처리 익히기
프로시저의 개념
- Procedure (프로시저) = 프로그램을 실행하는 데 필요한 문장들을 모아 놓은 것
- Function (함수) = 프로그램을 실행하는 데 필요한 문장들을 모아 놓은 것
- Parameter (매개변수) = 함수를 실행하는 데 필요한 값
- Argument (인자) = 함수를 실행하는 데 필요한 값
- Return value (반환값) = 함수를 실행한 결과
- Call (호출) = 함수를 실행하는 것
- Call by value (값에 의한 호출) = 함수를 실행할 때 인자의 값을 복사하여 전달하는 것
- Call by reference (참조에 의한 호출) = 함수를 실행할 때 인자의 주소를 전달하는 것
- Recursion (재귀) = 함수가 자기 자신을 호출하는 것
- Parallel execution (병렬 실행) = 여러 개의 문장을 동시에 실행하는 것
- Multi-tasking (멀티태스킹) = 여러 개의 프로그램을 동시에 실행하는 것
- Multi-threading (멀티스레딩) = 여러 개의 스레드를 동시에 실행하는 것
목차로 돌아가기
Chapter 07 컴퓨팅 사고력과 프로그래밍
Computational Thinking (컴퓨팅 사고력)
- Abstraction (추상화) = 복잡한 문제를 단순화하는 것
- Generalization (일반화) = 문제를 해결하는 과정에서 발견한 패턴을 일반적인 형태로 표현하는 것
- Parameterization (매개변수화) = 문제를 해결하는 과정에서 발견한 패턴을 매개변수로 표현하는 것
- Decomposition (분해) = 복잡한 문제를 작은 문제로 나누는 것
- Modularization (모듈화) = 문제를 해결하는 과정에서 발견한 작은 문제를 함수로 정의하는 것
- Hierarchy (계층화) = 문제를 해결하는 과정에서 발견한 작은 문제를 계층적으로 정의하는 것
- Information hiding (정보 은닉) = 문제를 해결하는 과정에서 발견한 작은 문제를 함수로 정의할 때 필요한 정보만을 제공하는 것
- Cohesion (응집도) = 문제를 해결하는 과정에서 발견한 작은 문제를 함수로 정의할 때 관련된 정보만을 제공하는 것
- Coupling (결합도) = 문제를 해결하는 과정에서 발견한 작은 문제를 함수로 정의할 때 다른 함수와의 관계를 최소화하는 것
- Pattern recognition (패턴인식) = 문제를 해결하는 과정에서 반복되는 패턴을 찾는 것
- Algorithm (알고리즘) = 문제를 해결하는 절차
- Input (입력) = 문제를 해결하는 데 필요한 정보
- Output (출력) = 문제를 해결한 결과
- Definiteness (명확성) = 각 단계가 명확하게 정의되어야 함
- Finiteness (유한성) = 유한한 단계 내에 종료되어야 함
- Effectiveness (효과성) = 각 단계는 실행 가능한 연산이어야 함
- Flowchart (플로우차트) = 알고리즘을 도형으로 표현한 것
- Pseudocode (의사코드) = 알고리즘을 프로그래밍 언어의 문법에 맞추어 표현한 것
- Time complexity (시간 복잡도) = 알고리즘을 실행하는 데 필요한 시간
- Big-O notation (빅오 표기법) = 알고리즘을 실행하는 데 필요한 시간을 표기하는 방법
목차로 돌아가기