학습 점검
1. Jeannette Wing(2006)이 정의한 컴퓨팅 사고의 설명으로 가장 적절한 것은?
① 컴퓨터 언어를 유창하게 사용하는 능력
② 문제를 컴퓨터가 실행 가능한 방식으로 공식화하고 해결책을 표현하는 사고 과정
③ 프로그래밍 언어의 문법을 암기하는 것
④ 하드웨어 장치를 직접 조립하고 수리하는 기술
정답 ②. Wing(2006)은 컴퓨팅 사고를 “문제를 컴퓨터(또는 사람)가 효과적으로 실행할 수 있는 방식으로 공식화하고 그 해결책을 표현하는 사고 과정”으로 정의했습니다.
2. 컴퓨팅 사고와 프로그래밍의 관계를 올바르게 설명한 것은?
① 컴퓨팅 사고와 프로그래밍은 완전히 같은 개념이다
② 프로그래밍 없이는 컴퓨팅 사고를 연습할 수 없다
③ 컴퓨팅 사고는 사고 과정이고, 프로그래밍은 그것을 컴퓨터에 전달하는 수단이다
④ 프로그래밍을 잘 하면 컴퓨팅 사고는 필요 없다
정답 ③. 컴퓨팅 사고는 “어떻게 풀 것인가”를 정리하는 사고 과정이며, 프로그래밍은 그 생각을 코드로 표현하는 수단입니다. 둘은 구분됩니다.
3. 컴퓨터를 구성하는 두 가지 큰 요소는?
① 입력장치와 출력장치
② 하드웨어와 소프트웨어
③ CPU와 메모리
④ 운영체제와 응용프로그램
정답 ②. 컴퓨터는 물리적 장치인 하드웨어와 하드웨어를 작동시키는 명령어 집합인 소프트웨어로 구성됩니다.
4. 고급 프로그래밍 언어의 특징으로 옳은 것은?
① 컴퓨터가 바로 이해하는 0과 1로 이루어짐
② 기계어보다 실행 속도가 항상 빠름
③ 사람의 언어와 유사하며 배우기 쉽고 유지보수가 편리함
④ 하드웨어 장치를 직접 제어하는 데 가장 적합함
정답 ③. 고급 언어(C, Java, Python 등)는 인간의 언어에 가까워 가독성이 높고 배우기 쉬우며 유지보수가 용이합니다.
5. 소프트웨어 개발 6단계를 올바른 순서로 나열한 것은?
① 설계 → 문제 분석 → 프로그래밍 → 테스트 → 사용 → 유지보수
② 문제 분석 → 설계 → 프로그래밍 → 테스트 → 사용 → 유지보수
③ 프로그래밍 → 설계 → 문제 분석 → 테스트 → 유지보수 → 사용
④ 문제 분석 → 프로그래밍 → 설계 → 테스트 → 사용 → 유지보수
정답 ②. 올바른 순서는 문제 분석(무엇을) → 설계(어떻게) → 프로그래밍(구현) → 테스트(검증) → 사용(배포) → 유지보수(개선)입니다.
6. 소프트웨어 개발 단계 중 컴퓨팅 사고가 가장 직접적으로 활용되는 단계는?
① 1단계: 문제 분석
② 2단계: 설계
③ 4단계: 테스트
④ 6단계: 유지보수
정답 ②. 설계 단계에서 알고리즘을 구체화하고 문제를 쪼개는 과정이 컴퓨팅 사고의 핵심 적용 단계입니다.
7. 컴퓨팅 사고의 4단계 중 “큰 문제를 작은 문제로 나누는 것”은?
① 패턴 인식
② 추상화
③ 문제 분해
④ 알고리즘
정답 ③. 문제 분해(Decomposition)는 복잡한 문제를 관리 가능한 작은 부분 문제로 나누는 단계입니다.
8. 마트에서 여러 물건을 살 때, 각각 “(수량) × (단가)”를 반복 계산한다는 공통 규칙을 발견하는 사고 단계는?
① 문제 분해
② 패턴 인식
③ 추상화
④ 알고리즘
정답 ②. 반복되는 공통 규칙이나 구조를 찾아내는 것이 패턴 인식(Pattern Recognition)입니다.
9. “총 가격 = Σ (수량ᵢ × 단가ᵢ)”처럼 구체적인 상황에서 일반화된 공식을 만드는 단계는?
① 문제 분해
② 패턴 인식
③ 추상화
④ 알고리즘
정답 ③. 추상화(Abstraction)는 불필요한 세부 사항을 제거하고 핵심만 남겨 일반적인 모델을 만드는 단계입니다.
10. 알고리즘(Algorithm)의 정의로 가장 적절한 것은?
① 프로그래밍 언어의 문법 규칙
② 컴퓨터 하드웨어 구동 방식
③ 특정 문제를 해결하기 위한 명확하고 순서가 있는 명령어의 집합
④ 데이터를 저장하는 자료구조
정답 ③. 알고리즘은 문제 해결을 위한 명확하고 유한하며 순서가 있는 절차 또는 명령어의 집합입니다.
11. 좋은 알고리즘이 갖춰야 할 요건으로 적절하지 않은 것은?
① 각 단계가 명확해야 한다 (명확성)
② 반드시 끝나야 한다 (유한성)
③ 같은 결과를 내는 것 중 더 자원을 많이 쓰는 것이 좋다 (비효율성)
④ 같은 결과를 내는 것 중 더 빠른 것이 좋다 (효율성)
정답 ③. 좋은 알고리즘은 명확성·유한성·효율성을 갖춰야 합니다. 자원을 더 많이 쓰는 것은 좋은 알고리즘의 요건이 아닙니다.
12. 순서도(flowchart)에서 조건 판단을 나타내는 도형은?
① 타원
② 직사각형
③ 마름모
④ 평행사변형
정답 ③. 마름모(다이아몬드)는 “예/아니오”로 분기하는 조건 판단을 나타냅니다.
13. 순서도에서 시작 또는 끝을 나타내는 도형은?
① 직사각형
② 마름모
③ 평행사변형
④ 타원(둥근 직사각형)
정답 ④. 타원(또는 양쪽이 둥근 직사각형)은 순서도에서 시작 또는 종료를 나타냅니다.
14. 다음 파이썬 코드에서 컴퓨팅 사고의 “패턴 인식”을 직접 구현한 부분은?
scores = [85, 92, 78, 96, 88]
count = 0
for s in scores:
if s > 90:
count += 1① scores = [85, 92, 78, 96, 88]
② count = 0
③ for s in scores: 와 if s > 90:
④ count += 1
정답 ③. 반복 패턴(for)과 조건 패턴(if)이 컴퓨팅 사고의 패턴 인식을 코드로 표현한 것입니다.
15. 1부터 100까지의 합을 구하는 두 방법 중 더 효율적인 것은?
① total = 0; for i in range(1, 101): total += i
② total = 100 * 101 // 2
③ 두 방법의 효율은 완전히 같다
④ 효율성은 결과가 다를 때만 비교할 수 있다
정답 ②. 방법 2는 수학 공식을 사용해 단 한 번의 계산으로 끝나므로, N이 아무리 커져도 같은 속도입니다. 방법 1은 N번 반복해야 합니다.
16. “함수(function)”는 컴퓨팅 사고의 어느 단계와 가장 직접적으로 관련되는가?
① 문제 분해
② 패턴 인식
③ 추상화
④ 알고리즘
정답 ③. 함수는 복잡한 처리를 하나의 이름으로 묶어 세부 사항을 숨기는 추상화의 대표적 도구입니다.
17. 다음 중 알고리즘을 표현하는 방법이 아닌 것은?
① 자연어(우리말 설명)
② 순서도(Flowchart)
③ 의사코드(Pseudocode)
④ 컴파일러(Compiler)
정답 ④. 컴파일러는 소스코드를 실행 가능한 형태로 변환하는 도구이며, 알고리즘 표현 방법이 아닙니다. 알고리즘은 자연어·순서도·의사코드로 표현합니다.
18. 소프트웨어 개발에서 “테스트(4단계)”는 누가 수행하는 것이 바람직한가?
① 반드시 소프트웨어를 만든 개발자가 직접 수행해야 한다
② 개발자가 아닌 다른 사람이, 최대한 다양한 환경에서 수행해야 한다
③ 사용자 배포 후 실제 사용 과정에서 자동으로 수행된다
④ 테스트 단계는 소규모 프로젝트에서는 생략 가능하다
정답 ②. 개발자 본인은 자신의 코드에 익숙해 실수를 놓치기 쉽습니다. 다른 사람이 다양한 환경에서 테스트해야 더 많은 오류를 발견할 수 있습니다.
19. 파이썬이 “인터프리터 방식” 언어라는 의미는?
① 소스코드 전체를 한 번에 기계어로 변환한 뒤 실행한다
② 소스코드를 한 줄씩 즉시 해석하고 실행한다
③ 기계어로 작성된 코드를 사람이 읽을 수 있게 변환한다
④ 실행 전에 반드시 컴파일 과정이 필요하다
정답 ②. 인터프리터(interpreter) 방식은 소스코드를 한 줄씩 즉시 해석·실행합니다. 파이썬이 이 방식을 사용하기 때문에 바로 실행 결과를 확인하기 편리합니다.
20. 컴퓨팅 사고를 적용한 문제 해결 방식으로 가장 적절한 것은?
① 문제를 확인하기 전에 프로그래밍 언어부터 선택한다
② 복잡한 문제는 나누지 않고 한 번에 해결한다
③ 문제를 작은 부분으로 나누고, 공통 패턴과 핵심 조건을 찾아 해결 절차를 설계한다
④ 실행 결과가 나오면 정확성이나 효율성은 검토하지 않는다
정답 ③. 컴퓨팅 사고는 문제 분해, 패턴 인식, 추상화, 알고리즘 설계를 활용하여 복잡한 문제를 이해하고 해결 가능한 절차로 표현하는 사고 과정입니다.