CIT의 여러 과정은 Princeton IROM Lab, Caltech AMBER Lab, University of Colorado Boulder, Stanford Vision and Learning Lab, Stanford ILIAD Lab을 비롯한 연구실과 오픈소스 팀이 공개한 프로젝트를 그대로 씁니다. 학생은 그 프로젝트를 다섯 칸으로 나눠 보고, 그중 한 칸만 열어 값 하나를 바꾼 뒤 결과가 어떻게 달라지는지 확인합니다.
게시일: 2026년 8월 17일 | 최종 수정: 2026년 8월 17일
처음 보는 프로그램 앞에서 학생이 가장 자주 막히는 지점은 어디부터 봐야 할지 모르는 순간입니다. 그래서 모든 과정이 같은 질문 다섯 개를 씁니다. 과정이 달라도 질문은 같습니다.
입력 · 들어오는 것
무엇이 들어옵니까?
기억 · 적어 두는 곳
무엇이 남아 있습니까?
처리 · 하는 일
무엇을 바꿉니까?
출력 · 나오는 것
무엇이 나가고 누가 씁니까?
제어 · 언제 도는지 정하는 곳
언제 도는지 누가 정합니까?
다섯 번째 칸인 제어는 일부러 넣었습니다. 실제 코드에서 가장 찾기 어렵고, 그냥 두면 처리 칸 안에 숨어 버립니다. 언제 도는지를 찾아내면 그 프로그램의 구조가 대부분 보입니다.
RocketPy-Team/RocketPy 고정 버전 9bd6ad3af8f9을 다섯 칸으로 나눈 그림입니다. 노란 칸이 이 수업에서 여는 칸입니다.
칸마다 근거가 되는 파일 경로가 붙습니다. 학생은 그 파일을 열어 자기가 그린 칸이 맞는지 확인하고, 틀렸으면 고칩니다. 파일 경로는 고정된 버전에 실제로 있는 경로여야 하며, 없는 경로는 빌드에서 걸러집니다.
① 예상을 먼저 적습니다
저장소를 열기 전에 다섯 칸을 예상해 적습니다. 틀려도 괜찮지만 비워 두면 안 됩니다. 예상과 실제의 차이가 그날 배우는 내용입니다.
② 한 칸만 엽니다
과정마다 여는 칸이 하나로 정해져 있습니다. 대개 학생의 짐작이 가장 크게 빗나가는 칸이거나, 그 분야의 진짜 어려움이 있는 칸입니다.
③ 값 하나만 바꿔 봅니다
여는 것은 읽는 것이 아니라 바꿔 보는 것입니다. 상수 하나를 바꾸고, 함수 하나를 더 단순한 것으로 바꾸고, 결과가 어느 쪽으로 움직이는지 봅니다.
④ 다시 한 문장으로 닫습니다
마지막에 학생은 그 칸을 한 문장으로 요약합니다. 가정 하나와 무너지는 조건 하나가 들어가야 하고, 원문의 용어를 그대로 옮겨 쓰면 통과되지 않습니다.
그림을 잘 그린 것만으로는 마쳤다고 보지 않습니다. 예쁜 구조도는 이해 없이도 그릴 수 있기 때문입니다.
각 과정 아래에 들어오는 것에서 나오는 것까지의 흐름을 그 프로젝트가 쓰는 말로 적었습니다. 과정 안내를 열면 그 수업이 여는 파일이 이름 그대로 나옵니다.
irom-princeton/AdaptSim · 9cf80fb42687 · 여는 파일 12개 / 글자 파일 178개
학생은 가상 로봇과 실제 결과의 차이를 줄이는 실험을 한 번에 한 값씩 직접 돌려 봅니다.
맞출 실제 결과 → 물리값 후보 범위 → 다음 값 고르기 → 조정된 물리값
peterdsharpe/AeroSandbox · 60998b5c3935 · 여는 파일 7개 / 글자 파일 2,908개
학생은 날개 설계 프로그램에서 허용 범위 하나만 바꾸고, 저항과 날개 길이가 어디까지 움직이는지 확인합니다.
허용 범위와 조건 → 변수와 조건 목록 → 공기력 계산과 반복 → 고른 날개와 한계
Caltech-AMBER/ambersim · 47a9c1848154 · 여는 파일 12개 / 글자 파일 40개
학생은 가상 로봇의 힘 한계를 직접 낮춰 보고, 균형을 잡는 방법이 어떻게 달라지는지 확인합니다.
모델과 시작 자세 → 각도와 정책 숫자 → 한 걸음과 점수 → 점수 곡선과 정책
AVSLab/basilisk · 441418f2f4e1 · 여는 파일 9개 / 글자 파일 2,964개
학생은 위성 제어 프로그램에서 계산 주기 하나만 바꾸고, 방향을 잡는 데 걸리는 시간이 어떻게 달라지는지 확인합니다.
목표 방향과 센서값 → 오가는 메시지 → 제어 법칙 → 바퀴 명령과 오차
StanfordVL/BEHAVIOR-1K · 78980ee463b9 · 여는 파일 8개 / 글자 파일 3,548개
학생은 Stanford 연구실이 만든 집안일 과제 정의를 열어 보고, 무엇을 성공으로 볼지 정하는 일이 왜 어려운지 설명합니다.
과제 정의와 장면 → 물체와 상태 목록 → 물리와 완료 판정 → 관측값과 성공 여부
Stanford-ILIAD/CARLO · 1dc7ebe4ca1f · 여는 파일 5개 / 글자 파일 12개
학생은 교차로 장면에서 보행자 속도만 바꿔 보고, 사고 위험이 어디에서 갑자기 커지는지 확인합니다.
도로와 배치 → 위치와 도형 → 이동과 겹침 판정 → 화면과 충돌 여부
RobotLocomotion/drake · b07bab525ccb · 여는 파일 10개 / 글자 파일 5,297개
학생은 대학 연구실이 쓰는 로봇 소프트웨어에서 상태가 어디에 모여 있는지 찾아보고 자기 말로 설명합니다.
모델 파일과 포트 → 한곳에 모은 상태 → 물리와 블록 조립 → 포트로 나가는 값
metrica-sports/sample-data · e706dd506b36 · 여는 파일 4개 / 글자 파일 10개
학생은 경기 한 경기의 좌표 자료에서 가정 하나를 바꿔 보고, 공간 해석이 어디까지 달라지는지 확인합니다.
위치와 사건 파일 → 시각별 좌표표 → 학생이 쓰는 규칙 → 학생이 만든 그림
roboflow/sports · 42c80c06b6b6 · 여는 파일 6개 / 글자 파일 20개
학생은 축구 경기 영상을 위에서 본 그림으로 바꾸는 과정을 다섯 칸으로 나눠 보고, 값 하나를 바꿔 무엇이 무너지는지 확인합니다.
영상 한 프레임 → 경기장 규격표 → 탐지와 좌표 변환 → 미니맵과 표시 영상
SkillCorner/opendata · c1e17a0cc3e0 · 여는 파일 10개 / 글자 파일 88개
학생은 경기 추적 자료를 자기 기준으로 묶어 보고, 무엇을 세기로 했는지에 따라 결과가 어떻게 달라지는지 확인합니다.
좌표와 경기 정보 → 좌표와 단계 구간 → 지표로 묶기 → 비교 표와 그림
SoccerNet/sn-gamestate · 1c9583450672 · 여는 파일 11개 / 글자 파일 113개
학생은 공개된 경기 영상 파이프라인에서 모듈 하나만 빼 보고, 어떤 단계가 결과를 붙들고 있었는지 확인합니다.
영상과 설정 파일 → 이어 붙인 트랙 → 찾고 읽고 옮기기 → 경기장 그림과 점수
AtomScott/SportsLabKit · 9591d6db9e8d · 여는 파일 11개 / 글자 파일 167개
학생은 같은 영상에서 추적 방법 두세 가지를 같은 조건으로 돌려 보고, 어디에서 무너지는지 확인합니다.
프레임과 상자 → 트랙 목록 → 상자와 트랙 짝짓기 → 궤적과 오류 수치
hudl/open-data · b0bc9f22dd77 · 여는 파일 5개 / 글자 파일 8,979개
학생은 공개된 축구 경기 기록에서 무엇을 셀지 스스로 정하고, 정의를 바꾸면 결론이 바뀐다는 것을 확인합니다.
고른 경기 기록 → 사건 목록 → 세는 규칙 → 비교 표와 그림
WangYixuan12/interactive_world_sim · 3ba69b41d070 · 여는 파일 10개 / 글자 파일 144개
학생은 AI가 만든 다음 장면과 실제 움직임을 견주어, 예측이 어디에서부터 어긋나는지 확인합니다.
영상과 행동 기록 → 줄인 장면과 숫자 → 다음 장면 만들기 → 예측 영상과 점수
SIGRobotics-UIUC/LeKiwi-sim · c3e38133450b · 여는 파일 2개 / 글자 파일 5개
학생은 로봇 모델 파일에서 값 하나를 바꿔 보고, 움직임이 어떻게 달라지는지 확인합니다.
로봇 모델 파일 → 실행 중에만 있음 → 물리 프로그램 → 실행할 때 생김
mani-skill/ManiSkill · 62ff3a5896b4 · 여는 파일 8개 / 글자 파일 822개
학생은 같은 과제를 장면 수만 바꿔 연습시켜 보고, 빨라진 만큼 실제로 더 배우는지 확인합니다.
과제 정의와 관측 → 묶인 장면 배열 → 움직이고 점수 내기 → 관측과 점수
NanoComp/meep · 3e7b7fee0da4 · 여는 파일 10개 / 글자 파일 482개
학생은 파동 계산에서 칸의 굵기만 바꿔 보고, 결과가 언제부터 믿을 만해지는지 확인합니다.
공간과 칸 굵기 → 칸마다의 장 값 → 이웃으로 갱신 → 통과량과 그림
GaTech-RL2/mimiclabs · 0b81d7e8cc07 · 여는 파일 10개 / 글자 파일 3,986개
학생은 시범 몇 개를 여러 배치로 늘려 보고, 늘린 예가 실제 학습에 도움이 되는지 확인합니다.
시범과 과제 파일 → 시범과 배치 범위 → 옮겨 붙이기 → 늘린 예와 판정
RussTedrake/manipulation · cdb8c90f402c · 여는 파일 8개 / 글자 파일 338개
학생은 MIT 공개 수업 자료의 집기 예제에서 어느 계산이 결과를 좌우하는지 찾아 설명합니다.
작업대와 점 자료 → 물체 자세와 경유점 → 자세와 궤적 계산 → 나가는 목표 자세
reilleya/openMotor · 0dfb3f1dd4f8 · 여는 파일 9개 / 글자 파일 168개
학생은 저장된 모터 예제에서 값 하나만 바꿔 보고, 압력과 힘이 어떻게 달라지는지 확인합니다.
모양과 물성값 → 탄 두께와 표면 → 넓이에서 힘으로 → 추력 곡선과 총역적
openrocket/openrocket · 133b558de556 · 여는 파일 8개 / 글자 파일 1,738개
학생은 널리 쓰이는 로켓 설계 프로그램의 계산 순서를 따라가며, 사건 하나를 늦췄을 때 결과가 어떻게 달라지는지 확인합니다.
설계 파일과 모터 → 지금 상태 묶음 → 공기력과 한 걸음 → 쌓이는 비행 자료
Jianghanxiao/PhysTwin · 54106c6357e3 · 여는 파일 11개 / 글자 파일 147개
학생은 영상으로 만든 가상 물체의 재질 값을 바꿔 보고, 휘는 모습이 어떻게 달라지는지 확인합니다.
영상과 잘라낸 표시 → 점과 용수철 모형 → 재질 값 고치기 → 다시 그린 움직임
projectchrono/chrono · 9faf13dd8f11 · 여는 파일 7개 / 글자 파일 6,321개
학생은 로버 시뮬레이션에서 지면 종류만 바꿔 보고, 주행 결과와 계산 부담이 어떻게 달라지는지 확인합니다.
로버 값과 지면 → 위치와 닿은 지점 → 접촉을 함께 풀기 → 거리와 미끄러짐
empriselab/RCareWorld · ae0900be3e45 · 여는 파일 10개 / 글자 파일 438개
학생은 돌봄 로봇 시뮬레이션에서 안전 거리 하나를 넓혀 보고, 일하는 방식이 어떻게 달라지는지 확인합니다.
배치와 센서값 → 물체마다의 속성 → 관절 각도 풀기 → 화면과 센서 결과
ARISE-Initiative/robomimic · d309eaecc18a · 여는 파일 7개 / 글자 파일 163개
학생은 시범 자료의 양과 질이 로봇 학습 결과를 어떻게 바꾸는지 직접 비교합니다.
시범 기록과 설정 → 시범 자료와 가중치 → 학습 한 걸음 → 저장된 정책
ARISE-Initiative/robosuite · 5ce6643f3092 · 여는 파일 13개 / 글자 파일 422개
학생은 로봇 팔 시뮬레이터에서 제어 주기를 바꿔 보고, 같은 명령이 왜 다른 결과를 내는지 설명합니다.
들어온 동작 값 → 장면과 현재 상태 → 토크 변환과 물리 → 관측값과 보상
gtbook/robotics · 49315552e7f6 · 여는 파일 10개 / 글자 파일 94개
학생은 센서 오차를 직접 키워 보고, 로봇이 자기 위치를 얼마나 놓치는지 확인합니다.
센서값과 행동 → 위치별 확률 → 확률 다시 나누기 → 고친 확률과 선택
sonofeft/RocketCEA · 5bde04e274d5 · 여는 파일 8개 / 글자 파일 665개
학생은 추진제 조합의 비율 하나를 바꿔 보고, 가장 뜨거운 조건과 가장 좋은 조건이 다르다는 것을 확인합니다.
조합과 비율, 압력 → 옮겨 적은 카드 → 기체 조성 풀기 → 성능값과 단위
RocketPy-Team/RocketPy · 9bd6ad3af8f9 · 여는 파일 11개 / 글자 파일 707개
학생은 로켓 시뮬레이터에서 값 하나만 바꾸고 고도와 착지점이 어떻게 달라지는지 직접 확인합니다.
로켓과 날씨 설정 → 상태 벡터 → 운동방정식 → 고도와 착지점
rail-berkeley/serl · 1fa2af7496be · 여는 파일 14개 / 글자 파일 153개
학생은 로봇이 시도하면서 배우는 구조를 나눠 보고, 시범 자료를 넣고 뺀 결과를 비교합니다.
카메라와 시범 → 재생 버퍼 → 성공 판정과 갱신 → 다음 동작 명령
intelligent-control-lab/spark · 2823c9ef3a35 · 여는 파일 10개 / 글자 파일 215개
학생은 사람 곁에서 움직이는 로봇의 안전 계층을 시뮬레이터에서만 시험하고, 속도와 안전 거리 사이의 맞바꿈을 숫자로 설명합니다.
관절과 사람 위치 → 안전 지표 → 안전한 명령 찾기 → 최종 명령
tudat-team/tudatpy · 2300d7fe3d7d · 여는 파일 11개 / 글자 파일 2,238개
학생은 궤도 계산에서 힘 하나를 넣고 빼 보며, 하루 뒤 위치가 얼마나 달라지는지 확인합니다.
시작값과 힘 선택 → 이어 붙인 상태 → 힘을 더하기 → 시간별 상태값
RussTedrake/underactuated · 26e9a5bbb5b9 · 여는 파일 11개 / 글자 파일 331개
학생은 흔들리는 로봇의 모터 힘을 줄여 보고, 균형을 잡는 방법이 어떻게 바뀌는지 확인합니다.
모델과 시작 자세 → 각도와 각속도 → 제어 법칙 → 상태 자취와 결과
가게, 연구, 노트북처럼 학생이 직접 다루는 것도 같은 칸으로 나눠 봅니다. 초등 과정은 네 칸까지 보고, 제어 칸은 중학교에서 만납니다.
학생이 세운 연구 질문 하나를 검증하는 멀티 에이전트 실험 · 다섯 칸 · 저장소 없이 진행
학생은 자기 실험을 다섯 칸으로 나눠 보고, 에이전트 수 하나를 바꾼 뒤 기준선과 같은 과제에서 결과를 비교합니다.
질문과 과제 → 공유 상태 → 에이전트 협업 → 같은 조건 비교
학생이 만드는 데이터 기반 도우미 · 네 칸 · 저장소 없이 진행
아이는 자기 도우미를 네 칸으로 나눠 보고, 라벨 하나를 고친 뒤 판단이 어떻게 달라지는지 확인합니다.
사례와 지시 → 예시와 라벨 → 규칙과 분류기 → 결과와 확인
학생이 운영하는 작은 사업과 그 예측 · 다섯 칸 · 저장소 없이 진행
학생은 자기 사업을 다섯 칸으로 나눠 보고, 한 번에 한 값만 바꾸는 규칙을 지키며 결과를 비교합니다.
지난 판매와 가격 → 이익 진단표 → 다음 주 예측 → 이번 주 결정
학생이 만드는 에이전트형 소프트웨어 제품 · 다섯 칸 · 저장소 없이 진행
학생은 자기 제품을 다섯 칸으로 나눠 보고, 호출 상한 하나를 바꾼 뒤 같은 평가 세트로 결과를 비교합니다.
요청과 평가 세트 → 루프 상태 → 모듈과 도구 → 검증된 결과
학생이 직접 만드는 분석 노트북 · 다섯 칸 · 저장소 없이 진행
학생은 자기 분석 노트북을 다섯 칸으로 나눠 보고, 처음부터 다시 실행해 같은 결과가 나오는지 확인합니다.
불러온 표와 고른 열 → 메모리에 올린 표 → 집계와 예측선 → 그래프와 해석
학생이 Python으로 만든 앱에 AI 기능 하나를 붙인 시스템 · 다섯 칸 · 저장소 없이 진행
학생은 자기 앱을 다섯 칸으로 나눠 보고, 재시도 상한 하나를 바꾼 뒤 실패한 요청이 어디로 가는지 확인합니다.
요청과 파일 → 저장과 세션 → 코드와 모델 호출 → 통과한 결과
학생이 수업에서 여는 작은 가게 · 네 칸 · 저장소 없이 진행
학생은 자기 가게를 네 칸으로 나눠 보고, 가격 하나를 바꾼 뒤 판매 기록이 어떻게 달라지는지 확인합니다.
손님이 필요한 것 → 오늘 판매 기록표 → 정하고 만들고 팔기 → 남은 돈
학급이 규칙으로 움직이는 스마트 도우미 · 네 칸 · 저장소 없이 진행
아이는 도우미를 네 칸으로 나눠 보고, 값 하나를 바꾼 뒤 행동이 어떻게 달라지는지 확인합니다.
알아차린 것 → 지금 상태 → 만약 그러면 → 한 행동
아래 과정도 같은 방식으로 고정된 버전을 쓰지만, 다섯 칸 표시는 아직 쓰는 중입니다.
harvard-edge/AirLearning · 9ec5bab2bbec · 구조만 표시
이 과정은 이 저장소의 고정 버전을 자료로 씁니다. 다섯 칸 표시는 준비 중입니다.
다섯 칸 정리
학생이 나눠 본 다섯 칸과 근거 파일 경로가 남습니다. 어느 칸을 열었는지도 함께 표시됩니다.
바꾸기 전과 후의 기록
값 하나를 바꾸기 전 결과와 바꾼 뒤 결과, 그리고 학생이 미리 적어 둔 예상이 함께 남습니다.
한 문장 요약
학생이 자기 말로 쓴 요약과, 그 요약이 성립하지 않는 조건이 남습니다.
대학 이름과 프로젝트 출처만으로는 입시 근거가 되지 않습니다. 학생이 이해한 내용과 직접 한 일을 설명할 수 있어야 하며, 어떤 과정도 합격이나 수상을 보장하지 않습니다.
아닙니다. 공개된 프로젝트를 만든 곳이 어디인지 알려 드리는 표시이며, 수업은 CIT가 독립적으로 설계했습니다. 제휴나 보증을 뜻하지 않고, 합격이나 수상과도 관계가 없습니다.
아닙니다. 오히려 반대입니다. 이 수업은 대부분을 열지 않고 남겨 두는 연습입니다. 예를 들어 RocketPy 과정은 글자 파일 700여 개 가운데 열 개 남짓만 엽니다. 어디까지 열고 어디서 멈출지 정하는 것이 배우는 내용입니다.
지도를 그린 것만으로는 그 항목을 마쳤다고 보지 않습니다. 학생은 열어 본 칸을 다시 한 문장으로 닫아야 하고, 그 문장에는 가정 하나와 무너지는 조건 하나가 들어가야 합니다.
과정마다 다릅니다. 저장소를 읽기만 하는 단계와, 값을 바꿔 실행해 보는 단계를 나눠 두었습니다. 상담에서 학생의 현재 경험과 쓸 수 있는 컴퓨터를 확인한 뒤 시작 지점을 정합니다.
각 프로젝트의 이용 조건을 과정마다 기록해 두고, 수업 자료에 원본 코드를 옮겨 싣지 않습니다. 고정된 버전으로 연결되는 링크만 사용합니다.
공개 프로젝트는 계속 바뀝니다. 수업 중에 예제가 달라지면 학생이 무엇 때문에 결과가 변했는지 알 수 없습니다. 그래서 확인한 버전 번호를 적어 두고 그 버전만 씁니다.
학생의 학년, 지금까지 해 본 코딩, 관심 분야, 쓸 수 있는 컴퓨터를 확인한 뒤 시작 지점을 제안해 드립니다.