※ 엔트리 인공지능 워크북 QR 리스트

No	페이지	Q.R.	URL	내용
0	전체		https://m.site.naver.com/1psFg	엔트리 인공지능 워크북 코딩 전체.zip
01	1		https://naver.me/5xLcre3J	01. 행복 출석부 코딩 리메이크
02	5		https://naver.me/FHAmf1pr	02. 인공지능 로봇 보조 교사 코딩 리메이크
03	9		https://naver.me/FJiXSSpT	03. 댓글 클린봇 코딩 리메이크
04	13		https://naver.me/5AcHbk8q	04. 악플 피하기 게임 코딩 리메이크
05	18		https://naver.me/5qDStX1I	05. 달려라 긍정 로봇 코딩 리메이크

엔트리 인공지능 워크북.hwp

01

행복 출석부

엔트리 인공지능 워크북

□학년:      □반:      □번:        □이름:

(4) 프로그래밍

단 원

성취 기준

[9정04-03] 변수의 개념을 이해하고 변수와 연산자를 활용한 프로그램을 작성한다.

[9정04-04] 순차, 선택, 반복의 개념과 원리를 이해하고 세 가지 구조를 활용한 프로그램을 작성한다.

문 제

우리 반 친구들의 감정 표현 단어를 입력받아 행복한(happy) 감정인지, 슬픈(sad) 감정인지 분류하여 우리 반의 행복 현황이 실시간으로 나타나는 ‘행복 출석부’를 만들어 보자.

https://naver.me/5xLcre3J

문제 분석 및 설계

① 변수 정의

순	변수명	의미
1	감정 표현 여부	이미 자신의 감정을 표현한 친구가 다른 감정 다시 표현하지 않도록 총 다섯 자리의 숫자를 활용하여 각 친구의 위치를 나타냈고, 0은 감정 표현을 하지 않은 친구, 1은 감정 표현을 한 친구로 나타낸다.
2	총 학생 수	5명
3	행복도(%)	행복한 학생 수 ÷ 총 학생 수 × 100
4	슬픈 학생 수	표현한 감정 단어가 ‘sad’로 분류된 경우의 학생의 수
5	행복한 학생 수	표현한 감정 단어가 ‘happy’로 분류된 경우의 학생의 수

② 인공지능 모델(텍스트 분류)

순	레이블	훈련 데이터
1	happy	행복해, 이겼다, 100점, 칭찬, 맛있었어요, 좋아하는
2	sad	코로나, 아프다, 졸리다, 차였어요, 맛없는, 졌어요

오브젝트와 프로그래밍

감정 표현 여부의 1의 자리가 0이면 1로 바꾼다.

입력받은 대답을 학습한 모델로 분류한다.

분류 결과가 ‘happy’인 경우에 행복한 학생 수를 1증가시키고 행복률을 계산한다.

분류 결과가 ‘sad’인 경우에 슬픈 학생 수를 1증가시키고 행복률을 계산한다.

순번 1

표정 1

순번 2

감정 표현 여부의 10의 자리가 0이면 1로 바꾼다.

표정 2

순번 3

감정 표현 여부의 100의 자리가 0이면 1로 바꾼다.

표정 3

순번 4

감정 표현 여부의 1000의 자리가 0이면 1로 바꾼다.

표정 4

순번 5

감정 표현 여부의 10000의 자리가 0이면 1로 바꾼다.

표정 5

순번 6

우리 반 모든 학생들의 감정 파악이 완료된 경우

글상자

자기 평가

평가 항목	○	△	×
1. 변수를 화면과 맞게 정의하였는가?
2. 레이블을 정의하고, 적절한 훈련 데이터를 작성하였는가?
3. 친구들의 감정 표현 단어를 입력받았는가?
4. 감정인지 분류할 수 있도록 작성하였는가?
5. 행복 현황이 실시간으로 나타나는가?

02

인공지능 로봇 보조 교사

엔트리 인공지능 워크북

□학년:      □반:      □번:        □이름:

(4) 프로그래밍

단 원

성취 기준

[9정04-03] 변수의 개념을 이해하고 변수와 연산자를 활용한 프로그램을 작성한다.

[9정04-04] 순차, 선택, 반복의 개념과 원리를 이해하고 세 가지 구조를 활용한 프로그램을 작성한다.

문 제

교실에서 말로 선풍기와 전등을 켜고 꺼주는 인공지능 로봇 보조 교사를 만들어 보자.

https://naver.me/FHAmf1pr

문제 분석 및 설계

① 변수 정의

순	변수명	의미
1	선풍기 상태	선풍기가 켜져 있으면 ON, 꺼져 있으면 OFF
2	전등 상태	전등이 켜져 있으면 ON, 꺼져 있으면 OFF

② 신호

순	신호명	의미
1	전등_OFF	보조 교사가 전등을 끄도록 한다.
2	전등_ON	보조 교사가 전등을 켜도록 한다.
3	선풍기_OFF	보조 교사가 선풍기를 끄도록 한다.
4	선풍기_ON	보조 교사가 선풍기를 켜도록 한다.

③ 인공지능 모델(텍스트 분류)

순	레이블	훈련 데이터
1	전등 ON	불켜, 불 켜, 불 켜줘, 불켜줘, 불켜라, 불켜줄래, 어둡다, 어두워, 너무 어둡다, 너무 어두워, 너희 어둠의 자식이냐, 너네 어둠의 자식이냐
2	전등 OFF	불꺼, 불 꺼, 불 꺼줘, 불꺼줘, 불꺼라, 불꺼줄래, 밝다, 밝아, 너무 밝다, 너무 밝아
3	선풍기 ON	선풍기 켜, 선풍기켜, 선풍기켜줘, 선풍기 켜줘, 너무 덥다, 너무 더워
4	선풍기 OFF	선풍기 꺼, 선풍기꺼, 선풍기꺼줘, 선풍기 꺼줘, 너무 춥다, 너무 추워

오브젝트와 프로그래밍

교실
선풍기
교사	교사가 교실에서 나가면 자동으로 전등과 선풍기를 끄는 신호를 보낸다.
인공지능 로봇 보조 교사	음성 인식 결과를 학습한 모델로 분류한다. 분류 결과가 ‘전등 ON’인 경우에 전등이 꺼져 있으면 전등을 켜고, 전등이 이미 켜져 있으면 켜지 않는다.

자기 평가

평가 항목	○	△	×
1. 변수를 화면과 맞게 정의하였는가?
2. 레이블을 정의하고, 적절한 훈련 데이터를 작성하였는가?
3. 인공지능 로봇 보조 교사가 교실 내에서 선풍기와 전등을 제어하기 위해 사용한 음성 명령어를 말할 수 있는가?
4. 음성 인식을 위해 사용한 기술은 무엇인지 설명할 수 있는가?
5. 프로그래밍 작성 시 친구들과 협력하였는가?

03

댓글 클린봇 만들기

엔트리 인공지능 워크북

□학년:      □반:      □번:        □이름:

(4) 프로그래밍

단 원

성취 기준

[9정04-02] 다양한 형태의 자료를 입력 받아 처리하고 출력하기 위한 프로그램을 작성한다.

[9정04-03] 변수의 개념을 이해하고 변수와 연산자를 활용한 프로그램을 작성한다.

[9정04-04] 순차, 선택, 반복의 개념과 원리를 이해하고 세 가지 구조를 활용한 프로그램을 작성한다.

문 제

키보드나 음성 인식으로 입력한 댓글 문장들을 입력받아 단어별로 긍정인지 부정인지 확인하여 부정인 경우에는 ***** 표시로 가려주는 댓글 클린봇을 만들어 보자.

https://naver.me/FJiXSSpT

문제 분석 및 설계

① 변수 정의

순	변수명	의미
1	클린봇 활성화	토글 버튼 상태 저장(ON/OFF)
2	입력 댓글	키보드나 음성인식으로 입력한 댓글 내용

② 신호

순	신호명	의미
1	클린봇 활성화	토글로 클린봇을 활성화(ON)할지 말지(OFF) 여부를 설정한다.
2	키보드 입력	키보드로 댓글을 입력받도록 한다.
3	음성 입력	음성인식으로 댓글을 입력받도록 한다.
4	텍스트 입력 완료	텍스트 입력 완료시 입력 댓글을 왼쪽 말풍선에 작성한다.
5	텍스트 변환 완료	댓글의 부정 단어를 찾아 ***** 표시로 가려준다.

③ 리스트

순	리스트명	의미
1	단어 위치 리스트	입력 댓글에서 단어들의 끝 위치를 저장한다.
2	단어 리스트	입력 댓글에서 띄어쓰기 기준으로 구분한 단어들을 저장한다.
3	감성 판단 결과 리스트	입력 댓글 단어들이 긍정, 부정, 중립인지를 판단하여 저장한다.

④ 인공지능 모델(텍스트 분류)

순	레이블	훈련 데이터
1	긍정	https://github.com/park1200656/KnuSentiLex/blob/master/pos_pol_word.txt 에서 부분적으로 참고한다.(http://url.kr/gYwoWO)
2	부정	https://github.com/park1200656/KnuSentiLex/blob/master/neg_pol_word.txt 에서 부분적으로 참고한다.(http://url.kr/xEVng2)

⑤ 함수

순	함수명	코드
1	각종 리스트 초기화하기
2	단어 위치 리스트 구하기
3	단어의 위치 리스트를 통해 단어를 분리하기
4	단어에 대한 긍정, 부정, 중립 결과 리스트 구하기
5	클린봇 활성화인 경우 댓글 출력하기

오브젝트와 프로그래밍

토글	클린봇 활성화 변수를 활용하여 토글 버튼 효과를 낸다.
글상자
글상자	입력 댓글을 가지고 단어를 분리하여 각 단어별로 감성을 판단한 후 부정인 경우 ‘*****’로 교체한 후 출력한다.
글상자
글상자

각종 리스트 초기화하기	단어 위치 리스트, 단어 리스트, 감성 판단 결과 리스트의 항목들을 모두 삭제한다.
단어 위치 리스트 구하기	띄어쓰기 기준으로 구분된 단어들의 위치를 리스트에 저장한다.
단어의 위치 리스트를 통해 단어를 분리하기	단어 위치 리스트를 가지고 단어를 분리하여 단어 리스트에 저장한다.
단어에 대한 긍정, 부정, 중립 결과 리스트 구하기	단어 리스트에 저장된 단어를 학습한 모델로 분류한다. 분류 결과가 ‘긍정’이면 ‘긍정’을, ‘부정’이면 ‘부정’을, 그 외의 경우에는 ‘중립’을 감성 판단 결과 리스트에 저장한다.
클린봇 활성화인 경우 댓글 출력하기	감성 판단 결과가 ‘부정’이면 단어를 ‘*****’로 교체한다.

[함수]

자기 평가

평가 항목	○	△	×
1. 변수를 화면과 맞게 정의하였는가?
2. 레이블을 정의하고, 적절한 훈련 데이터를 작성하였는가?
3. 함수의 의미를 알고 적절하게 작성하였는가?
4. 리스트의 의미를 알고 적절하게 적용하였는가?
5. 프로그래밍 작성 시 친구들과 협력하였는가?

04

악플 피하기 게임

엔트리 인공지능 워크북

□학년:      □반:      □번:        □이름:

(4) 프로그래밍

단 원

성취 기준

[9정04-02] 다양한 형태의 자료를 입력 받아 처리하고 출력하기 위한 프로그램을 작성한다.

[9정04-03] 변수의 개념을 이해하고 변수와 연산자를 활용한 프로그램을 작성한다.

[9정04-04] 순차, 선택, 반복의 개념과 원리를 이해하고 세 가지 구조를 활용한 프로그램을 작성한다.

문 제

입력받은 글을 분석하여 위에서 내려오는 부정 단어(악플, 빨간색)는 피하고, 긍정 단어(파란색)는 먹는 악플 피하기 게임을 만들어 보자.

https://naver.me/5AcHbk8q

문제 분석 및 설계

① 변수 정의

순	변수명	의미
1	목숨	0부터 시작, 부정 단어 먹으면 –1, 긍정 단어 먹으면 +1이 되며 –1이 되면 게임을 종료한다.
2	레벨	점수가 10의 배수가 되면 +1
3	점수	부정 단어를 피하면 +1
4	i	반복 횟수
5	prev	단어의 시작 위치
6	next	단어의 종료 위치

② 신호

순	신호명	의미
1	게임 메인 초기화하기	각종 변수, 리스트 초기화한다.
2	주인공 이동하기	좌우 화살표, [Ctrl] 키를 통해 주인공 이동한다.
3	단어 내려오기	긍정/부정 단어가 위에서 내려온다.
4	단어 분류하기	입력 글을 단어로 구분하여 긍정/부정 단어로 분류한다.
5	로딩 바 보이기	단어 분류하는 동안 로딩 바 표시한다.
6	목숨 표시하기	실시간으로 주인공의 목숨을 표시한다.

③ 리스트

순	리스트명	의미
1	단어 위치 리스트	입력 글에서 단어들의 끝 위치를 저장한다.
2	단어 리스트	입력 글에서 띄어쓰기 기준으로 구분한 단어들을 저장한다.
3	긍정 단어 리스트	구분된 단어들 중 긍정 단어만 저장한다.
4	부정 단어 리스트	구분된 단어들 중 부정 단어만 저장한다.

④ 인공지능 모델(텍스트 분류)

순	레이블	훈련 데이터
1	긍정 단어	https://github.com/park1200656/KnuSentiLex/blob/master/pos_pol_word.txt 에서 부분적으로 참고
2	부정 단어	https://github.com/park1200656/KnuSentiLex/blob/master/neg_pol_word.txt 에서 부분적으로 참고

오브젝트와 프로그래밍

주인공	왼쪽 화살표 키를 누른 경우 주인공이 왼쪽으로 이동하며 왼쪽 화살표 키와 [Ctrl] 키를 동시에 누른 경우 주인공이 왼쪽 화면 끝으로 한 번에 이동한다. 주인공이 왼쪽 벽을 넘어가려고 한다면 넘어가지 못하게 한다. 단어 리스트를 분류하여 분류 결과가 ‘부정 단어’이면 부정 단어 리스트에, ‘긍정 단어’이면 긍정 단어 리스트에 저장한다.
반짝이 효과
글상자	목숨에 해당하는 만큼 ‘♥’를 출력한다.
글상자	긍정 단어를 시작 위치로 이동시키고 긍정 단어 리스트에서 무작위로 선택하여 출력한다. 긍정 단어가 주인공과 충돌하면 목숨을 1증가시킨다. 긍정 단어가 아래쪽 벽과 충돌하면 시작 위치로 이동시키고 긍정 단어 리스트에서 무작위로 선택하여 출력한다. 긍정 단어가 레벨에 비례하여 아래쪽으로 내려온다.
글상자	부정 단어의 복제본을 10개 생성한다. 부정 단어가 주인공과 충돌하면 목숨을 1감소시키고, 목숨이 –1이 되면 프로그램을 종료한다. 부정 단어가 아래쪽 벽과 충돌하면 점수를 1증가 시키고 점수가 10의 배수로 증가할 때마다 레벨을 1증가시킨다.

자기 평가

평가 항목	○	△	×
1. 변수를 화면과 맞게 정의하였는가?
2. 레이블을 정의하고, 적절한 훈련 데이터를 작성하였는가?
3. 리스트의 의미를 알고 적절하게 적용하였는가?
4. 인공지능 모델을 참고하였는가?
5. 프로그래밍 작성 시 친구들과 협력하였는가?

05

달려라 긍정 로봇

엔트리 인공지능 워크북

□학년:      □반:      □번:        □이름:

(4) 프로그래밍

단 원

성취 기준

[9정04-02] 다양한 형태의 자료를 입력 받아 처리하고 출력하기 위한 프로그램을 작성한다.

[9정04-03] 변수의 개념을 이해하고 변수와 연산자를 활용한 프로그램을 작성한다.

[9정04-04] 순차, 선택, 반복의 개념과 원리를 이해하고 세 가지 구조를 활용한 프로그램을 작성한다.

문 제

엑셀에 있는 단어들을 불러와 긍정 단어는 먹고, 부정 단어는 점프로 피하는 달려라 긍정 로봇 게임을 만들어 보자.

https://naver.me/5qDStX1I

문제 분석 및 설계

① 변수 정의

순	변수명	의미
1	목숨	0부터 시작, 부정 단어 먹으면 –1, 긍정 단어 먹으면 +1이 되며 –1이 되면 게임을 종료한다.
2	점수	살아서 달리는 동안 자동으로 1초마다 1씩 증가한다.

② 인공지능 모델(텍스트 분류)

순	레이블	훈련 데이터
1	긍정	https://github.com/park1200656/KnuSentiLex/blob/master/pos_pol_word.txt 에서 부분적으로 참고
2	부정	https://github.com/park1200656/KnuSentiLex/blob/master/neg_pol_word.txt 에서 부분적으로 참고

③ 테이블(엑셀 데이터)

순	파일명	형식 및 내용
1	테스트용 단어.csv	40개의 행, 1개의 열(열이름: 내용)을 가지는 엑셀 데이터 (예)

오브젝트와 프로그래밍

배경1 배경2	배경1과 배경2가 왼쪽으로 이동하면서 화면에서 사라지면 다시 우측 화면에서 나타난다.
로봇	점수가 1초에 1점씩 증가한다. 로봇의 걷는 동작을 만든다. 스페이스 키를 누르면 로봇이 점프한다.
글상자	테스트용 단어 표에서 무작위 내용을 출력하고 학습한 모델로 분류한다. 분류 결과가 ‘부정’인 단어가 로봇과 충돌한 경우 목숨을 1감소시킨다. 목숨이 –1이 되면 프로그램을 종료한다. 분류 결과가 ‘긍정’인 단어가 로봇과 충돌한 경우 목숨을 1증가 시킨다.

자기 평가

평가 항목	○	△	×
1. 변수를 화면과 맞게 정의하였는가?
2. 레이블을 정의하고, 적절한 훈련 데이터를 작성하였는가?
3. 테이블의 의미를 알고 적절하게 적용하였는가?
4. 인공지능 모델을 참고하였는가?
5. 프로그래밍 작성 시 친구들과 협력하였는가?