미시건대-모두를 위한 파이썬 코스
이 글은 Coursera에서 제공하는 미시간 대학교의 강의, "Python for Everybody"의 학습을 돕기 위해 작성되었습니다. 이 시리즈는 총 5개의 코스로 구성되어 있으며, 각 코스마다 세부 모듈이 짜임새 있게 나누어져 있습니다.
강의를 진행하시는 '척(Dr. Chuck)' 교수님은 해리포터 모자를 쓰고 열정적으로 설명해주시는데, 그 모습이 무척 인상적이라 이제 겨우 첫 번째 코스 중반임에도 벌써 정이 듬뿍 들었습니다. 특히 전 세계를 누비며 서울까지 찾아와 인터뷰를 진행하시는 그 열정에는 감탄이 절로 나오더라고요.
첫 번째 코스인 'Programming for Everybody'는 총 7개의 모듈로 이루어져 있습니다. 공부하다 막히는 부분이 있다면 훌륭한 과외 선생님인 AI를 활용해 보시길 추천합니다. Gemini가 모범생 같다면, ChatGPT는 상냥하고 유쾌한 과외 선생님처럼 친절하게 가이드를 해준답니다.
모듈별로 배치된 문제들을 하나씩 풀다 보면 기본 개념이 자연스럽게 잡히는 것을 느낄 수 있습니다. 만약 문제 풀이가 막혀 스트레스를 받는다면, 문제를 미리 펴놓고 강의를 들으며 실마리를 찾는 것도 좋은 방법입니다. 저의 경우 유튜브 파이썬 강좌, 교재, 그리고 AI까지 모든 자료를 동시에 열어놓고 공부하고 있는데, 이렇게 입체적으로 접근하니 확실히 감이 빨리 잡히더라고요.
처음에는 '도대체 이게 무슨 소리인가' 싶어 막막하기도 했지만, 포기하지 않고 정주행하다 보니 이제는 파이썬이 제법 친숙하게 느껴집니다. 여러분도 가벼운 마음으로 이 여정을 시작해 보세요!
프롤로그
이 챕터에서는 그 강좌의 핵심인 다섯 가지 개념을 함께 여행할 것입니다. 기억하고, 계산하고, 판단하고, 행동하고, 반복하는 것. 그것이 바로 컴퓨터가 생각하는 방식이고, 우리가 배울 파이썬의 마음입니다.
자, 천천히 함께 걸어가 봅시다.
본격적으로 시작하기 전에, 오늘 여행할 지도를 먼저 펼쳐봅시다.
우리는 매일 이렇게 살아갑니다.
"오늘 날씨가 흐리네. 우산을 챙겨야겠다."
이 짧은 한 문장 안에 놀랍게도 파이썬의 핵심이 모두 담겨 있습니다.
이 다섯 가지만 이해해도, 여러분은 스스로 생각하는 프로그램을 만들 수 있습니다. 지금부터 하나씩, 천천히 살펴보겠습니다.
1. 변수 — 기억하는 상자
컴퓨터가 가장 먼저 해야 하는 일은 기억입니다.
python
age = 10
이 코드는 딱 한 가지 일을 합니다.
"age라는 이름의 상자에 숫자 10을 넣어라."
여기서
age를 변수(variable)라고 부릅니다.
우리도 비슷하게 삽니다. 친구 전화번호를 외우는 대신 폰에 이름을 저장하고, 중요한 날짜는 캘린더에 적어두죠. 파이썬의 변수도 똑같습니다. 숫자든, 이름이든, 어떤 값이든 — 기억하고 싶다면 이름을 붙여 상자에 넣으면 됩니다.
python
name = "민준"
score = 95
is_raining = True
왜 변수가 필요할까요?
변수 없이 코딩을 한다면, 똑같은 숫자를 코드 곳곳에 반복해서 써야 합니다. 나중에 그 숫자 하나를 바꾸고 싶다면? 코드 전체를 뒤져야 하죠. 하지만 변수를 쓰면, 딱 한 군데만 고치면 됩니다.
변수는 값을 기억하기 위한 이름표입니다.
2. 표현식 — 계산하는 방법
기억한 값으로 이제 무언가를 계산해봅시다.
python
a = 10
b = 5
result = a + b
여기서
a + b 부분을 표현식(expression)이라고 합니다.
표현식은 생각보다 단순합니다. 더하고, 빼고, 곱하고, 나누는 것. 우리가 초등학교에서 배운 바로 그 계산입니다.
python
total = 80 + 90 + 70
# 세 과목 점수 합산 average = total / 3
# 평균 계산 discount = price * 0.9
# 10% 할인 가격
왜 표현식이 필요할까요?
컴퓨터는 단순히 값을 기억하는 것을 넘어, 그 값으로 의미 있는 결과를 만들어야 합니다. 학생의 평균 점수를 구하고, 물건의 할인 가격을 계산하고, 게임 캐릭터의 남은 체력을 알아내는 것 — 이 모든 것이 표현식입니다.
표현식은 값을 계산하는 방법입니다.
3. 조건문 — 판단하는 능력
이제 프로그램이 진짜 "생각"을 하기 시작합니다.
python
score = 80
if score >= 60:
print("합격") else:
print("불합격")
이 코드를 한국어로 읽으면 이렇습니다.
"점수가 60 이상이면 '합격'을 출력하고, 그렇지 않으면 '불합격'을 출력해라."
이것을 조건문(if)이라고 합니다.
우리의 하루도 조건문으로 가득합니다.
배가 고프면 → 밥을 먹는다
비가 오면 → 우산을 챙긴다
늦었으면 → 뛰어간다
이런 판단을 컴퓨터에게 가르치는 것이 바로 조건문입니다.
python
temperature = 35
if temperature >= 30:
print("오늘은 너무 덥네요. 시원하게 지내세요!")
elif temperature >= 20:
print("오늘 날씨가 딱 좋네요.")
else:
print("쌀쌀하니 따뜻하게 입으세요.")
왜 조건문이 필요할까요?
조건문이 없다면 프로그램은 언제나 똑같은 일만 합니다. 어떤 상황이든, 어떤 값이 들어오든 무조건 같은 결과만 내놓죠. 조건문이 있어야 비로소 프로그램이 상황에 맞게 반응할 수 있습니다.
조건문은 프로그램이 스스로 판단하는 능력입니다.
4. 함수 — 행동을 만드는 도구
이제 우리만의 기능을 만들어봅시다.
python
def greet(name):
print(name + "님, 안녕하세요!")
이 두 줄은 "이름을 받아서 인사하는 기능"을 만든 것입니다. 사용할 때는 이렇게 씁니다.
python
greet("민준")
greet("서연")
greet("지호") ```
결과: ```
민준님, 안녕하세요!
서연님, 안녕하세요!
지호님, 안녕하세요!
함수는 이렇게 생겼습니다.
python
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
여기서
a, b는 재료이고,
return은 완성된 결과물입니다. 마치 요리처럼 — 재료를 넣으면, 요리가 나옵니다.
퀴즈 문제 풀다보면 return을 이용한 함정 문제가 있으니 조심하세요.

문제에 잘 나오는 함수 필수 용어 잠깐 정리해보았습니다. 내장 함수(Built-in Function)으로 구성된 함수들입니다.
왜 함수가 필요할까요?
같은 코드를 여러 번 쓰다 보면 실수가 생깁니다. 그리고 나중에 고쳐야 할 때 모든 곳을 다 찾아야 하죠. 함수를 쓰면 한 번 만들어 두고, 어디서든 불러 쓸 수 있습니다. 한 곳만 고치면 전체가 바뀝니다.
함수는 자주 쓰는 행동을 묶어두는 똑똑한 방법입니다.
5. 루프 — 반복하는 힘
마지막 퍼즐입니다.
python
for i in range(3):
print("안녕하세요") ```
결과: ``` 안녕하세요 안녕하세요 안녕하세요
단 두 줄로 세 번을 출력했습니다.
만약 100번이라면?
range(100)으로 바꾸면 끝입니다.
이것이 루프(Loop)입니다. "같은 일을 여러 번 반복하는 기능"이죠.
왜 루프가 필요할까요?
현실의 문제는 대부분 반복입니다.
학생 30명의 성적을 계산한다
쇼핑몰 상품 100개의 가격을 업데이트한다
게임 캐릭터가 매 순간 움직인다
루프 없이는 같은 코드를 수십, 수백 번 써야 합니다. 루프가 있으면 컴퓨터가 대신 반복해줍니다.
루프는 반복되는 일을 자동으로 처리하는 힘입니다.
6. 모든 것을 하나로 — 생각하는 프로그램
이제 다섯 가지를 모두 합쳐봅시다.
score = 75
# 변수: 점수 저장
def check_score(s):
# 함수: 판단 기능 만들기
if s >= 60:
# 조건문: 합격 여부 판단
return "합격"
else:
return "불합격"
for i in range(3): # 루프: 3번 반복
result = check_score(score) # 표현식:
함수 실행 결과 저장 print(result)
이 코드는 무엇을 하고 있을까요?
변수 — 점수 75를 기억합니다
함수 — "점수를 보고 합격/불합격을 알려주는 기능"을 만듭니다
조건문 — 60점 이상인지 판단합니다
표현식 — 함수를 실행한 결과를 저장합니다
루프 — 이 과정을 3번 반복합니다
단 여덟 줄 안에, 기억하고 → 판단하고 → 행동하고 → 반복하는 진짜 프로그램이 완성되었습니다.
7. 왜 이 순서로 배우는 걸까요?
University of Michigan의 강좌가 이 다섯 가지를 가장 먼저 가르치는 데는 이유가 있습니다.
복잡한 것부터 가르치지 않습니다. 가장 중요한 것부터 가르칩니다.
사실 파이썬에는 훨씬 더 많은 기능들이 있습니다. 하지만 이 다섯 가지만 제대로 이해하면, 기본적인 프로그램은 누구든 만들 수 있습니다. 화려한 기술 열 가지보다, 핵심 다섯 가지를 깊이 이해하는 것이 훨씬 강력합니다.
이것이 바로 이 강좌가 전 세계 수백만 명에게 사랑받는 이유입니다.
에필로그 — 포기하지 않는 사람이 이깁니다
처음에는 이런 생각이 들 수 있습니다.
"이게 어디에 쓰이지?" "나는 너무 늦게 시작한 건 아닐까?" "이 코드가 정말 맞는 건가?"
괜찮습니다. 그 느낌은 코딩을 배우는 모든 사람이 거쳐가는 과정입니다. 처음 자전거를 배울 때 넘어지는 것처럼, 처음 수영을 배울 때 물을 먹는 것처럼 — 그것은 실패가 아니라 배우고 있다는 증거입니다.
어느 순간, 이런 깨달음이 찾아올 것입니다.
"아… 반복되는 귀찮은 일을 컴퓨터한테 시킬 수 있구나!" "아… 조건에 따라 다르게 행동하게 만들 수 있구나!"
그 순간이 오면, 코딩은 더 이상 공부가 아닙니다. 창작이 됩니다.
코딩은 빠르게 배우는 사람이 잘하는 것이 아닙니다. 천천히, 하지만 포기하지 않는 사람이 결국 해냅니다.
오늘 이 글을 끝까지 읽은 여러분은, 이미 그 길 위에 서 있습니다.
잘 해오고 있습니다. 정말로요.