본문 바로가기

B.1 · 컴퓨팅 사고력

국제바칼로레이트 · IB Diploma · Computer Science · SL · 주제 5

5.1

범위 및 전제 조건

지원 SL 집중. 첫 평가 2027 목표; 공식 PDF는 403 반환; 기존 확보 요약은 최종 평가 2026임. 남은 가이드, 평가 및 실습 요구사항은 기록된 상태 유지됨.

사전 요구사항: 명시된 양과 단위를 읽고, 산술 및 아래 모델 조건을 사용하십시오. 각 수업은 독립적 이전 전에 자체 방법을 개발합니다.

이는 실제 측정값이나 완성된 평가된 학습자 조사가 아닌, 원작 또는 명시적으로 허구적인 교육 예시입니다.

5.2

알고리즘, 추적 및 타당성 증거

이 관측을 설명할 수 있는 것은 무엇인가?

  • 알고리즘은 한 예제에서는 작동하지만 경계에서 실패할 수 있습니다. 테스트는 happy path뿐만 아니라 사양(specification)에 기반하여 설계되어야 합니다.
  • 예측을 먼저 제시하십시오. 비교하고자 하는 양이나 특성을 명시한 뒤, 두 설명을 구별할 수 있는 증거가 무엇인지 결정하십시오.

모델을 구축하시오

  • 알고리즘은 작업에 대한 유한하고 모호하지 않은 절차입니다. 트race는 상태 변경을 기록합니다. 루프 불변식(loop invariant)은 각 반복에서 유지되는 성질을 기술하며 correctness를 정당화하는 데 도움이 됩니다.
  • 알고리즘(algorithm): 명시된 과제를 해결하는 유한한 절차; 경계 테스트(boundary test): 허용된 입력 범위의 한계에서 수행되는 테스트.
알고리즘, trace 및 correctness 증거: 원본worked-case 다이어그램

이를 검증할 수 있는 증거를 선택하시오

  • 입력 조건과 예상 출력을 명시하십시오. 경계 사례, 허용되는 경우의 빈 집합, 중복 및 유효하지 않은 값을 사용하십시오. 잘못된 알고리즘을 잘못된 구현 또는 불완전한 요구 사항과 구분하십시오.
  • 작은 가상의 정렬된 목록에 대한 탐색을 추적하십시오. 인덱싱 관례를 명시하십시오. 이진 탐색의 경우 남은 구간이 줄어도록 범위를 업데이트하고, 정렬이 과제의 일부가 아닌 한 정렬되지 않은 입력은 거부하십시오.

알려진 양으로부터 시작하시오

  • 알려진 값과 그 단위를 명시하십시오. 이 사례에 가정이 부합하는 식을 선택한 후 대입하기前面으로 변형하십시오.
  • 알려진 사실: 8개 항목의 목록에 대한 일차 탐색은 찾는 항목이 마지막이거나 존재하지 않을 때 8번의 비교가 필요할 수 있습니다. 이 모델에서 목록 길이를 두 배로 늘리면最差情况의 비교 횟수도 두 배가 됩니다. 이진 탐색은 각 단계마다 구간을 약 절반으로 줄이지만 적절한 순서 구조가 필요합니다.

예시:

일차 탐색은 일치하는 14 항목 없이 모든 항목을 스캔합니다. 몇 번의 항목 비교가 발생합니까? 동일한 순서를 사용하십시오: 알려진 양 → 모델 → 관계 → 대입 → 단위 및 해석.


결론과 그 한계를 확인하시오

  • 성공적인 샘플 테스트는 모든 유효한 입력에 대해 정확성을 증명하지 않습니다. 교재 소스가 없는 한 Cambridge 특유의 가상어법 구문을 IB 과정에 도입하지 마십시오.
  • 원래 관찰로 돌아가십시오. 결과가 어떤 것을 지지하며, 어떤 조건을 전제로 하며, 경쟁 설명을 검증하는 방법 하나를 제시하십시오.

경고:

한 개의 성공적인 샘플 테스트가 모든 유효한 입력에 대해 알고리즘이 옳음을 증명합니다. 이 주장은 틀렸습니다: 성공적인 샘플 테스트는 모든 유효한 입력에 대해 정확성을 증명하지 않습니다. 교재 소스가 없는 한 Cambridge 특유의 가상어법 구문을 IB 과정에 도입하지 마십시오.

핵심:

알고리즘, 추적 및 정확성 증거: 입력 조건과 예상 출력을 명시하십시오. 경계 사례, 허용되는 경우의 빈 집합, 중복 및 유효하지 않은 값을 사용하십시오. 잘못된 알고리즘을 잘못된 구현 또는 불완전한 요구 사항과 구분하십시오.

가동성 추跡 및 경계

def first_index(values, target):
    for index, value in enumerate(values):
        if value == target:
            return index
    return -1
print(first_index([4, 7, 4], 4))
print(first_index([4, 7, 4], 9))
print(first_index([], 4))

기대 출력:

0
-1
-1

루프는 인덱스 0을 먼저 테스트하여 일치할 때 정지하고,列表 소진 후 −1만 반환. 중복인 경우 첫 번째 인덱스 반환. 빈列表는 루프 본문을 실행하지 않음.

English 한국어
algorithm/ˈælɡərɪθəm/ 알고리즘
boundary test/ˈbaʊndəri test/ 경계 테스트

국제바칼로레이트 · IB Diploma · Computer Science · SL 내 추가 주제

로그인 또는 계정 만들기

IGCSE, A-Level & AP