전북과학고 2026학년도 1학기 정보 프로젝트 소논문 20

전북 과학고 정보 수업용 프로젝트 소논문 주제 예시

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}])))
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

03. 교실 CO₂ 농도와 학습 환경 분석

성취기준 연결: 피지컬 컴퓨팅·데이터 난이도: 중급

연구 질문

교실 CO₂ 농도 변화는 환기 시간, 인원수, 수업 형태와 어떤 관계가 있는가?

탐구 설계

CO₂ 센서 데이터를 시간 단위로 기록하고 이동평균·상관분석으로 환기 효과를 분석한다.

예상 산출물

환기 권장 기준표, 시간대별 CO₂ 그래프, 자동 알림 프로토타입

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('co2_classroom.csv', parse_dates=['time'])
df['co2_ma'] = df['co2'].rolling(5).mean()
print(df[['co2','students','window_open']].corr(numeric_only=True))
plt.plot(df['time'], df['co2'], label='CO2')
plt.plot(df['time'], df['co2_ma'], label='moving average')
plt.axhline(1000, linestyle='--', label='ventilation guide')
plt.legend(); plt.show()
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

04. 도서관 이용 로그 기반 추천

성취기준 연결: 데이터 구조·추천 알고리즘 난이도: 심화

연구 질문

대출 기록으로 과학고 학생에게 맞는 도서를 추천할 수 있는가?

탐구 설계

학생 이름 대신 익명 ID를 사용하고 도서-사용자 행렬을 만들어 코사인 유사도 추천을 구현한다.

예상 산출물

개인정보 비식별화 절차, 추천 정확도 평가, 추천 결과 예시

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

logs = pd.read_csv('library_logs.csv')  # user_id, book, count
mat = logs.pivot_table(index='user_id', columns='book', values='count', fill_value=0)
sim = cosine_similarity(mat)
sim_df = pd.DataFrame(sim, index=mat.index, columns=mat.index)
target = 'U003'
near = sim_df[target].drop(target).idxmax()
recommend = mat.loc[near][mat.loc[target] == 0].sort_values(ascending=False).head(5)
print(recommend)
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

05. 학교 와이파이 혼잡도 분석

성취기준 연결: 컴퓨팅 시스템·데이터 난이도: 중급

연구 질문

요일과 시간대에 따라 무선 네트워크 지연 시간이 어떻게 달라지는가?

탐구 설계

속도 측정 로그를 수집하고 시간대별 평균, 사분위수, 이상치를 분석한다.

예상 산출물

혼잡 시간대 히트맵, 네트워크 사용 개선 제안, 측정 방법의 한계

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

import pandas as pd

df = pd.read_csv('wifi_latency.csv')
summary = df.groupby(['weekday','hour'])['ping_ms'].agg(['mean','median','max','count'])
print(summary.sort_values('mean', ascending=False).head(10))
df['slow'] = df['ping_ms'] > 100
print(df.groupby('hour')['slow'].mean())
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

06. 스마트폰 과의존 설문 데이터 분석

성취기준 연결: 디지털 문화·통계 난이도: 중급

연구 질문

스마트폰 사용 시간, 알림 빈도, 수면 시간이 학습 집중도와 어떤 관련이 있는가?

탐구 설계

익명 설문을 실시하고 상관분석, 그룹 비교, 시각화를 통해 과의존 요인을 탐색한다.

예상 산출물

익명 설문지, 통계 분석표, 예방 캠페인 제안

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

import pandas as pd

df = pd.read_csv('phone_survey.csv')
cols = ['screen_time','notifications','sleep_hours','focus_score']
print(df[cols].corr())
df['risk_group'] = pd.cut(df['screen_time'], bins=[0,2,5,24], labels=['낮음','보통','높음'])
print(df.groupby('risk_group')['focus_score'].mean())
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

07. 피지컬 컴퓨팅 기반 스마트 온실

성취기준 연결: 피지컬 컴퓨팅·알고리즘 난이도: 중급

연구 질문

온도·습도·토양 수분 센서값으로 자동 급수 판단을 할 수 있는가?

탐구 설계

센서값을 조건문으로 처리하고 임계값 방식과 간단한 점수화 방식을 비교한다.

예상 산출물

센서 회로도, 제어 알고리즘, 작동 영상, 로그 분석

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

# MicroPython 예시: Raspberry Pi Pico WH
from machine import ADC, Pin
import time

soil = ADC(26)
pump = Pin(15, Pin.OUT)

while True:
    value = soil.read_u16()
    dry = value < 28000
    pump.value(1 if dry else 0)
    print('soil:', value, 'pump:', pump.value())
    time.sleep(2)
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

08. 라즈베리파이 피코 WH 장애물 회피 자동차

성취기준 연결: 컴퓨팅 시스템·피지컬 컴퓨팅 난이도: 심화

연구 질문

초음파 센서 거리값과 모터 제어 알고리즘에 따라 장애물 회피 성능이 어떻게 달라지는가?

탐구 설계

직진·정지·회전 알고리즘을 구현하고 장애물 거리, 회전 시간, 성공률을 실험한다.

예상 산출물

배선도, 제어 코드, 성공률 표, 실패 원인 분석

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

from machine import Pin, time_pulse_us
import time

trig = Pin(3, Pin.OUT); echo = Pin(2, Pin.IN)
in1 = Pin(10, Pin.OUT); in2 = Pin(11, Pin.OUT)
in3 = Pin(12, Pin.OUT); in4 = Pin(13, Pin.OUT)

def distance_cm():
    trig.low(); time.sleep_us(2)
    trig.high(); time.sleep_us(10); trig.low()
    us = time_pulse_us(echo, 1, 30000)
    return us / 58

def forward(): in1.high(); in2.low(); in3.high(); in4.low()
def turn(): in1.low(); in2.high(); in3.high(); in4.low()
def stop(): in1.low(); in2.low(); in3.low(); in4.low()

while True:
    d = distance_cm()
    if d < 18:
        stop(); time.sleep(0.2); turn(); time.sleep(0.5)
    else:
        forward()
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

09. 마이크로비트 라디오 네트워크 실험

성취기준 연결: 네트워크·컴퓨팅 시스템 난이도: 중급

연구 질문

라디오 그룹, 송신 간격, 장애물에 따라 메시지 수신률은 어떻게 변하는가?

탐구 설계

여러 micro:bit를 노드로 사용하여 송신 횟수와 수신 횟수를 기록한다.

예상 산출물

수신률 그래프, 통신 거리 실험표, 네트워크 충돌 설명

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

# micro:bit MicroPython 송신기
from microbit import *
import radio

radio.on()
radio.config(group=7, power=6)
count = 0
while True:
    count += 1
    radio.send('A:' + str(count))
    display.scroll(str(count))
    sleep(1000)
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

10. 학교 에너지 사용량 이상 탐지

성취기준 연결: 데이터 과학·인공지능 난이도: 심화

연구 질문

전력 사용량 로그에서 비정상 패턴을 자동으로 찾아낼 수 있는가?

탐구 설계

시간대별 전력 사용량의 평균과 표준편차를 계산하고 Isolation Forest로 이상치를 탐지한다.

예상 산출물

이상 사용 시간 목록, 원인 추정, 에너지 절약 제안

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

import pandas as pd
from sklearn.ensemble import IsolationForest

df = pd.read_csv('electricity.csv')
X = df[['kwh','temperature','hour']]
model = IsolationForest(contamination=0.05, random_state=42)
df['anomaly'] = model.fit_predict(X)
print(df[df['anomaly'] == -1][['date','hour','kwh','temperature']].head(20))
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

11. 진로 선택 과목 수요 예측

성취기준 연결: 데이터·의사결정 난이도: 중급

연구 질문

과거 신청 자료와 설문 자료로 다음 학기 선택 과목 수요를 예측할 수 있는가?

탐구 설계

학년, 관심 분야, 이전 이수 과목을 바탕으로 과목별 신청 가능성을 추정한다.

예상 산출물

과목별 예상 수요, 분반 시나리오, 데이터 편향 분석

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report

df = pd.read_csv('course_choice.csv')
X = pd.get_dummies(df[['grade','interest','prev_course']])
y = df['selected_course']
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
model = DecisionTreeClassifier(max_depth=5, random_state=1)
model.fit(X_train, y_train)
print(classification_report(y_test, model.predict(X_test)))
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

12. 기상 데이터와 등교 안전 지수

성취기준 연결: 데이터 융합·알고리즘 난이도: 중급

연구 질문

강수량, 적설량, 체감온도, 풍속을 종합하여 등교 안전 지수를 만들 수 있는가?

탐구 설계

여러 기상 요소에 가중치를 부여하고 위험 등급 분류 알고리즘을 설계한다.

예상 산출물

안전 지수 공식, 등급별 안내 문구, 사례 검증

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

def safety_index(rain, snow, wind, feels_like):
    score = 0
    score += min(rain * 2, 30)
    score += min(snow * 8, 35)
    score += min(wind * 1.5, 20)
    if feels_like < -5: score += 15
    if score >= 60: return score, '위험'
    if score >= 35: return score, '주의'
    return score, '보통'

print(safety_index(rain=12, snow=1.5, wind=6, feels_like=-3))
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

13. 뉴스 댓글 감성 분석

성취기준 연결: 인공지능·자연어 처리 난이도: 심화

연구 질문

과학기술 뉴스 댓글의 감성은 주제별로 어떻게 달라지는가?

탐구 설계

공개 댓글 또는 직접 만든 문장 데이터를 사용해 형태소 단위 전처리와 감성 분류를 실험한다.

예상 산출물

전처리 규칙, 감성 비율 그래프, 오분류 사례 분석

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline

df = pd.read_csv('comments_labeled.csv')  # text, label
model = Pipeline([
    ('tfidf', TfidfVectorizer(max_features=3000, ngram_range=(1,2))),
    ('clf', LogisticRegression(max_iter=1000))
])
model.fit(df['text'], df['label'])
print(model.predict(['인공지능 기술이 편리하지만 개인정보 보호가 걱정된다']))
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

14. 학교 공지 챗봇 RAG 모형

성취기준 연결: 인공지능·정보 검색 난이도: 심화

연구 질문

학교 공지 문서를 검색하여 질문에 근거 있는 답을 제시하는 챗봇을 만들 수 있는가?

탐구 설계

공지 문서를 문단 단위로 나누고 TF-IDF 유사도로 관련 문단을 검색한다.

예상 산출물

근거 문단 표시 챗봇, 검색 정확도 평가, 할루시네이션 방지 규칙

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

docs = [
    '기숙사 귀가 신청은 금요일 17시까지 제출합니다.',
    '정보 창의력 경진대회 신청 기간은 7월 10일까지입니다.',
    '과학탐구 발표회 예선은 강당에서 진행됩니다.'
]
q = '정보 경진대회는 언제까지 신청하나요?'
vec = TfidfVectorizer().fit(docs + [q])
X = vec.transform(docs + [q])
scores = cosine_similarity(X[-1], X[:-1]).ravel()
print(docs[scores.argmax()])
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

15. 얼굴 인식 없는 출결 보조 시스템

성취기준 연결: 디지털 윤리·피지컬 컴퓨팅 난이도: 중급

연구 질문

개인 얼굴 데이터를 쓰지 않고도 출결 확인 절차를 효율화할 수 있는가?

탐구 설계

QR, 난수 코드, 시간 제한 입력 방식 등 개인정보 최소 수집 설계를 비교한다.

예상 산출물

개인정보 영향 분석표, 프로토타입, 부정 출석 방지 아이디어

소논문 구성 예시

  • Ⅰ. 연구 동기와 문제 정의
  • Ⅱ. 관련 개념: 데이터 구조, 알고리즘, 모델 또는 컴퓨팅 시스템
  • Ⅲ. 데이터 수집·전처리·윤리 검토
  • Ⅳ. 구현 및 실험 결과
  • Ⅴ. 한계와 개선 방향

예시 코드

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)
평가 요소
문제 정의과학고 맥락의 구체적 연구 질문 제시주제는 명확하나 변수 정의가 일부 부족탐구 가능성이 낮거나 범위가 모호
정보 역량데이터·알고리즘·시스템 개념을 근거 있게 활용기본 기능 구현은 가능하나 분석 깊이가 보통코드 실행 위주이며 해석이 부족
윤리·보안개인정보 최소 수집과 비식별화 원칙 반영윤리 고려가 있으나 절차가 간단함민감정보 처리 위험을 설명하지 못함

공통 작성 양식

  1. 제목: 핵심 변수와 알고리즘이 드러나도록 쓴다.
  2. 초록: 연구 목적, 방법, 결과, 의의를 5~7문장으로 요약한다.
  3. 연구 방법: 데이터 출처, 수집 기간, 전처리 방법, 사용 라이브러리를 명시한다.
  4. 결과: 표와 그래프를 함께 제시하고 오차, 한계, 편향 가능성을 해석한다.
  5. 결론: 정보 성취기준과 연결하여 문제 해결 과정에서 배운 점을 정리한다.

권장 라이브러리: pandas, matplotlib, scikit-learn, OpenCV, MicroPython. 외부 데이터를 사용할 때는 출처와 수집 날짜를 반드시 기록한다.