1주차 · 오리엔테이션
- 코딩 수업에서 요구되는 기본 사고 순서를 설명할 수 있다.
- 실행 환경/실행 개념을 생활 비유로 설명할 수 있다.
- 짧은 코드 실행 후 출력과 에러를 구분해 읽을 수 있다.
- 입력–처리–출력 흐름을 3단계로 나눠 기록할 수 있다.
- 본인 실수 1개를 원인과 수정 방법으로 정리할 수 있다.
오리엔테이션 핵심: “코드를 배운다”의 진짜 의미
Section titled “오리엔테이션 핵심: “코드를 배운다”의 진짜 의미”신입생이 처음 겪는 어려움은 문법보다 사고 순서입니다. 코딩 수업의 첫 목표는 “복잡한 프로그램 작성”이 아니라, 아래 3가지를 몸에 익히는 것입니다.
- 문제를 작은 단계로 쪼개기
- 컴퓨터가 이해하는 형식으로 지시 쓰기
- 결과를 확인하고 원인을 추적하기
실행 환경과 실행 개념 (완전 기초)
Section titled “실행 환경과 실행 개념 (완전 기초)”1) 실행 환경이란?
Section titled “1) 실행 환경이란?”- 실행 환경은 코드를 실제로 돌려 주는 “작업 공간”입니다.
- 교실 비유:
- 코드 = 문제지
- Python = 문제를 푸는 규칙
- 웹 콘솔 = 실제로 문제를 푸는 책상
2) 실행이란?
Section titled “2) 실행이란?”- 실행은 “작성한 코드를 컴퓨터가 위에서 아래로 순서대로 수행하는 것”입니다.
print("안녕")을 실행하면 화면에안녕이 나옵니다.- 핵심 관점: 컴퓨터는 문맥을 거의 추측하지 못하고, 작성된 규칙을 그대로 실행합니다.
3) 컴파일이란?
Section titled “3) 컴파일이란?”초보용 핵심만 기억하세요.
- 어떤 언어는 먼저 컴파일(번역)을 해야 실행됩니다.
- Python은 입문 단계에서 보통 “작성 후 바로 실행” 흐름으로 체감됩니다.
- 그래서 1주차에서는 “코드 작성 → 실행 버튼 클릭 → 출력/에러 확인 → 수정” 루프가 가장 중요합니다.
4) 왜 이 개념이 중요한가?
Section titled “4) 왜 이 개념이 중요한가?”- 실행 환경을 모르면 “내 코드가 왜 안 돌아가는지”를 위치조차 못 찾습니다.
- 실행 개념을 모르면 “코드가 동시에 동작한다”고 오해해 디버깅이 어려워집니다.
- 컴파일/실행 차이를 대략 알아두면 이후 C/C++/임베디드 과목에서 전환이 쉬워집니다.
핵심 용어 4개
Section titled “핵심 용어 4개”- 코드(Code): 컴퓨터에게 내리는 지시문
- 입력(Input): 코드에 넣는 값(예: 이름, 숫자)
- 출력(Output): 실행 후 화면에 나오는 결과
- 에러(Error): 규칙에 맞지 않아 실행이 멈춘 상태
초보자가 꼭 지킬 사고 순서
Section titled “초보자가 꼭 지킬 사고 순서”- “무엇을 입력할지”를 먼저 적는다.
- “어떤 계산/처리를 할지”를 한 줄 문장으로 쓴다.
- “어떤 출력이 나와야 정상인지”를 예상한다.
- 실행 후 예상과 실제를 비교한다.
- 다르면 한 줄씩 원인을 추적한다.
flowchart TB A[문제 이해] --> B[코드 작성] B --> C[실행 버튼 클릭] C --> D[결과 확인] D --> E[에러/오차 원인 추적] E --> B
실습 루틴: 실행 루프 익히기
Section titled “실습 루틴: 실행 루프 익히기”- PythonConsole 창을 열고 코드 전체를 소리 내어 읽는다.
- 첫 실행 전에 “어떤 출력이 나올지” 1줄 예측을 적는다.
- 실행 버튼을 누르고 Output 영역을 끝까지 확인한다.
- 예측과 다르면 줄 번호 기준으로 한 줄씩 원인을 찾는다.
- 값 하나만 바꿔 재실행하고 변화 이유를 기록한다.
교재형 해설
Section titled “교재형 해설”아래 실습은 “교과서 예제 따라 하기” 방식입니다. 핵심은 정답 암기가 아니라, 실행-확인-수정 루프를 반복하는 습관입니다.
예제 1: 첫 실행 경험 만들기
Section titled “예제 1: 첫 실행 경험 만들기” 예제 1 줄별 해설
Section titled “예제 1 줄별 해설”print("안녕하세요, 1주차 실습입니다!")- 화면에 고정 문장을 출력해 “실행 성공 여부”를 즉시 확인합니다.
name = "홍길동"- 문자열 데이터를
name에 저장합니다.
- 문자열 데이터를
age = 19- 숫자 데이터를
age에 저장합니다.
- 숫자 데이터를
print("이름:", name)- 라벨(문자열) + 변수 값을 함께 출력합니다.
print("나이:", age)- 저장된 숫자가 그대로 출력되는지 확인합니다.
print("내년 나이:", age + 1)- 숫자 연산 결과를 즉시 출력해 변수 활용을 경험합니다.
예제 1 실전 체크
Section titled “예제 1 실전 체크”age = 19를age = 20으로 바꿔 다시 실행name을 본인 이름으로 바꿔 실행- 출력 5줄이 모두 의도대로 바뀌는지 확인
예제 2: 입력을 바꿔 결과 변화 보기
Section titled “예제 2: 입력을 바꿔 결과 변화 보기” 예제 2 줄별 해설
Section titled “예제 2 줄별 해설”study_hour = 2: 한 주 공부 시간을 정의합니다.week = 15: 학기 주차를 정의합니다.total_hour = study_hour * week: 전체 시간을 계산합니다.print(...)3줄: 입력값과 계산값을 사람이 읽기 좋은 형태로 확인합니다.if total_hour >= 30:: 기준 충족 여부를 True/False로 판단합니다.else:: 기준 미달일 때 대체 메시지를 출력합니다.
예제 2 실전 체크
Section titled “예제 2 실전 체크”study_hour를 1, 3, 4로 바꿔 결과 비교- 기준값
30을40으로 바꿔 분기 결과 비교 - “왜 해당 문장이 출력됐는지”를 한 줄로 설명
자주 나오는 실수 정리표
Section titled “자주 나오는 실수 정리표”| 실수 | 증상 | 원인 | 해결 |
|---|---|---|---|
| 따옴표 하나 누락 | SyntaxError, 실행 중단 | 문자열 시작/끝 기호 불일치 | 따옴표를 쌍으로 맞춘 뒤 재실행 |
| 변수 철자 불일치 | name 'x' is not defined | 선언 이름과 사용 이름이 다름 | 같은 철자로 통일 |
if 블록 들여쓰기 누락 | expected an indented block | 블록 규칙 미이해 | if 아래 줄 4칸 들여쓰기 |
| 숫자를 문자열로 저장 | TypeError 발생 | 자료형 개념 미정립 | 계산값은 따옴표 없이 입력 |
| 수정 후 실행 누락 | 출력이 그대로임 | 실행 절차 누락 | 수정할 때마다 실행 버튼 클릭 |
| 에러 첫 줄 미확인 | 같은 오류 반복 | 원인 줄을 안 읽음 | 에러 메시지 첫 줄부터 확인 |
실수 예시: 표를 코드로 확인하기
Section titled “실수 예시: 표를 코드로 확인하기”1) 따옴표 하나 누락
Section titled “1) 따옴표 하나 누락”Bad
print("안녕하세요)Good
print("안녕하세요")설명: 문자열은 시작 따옴표와 끝 따옴표가 반드시 짝을 이뤄야 합니다.
2) 변수 철자 불일치
Section titled “2) 변수 철자 불일치”Bad
ag = 19print(age)Good
age = 19print(age)설명: 파이썬은 철자가 다르면 완전히 다른 이름으로 인식합니다.
3) if 블록 들여쓰기 누락
Section titled “3) if 블록 들여쓰기 누락”Bad
total_hour = 32if total_hour >= 30:print("enough practice")Good
total_hour = 32if total_hour >= 30: print("enough practice")설명: if 아래에서 실행될 코드는 반드시 한 단계 들여써야 합니다.
4) 숫자를 문자열로 저장
Section titled “4) 숫자를 문자열로 저장”Bad
age = "19"print(age + 1)Good
age = 19print(age + 1)설명: 따옴표가 있으면 문자열이므로 숫자 연산이 되지 않습니다.
5) 수정 후 실행 누락
Section titled “5) 수정 후 실행 누락”Bad
age = 19print("내년 나이:", age + 1)# 값을 20으로 고쳐 놓고 실행하지 않음Good
age = 20print("내년 나이:", age + 1)# 수정 후 바로 다시 실행함설명: 코드를 고친 뒤 실행하지 않으면 화면에는 이전 결과가 그대로 남습니다.
6) 에러 첫 줄 미확인
Section titled “6) 에러 첫 줄 미확인”Bad
name = "Kim"print(nmae)Good
name = "Kim"print(name)설명: 에러 메시지의 첫 줄을 보면 어떤 이름이 정의되지 않았는지 바로 확인할 수 있습니다.
에러 메시지 읽는 법
Section titled “에러 메시지 읽는 법”프로그래밍을 배울 때 에러는 피할 수 없습니다. 에러가 났을 때 당황하지 않으려면, 트레이스백(traceback)을 구조적으로 읽는 법을 먼저 익혀야 합니다.
트레이스백이란?
Section titled “트레이스백이란?”트레이스백은 Python이 실행 중 오류를 만났을 때 출력하는 오류 보고서입니다. 보통 아래 구조로 구성됩니다.
Traceback (most recent call last): File "<stdin>", line 2, in <module>NameError: name 'nmae' is not defined- 줄 번호 (
line 2): 오류가 발생한 코드 위치입니다. - 에러 종류 (
NameError): 어떤 종류의 문제인지 알려 줍니다. - 에러 메시지 (
name 'nmae' is not defined): 구체적인 원인을 설명합니다.
자주 나오는 에러 3가지
Section titled “자주 나오는 에러 3가지”1) SyntaxError — 문법 규칙을 어겼을 때
Section titled “1) SyntaxError — 문법 규칙을 어겼을 때”print("안녕하세요)SyntaxError: EOL while scanning string literal설명: 문자열의 닫는 따옴표가 없어 Python이 코드를 해석하지 못합니다.
2) NameError — 정의하지 않은 이름을 사용했을 때
Section titled “2) NameError — 정의하지 않은 이름을 사용했을 때”name = "Kim"print(nmae)NameError: name 'nmae' is not defined설명: name을 선언했지만 nmae라는 철자로 잘못 사용했습니다.
3) TypeError — 서로 다른 자료형끼리 연산했을 때
Section titled “3) TypeError — 서로 다른 자료형끼리 연산했을 때”age = "20"print(age + 1)TypeError: can only concatenate str (not "int") to str설명: age가 문자열("20")인데 숫자 1을 더하려 했습니다. age = 20처럼 따옴표 없이 저장해야 합니다.
실습 문제 · 직접 코딩
Section titled “실습 문제 · 직접 코딩”문제: 화면에 환영 문장, 이름, 전공을 3줄로 출력하세요.
문제: 변수 name, major, age를 만들고, 저장한 값을 출력하세요.
문제: 주당 공부 시간과 주차 수를 이용해 학기 총 공부 시간을 계산하세요.
문제: 총 공부 시간이 30시간 이상이면 enough practice, 아니면 need more practice를 출력하세요.
문제 (도전): 에러 메시지를 읽고 버그를 수정하세요.