이 책은 컴퓨팅사고력에 대한 기본 개념에 관심이 있고 기본적인 코딩 능력을 갖추길 원하는 비전공자와 전공자 모두에게 적합한 교재이다. 컴퓨팅사고력과 기본적인 코딩 능력을 기반으로 한 다양한 알고리즘을 통해 문제를 해결하길 원하는 모든 학습자에게 훌륭한 가이드가 될 것이다. 1장부터 5장까지는 컴퓨팅사고력 기반 문제해결의 절차를 다룬 장으로, 전공과 상관없이 모든 학생들에게 요구되는 문제해결력 향상에 초점을 두어 구성하였다. 6장부터 11장까지는 알고리즘에 해당하는 장으로, 비전공자를 위한 교양 강좌에서는 기본 개념과 실생활에서 활용된 예를 중심으로 학습할 수 있으며, 전공자를 위한 강좌에서는 다양한 알고리즘 기법을 이해하며, 예제를 통한 단계별 설명과 더불어 파이선 코드로 작성된 프로그램을 확인할 수 있다.
〈교재 구성안〉
- 비전공자가 이해하기 쉽도록 문제해결 방법을 실생활과 연관시켜 구성하였다.
- 전공자를 위한 다양한 알고리즘 기법의 설명 및 파이선 코드를 제공하였다.
- 컴퓨팅사고력 기반 문제해결 방법을 학습하고, 이론에 대한 파이선 코드를 이해할 수 있다.
<교재 활용법>
- 기본적인 문제해결 개념 및 과정을 학습하고자 하는 경우, 1장과 2장을 중심으로 학습한다.
- 문제해결의 자동화를 위한 자료 처리를 학습하고자 하는 경우, 자료 구조를 설명한 3장의 이해가 필수적이다.
- 논리적 접근 및 컴퓨팅사고력을 활용한 문제해결 방법을 학습하고자 하는 경우, 4장과 5장을 학습한다.
- 방대한 자료의 정렬 및 탐색 방법에 대해 활용하고자 하는 경우, 6장과 7장을 학습한다.
- 여러 가지 알고리즘 전략 및 기법에 대해 학습하고자 하는 경우, 8장부터 11장을 학습한다. 단순하게 문제 풀기 방식인 Brute Force를 위하여 8장, 문제를 분할해서 해결하는 Divide and Conquer를 위하여 9장, 탐욕적 문제해결 방법인 Greedy 방식을 위하여 10장, 기타 다양한 문제해결 알고리즘을 위하여 11장을 학습한다.
2016~(현) 성균SW교육원 원장
2002~(현) 성균관대학교 컴퓨터교육과 교수
학력: 일리노이공과대학교 컴퓨터과학 박사
저서: 『고등학교 컴퓨터 일반』(2014), 중학교 소프트웨어 동아리 활동 『프로그래밍과 나』(2015), 중학교 소프트웨어 자율·진로 활동 『컴퓨팅과 직업세계』(2015), 『고등학교 정보』(2017), 『중학교 정보』(2017)
2015~(현) 성균관대학교 소프트웨어학과 초빙교수
2014~2015 경희대학교 연구교수
학력: 성균관대학교 교육학 박사(컴퓨터교육전공)
저서: 『플레이 봇과 놀자』 집필(2016), 『인터넷 윤리』 집필(2017)
서울에서 태어나 어릴 때부터 피아노를 전공해 예원학교에 다녔다. 더 넓은 세상에서 공부하고 싶어 미국으로 건너가 캔자스대학교(The University of Kansas)에서 피아노 건반 대신 키보드를 치며 컴퓨터를 전공했다. 이어서 캘리포니아 주립 대학교 전산실에서 시스템 분석가로 일하며 석사 학위를 받았다. 우리나라 컴퓨터 기술 발전에 기여하고픈 마음에 삼성전자 컴퓨터 부문 개발실에 경력 특채로 선발되어 귀국했다.
컴퓨터 분야에서 여성 전문 인력이 부족함이 늘 아쉬웠기에 후배 양성을 위해 카이스트 박사과정에 진학했으며, 덕성여대 연구교수가 되었다. 벤처 바람이 불어와 9년 동안 몸담았던 덕성여대를 나와 사업에 뛰어들었으나 가르치는 일이 천직인지 교수 시절이 그리워 2000년부터 성균관대 컴퓨터학과 겸임교수로 현재까지 학생들을 가르치고 있다.
소프트웨어를 만든다는 것은 결국 사람을 위한 일이고, 무엇보다 사람에 대한 이해와 공감, 사랑이 그 바탕이라고 믿고 있다. 소프트웨어를 사용할 사람에 대해 더욱 잘 이해하기 위해 심리 상담 과정을 수료하고 자격증을 따서 상담 봉사를 7년 이상 하고 있다. 또 컴퓨터교육을 더 잘 할 수 있도록 교육학 박사 학위도 받았다. 미래창조과학부의 SW 인문포럼 위원으로 활동하며 소프트웨어와 사람을 연결하는 연구를 맡아 진행했다. 또 서울교대 영재 과정에 등록된 초등학생 및 중학생들의 교육을 진행했고, 경상북도 컴퓨터 관련 영재 학생들을 대상으로 한 소프트웨어 교육을 맡기도 했다. 대안 학교에 다니는 고등학생들을 위한 소프트웨어 교육도 추진한 바 있다.
지은 책으로는 『2017 ICT기반 국가미래전략』(교육부분 집필), 『컴퓨팅사고력 향상을 위한 문제해결과 알고리즘』(공저), 『컴퓨팅사고를 위한 파이선 입문』(집필 중)이 있다. 모든 사람들이 컴퓨터를 이해하고 차별 없이 소프트웨어로 세상의 주인공이 될 수 있는 그날을 꿈꾸며, 오늘도 열심히 소프트웨어 교육 현장에서 애쓰고 있다. 이 책은 그 결과물로서 막연히 소프트웨어와 미래 변화에 두려움을 가진 모두를 위한 것이다.
저자 서문
교재구성안
교재활용법
chapter 1 문제해결의 개요
1.1 문제의 정의 및 필요성
1.2 문제 유형
1.3 일반적 문제해결 과정
1.4 컴퓨팅 기반 문제해결 과정
요약
연습문제
chapter 2 문제해결의 절차
2.1 절차적 문제해결의 과정
2.2 알고리즘의 개념
2.3 알고리즘의 특성 및 표현
2.4 알고리즘의 성능에 따른 문제해결의 차이
요약
연습문제
chapter 3 자료구조와 문제해결
3.1 자료구조의 개념 및 목적
3.2 선형구조 자료
3.3 비선형구조의 자료
요약
연습문제
chapter 4 논리적 사고 기반 문제해결
4.1 논리적 사고의 개요
4.2 논리적 사고의 문제해결 방법
4.3 논리적 사고를 적용한 문제해결의 예
요약
연습문제
chapter 5 컴퓨팅사고력의 원리를 적용한 문제해결
5.1 컴퓨팅사고력의 개요
5.2 컴퓨팅사고를 적용한 문제해결 방법
5.3 컴퓨팅을 적용한 문제해결의 예
요약
연습문제
chapter 6 자료 정렬 알고리즘
6.1 자료 정렬이란
6.2 실생활에서 자료 정렬 활용
6.3 자료 정렬 알고리즘의 종류
6.4 자료 정렬 알고리즘의 효율성
요약
연습문제
chapter 7 자료 탐색 알고리즘
7.1 자료 탐색이란
7.2 실생활에서 자료 탐색 활용
7.3 자료 탐색 알고리즘
7.4 깊이 우선 탐색
7.5 너비 우선 탐색
요약
연습문제
chapter 8 단순하게 문제 풀기
8.1 단순하게 문제 풀기란
8.2 실생활에서 단순하게 문제 풀기 활용
8.3 단순하게 문제 풀기 알고리즘
8.4 패턴 매칭
8.5 버블 정렬
8.6 순차 탐색
요약
연습문제
chapter 9 분할 정복 알고리즘
9.1 분할 정복 알고리즘이란
9.2 실생활에서 분할 정복 알고리즘 활용
9.3 이진 탐색
9.4 빠른 정렬
요약
연습문제
chapter 10 그리디 알고리즘
10.1 그리디 알고리즘이란
10.2 실생활에서 그리디 알고리즘 활용
10.3 최단 경로 찾기
10.4 배낭 문제
요약
연습문제
chapter 11 다양한 알고리즘 기법
11.1 동적 프로그래밍
11.2 되추적 기법
11.3 분기 한정 기법
11.4 통 채우기 문제
요약
연습문제
저자 소개