톡톡 소프트웨어 (고등학교)
2015 개정교육과정 고등학교 정보교과의 내용요소 및 학습요소를 적용한 EBS 방송 콘텐츠 모음입니다.
-
01. 일상의 문제와 컴퓨터의 문제
신문기사를 다 읽지 않고, 내가 원하는 기사만을 요약정리해 주는 기술은 없을까? 학교에서 내주는 숙제를 컴퓨터로 하면서 이런 사소한 물음을 던진 10대 소년. 17살에 자신이 만든 앱으로 제2의 주커버그라는 찬사와 부와 명예를 거머쥔 소년 닉 댈리시오의 이야기를 보여주고, 어린 시절 프로그래밍을 배우는 것이 왜 중요하고, 프로그래밍으로 컴퓨팅 사고력을 키우는 것의 중요성을 일깨운다.
2019.03.13visibility12,835 thumb_up_alt7 -
02. 텍스트 기반 프로그래밍 언어의 시작
C언어를 프로그래밍 언어의 아버지라는 표현을 쓰기도 하는데, 그 이유는 무엇일까? 이를 알기 위해 초창기 컴퓨터 개발 당시의 기계어나 어셈블리어부터 짚어본다. 컴퓨터마다 프로그램 호환이 안 되던 시절, 이러한 단점을 극복한 것이 데니스 리치가 개발한 C언어! 모든 컴퓨팅 시스템에서 사용 가능한 C언어! 그리고 C언어의 영향을 받아 현재 황태자로 떠오른 파이선의 장점을 소개한다.
2019.03.13visibility6,661 thumb_up_alt7 -
03. 순서도
고대 바빌로니아 인들도 사용했던 알고리즘. 그렇다면 알고리즘이 왜 중요한가? 알고리즘을 작성하는 세 가지 방법을 소개하고, 그 중 가장 많이 사용하는 순서도의 구체적인 작성방법을 소개한다. 순서도를 작성하는 것이 왜 중요하고, 컴퓨터 프로그래밍에서 어떤 역할을 하는지를 보여준다.
2019.03.13visibility7,416 thumb_up_alt1 -
04. 통합 개발 환경
오케스트라 연주가들이 최고의 하모니를 내도록 지휘하는 마에스트로. 그런데 컴퓨터 프로그래밍에도 마에스트로가 있다! 바로 1975년, 독일에서 개발된 통합 개발 환경, 마에스트로 I. 프로그램을 만드는 과정과 각 과정에서 필요한 소프트웨어에 대해 알아보고, 통합 개발 환경이 무엇인지, 왜 필요한지 알아본다. 또 마에스트로 I이 가져온 프로그래밍 과정의 획기적인 변화를 설명하고, 최근 많이 쓰이고 있는 코드 블럭스를 이용해 통합 개발 환경의 작동 원리를 살펴본다.
2019.03.13visibility2,843 thumb_up_alt0 -
05. 표준입출력
영상, 오디오등 다양한 입력장치들이 발명 되기 전 초창기 컴퓨터 입출력에 가장 기본이 되었던 모니터와 키보드가 표준입출력의 개념임을 보여주고, 프로그래밍 언어마다 다른 입출력 명령어를 소개한다. 그리고 직접 키보드와 모니터로 입출력을 실습해 볼 수 있도록 ‘이름’과 ‘나이’를 예로 들어 코딩하고 실행해본다.
2019.03.13visibility2,608 thumb_up_alt0 -
06. 자료, 어느 그릇에 담을까?
변수를 요리를 담는 그릇에 비유한다. 요리재료에 따라 알맞은 그릇을 지정해 담아내듯, 자료형에 따라 알맞은 변수를 지정해야 함을 보여준다. 그럼 우리가 사용하는 자료에는 어떤 것이 있을까? 우리 주변의 여러 자료들을 대표적인 자료형인 정수형,실수형,문자형으로 나눠보고, C언어와 파이선에서 자료형을 지정하는 방법을 실제 프로그램 코들를 통해 보여준다.
2019.03.13visibility3,679 thumb_up_alt1 -
07. 산술 연산자
컴퓨터의 사칙연산은 수학에서의 사칙연산과 조금은 차이가 있다. 기호는 어떻게 달라지고, 수학에서는 사용하지 않는 나머지 연산자 같은 독특한 연산자도 있다. 프로그래밍 언어마다 제공되는 연산자도 있고 제공되지 않는 연산자도 있다, 다양한 산술연산자들을 소개하고 활용해 프로그램을 작성해 본다
2019.03.13visibility1,514 thumb_up_alt0 -
08. 순차와 반복
공전, 자전, 낮과 밤 등 특정 조건이나 시간, 횟수 등으로 일상생활의 예시를 들어 ‘반복’에 대한 흥미를 유발하고, 반복의 효율성을 설명하기 위해 사람과 기계의 예시, 아마존 물류창고의 운반 로봇 키바와 짐을 포장하는 로봇을 소개한다. 이러한 자동화 시스템에 반복 알고리즘이 필요함을 알려주고, 반복 알고리즘을 이용한 간단한 프로그램 ‘I love you 100번 쓰기’를 순차 구조와 반복 구조의 C와 파이선 프로그램으로 구현하고 분석한다.
2019.03.13visibility2,113 thumb_up_alt2 -
09. 넌 어떤 반복 쓰니?
영어시험 100점 맞을 때까지 반복, 실내온도가 26도보다 높으면 에어컨 반복 작동, 팔굽혀펴기 100번 반복.. 등 다양한 반복의 상황을 제시하고, 반복의 유형을 ‘정해진 횟수만큼 반복하는 횟수 반복’과 ‘특정 조건 동안만 반복하는 조건 반복’으로 분류해 본다. while문으로 ‘영어시험 100점 맞을 때까지 반복’ 프로그램, for문으로 ‘팔굽혀펴기 100회 반복’ 프로그램을 각각 파이선으로 작성, 비교한다.
2019.03.13visibility1,842 thumb_up_alt0 -
10. 반복을 품은 반복
반복을 품은 반복, 중첩 반복구조를 체조의 안무, 회전목마, 뜨개질과 같은 일상의 예시를 통해 개념을 알려준다. 또한 구구단의 구조도 중첩 반복임을 알려주어, 구구단 안에서 큰 반복과 그 속의 작은 반복이 무엇인지 분석하고 ‘구구단 프로그램’을 코딩하며 중첩 반복의 활용 방법을 배워본다.
2019.03.13visibility1,459 thumb_up_alt0 -
11. 선택구조(if)+비교연산자
선택구조란 무엇이고, 선택구조에서 조건을 만들 때 필요한 비교연산자의 종류를 제시한다. 수학에서의 의미와 다른 프로그래밍 언어로 쓰이는 비교연산자들의 종류와 기호를 설명하고, 이들을 활용한 선택구조를 C언어와 파이선으로 코딩해 본다.
2019.03.13visibility3,648 thumb_up_alt0 -
12. 선택구조(if)+논리연산자
논리연산자인 and, or, not의 개념을 수학적으로도 짚어주고, 참과 거짓, 두 개의 값을 조합하는 프로그래밍 언어로서의 개념도 짚어준다. 논리연산자로 연산을 할 때의 소괄호가 있고 없을 때의 차이점, 그리고 논리연산자를 활영한 코딩을 C언어와 파이선으로 해본다.
2019.03.13visibility1,533 thumb_up_alt0 -
13. 선택 속의 선택 중첩 선택
선택을 할 때 우린 꼬리에 꼬리를 물며 여러 번의 선택을 하게 된다. 외식 메뉴를 고르는 것은 물론, 옷을 살때도, 여행지를 고를때도 선택 속에서 선택을 또 해야 하는 경우가 많다. 이러한 상황이 중첩 선택구조임을 설명하고, ‘중식이 좋으면? 중식인데 면이 좋으면? 면이 좋은데 해물이 좋으면?’ 이렇게 범위를 좁혀가며 메뉴를 고르는 ‘외식 메뉴 추천 프로그램’을 순서도를 이용해 알기 쉽게 보여주고, 중첩 선택구조를 활용해 코딩해 본다.
2019.03.13visibility1,334 thumb_up_alt0 -
14. 프로그램 속 벌레를 잡아라 - 디버깅
1947년 초창기 컴퓨터 과학자 그레이스 호퍼의 컴퓨터에 날아들어 오류를 일으킨 실제 벌레가 공식적으로 보고된 최초의 컴퓨터 버그. 이후 컴퓨터에서 생기는 오류를 ‘버그’라 사용하고 있다. 이러한 버그를 잡지 못해 벌어진 사건 중 하나가 화성 기후관측 위성의 궤도진입 실패. 작은 버그지만 큰 재앙을 일으킬 수 있기 때문에 디버깅하는 습관이 중요함을 알게 한다.
2019.03.13visibility888 thumb_up_alt0 -
15. 배열의 선언과 연산
데이터를 정리 정돈하는 데 필요한 자료 구조인 배열이란 무엇인가? 수많은 데이터를 처리하고 저장, 관리할 때 필요한 배열의 기능, 전교생의 수학점수를 처리하는 코딩을 직접 짜보면서, 배열의 선언, 배열의 인덱스 지정, 초기화까지 배워본다. C언어와 파이선을 이용해 배열을 코딩해 본다.
2019.03.13visibility3,390 thumb_up_alt0 -
16. 2차원 배열
1차원 배열이 기차라면, 아파트로 비유될 수 있는 2차원 배열, 가로와 세로 행과 열을 함께 표현해주는 구조로, 2차원 배열의 선언, 인덱스 지정, 초기화까지, 사용법을 설명하고, 실제 2차원 배열을 사용해, 특정 온도에서 열리는 선물 상자 게임을 프로그래밍 해 본다.
2019.03.13visibility1,344 thumb_up_alt0 -
17. 필요할 때 호출! 내장함수
일상에서 무심코 사용하는 버튼. 간단히 눌러서 사용하지만 그 안에는 특정 기능을 하도록 다양한 명령이 이미 만들어져 있다. 이러한 버튼을 통해 함수의 개념을 이해시킨다. 요리할 때도 소스를 매번 만들지 않고 이미 만들어진 것을 편하게 갖다 쓸 수도 있다. 특히 프로그래밍 언어에서는 이미 만들어져서 사용자에게 제공하는 다양한 내장함수가 있다. 많이 사용하는 내장함수를 소개하고 내장함수를 이용해 ‘컴퓨터를 자동 종료시키는 프로그램’을 만들어 본다.
2019.03.13visibility1,800 thumb_up_alt0 -
18. 내가 만든 함수
게임할 때 여러 명령을 하나의 단축키로 만들어 사용하기도 한다. 이러한 친숙한 단축키 예를 통해 사용자 정의 함수를 이해한다. 웹툰 작가가 반복적으로 나오는 배경을 하나 그려 놓고, 필요할 때마다 불러와 사용하는 것도 사용자 정의 함수이다. 간단한 덧셈 함수를 만들어 ‘함수 정의’와 ‘함수 호출’을 하는 방법을 알아본다. 이런 사용자 정의 함수는 오픈소스 코드 저장소인 깃허브(github) 등에서 공유할 수 있음을 알게 한다.
2019.03.13visibility1,663 thumb_up_alt1 -
19. 파일 입출력
데이터를 입력하고 출력하는데 수십, 수백장의 천공카드가 필요했고, 영구적인 데이터 저장도 불가능했던 시대에서, 프로그램 내장방식의 컴퓨터 발명을 거쳐 현재까지. 데이터 기억, 저장 장치의 발달사를 소개하고, 파일입출력 프로그램의 정의, 기능, 그리고 직접 C언어와 파이선으로 파일입출력을 코딩해 본다.
2019.03.13visibility769 thumb_up_alt0 -
20. 좋은 알고리즘?
결과는 같으나, 다른 알고리즘을 가진 일상의 사례들. 그렇다면 우리는 어떤 선택을 해야 할까? 바로 효율성을 따져야 한다. 알고리즘의 효율성을 판가름하는 기준으로 꼽히는 시간과 공간. 그리고 알고리즘의 효율성을 시간으로 표현하는 빅오 표현법이 있다. 빅오표현법을 그래프로 그려보고, 일상의 사례 속에서도 찾아본다.
2019.03.13visibility1,718 thumb_up_alt0 -
21. 정렬 알고리즘
정렬 알고리즘은 순서를 정하는 방법에 따라 여러 가지 알고리즘이 있다. 그중 가장 쉬운 방법중의 하나인 버블 정렬을 소개한다. 버블 정렬을 하는 방법을 소개하고, 버블 정렬을 직접 프로그래밍해 원하는 데이터를 찾는 것을 실습해 본다.
2019.03.13visibility927 thumb_up_alt0 -
22. 탐색 알고리즘
나폴레옹의 유럽 정복 전쟁중의 가장 최고의 전략으로 손꼽혔던 분할정복에서 따온 알고리즘. 분할정복 알고리즘이란 무엇인지 보여주고, 그중에서도 하나의 방법인 이진탐색의 정의와 방법, 그리고 실제 이진탐색으로 원하는 데이터를 탐색해보는 프로그래밍을 제시한다.
2019.03.13visibility498 thumb_up_alt0 -
23. 이동암호 해독 알고리즘
세상에서 가장 악명 높다는 크립토스 암호를 소개한다. 시저의 이동암호와 비밀키인 이동횟수, 독일군의 에니그마 암호와 이를 해독한 연합군의 봄브 암호해독 프로그램, 현대 인터넷상의 암호까지 암호의 역사를 알아본다. 다양한 암호를 알아보며 모든 암호에는 암호문과 비밀키가 존재한다는 것을 알 수 있다. 가장 간단한 이동암호인 시저 암호를 해독하는 알고리즘을 이해하고, 암호문과 비밀키를 입력하면 암호를 풀 수 있는 이동암호해독 프로그램을 실제로 만들어 본다.
2019.03.13visibility472 thumb_up_alt0 -
24. 전송된 데이터를 믿을 수 있을까?
네트워크를 통해 전송되는 데이터는 여러 상황에 따라 오류가 발생하기도 한다. 이러한 데이터 오류 검출을 위해 사용하는 방법 중의 하나가 바로 패리티 체크(Parity Check)이다. 패리티 체크는 데이터 오류를 검출하기 위해 패리티 비트를 사용하는데, 구체적인 방법으로는 짝수 패리티 방법과 홀수 패리티 방법이 있다. 패리티 체크는 오류 검출만 가능하지만 리처드 웨슬리 해밍이 만든 해밍 코드는 오류 검출뿐만 아니라 일부지만 오류 수정도 가능하다.
2019.03.13visibility289 thumb_up_alt0 -
25. 신용카드 숫자 검증 알고리즘
1887년 발표된 공상과학 소설 ‘뒤를 돌아보며’에서 언급된 용어, 크레디트 카드(신용카드). 신용카드에는 여러 숫자가 적혀 있는데 나름대로의 규칙을 갖고 있다. 국제적인 분류부터 유효한 숫자인지 검증하는 것까지 신용카드 숫자가 갖고 있는 비밀을 알아본다. 특히 한스 피터 룬이 제안한 ‘룬의 알고리즘’을 통해 신용카드 숫자의 유효함을 검증하는 방법을 살펴보고 관련된 프로그램도 만들어 본다.
2019.03.13visibility366 thumb_up_alt0 -
26. 지뢰찾기
26년의 역사를 가지고 있는 지뢰게임은 어떻게 탄생했고, 어떻게 발전해 왔는지, PC의 혁명이라 일컬어지는 윈도 운영체제의 발전의 역사와 함께 짚어보고, 지뢰게임 속에 숨어 있는 2차원 배열 구조를 이해한다. 그리고 2차원 배열을 활용해 직접 나만의 지뢰게임을 프로그래밍해 본다.
2019.03.13visibility556 thumb_up_alt0 -
27. 수학, 프로그래밍하다
파이(원주율)와 같은 무리수의 발견과 그 값을 얻어내기 위해 노력했던 고대 수학자들의 이야기, 하지만 무리수의 값을 내는 것이 결국 끝나지 않는 단순한 반복 작업이고 그것이 수학적으로 의미가 없다는 결론에 다다르자, 이제 그 단순 반복 작업은 컴퓨터가 역할을 맡고 있다. 계산의 알로리즘만 가르쳐 주면 빠른 시간에 정확한 값을 내는 프로그램을 직접 코딩해 본다.
2019.03.13visibility1,159 thumb_up_alt0 -
28. 과학, 프로그래밍하다
저항의 단위인 ‘옴’. ‘옴의 법칙’을 발견한 독일의 과학자, 게오르크 옴의 업적을 기려 그의 이름을 따서 만든 것이다. 지금은 전기 회로의 기본 법칙인 ‘옴의 법칙’이지만, 처음 발표됐을 당시에는 인정받지 못했다. 오랜 시간의 기다림 끝에 세계적으로 인정받게 된 ‘옴의 법칙’에 대한 이야기를 알아본다. 또 전기 회로에서 저항의 역할과 중요성에 대해 살펴보고, 파이선을 이용해 저항 값을 자동으로 계산해 주는 프로그램을 만들어 본다. 이를 통해 우리 생활 곳곳에서 사용되고 있는 전기 회로처럼 프로그램도 이제 과학의 기본 도구가 되었음을 설명한다.
2019.03.13visibility1,048 thumb_up_alt0 -
29. 예술, 프로그래밍하다
인상주의, 입체파, 다다이즘과 같이 예술은 끊임없는 새로운 시도를 통해 변화와 발전을 거듭해 왔다. 그리고 현대 미술에서의 새로운 시도 중 하나는 바로 컴퓨터. 컴퓨터를 이용한 미술 분야인 뉴미디어 아트는 1960년대 벨 연구소의 연구생이었던 마이클 놀로부터 시작되었다. 0과1의 디지털 재료로 구현하는 미술작품들의 세계. 간단한 코딩으로 뉴미디어 아트 작품을 만들어 본다.
2019.03.13visibility981 thumb_up_alt1 -
30. 공공데이터 활용
데이터를 잘 활용하면 돈을 벌 수 있는 데이터 경제 시대. 그런데 무료로 사용할 수 있는 데이터가 있다. 바로 공공데이터. 공공데이터란 무엇인지 알아보고, 기상 예보, 버스 도착 시간 알림 등 우리 생활 곳곳에서 공공데이터가 유용하게 사용되고 있음을 설명한다. 또 지하철 승차 인원에 대한 공공데이터를 내려 받아 파이선으로 ‘가장 많은 승객이 이용한 지하철역 10’을 출력해 주는 프로그램을 만들어 봄으로써 공공데이터 활용 방법을 소개한다.
2019.03.13visibility1,302 thumb_up_alt0 -
31. 데이터 시각화
160여년 전, 백의의 천사 나이팅게일이 만든 로즈 다이어그램. 크림 전쟁에서 사망한 영국군의 수를 분석해 그래프로 만든 것으로, 이를 통해 사망자 수를 크게 줄일 수 있었다. 바로 데이터 시각화가 가져온 놀라운 변화. 데이터 시각화는 데이터 분석 결과를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달하는 과정을 말하는 것으로, 요즘 같은 데이터 홍수의 시대에는 데이터를 바르게 분석하고 데이터 인사이트를 찾아내 활용하는 능력이 꼭 필요함을 설명한다.
2019.03.13visibility854 thumb_up_alt1 -
32. 피지컬 컴퓨팅
우리가 사는 물질의 세계와 컴퓨터의 디지털 세계가 서로 소통할 수 있을까? 피지컬 컴퓨팅을 이용하면 가능하다. 피지컬 컴퓨팅이란 무엇인지, 어떻게 시스템을 구성해야 하는지 설명하고, 피지컬 컴퓨팅을 이용해 만든 ‘수화를 말로 바꿔주는 장갑’을 소개한다. 또한 스마트 전등, 주차장 센서, 스마트 시계, 스마트 팜, 사물 인터넷 등 생활에서 사용되고 있는 다양한 피지컬 컴퓨팅에 대해 알아본다.
2019.03.13visibility1,750 thumb_up_alt0 -
33. 아두이노를 활용한 피지컬 컴퓨팅
2011년 3월 발생한 후쿠시마 원전 폭발 사고. 방사능 유출로 인해 전 세계가 공포에 떨고 있을 때, 일본의 메이커들은 아두이노를 이용해 방사능 측정기 ‘가이거 계수기’를 만들어 방사능 수치를 공유, 위기를 극복할 수 있었다. 아두이노는 누구나 쉽고 간단하게 디지털 기기를 만들 수 있는 피지컬 컴퓨팅 도구이기 때문이다. 아두이노의 구조와 작동 원리를 설명하고, LED를 연결해 신호등을 만드는 방법에 대해 소개한다.
2019.03.13visibility978 thumb_up_alt0 -
34. 마이크로비트로 만보기 만들기
지구가 둥글다는 것은 많은 전문가들이 검증하고, 또 위성 촬영 등을 통해 증명된 사실이다. 하지만 아직도 지구가 평평하다고 믿는 사람들이 있다. 직접 우주에서 지구를 본다면 좋겠지만 쉽지 않은데, 영국의 학생들이 마이크로비트를 활용한 피지컬 컴퓨팅으로 지구의 모습을 촬영하는데 성공했다. 너무 거창하게 여겨진다면 간단한 프로그래밍을 통해 마이크로비트로 만보기를 만들어 보면서 쉽게 시작할 수 있다. 아이디어만 있다면 피지컬 컴퓨팅을 통해 여러 가지를 만들 수 있으니 도전해 보자.
2019.03.13visibility697 thumb_up_alt1