728x90

 

 

개인적으로 다른 사이트(?)를 하나 더 운영하고 있다.

사실 티스토리를 시작하면서 그쪽 관리가 소홀해졌지만, 댓글과 같은 것은 가능한 성심성의것 답변을 하고 있다.

그중 이렇게까지 많은 관심을 받아본 적이 없던 컨텐츠가 바로 YBM IT에서 주관하는 COS 자격 시험이다.

 

이 자격시험에 관한 게시물이 인기가 많고 관심을 많이 받는 이유가 있다.

1. 그리 오래되지 않은 시험이라 정보가 부족하다.

2. 2018년부터 점차적으로 소프트웨어 교육을 의무화 하는데 scratch언어가 사용될 것이다.

3. COS 시험은 scratch 언어로 보는 CBT방식의 자격 시험이다.

 

그래서 온오프라인에서 자주 받았던 질문을 정리 해보려한다.

 

(네가 뭔가 이런 소릴 하냐고, 신빙성 있는 내용이냐고 의심스럽다면 이 링크를 참고해주면 감사하겠다.)

 

 

Q > 시험 문제를 풀면서 플레이를 해보았는지, 해보았다면 불이익은 없었는지

A > 시험 문제를 풀어보면서 당연히 플레이를 해보았다. 문제에서 요구하는 실행 결과가 잘 나오는지 계속 플레이 해봤고 과장 조금 보태서 결과가 나올 때까지 돌려봤다. 그런데도 불이익 하나 없이 (예를들면 감점) 점수를 받았다. 그렇다고 문제 하나를 수십번 플레이 해본건 아니고 적게는 한번, 많게는 네번~다섯번 정도 플레이 해본 것 같다.

 

 

Q > 실행시켜 확인한 다음 다시 풀기를 했는지 아니면 그냥 그대로 제출해버렸는지

A > 정확히 기억나지 않지만, CBT방식으로 시험을 보면 한 번에 한 문제를 풀 수 있다. 다시 말해서 한 화면에는 문제 하나만 나온다. 그렇기 때문에 내가 이 문제를 나중에 풀고 싶을수도 있고 (시간 배분의 문제라던가) 잠깐 다른 문제를 풀다가 오고 싶을 수도 있고 또 처음부터 다시 풀고 싶을 수가 있다. 그런 편의를 제공해주는 것인지 내가 '제출'을 하지 않는한 그 문제는 '아직 풀지 않은 상태'인 것이다. (당연히 아직 제출하지 않은 문제가 몇 문제가 남았는지 친절하게 화면에 보여진다.) 나는 응시하는 동안 건너뛰고 나중에 다시 풀어본 문제도 있었고, 블럭을 너무 많이 섞어서(?) 초기 상태로 되돌리고 푼 문제도 있었다. 실수로 나중에 풀기위해 건너뛰려다 제출해버리는 일만 없으면 될 것 같다.

 

 

Q > 컴퓨터 전공을 했는데 무난하게 합격할 수 있을까요?

A > 전공을 했어도 scratch를 전혀 접해보지 않고 응시한다면 합격을 장담할 수 없을 것 같다. 블럭코딩에 익숙하다면 또 모를까 라인코딩만 해본 상태로 자만에 빠져 그냥 응시한다면 분명 떨어질걸 예상한다. 즉, 아무리 컴퓨터 전공을 했더라도 이 언어에 익숙하지 않으면 적어도 한번은 교재를 정독하고, 이마저 귀찮다면 꼭 모의고사를 풀어보길 권한다. 내가 원하는 블럭이 어디에 있는지 찾다가 시간이 다 갈지도 모른다.

 

 

Q > 컴퓨터 전공을 하지 않았고 관련 지식이 없는데 합격 가능할까요?

A > 충분히 가능하다. 우선 이 scracth라는 언어는 프로그래밍을 처음 접하는 사람들을 위해 MIT에서 만든 교육용 언어이다. 즉, 다른 java나 c 등의 언어들과 비교한다면 엄청나게 이해하기 쉬운 언어이다. 다만 만점을 받기는 좀 어려울 수 있다. 그 이유는 알고리즘 부분 때문이다. 전공을 했다면 적어도 한번쯤은 자료구조나 알고리즘을 잘 못했더라도 경험을 한다. 심지어 이 스크래치에서는 그렇게 복잡한 수준의 알고리즘을 요구하지 않는다. 그리고 이 알고리즘도 시험 전체에서 차지하는 비중도 그리 높지 않다. 그러니 부담가지지 말고 교재 한 번 정독하고 모의고사 2~3회 풀어본다면 충분히 합격할 수 있다.

 

 

Q > 문제 유형은 어떤식인가요?

A > 결론부터 말하면 빈칸넣기다. 예전에 파이프 연결하는 게임이 있었다. 약간 그런 느낌이라면 그런 느낌이다. 문제에서 요구하는 실행 결과가 있고 나는 실행해봐서 그 결과가 나오도록 빈칸 (비어있는 블럭)을 채우면 된다. 이미 많은 블럭들이 코딩되어 있다. 그중에 몇개의 블럭이 빠져있고 그 부분을 문제에서 요구하는 대로 채워주면 된다. 문제도 친절해서 말을 잘 읽고 그대로 하면 된다. 그렇기 때문에 기능들을 한번씩 써보면서 어디에 어떤 기능을 하는 블럭이 있는지 알아두는게 중요하다.

 

 

728x90

 

 

대강 자주 들었던 질문들을 정리해봤다.

지금은 홈페이지에 들어가보니 8월 20일에 8회 시험이 계획되어 있다.

 

막간을 이용해 시험 정보를 공유해야겠다.

 

자격종목

등급

검정방법

검정시행 형태

합격기준

Coding Specialist

1급 / Advanced

실기시험

10문제 (실기)

시험시간 : 50분

700점 이상

2급 / Intermediate

10문제 (실기)

시험시간 : 50분

600점 이상

3급 / Basic

10문제 (실기)

시험시간 : 40분

600점 이상

 

자격종목

등급

시험응기 검정료

실기

Coding Specialist

1급 / Advanced

\23,000

\23,000

2급 / Intermediate

\20,000

\20,000

3급 / Basic

\18,000

\18,000

 

(*** 플라스틱 자격증 발급 비용은 별도이다. 발급비용 : \4,500)

(출처 : YBM IT 홈페이지)

 

 

 

 

728x90
728x90

 

 

 

17년 4월 23일 아침 9시 30분 제 6회 YBM IT에서 주관하는 COS (Coding Specialist) 1급 시험을 보고 왔다.
시험을 보러 가기 전에 이것 저것 검색을 해봤는데 1급에 대한 후기가 없어서 남겨본다.

 

 

 

시험에 대해 간단히 소개를 하자면, COS시험은 CBT방식의 시험이다.

CBT방식은 Computer Based Testing으로 컴퓨터를 사용해서 컴퓨터가 채점하는 방식의 시험이다.

또 다른 방식으로는 PBT라고 하는 Paper Based Testing방식도 있다.


이 시험을 응시하기 위해 기본적으로 갖추고 있어야 할 지식은 '스크래치 언어'이다.

추후 계획은 다른 진입 장벽이 낮은 언어들에 대해서도 시험이 만들어질 것이라고 한다. (언제인진 모르겠지만)

 

난이도는 그렇게 어렵지 않았다.
단순히 합격만을 원한다면 아래 첨부한 출제 기관에서 나온 모의고사만 풀 수 있을 정도면 충분하다.

시험 유형도, 풀는 방법도, 난이도도 아래 추가한 모의고사 만큼, 딱 그만큼이다.

그런데 한문제도 놓치고 싶지 않다면 뒷 부분에 나오는 알고리즘 부분에 대해서도 어느정도 잘 알고 가면 도움이 많이 될 것 같다.

 

 

728x90

 


나는 라인 코딩만 몇년 접한 컴퓨터 전공을 했다. 그래서 시험 준비는 아래 책을 한 번 훑어보고, 교재 중간중간 예제는 안풀어보고 문제는 맨 뒤에 모의고사 2회만 한 번씩 풀어봤다. 전체 준비 기간은 약 보름정도 였는데, 그나마도 시간을 많이 투자하진 못했다. 저녁에 잠깐, 주말에 반나절 정도.

 

출판사 : YBMNET
서명 : 스크래치 알고리즘 이해와 창의개발 프로그래밍
저자 : 한국공학기술연구원

 

 

시험에 합격하고나면 합격증을 출력해볼 수 있던것으로 기억한다.

그런데 어차피 한거 기분이라도 내야겠다 싶어서 추가로 플라스틱 자격증을 신청했다.

최대 2주가 걸릴거라고 했는데, 연휴가 중간에 있어서인지 2주 조금 더 걸려서 도착했다.

(잊혀지나 했는데 왔다.)

 

 

올해 목표중 하나가 자격증 2개 취득하기였는데 얼렁뚱땅 달성은 했다.

(자격증이 얼마 없어서 따봐야겠다 마음 먹었다.)

 

아무튼, 걱정한 것 만큼 어렵지 않다.

 

 

 

 

728x90
728x90

 

 

코딩클럽 청년샘 4기 연수 과제 중 하나로 선택된 스크래치로 가위바위보 게임 만들기

 

가위바위보 게임 가기

 

결과물 링크는 위에 첨부된 링크를 따라가면 된다.

 

그럼 내가 어떻게 만들었는지 하나씩 파헤쳐보자.

(그렇게 자랑할만한 수준은 아니지만..)

 

 

우선 아래는 모든 스프라이트에 대한 스크립트를 모두 캡쳐한 화면을 기준으로 하나씩 살펴보자,

 

1. 무대에 대한 스크립트에서는 무슨짓을 하는지 자세히 살펴보자.

 

 

 

보기 힘들기 때문에 스크립트만 가져와서 자세히 설명을 달아보았다.

 

 

 

728x90

 

 

라인별로 설명하면

01 : '게임시작하기'라는 방송을 받으면 이 스크립트를 시작하도록 되어있다.

02 : '사용자_점수'변수와 '컴퓨터_변수'점수가 10점인 값이 있는지 or 조건으로 하나만 참이어도 바로 아래 03라인을 실행한다.

    하지만 하나라도 10의 값이 아니라면 04라인의 '아니면' 블록 아래의 스크립트를 실행한다.

03 : 02라인의 조건이 '참'인 경우에 진행하는 블록 코드로 '게임종료'를 방송하도록 되어있다.

04 : 02라인의 조건이 '거짓'인 경우에 진행하는 블록 코드이다.

05 : '무엇을 내시겠습니까? (1:가위 2:바위 3:보자기)' 메시지를 보여주고 이에 대한 답을 사용자의 입력으로 받아온다.

06 : 07 ~ 16라인의 블록 코드를 무한히 반복한다.

07 : 만약 05라인에서의 사용자의 대답이 1보다 작은 정수이거나 3보다 큰 정수일 경우 참을 뜻하게 되어 08라인을 실행하고,

     그 이외의 1, 2, 3의 정수중 하나를 입력했을 경우 ​조건문에서는 '거짓'을 뜻하기 때문​에 11라인을 실행한다.

08 : 07라인의 조건문 비교 결과가 '참'인 경우 'pop' 소리를 재생한다.

09 : 의도한 값이 입력되지 않았기 때문에 '1, 2, 3중에 골라주세요, ... ' 의 메시지를 보여주고 다시 입력 하기를 기다린다.

10 : 05라인에서 사용자가 1, 2, 3중의 하나의 값을 입력한 경우 진행하게 된다.

11 : '사용자가낸것' 변수의 값을 사용자가 입력한 1, 2, 3 중의 하나의 값을 가지게 된다.

12 : '컴퓨터가낸것' 변수의 값을 1부터 3사이의 난수로 결정된 값을 가지게 된다.

13 : '계산하러가기'를 방송하고 06라인에서 선언한 '무한 반복하기' 스크립트를 종료한다.

 

 

 

2. 다음으로 가장 복잡한 스크립트를 가지게 된 '2'라는 이름을 가진 스프라이트에 대해 살펴보자.

 

 

 

역시 보기 힘들기 때문에 스크립트만 가져와서 자세히 설명을 달아보았다.

 

 

01 : 깃발을 클릭했을 때 실행한다.

02 : 최초 프로그램이 시작될 경우에 실행하는 도입부중 하나이기 때문에, '컴퓨터_점수' 변수를 기본값으로 설정 해준다.

03 : 최초 프로그램이 시작될 경우에 실행하는 도입부중 하나이기 때문에, '사용자_점수' 변수를 기본값으로 설정 해준다.

04 ~ 09 : 1.5초 간격으로 룰을 설명하는 메시지를 말하도록 만들었다.

10 : '게임시작하기'를 방송한다.

 

 

 

01 : '계산하러가기'방송을 받았을 때 실행한다.

02 : 0.5초 동안 '가위' 메시지를 말한다.

03 : 0.5초 동안 '바위' 메시지를 말한다.

04 : '내기' 메시지를 방송한다.

05 : 2초 동안 '보' 메시지를 말한다.

06 : '사용자가낸것'과 '컴퓨터가낸것'변수를 비교하는데, 이 변수는 '내기'방송을 받은 손가락 모양의 스프라이트에서 설정되는 값이다.

07 : 비겼다는 메시지를 보여주고 추가 작업은 하지 않고 종료한다.

08 : '사용자가낸것'과 '컴퓨터가낸것'변수를 비교해서 서로 다른 값을 가진 경우 실행한다.

09 : 가위(1), 바위(2), 보(3)의 값을 가지고 ('사용자가낸것' - '컴퓨터가낸것' + 3) % 3 연산의 결과에 따라 누가 이겼는지 알 수 있다.

 

사용자가낸것(a)

컴퓨터가낸것(b)

a - b + 3 (c)

c % 3

승자

가위(1)

바위(2)

2

2

컴퓨터

가위(1)

보(3)

1

1

사용자

바위(2)

가위(1)

4

1

사용자

바위(2)

보(3)

2

2

컴퓨터

보(3)

가위(1)

5

2

컴퓨터

보(3)

바위(2)

4

1

사용자

 

  위의 진리표를 참고하면, 비기는 경우를 제외하고 연산결과가 1이면 사용자의 승, 2이면 컴퓨터의 승인 것을 알 수 있다.

10 : 사용자가 이긴 경우 졌다는 메시지를 보여준다.

11 : '사용자점수'값을 1 증가한다.

12 : '컴퓨터점수'값을 1 감소한다.

13 : 09 연산 결과가 1이 아닌 경우 (컴퓨터가 이긴 경우) 실행한다.

14 : 컴퓨터가 이긴 경우 이겼다는 메시지를 보여준다.

15 : '컴퓨터점수'값을 1 증가한다.

16 : '사용자점수'값을 1 감소한다.

17 : 09라인의 조건문을 닫는다.

18 : 06라인의 조건문을 닫는다.

19 : '게임시작하기'메시지를 방송한다.

 

 

 

01 : '게임종료'방송을 받은 경우 실행한다.

02 : '사용자_점수'와 '컴퓨터_점수'중 하나의 값이 10에 도달한 경우 '게임종료'를 방송하기 때문에 '사용자_점수'와 '컴퓨터_점수'를 비교한다.

03 ~ 07 : '사용자_점수'가 더 높은 경우의 메시지를 말한다.

09 ~ 12 : '컴퓨터_점수'가 더 높은 경우의 메시지를 만한다.

14 : 곧 게임이 시작될거라는 메시지를 말한다.

15 ~ 16 : 새 게임을 시작해야하므로 '컴퓨터_점수'와 '사용자_점수'를 기본 점수인 5점으로 각각 할당한다.

17 : '게임시작하기'를 방송하여 새로운 게임을 시작한다.

 

 

 

3. 마지막으로 손가락 모양을 가진 '컴퓨터'와 '사용자' 스프라이크가 있는데, 두번째 블록의 하나의 값만 다르기 때문에

하나만 가지고 살펴보려고 한다.

 

 

 

 

우선 모든 스프라이트에 대한 전체 스크립트는 위와 같고,

손가락 모양을 가지는 두 개의 스프라이트에 대한 스크립트만 가지고 와서 자세히 살펴보자.

 

 

 

 

 

'게임시작하기' 방송을 받았을 경우 무한히 반복하며 0.5초 간격으로 위에서 보이는 그림과 같이 다음 모양으로 바꿔준다.

 

'내기'방송을 받았을 경우 왼쪽의 무한히 반복하는 스크립트를 잠시 멈추고 현재 손가락 모양을 각자가 낸 모양으로 유지하도록 만들었다.

 

 

 

이렇게 단순한 컴퓨터와 하는 가위바위보 게임을 스크래치를 통해 만들어 보았다.

다음 과제는 무엇일지 걱정반 기대반,

지난주에 처음 스크래치를 가입했을 때보다는 많이 부드러워진 것 같다.

하지만 그렇다고해서 블럭 코딩 방식이 아주 익숙해진건 아니라 조금 더 시간이 필요할 것 같다.

 

 

 

 

728x90

+ Recent posts