중간고사 내용


Chapter 01 소프트웨어와 스크래치

  1. Hardware (하드웨어) = 눈으로 보고 만질 수 있는 딱딱한 물건
  2. Software (소프트웨어) = 눈으로 보거나 만질 수 없는 프로그램이나 애플리케이션 (소프트웨어는 하드웨어의 상대적 개념입니다.)
  3. System software (시스템 소프트웨어) = 하드웨어를 제어합니다.
  4. Application software (응용 소프트웨어) = 시스템 소프트웨어의 도움을 받습니다.
  5. User (사용자)가 응용 소프트웨어를 사용합니다.
  6. Program (프로그램) = 컴퓨터에 어떤 일을 시킬 때 수행해야 할 일
  7. Programmer (프로그래머) = 프로그램을 만드는 사람
  8. Programming (프로그래밍) = 프로그램을 만드는 행위
  9. Programming language (프로그래밍 언어) = 프로그램을 적을 때 사용하는 언어 (C, Python, …)
  10. Machine language (기계어) = 0과 1로 이루어진 언어만
  11. Assembly language (어셈블리어) = 어셈블러가 기계어로 변환되고 사람 읽을 수 있는 어
  12. Low-level programming language (저급 프로그래밍 언어) = 기계어와 어셈블리어
  13. High-level programming language (고급 프로그래밍 언어) = 기계어 프로그래밍의 어려움을 극복하고자 일상 언어와 기호를 사용하는 프로그래밍 언어 (C, Python, …)
  14. Sprite (스프라이트) = 스크래치에서 사용하는 모든 것 (여러가지 행동, 동작)
  15. Stage (무대) = 스프라이트가 움직이는 배경 (여러가지 배경)

목차로 돌아가기


Chapter 02 블록 사용법 익히기

  1. Block (블록) = 스크래치에서 사용하는 모든 것 (여러가지 행동, 동작)
  2. Script (스크립트) = 블록을 연결하여 만든 프로그램
  3. 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 (빅오 표기법) = 알고리즘을 실행하는 데 필요한 시간을 표기하는 방법

목차로 돌아가기