2022 개정 고등학교 정보 과목의 흐름인 컴퓨팅 시스템, 데이터, 알고리즘과 프로그래밍, 인공지능, 디지털 문화를 중심으로 과학고 학생이 탐구 보고서·소논문·수행평가로 발전시킬 수 있는 주제 20개를 구성하였다. 각 주제는 연구 질문, 성취기준 연결, 수행 절차, 산출물, 평가 포인트, 예시 파이썬 코드로 이루어진다.
※ 실제 연구에서는 공개 데이터, 직접 측정 데이터, 익명 설문 데이터만 사용하고 개인정보는 수집하지 않도록 설계한다.
01. 교내 미세먼지 데이터 예측
성취기준 연결: 데이터·인공지능난이도: 중급
연구 질문
교내외 미세먼지, 기온, 습도, 풍속 자료로 다음 시간대 미세먼지를 예측할 수 있는가?
탐구 설계
센서 또는 공공데이터를 수집하고 결측치를 보정한 뒤 선형회귀·랜덤포레스트를 비교한다.
예상 산출물
시간대별 PM2.5 예측 그래프, 변수 중요도, 예측 오차 분석
소논문 구성 예시
Ⅰ. 연구 동기와 문제 정의
Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
Ⅲ. 데이터 수집·전처리·윤리 검토
Ⅳ. 구현 및 실험 결과
Ⅴ. 한계와 개선 방향
예시 코드
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
df = pd.read_csv('school_air.csv')
X = df[['temperature','humidity','wind','pm25_prev']]
y = df['pm25_next']
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
model = RandomForestRegressor(n_estimators=200, random_state=42)
model.fit(X_train, y_train)
pred = model.predict(X_test)
print('MAE:', mean_absolute_error(y_test, pred))
print(pd.Series(model.feature_importances_, index=X.columns))
평가 요소
상
중
하
문제 정의
과학고 맥락의 구체적 연구 질문 제시
주제는 명확하나 변수 정의가 일부 부족
탐구 가능성이 낮거나 범위가 모호
정보 역량
데이터·알고리즘·시스템 개념을 근거 있게 활용
기본 기능 구현은 가능하나 분석 깊이가 보통
코드 실행 위주이며 해석이 부족
윤리·보안
개인정보 최소 수집과 비식별화 원칙 반영
윤리 고려가 있으나 절차가 간단함
민감정보 처리 위험을 설명하지 못함
02. 급식 잔반량 예측과 최적화
성취기준 연결: 데이터·알고리즘난이도: 중급
연구 질문
메뉴, 요일, 날씨, 시험 기간 정보로 급식 잔반량을 예측하고 낭비를 줄일 수 있는가?
탐구 설계
급식 메뉴와 잔반량을 표로 정리하고 범주형 변수를 원-핫 인코딩하여 회귀 모델을 만든다.
예상 산출물
잔반량 예측 모델, 감축 시나리오, 지속가능발전 관점 제안
소논문 구성 예시
Ⅰ. 연구 동기와 문제 정의
Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
Ⅲ. 데이터 수집·전처리·윤리 검토
Ⅳ. 구현 및 실험 결과
Ⅴ. 한계와 개선 방향
예시 코드
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
from sklearn.pipeline import Pipeline
from sklearn.ensemble import GradientBoostingRegressor
df = pd.read_csv('lunch_waste.csv')
X = df[['day','main_menu','temperature','exam_week']]
y = df['waste_kg']
pre = ColumnTransformer([('cat', OneHotEncoder(handle_unknown='ignore'), ['day','main_menu'])], remainder='passthrough')
model = Pipeline([('preprocess', pre), ('reg', GradientBoostingRegressor(random_state=0))])
model.fit(X, y)
print(model.predict(pd.DataFrame([{'day':'월','main_menu':'비빔밥','temperature':24,'exam_week':0}])))
import secrets, time
valid_code = secrets.token_hex(3).upper()
start = time.time()
print('오늘의 출석 코드:', valid_code)
answer = input('코드 입력: ').strip().upper()
elapsed = time.time() - start
if answer == valid_code and elapsed <= 60:
print('출석 확인')
else:
print('확인 실패 또는 시간 초과')
평가 요소
상
중
하
문제 정의
과학고 맥락의 구체적 연구 질문 제시
주제는 명확하나 변수 정의가 일부 부족
탐구 가능성이 낮거나 범위가 모호
정보 역량
데이터·알고리즘·시스템 개념을 근거 있게 활용
기본 기능 구현은 가능하나 분석 깊이가 보통
코드 실행 위주이며 해석이 부족
윤리·보안
개인정보 최소 수집과 비식별화 원칙 반영
윤리 고려가 있으나 절차가 간단함
민감정보 처리 위험을 설명하지 못함
16. 암호 해시와 개인정보 보호 실험
성취기준 연결: 정보보안·디지털 문화난이도: 중급
연구 질문
같은 비밀번호라도 salt를 사용하면 해시 결과가 어떻게 달라지는가?
탐구 설계
SHA-256, salt, 무차별 대입 시간을 실험하고 안전한 저장 원칙을 정리한다.
예상 산출물
해시 실험 보고서, 보안 수칙 카드뉴스, 공격 시나리오와 방어
소논문 구성 예시
Ⅰ. 연구 동기와 문제 정의
Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
Ⅲ. 데이터 수집·전처리·윤리 검토
Ⅳ. 구현 및 실험 결과
Ⅴ. 한계와 개선 방향
예시 코드
import hashlib, os
def hash_password(password):
salt = os.urandom(16)
digest = hashlib.pbkdf2_hmac('sha256', password.encode(), salt, 100000)
return salt.hex(), digest.hex()
for _ in range(3):
print(hash_password('ScienceHigh!2026'))
평가 요소
상
중
하
문제 정의
과학고 맥락의 구체적 연구 질문 제시
주제는 명확하나 변수 정의가 일부 부족
탐구 가능성이 낮거나 범위가 모호
정보 역량
데이터·알고리즘·시스템 개념을 근거 있게 활용
기본 기능 구현은 가능하나 분석 깊이가 보통
코드 실행 위주이며 해석이 부족
윤리·보안
개인정보 최소 수집과 비식별화 원칙 반영
윤리 고려가 있으나 절차가 간단함
민감정보 처리 위험을 설명하지 못함
17. 그래프 이론 기반 동아리 매칭
성취기준 연결: 알고리즘·최적화난이도: 심화
연구 질문
학생 희망 순위와 동아리 정원을 고려하여 만족도가 높은 배정을 만들 수 있는가?
탐구 설계
희망 순위 점수를 정의하고 탐욕 알고리즘 또는 이분 매칭을 구현한다.
예상 산출물
배정 알고리즘, 만족도 지표, 공정성 분석
소논문 구성 예시
Ⅰ. 연구 동기와 문제 정의
Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
Ⅲ. 데이터 수집·전처리·윤리 검토
Ⅳ. 구현 및 실험 결과
Ⅴ. 한계와 개선 방향
예시 코드
students = {
'S1':['AI','Physics','Bio'], 'S2':['Bio','AI','Chem'],
'S3':['AI','Chem','Physics'], 'S4':['Physics','Bio','AI']
}
capacity = {'AI':2, 'Physics':1, 'Bio':1, 'Chem':1}
assigned = {}
for round_idx in range(3):
for s, prefs in students.items():
if s in assigned: continue
club = prefs[round_idx]
if capacity[club] > 0:
assigned[s] = club
capacity[club] -= 1
print(assigned)
평가 요소
상
중
하
문제 정의
과학고 맥락의 구체적 연구 질문 제시
주제는 명확하나 변수 정의가 일부 부족
탐구 가능성이 낮거나 범위가 모호
정보 역량
데이터·알고리즘·시스템 개념을 근거 있게 활용
기본 기능 구현은 가능하나 분석 깊이가 보통
코드 실행 위주이며 해석이 부족
윤리·보안
개인정보 최소 수집과 비식별화 원칙 반영
윤리 고려가 있으나 절차가 간단함
민감정보 처리 위험을 설명하지 못함
18. 유전 알고리즘 시간표 최적화
성취기준 연결: 알고리즘·최적화난이도: 심화
연구 질문
교사·교실·과목 제약을 만족하면서 충돌이 적은 시간표를 자동 생성할 수 있는가?
탐구 설계
시간표를 염색체로 표현하고 충돌 수를 적합도로 두어 세대를 반복한다.
예상 산출물
제약 조건 목록, 적합도 변화 그래프, 최종 시간표
소논문 구성 예시
Ⅰ. 연구 동기와 문제 정의
Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
Ⅲ. 데이터 수집·전처리·윤리 검토
Ⅳ. 구현 및 실험 결과
Ⅴ. 한계와 개선 방향
예시 코드
import random
classes = ['정보','수학','물리','화학']
slots = list(range(1, 9))
def make_plan():
return {c: random.choice(slots) for c in classes}
def penalty(plan):
return len(plan.values()) - len(set(plan.values()))
pop = [make_plan() for _ in range(30)]
for gen in range(50):
pop.sort(key=penalty)
parents = pop[:10]
children = []
for _ in range(20):
a, b = random.sample(parents, 2)
child = {c: random.choice([a[c], b[c]]) for c in classes}
if random.random() < 0.2: child[random.choice(classes)] = random.choice(slots)
children.append(child)
pop = parents + children
print(pop[0], 'penalty=', penalty(pop[0]))
평가 요소
상
중
하
문제 정의
과학고 맥락의 구체적 연구 질문 제시
주제는 명확하나 변수 정의가 일부 부족
탐구 가능성이 낮거나 범위가 모호
정보 역량
데이터·알고리즘·시스템 개념을 근거 있게 활용
기본 기능 구현은 가능하나 분석 깊이가 보통
코드 실행 위주이며 해석이 부족
윤리·보안
개인정보 최소 수집과 비식별화 원칙 반영
윤리 고려가 있으나 절차가 간단함
민감정보 처리 위험을 설명하지 못함
19. 생명과학 실험 이미지 분류
성취기준 연결: 인공지능·융합 탐구난이도: 심화
연구 질문
현미경 이미지에서 세포 상태를 자동 분류할 수 있는가?
탐구 설계
공개 이미지 또는 직접 촬영한 비식별 이미지를 사용하여 밝기·윤곽 특징을 추출하고 분류한다.
예상 산출물
이미지 전처리 과정, 분류 정확도, 오분류 이미지 분석
소논문 구성 예시
Ⅰ. 연구 동기와 문제 정의
Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
Ⅲ. 데이터 수집·전처리·윤리 검토
Ⅳ. 구현 및 실험 결과
Ⅴ. 한계와 개선 방향
예시 코드
import cv2, glob
import pandas as pd
rows = []
for path in glob.glob('cell_images/*.png'):
img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
blur = cv2.GaussianBlur(img, (5,5), 0)
edges = cv2.Canny(blur, 50, 150)
rows.append({'file':path, 'mean':img.mean(), 'edge_pixels':(edges>0).sum()})
features = pd.DataFrame(rows)
print(features.head())
평가 요소
상
중
하
문제 정의
과학고 맥락의 구체적 연구 질문 제시
주제는 명확하나 변수 정의가 일부 부족
탐구 가능성이 낮거나 범위가 모호
정보 역량
데이터·알고리즘·시스템 개념을 근거 있게 활용
기본 기능 구현은 가능하나 분석 깊이가 보통
코드 실행 위주이며 해석이 부족
윤리·보안
개인정보 최소 수집과 비식별화 원칙 반영
윤리 고려가 있으나 절차가 간단함
민감정보 처리 위험을 설명하지 못함
20. 천문 관측 데이터로 변광성 탐색
성취기준 연결: 데이터 과학·천문 융합난이도: 심화
연구 질문
별의 밝기 시계열 데이터에서 주기적으로 변하는 천체를 찾을 수 있는가?
탐구 설계
관측 시각과 밝기 자료를 정리하고 이동평균, 피크 탐색, 주기 후보를 계산한다.
예상 산출물
광도 곡선, 주기 후보, 천문학적 해석
소논문 구성 예시
Ⅰ. 연구 동기와 문제 정의
Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
Ⅲ. 데이터 수집·전처리·윤리 검토
Ⅳ. 구현 및 실험 결과
Ⅴ. 한계와 개선 방향
예시 코드
import pandas as pd
import numpy as np
df = pd.read_csv('star_lightcurve.csv') # time, magnitude
df['smooth'] = df['magnitude'].rolling(5, center=True).mean()
# 간단한 주기 후보: 자기상관이 큰 시간 차이 탐색
values = df['magnitude'].fillna(df['magnitude'].mean()).to_numpy()
values = values - values.mean()
autocorr = np.correlate(values, values, mode='full')[len(values)-1:]
period_index = np.argmax(autocorr[5:80]) + 5
print('period candidate index:', period_index)
평가 요소
상
중
하
문제 정의
과학고 맥락의 구체적 연구 질문 제시
주제는 명확하나 변수 정의가 일부 부족
탐구 가능성이 낮거나 범위가 모호
정보 역량
데이터·알고리즘·시스템 개념을 근거 있게 활용
기본 기능 구현은 가능하나 분석 깊이가 보통
코드 실행 위주이며 해석이 부족
윤리·보안
개인정보 최소 수집과 비식별화 원칙 반영
윤리 고려가 있으나 절차가 간단함
민감정보 처리 위험을 설명하지 못함
공통 작성 양식
제목: 핵심 변수와 알고리즘이 드러나도록 쓴다.
초록: 연구 목적, 방법, 결과, 의의를 5~7문장으로 요약한다.
연구 방법: 데이터 출처, 수집 기간, 전처리 방법, 사용 라이브러리를 명시한다.
결과: 표와 그래프를 함께 제시하고 오차, 한계, 편향 가능성을 해석한다.
결론: 정보 성취기준과 연결하여 문제 해결 과정에서 배운 점을 정리한다.
권장 라이브러리: pandas, matplotlib, scikit-learn, OpenCV, MicroPython. 외부 데이터를 사용할 때는 출처와 수집 날짜를 반드시 기록한다.