| English | 의미 |
|---|---|
| notation/nəʊˈteɪʃn/ | 기호법 |
| structured English/ˈstrʌktʃəd ˈɪŋɡlɪʃ/ | 구조화 영어 |
| pseudocode/ˈsuːdəʊkəʊd/ | 가짜 코드 |
| flowchart/ˈfləʊtʃɑːt/ | 플로우차트 |
| stepwise refinement/ˈstepwaɪz rɪˈfaɪnmənt/ | 점진적 정교화 |
| logic statement/ˈlɒdʒɪk ˈsteɪtmənt/ | 논리 문장 |
| Boolean/ˈbuːlɪən/ | 부울 |
| precedence/ˈpresɪdəns/ | 우선순위 |
| De Morgan's law/də ˈmɔːɡənz lɔː/ | 데摩根의 법칙 |
첫 번째 알고리즘에는 작성할 언어가 없었습니다
- 1843년 아다 러벨레스는 빌리지의 분석 기계(Babbage's Analytical Engine)에서 베를누이 수를 계산하기 위한 단계를 출판했습니다. 이 기계는 실제로 제작되지 않았습니다.
- 프로그래밍 언어가 없었으므로 그녀는 연산들의 번호 매겨진 표로 알고리즘을 썼습니다. 이는 그녀의 고유의 표기법이었습니다.
- 모든 알고리즘은 여전히 그 방식으로 시작합니다. 어떤 표기法으로 작성한 후, 확인한 다음에야 코드화합니다.
- 이 수업은 시험에서 사용하는 세 가지 표기법, 그 사이를 이동하는 방법, 그리고 그 안에 있는 조건을 쓰는 방법에 대한 것입니다.
세 가지 표기법
- 구조화 영어: 일반적인 문장, 들여쓰기,
IF,FOR EACH,REPEAT와 같은 몇몇 고정된 단어 포함. 첫 번째 초안에 좋습니다. - 가짜코드: 키워드 표기법(
IF … ENDIF,WHILE … ENDWHILE,FOR … NEXT), 실제 코드에 가장 가까우며 캠브리지 가이드에 따라 채점됩니다. - 플로우차트: 표준 도형의 다이어그램. 라운드 직사각형은
START/STOP, 평행사각형은 입력 및 출력, 직사각형은 프로세스, 다이아몬드는 결정, 화살표는 흐름입니다.

표준 도형을 사용하여 숫자 목록의 평균을 구하는 플로우차트
플로우차트에서 판단을 나타내는 모양은 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
마름모는 판단; 둥근 사각형 = 시작/정지, 평행사변형 = 입출력, 직사각형 = 처리 과정.
각 플로우차트 모양을 그 의미와 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
평행사변형 = I/O, 직사각형 = 처리, 둥근 사각형 = 시작/정지, 마름모 = 판단.
각 표기법을 설명과 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
세 가지 모두 코드로부터 다른 거리에서 동일한 알고리즘을 묘사합니다.
풀이 예제: 구조화 영어를 가짜코드로 변환
- 구조화 영어: 합계를 0으로 설정하십시오. N개의 숫자 중 각각에 대해 이를 합계에 더하십시오. 합계를 N으로 나누어 결과를 출력하십시오.
- 각 문장은 하나의 구성 요소를 만듭니다: 할당, 내부에 할당이 있는
FOR루프, 그리고 할당과 출력이 있습니다.
Total <- 0
FOR Index <- 1 TO N
Total <- Total + Number[Index]
NEXT Index
Average <- Total / N
OUTPUT Average
- 문장의 순서는 문장의 순서입니다. 추가되는 것도 없고 빠지는 것도 없습니다.
평균 계산 알고리즘에서 각 숫자를 합계에 더하는 FOR 루프는 ____ 구조의 예입니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
각 숫자마다 블록을 반복하는 것은 반복입니다. 내부의 할당은 누적 합계를 저장합니다.
풀이 예제: 가짜코드를 플로우차트로 변환
- 동일한 알고리즘을 가져오십시오.
START는 라운드 직사각형에,Total ← 0과Index ← 1는 직사각형에 들어갑니다. FOR루프는Index <= N?을 묻는 다이아몬드가 됩니다. Yes 출구는 직사각형Total ← Total + Number[Index]으로, thenIndex ← Index + 1으로, 그리고 다이아몬드로 위로 가는 화살표로 이어집니다.- No 출구는
Average ← Total / N로 계속되어, 출력 평행사각형, 그리고STOP으로 이어집니다. - 다이아몬드의 모든 출구에 레이블을 붙이십시오. 레이블이 없는 출구가 하나라도 있는 다이아몬드는 결정이 아닙니다.
단계별 세분화
- **단계적 세분화(stepwise refinement)**란 알고리즘을 짧은 초안으로 작성한 후, 각 단계를 더 상세한 하위 단계로 확장하여 모든 단계를 직접 코딩할 수 있을 때까지 반복하는 것입니다.
- 각 수준은 위 수준의 구조를 유지하고 디테일을 추가합니다. 초안은 버려지지 않으며, 프로그램의 구조가 됩니다.
- 한 단계가 가짜코드 한 줄이나 이미 보유한 모듈 하나가 되는阶段까지 디자인이 멈춥니다.

단계적 세분화는 코딩이 가능할 때까지 각 단계를 확장합니다
단계적 정교화(Stepwise refinement)은 다음과 같은 기법입니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
고수준 초안을 단계별로 정교화하며 구조를 유지한 채 디테일을 추가합니다.
worked example: 세 가지 수준
- 수준 1: 시험 결과를 처리한다.
- 수준 2: 각 점수를 입력한다. 평균을 계산한다. 합격한 학생 수를 세어라. 보고서를 출력한다.
- 수준 3, "합격한 학생 수를 세어라"를 세분화함:
Passes ← 0, 각 점수에 대해FOR,IF Mark >= 40 THEN Passes ← Passes + 1. - "단계적 세분화(stepwise refinement)"를 설명하라는 요청 시 다음 세 가지 개념을 제시하십시오: 개략적인 초안으로 시작하고, 각 단계를 더 작은 단계로 확장하며, 각 단계가 프로그래밍 가능한 수준이 되면 멈춥니다.
단계적 세분화: 초안부터 코드까지
수준을 내려갑니다. 전체 작업을 한 줄로 시작하여 각 단계를 작은 부분으로 계속 확장합니다 — 모든 단계가 직접 코딩할 만큼 단순해질 때까지.
단계적 정교화에서 새로운 수준은 위 수준을 대체하므로, 원래의 초안은 버려집니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
각 수준은 위 수준의 구조를 유지하고 디테일을 추가합니다. 초안은 완성된 프로그램의 형태가 됩니다.
논리 문장
- 논리문은 부울리안(Boolean) 조건입니다: either
TRUEorFALSE이며,IF,WHILE또는UNTIL을 제어합니다. - 이는 비교 연산(
=,<>,<,>,<=,>=)이AND,OR및NOT으로 연결되어 구성됩니다. Mark >= 0 AND Mark <= 100은 범위 내 점수일 때만 참입니다.Age < 12 OR Age >= 65은 아동 및 연금 수급자에게 참입니다.

AND, OR 및 NOT으로 연결된 비교는 하나의 조건을 만듭니다
우선순위와 괄호
- 연산자는 고정된 우선순위(precedence) 순서로 적용됩니다: 먼저
NOT, 다음AND, 그리고OR. - 따라서
A OR B AND C은A OR (B AND C)을 의미하며,(A OR B) AND C을 의미하지 않습니다.A = TRUE,B = FALSE,C = FALSE의 경우 첫 번째는TRUE이고 두 번째는FALSE입니다. - 조건에
AND과OR이 섞여 있을 때는 항상 괄호를 사용하십시오. 비용은 들지 않음에도 모호함을 제거합니다.
논리 연산자의 우선순위를 높은 순(먼저 평가됨)부터 낮은 순으로 나열하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
NOT이 가장 밀착되어評価되고, 그다음 AND, 그리고 OR — 의심스러울 때는 괄호를 사용하십시오.
괄호가 없을 때 A OR B AND C는 무엇을 의미합니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
AND의 우선순위가 OR보다 높으므로 먼저 평가됩니다. 아무도 기억하지 않아도 되게 조건에 괄호를 붙이십시오.
드모르간의 법칙(De Morgan's laws)
- 드모르간의 법칙:
NOT (A AND B)은(NOT A) OR (NOT B)과 같으며,NOT (A OR B)은(NOT A) AND (NOT B)과 같습니다. - 말로 표현하면: "not (registered and paid)"은 "not registered, or not paid"를 의미합니다.
- 이를 사용하여 조건을 간소화하거나 검증할 수 있습니다:
A과B에 값을 선택하고 양변을 계산하면 모든 경우에서 일치해야 합니다.
데 모르강의 법칙에 따라 NOT (A AND B)는 (NOT A) OR (NOT B)와 같습니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
NOT은 괄호 안으로 분배되며 AND↔OR을 뒤바꿉니다.同理 NOT (A OR B) = (NOT A) AND (NOT B).
worked example: 문장으로부터의 조건
- 규칙: 학생이 등록하고 either 결제했거나 장학금을所持했으면 시험에 응시할 수 있으나, 정학 중이라면 응시할 수 없다.
- 부울리안 변수 이름 지정:
Registered,Paid,Bursary,Suspended. - 문장:
Registered AND (Paid OR Bursary) AND NOT Suspended. Paid OR Bursary周围的括호是必须的。没有它们,AND会先绑定,导致拥有奖学金但未注册的学生也能入学。
어떤 조건이 NOT (Registered AND Paid)와 동등합니까? 모두 선택하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
데 모르강의 법칙은 AND에 대한 NOT을 NOT들의 OR로 변환합니다. AND 버전은 너무 엄격합니다: 등록은 했으나 결제하지 않은 학생은 원래 조건을 TRUE로 만들어야 하며, 이는 AND 버전을 FALSE로 만듭니다.
놓칠 수 있는 점
a = 1 OR 2은 조건이 아닙니다.a = 1 OR a = 2를 작성하십시오:OR의 양변은 완전한 비교여야 합니다.NOT은紧随其后的内容起作用。NOT A AND B意味着(NOT A) AND B。- 다이아몬드에는 두 개의 레이블이 붙은 출구가 필요하며, 루프는 위로 돌아가는 화살표가 필요합니다. 돌아오는 화살표가 없는 플로우차트는 루프가 아닙니다.
- 구조화 영문(Structured English)도 여전히 정확합니다. "점수를 처리하다"는 단계가 아닙니다; "점수를 합계에 더하다"는 단계입니다.
a가 1인지 2인지 테스트하기 위한 올바른 조건은:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
OR의 양변은 완전한 비교여야 합니다: a = 1 OR a = 2. a = 1 OR 2를 쓰는 것은 흔한 오류입니다.
이해했습니다
- 하나의 알고리즘을 위한 세 가지 표기법: 구조화 영문, 가짜코드(pseudocode), 플로우차트(다이아몬드 = 결정, 뒤화살표 = 루프)
- 단계적 세분화: 초안 → 각 단계 확장 → 단계가 코딩 가능한阶段until stop
- 논리문은 부울리안 조건; 우선순위 NOT → AND → OR, 따라서 이들을 섞는 것에는 모두 괄호를 달아야 함
- 드모르간:
NOT (A AND B)=NOT A OR NOT B;NOT (A OR B)=NOT A AND NOT B