이 책은 컴퓨팅사고력에 대한 기본 개념에 관심이 있고 기본적인 코딩 능력을 갖추길 원하는 비전공자와 전공자 모두에게 적합한 교재이다. 컴퓨팅사고력과 기본적인 코딩 능력을 기반으로 한 다양한 알고리즘을 통해 문제를 해결하길 원하는 모든 학습자에게 훌륭한 가이드가 될 것이다. 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)
성균관대학교 학부대학과 컴퓨터교육학과, 인공지능융합교육전공 전임교수이다. 2000년부터 성균관대 겸임 및 초빙교수로 일했다. 주요 관심 분야는 컴퓨팅 사고, 소프트웨어 교육, 인공지능, 데이터 분석, 자료구조, 알고리즘 등이다. 펴낸 책으로 『AI를 위한 데이터 분석 기초』, 『컴퓨팅 사고를 위한 파이선 입문』, 『한 권으로 시작하는 소프트웨어』, 『문제 해결의 힘, 컴퓨팅 사고력』, 『문제 해결의 언어, 파이선』과 고등학교 인공지능 심화 교과서 『학교에서 만나는 인공지능 수업』과 『중학교 정보 자습서 & 평가 문제』가 있다.
• 한국산업기술진흥협회 2022~2023년 기술 애로 해결 지원사업 참여
• 교육부 2022~2023년 초중등 교원 양성 대학 AI교육 강화 지원사업 참여
• 과학기술정보통신부 2022~2023년 정보교육 네트워크 운영 참여
• 교육부 디지털 신기술 인재 양성 혁신 공유대학 사업(인공지능) 참여
• 삼성 주니어 SW 아카데미 효과성 및 성과 분석 참여
• 성균관대학교 소프트웨어 중심 대학 사업 참여
• 성균관대학교 소프트웨어 교양 필수 과목 개발
• 성균관대학교 AI와 학술적 글쓰기 교과목 개발
• 한국정보화진흥원 ICT 기반 국가 미래 전략 과제 참여
• 정보통신산업진흥원 SW+인문포럼 위원 활동
• 대한상공회의소 컴퓨팅 사고 능력 출제 및 감수
• 인터넷 중독 전문 상담가
• 인터넷윤리 지도사
저자 서문
교재구성안
교재활용법
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 통 채우기 문제
요약
연습문제
저자 소개