로봇은 가상 세계에서 먼저 배운다.
교시별 안내 (위 메뉴의 ①~⑤ 번호 = 교시)
← → 방향키로도 넘길 수 있습니다. (원본 : 물리 동아리 주말특강 PPT 챕터 1)
자유 탐색 모드 : 모든 값을 마음대로 바꿔 보세요. 실행 결과는 기록되지만, 그래프에는 통제 실험만 올라갑니다.
🚗 제동거리
🌟 심화 미션 (기본 탐구를 마친 사람만!)
- 민감도 비교 — 두 번째 조작 변인으로 같은 실험을 반복하고, 어느 변인이 결과에 더 민감한지 그래프로 비교 (예: 속도 vs 노면, 어느 쪽이 더 무서운가?)
- 이론값과 오차 — '원리 엿보기'의 공식으로 이론값을 직접 계산하고 시뮬레이션 값과의 차이를 구하기 → 보고서 8번에 기록
- 가이드 역산 — 목표값을 정하고 거꾸로 찾기 (예: "빗길에서 50 m 안에 멈추려면 최고 몇 km/h까지 달릴 수 있을까?")
이 실험의 기록
실험 기록 전체
실행할 때마다 자동으로 쌓입니다. 숫자는 실험실이 적고, 의미는 여러분이 보고서에 적습니다. 잘못 누른 실행은 ✕로 지울 수 있어요 — 지우면 보고서 결과표 · 그래프에서도 빠집니다.
미니 탐구 보고서 1 · 4교시
1교시에는 1~7번을 초안까지, 4교시에 8~9번을 더해 완성 · 제출합니다 — 한 보고서를 이어 쓰며 고치는 것도 탐구의 일부! 작성 내용은 자동 저장됩니다.
📖 작성 예시 보기 — 참고만! 그대로 옮겨 적으면 내 탐구가 아니에요
완성 예시 (🚗 제동거리 · 조작 변인 = 처음 속도)
1. 탐구 질문 — "달리는 속도가 2배가 되면 정지거리도 2배가 될까?"
💡 좋은 질문의 꼴 : "(바꿀 값)이 커지면 (잴 값)은 어떻게 될까?" — 두 변인이 다 들어가야 해요.
2. 변인 설계 — 조작 : 처음 속도 (30→120 km/h) / 통제 : 노면 μ 0.8, 반응시간 1 s, 질량 1200 kg / 종속 : 정지거리
💡 통제 변인은 "나머지 전부"가 아니라 값까지 적어요.
3. 예측 — "속도가 2배가 되면 정지거리도 2배가 될 것이다. 왜냐하면 2배 빠르면 2배 멀리 갈 것 같기 때문이다."
💡 예측 문장 틀 : "~가 커지면 ~는 …할 것이다. 왜냐하면 ~기 때문이다." (틀려도 좋은 예측이에요!)
4. 결과표 — 속도 30 / 60 / 90 / 120 km/h → 정지거리 12.7 / 34.3 / 64.8 / 104.1 m
💡 값은 한 방향으로 차례차례(작은 값 → 큰 값), 3~5회. 예측 판정이 직전 실행과 비교되기 때문이에요.
5. 해석 — "속도가 2배(60→120 km/h)가 되자 정지거리는 34.3→104.1 m로 3배가 됐다. 제동거리만 보면 17.7→70.8 m로 약 4배다. 제동거리가 속도의 제곱에 비례하기 때문인 것 같다. 내 예측(2배)은 틀렸다 — 속도는 생각보다 훨씬 무섭다."
💡 해석 문장 틀 : "(수치 인용) → 경향 → 그 이유". 표를 말로 반복하는 건 해석이 아니에요.
6. 시뮬레이션의 한계 — "실제 도로는 노면 상태가 자리마다 다르고, 타이어 상태 · ABS · 내리막 여부에 따라 달라지지만, 이 시뮬레이션은 마찰이 일정하다고 가정한다. 운전자의 반응시간도 사람마다, 상황마다 다르다."
💡 소재 : 노면의 불균일 · 타이어 마모 · ABS · 경사 · 공기저항 생략 · 계산의 시간 간격 오차 …
7. 성찰 한 줄 — "실험은 한 번의 결과를 주지만, 시뮬레이션은 같은 조건을 수백 번 반복해 규칙을 찾게 해 준다."
🔎 다른 실험의 질문 예시 — 크레인 : "균형추가 무거울수록 짐을 몇 m까지 보낼 수 있을까?" / 자동차 : "지붕 짐이 늘면 몇 도 경사에서 넘어질까?" / 제동거리 심화 : "차가 무거우면 정지거리가 길어질까?" (해 보면 놀랄걸요)
아직 불러온 기록이 없습니다.
완성한 파일 또는 인쇄물을 선생님이 안내하는 곳(학급 플랫폼)에 제출하세요.
🔬 엔진 들여다보기 2교시
시뮬레이션 = 상태(변수) + 규칙(공식) + 반복(한 프레임씩 계산). 1교시에 숨겨져 있던 제동거리의 계산 과정을 이제 한 프레임씩 직접 돌려 봅니다. (여기서는 브레이크를 밟는 순간부터 — 반응시간 없음)
🔧 조건
▶ 한 프레임을 누르면 이번 프레임의 계산 과정이 숫자 그대로 보입니다.
점 하나 = 프레임 하나. 시뮬레이션이 '연속'이 아니라 '조각'으로 움직이는 게 보이나요?
변수표 — 프레임마다 갱신
Δt 비교 실험
⏵ 멈출 때까지 간 뒤 📌 기록을 눌러 Δt별 결과를 모으세요. 어느 Δt부터 믿을 만할까요?
관찰 기록지
🧮 코드 셀 — 규칙을 바꾸는 사람 2교시
공식(규칙) 한 줄이 바뀌면 세계가 어떻게 달라질까? 먼저 수식 규칙(감속 규칙) 두 개를 나란히 돌려 현실과 비교하고, 이어서 조건 규칙(크레인 전복 조건식)을 들여다봅니다.
감속 규칙 고르기 — 브레이크는 어떻게 속력을 줄일까?
고정 조건 : 처음 속도 100 km/h (27.8 m/s) · 마른 노면 μ 0.8 · c 0.28 (두 모델의 처음 감속이 같도록 맞춘 값 — 출발선은 같습니다)
판단 기록
현실의 증거 : 100 km/h 승용차의 제동거리는 약 40~50 m이고, 3~4초면 완전히 멈춥니다. 도로의 스키드 마크도 길이가 유한하죠.
▶ 실행하면 두 모델의 v–t 곡선이 겹쳐 그려집니다. 어느 쪽이 '진짜 브레이크'처럼 멈추나요?
⚖️ 규칙 두 번째 : 조건식 — 크레인 퀴즈 (펼쳐 보기)
위에서 바꿔 본 감속 규칙은 수식 규칙입니다 — "얼마나 줄어드는지"를 매 프레임 계산하죠. 시뮬레이션에는 규칙이 한 종류 더 있습니다. 조건 규칙 — "어느 순간 세계가 갈라지는지"를 판단하는 한 줄로, 프로그래밍의 if(조건)이 바로 이것입니다. (엔진 탭의 ④ 멈춤 판정도 조건 규칙이었어요!)
1교시 크레인 실험에서 '안전'과 '전복'을 가른 것도 아래 조건식 한 줄이었습니다. 짐×(거리−b)는 크레인을 넘어뜨리려는 돌림힘, 균형추×(추거리+b)+타워×b는 붙잡아 주는 돌림힘이에요. (b는 크레인 받침의 절반 폭 = 2 m)
퀴즈 답은 1교시 크레인 실험 기록으로 직접 확인할 수 있어요 (기록 탭). 수식 규칙이 '얼마나'를 정한다면, 조건 규칙은 '언제'를 정합니다 — 이 둘이 모여 시뮬레이션 하나가 됩니다.
🐍 파이썬 — 내 손으로 엔진 만들기 3~4교시
엔진 탭에서 관찰한 계산을 이제 직접 씁니다. 웹 실험실은 그대로 채점기 — 내 코드의 결과가 엔진 탭의 수치와 같으면 통과!
📦 포터블 파이썬 zip : ⬇ 내려받기 바탕화면에 압축 풀고 IDLE_실행.bat 더블클릭
코드 미리 보기 — 오늘 완성할 엔진의 심장부
전체 파일은 「제동거리_엔진_TODO.py」(아래에서 받기 가능). 핵심은 이 반복 계산 부분 — 🔬 엔진 탭에서 본 4단계가 코드 몇 줄로 그대로 들어 있습니다.
# 상태 — 매 프레임 변하는 변수 3개 속력 = 처음속도_킬로 / 3.6 # km/h → m/s 단위 변환 (1 km/h = 1000 m ÷ 3600 s) 이동거리 = 0.0 시간 = 0.0 while 속력 > 0: # 반복 — 멈출 때까지 한 프레임씩 감속도 = 🔍 TODO 1 # 규칙(수식) · 엔진 탭 ① — 질량은 안 쓰여요! 속력 = 속력 - 감속도 * 시간조각 # 엔진 탭 ② 새 속력 if 속력 🔍 TODO 2 0: # 규칙(조건) · 엔진 탭 ④ — 멈춤 판정 속력 = 0 이동거리 = 이동거리 + 속력 * 시간조각 # 엔진 탭 ③ 새 이동거리 시간 = 시간 + 시간조각
📖 핵심 줄 해설 — 이 여섯 줄이 시뮬레이션의 전부
- 속력 = 처음속도_킬로 / 3.6 — 계산은 전부 m와 초로 합니다. km/h를 m/s로 바꾸는 단위 변환이 첫 줄인 이유 — 단위가 틀리면 그 뒤 전부가 틀립니다 (5교시 AI 검증 체크 ③과 같은 이야기).
- while 속력 > 0 : — '반복'의 정체. 이 한 줄이 엔진 탭에서 ▶ 버튼을 계속 누르던 여러분의 손가락입니다. 조건(속력 > 0)이 거짓이 되는 순간 시뮬레이션이 끝납니다.
- 감속도 = ? (TODO 1) — 세계의 수식 규칙. 엔진 탭 ①에 똑같은 식이 떠 있었습니다. 이 식을 바꾸면(코드 셀의 c×v처럼) 세계가 통째로 달라집니다.
- 속력 = 속력 - 감속도 * 시간조각 — 모든 수치 시뮬레이션의 공통 뼈대 : 새 값 = 지금 값 + 변화율 × Δt. 낙하도, 행성 궤도도, 전염병 확산도 이 꼴입니다.
- if 속력 ? 0 : (TODO 2) — 조건 규칙. 이 두 줄이 없으면 속력이 음수가 되어 차가 뒤로 달립니다. 조건문이 세계를 '달리는 중'과 '멈춤'으로 가릅니다.
- 이동거리 = 이동거리 + 속력 * 시간조각 — 거리 = 속력×시간의 조각을 계속 더하기. 수학의 적분을 컴퓨터는 덧셈의 반복으로 해냅니다.
파일에는 이 코드에 변수표 출력과 공식 채점기(v²÷(2μg)와 자동 비교)가 더 붙어 있습니다.
✅ 내 코드 검증 3종 (3교시 — 이게 통과 조건)
- 60 km/h · μ 0.8 · Δt 0.01 → 제동거리 ≈ 17.7 m가 나오는가? (🔬 엔진 탭에서 같은 조건으로 확인)
- 공식 v² ÷ (2μg)으로 손 계산한 값과 비슷한가?
- 속도를 2배로 하면 제동거리가 4배가 되는가?
🌟 심화 — 코드에 반응시간 추가하기
엔진 탭에는 없던 반응시간을 코드에 넣어 보세요 : if 시간 < 반응시간 : 감속 = 0 — 조건문 한 줄이 '공주거리'를 만들어 냅니다. 1교시 실험실 수치(60 km/h · 반응 1 s → 정지거리 34.4 m)와 맞으면 성공!
파이썬이 안 되는 자리는 🧮 코드 셀 탭의 '직접 입력'으로 같은 탐구를 계속합니다 — 수업은 멈추지 않아요.
🤖 AI 실험실 — 설계자 되기 5교시
오늘의 마지막 단계 : 실험실을 쓰는 사람(1교시) → 들여다보는 사람(2교시) → 만드는 사람(3~4교시)을 지나, 이제 AI에게 일을 시키는 설계자가 됩니다. 설계자의 무기는 두 가지 — 정확한 명세와 검증.
📋 나만의 실험실 명세
주제 메뉴 : 엘리베이터 급정지 · 스키드 마크로 사고 속도 역산 · 농구공 포물선 · 자전거 내리막 · 저금통 복리 · 소문(전염) 확산 … "상태 + 규칙 + 반복"으로 쓸 수 있으면 무엇이든!
받은 HTML 코드는 메모장에 붙여 「나의실험실.html」로 저장 → 더블클릭하면 브라우저에서 열립니다. 사용한 프롬프트와 수정 요청은 모두 기록해 제출합니다 (AI 사용 원칙 : 허용 + 기록).
✅ 검증 체크리스트 — AI를 믿지 말고, 확인하라
받은 피드백 (갤러리)
성찰 3문항 (각 한 줄, 내 말로)
구현은 AI와 함께, 성찰문은 AI 도움 없이 내 말로. 완성 파일은 나의실험실.html · 프롬프트 기록과 함께 제출하세요.
📂 나의 기록 — 오늘 내가 쓴 모든 것
다섯 교시 동안 기재한 내용이 한곳에 모입니다. 비어 있는 항목(—)은 해당 탭에서 채우면 바로 반영돼요. 이 모음이 곧 나의 탐구 포트폴리오 — 파일로 저장해 보고서와 함께 제출할 수 있습니다.