장바구니 담기 close

장바구니에 상품을 담았습니다.

씽크 파이썬(Think Python)

씽크 파이썬(Think Python)

  • 앨런 다우니
  • |
  • 길벗
  • |
  • 2017-10-12 출간
  • |
  • 360페이지
  • |
  • 186 X 236 X 18 mm /683g
  • |
  • ISBN 9791160502862
판매가

22,000원

즉시할인가

19,800

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
19,800

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

프로그래밍 포기자를 위해 고안한 독특한 강의 교재!

문법 No! 프로그래밍 Yes!
대학에서 신입생에게 프로그래밍을 가르쳤지만, 문법 중심의 교재가 학생들을 좌절로 이끈다는 사실을 알게 되었다. 우수한 학점을 받은 학생도 피상적인 이해에 그친다는 사실도 알게 되었다. 저자 앨런 다우니는 문법 대신 컴퓨터 과학자가 어떻게 생각하는지 알려주는 프로그래밍 중심 교재를 만들었고, 수업에서 놀라운 효과를 얻었다. 문법 중심이 아닌 컴퓨터 과학자처럼 생각하는 법을 배워보자.

[이 책의 내용]
- 파이썬 기초 문법
- 값, 변수, 문장, 함수, 자료 구조를 단계별로 설명
- 리스트, 사전, 튜플, 집합
- 파일과 데이터베이스 사용법
- 재귀 호출
- 반복자와 문자열
- 객체, 메서드, 객체 지향 프로그래밍 이해하기
- 구문 오류, 런타임 오류, 의미 오류를 디버깅하는 법
- 사례 연구를 통한 심화 학습
- 알고리즘 분석
- 형식 언어와 자연 언어
- 캡슐화와 일반화
- 함수와 스택 다이어그램
- 인터페이스 디자인
- 리팩터링
- 개발 계획과 점진적인 개발
- 문자열, 리스트와 슬라이스
- 맵, 필터, 리듀스
- 단어 빈도 분석과 마르코프 분석
- 파일 처리와 피클링

[저자 서문]
이 책의 이상한 역사
1999년 1월, 저는 자바로 가르치는 프로그래밍 입문 수업을 준비하고 있었습니다. 프로그래밍 입문 수업을 세 번이나 가르쳤지만, 그 결과에 좌절하고 있었습니다. 수업을 따라오지 못하는 비율이 너무 높았고, 수업을 잘 따라온 학생들도 전반적인 성취도가 지나치게 낮았기 때문입니다.
제가 알게 된 한 가지 문제점은 교재였습니다. 이들 교재는 너무 두꺼웠고, 자바에 대해 반드시 알 필요가 없는 내용을 너무 자세하게 담느라 프로그램을 어떻게 작성해야 하는지에 대한 안내는 턱없이 부족했습니다. 게다가 이 교재들은 트랩도어 효과(trapdoor effect)마저 안고 있었습니다. 즉, 처음엔 쉽게 시작하지만, 점점 어려워지다가 5장쯤 도착하면 결국 함정에 빠지게 되는 겁니다. 학생들이 이해해야 할 새로운 내용이 지나치게 많은 데다가 진도도 너무 빨라서 이를 수습하는 데 학기의 나머지를 써야 했습니다.
첫 수업을 시작하기 2주 전에 책을 직접 쓰기로 결정했습니다. 제가 세운 목표는 이렇습니다.

● 짧아야 한다. 학생들이 50쪽을 읽는 것보단 10쪽을 읽는 것이 낫다.
● 단어 사용에 주의한다. 전문 용어는 최소화하고 용어를 처음 사용할 때는 용어의 정의부터 설명한다.
● 점진적으로 나아간다. 트랩도어 효과를 피하기 위해 가장 어려운 주제를 정하고 작은 단계로 나눠서 제시한다.
● 프로그래밍 언어가 아니라 프로그래밍에 집중한다. 자바에서 유용한 부분만 최소한으로 남기고 나머지는 생략한다.

제목을 지어야 했으니까 즉흥적으로 “컴퓨터 과학자처럼 생각하는 법”이라고 했습니다.
첫 번째 버전은 기본 뼈대만 갖췄지만, 효과가 분명했습니다. 학생들은 첫 번째 버전을 읽었고, 수업 시간에 어려운 주제나 흥미로운 주제를 설명해도 이해할 수 있게 되었고, 무엇보다도 학생들이 실습할 수 있게 되었습니다.
저는 이 책을 GNU 자유 문서 라이선스(Free Documentation License, FDL)로 내놓았으므로 사람들은 이 책을 복사, 수정, 배포할 수 있었습니다.
이후에 일어난 일이 정말 멋진 부분입니다. 버지니아에 있는 고등학교 선생님인 제프 엘크너(Jeff Elkner)는 제 책을 선택해서 파이썬으로 옮겼습니다. 제프는 자신이 만든 파이썬 버전 한 부를 보내줬는데 저는 자신이 쓴 책을 읽으면서 파이썬을 배우는 이상한 경험을 했습니다. 저는 첫 번째 파이썬 버전을 2001년에 그린 티 출판사(Green Tea Press)라는 이름으로 출간했습니다.
2003년에는 올린공과대학교에서 강의를 시작했고, 처음으로 파이썬을 가르치게 되었습니다. 자바와 매우 달랐습니다. 학생들은 고생을 덜 하면서 더 많이 배우고, 더 흥미 있는 프로젝트를 하게 되었고, 대다수는 훨씬 더 재미있어했습니다.
그 이후로도 책을 꾸준히 개발해오면서 오류를 수정하고, 예제들을 더 개선하고, 수업 자료를 추가해왔으며, 특히 연습 문제가 보강되었습니다.
그 결과가 이 책이며 이제는 조금은 겸손해진 <씽크 파이썬(Think Python)>이라는 제목을 갖게 되었습니다. 변경된 점도 있는데, 이는 다음과 같습니다.

● 각 장의 끝에 디버깅 절을 추가했다. 디버깅 절에서는 버그를 발견하고 피하는 일반적인 기법을 제시하고, 파이썬의 함정에 대한 주의 사항을 담았다.
● 더 많은 연습 문제를 추가했다. 이해했는지 묻는 짧은 테스트부터 몇 가지 큰 프로젝트까지 아우르는 연습 문제를 추가했다. 연습 문제 대부분은 내 해법에 대한 링크를 담고 있다.
● 사례 연구를 추가했다. 더 길어진 예제에는 연습 문제, 해법, 토론을 함께 제공한다.
● 프로그램 개발 계획이나 기본 디자인 패턴에 대한 논의를 담았다.
● 디버깅과 알고리즘 분석에 대한 부록을 추가했다.

개정 2판에 추가된 새 특징은 다음과 같습니다.

● 이 책과 예제 코드는 모두 파이썬 3에 맞춰 개정되었다.
● 초심자가 브라우저에서 파이썬을 실행해볼 수 있는 절을 추가했으며 웹에 더 자세한 내용을 올려두었다. 따라서 원하지 않는다면 파이썬을 설치하지 않아도 된다.
● “turtle 모듈”(70쪽)은 내가 만든 거북이 그래픽 패키지 Swampy 대신 파이썬 표준 모듈인 turtle로 바꿨다. turtle 모듈은 설치가 더 쉽고, 더 강력하다.

목차

1장 프로그램의 길
__1.1 프로그램은 무엇인가?
__1.2 파이썬 실행하기
__1.3 첫 번째 프로그램
__1.4 산술 연산자
__1.5 값과 타입
__1.6 형식 언어와 자연 언어
__1.7 디버깅
__1.8 용어
__1.9 연습문제

2장 변수, 표현식, 문장
__2.1 할당문
__2.2 변수 이름
__2.3 표현식과 문장
__2.4 스크립트 모드
__2.5 연산 순서
__2.6 문자열 연산
__2.7 주석
__2.8 디버깅
__2.9 용어
__2.10 연습문제

3장 함수
__3.1 함수 호출
__3.2 수학 함수
__3.3 조합
__3.4 새 함수를 추가하기
__3.5 정의와 사용
__3.6 실행 흐름
__3.7 인자와 인수
__3.8 변수와 인자는 지역 범위다
__3.9 스택 다이어그램
__3.10 결과가 있는 함수와 없는 함수
__3.11 왜 함수인가?
__3.12 디버깅
__3.13 용어
__3.14 연습문제

4장 사례 연구: 인터페이스 디자인
__4.1 turtle 모듈
__4.2 단순 반복
__4.3 연습문제
__4.4 캡슐화
__4.5 일반화
__4.6 인터페이스 디자인
__4.7 리팩터링
__4.8 개발 계획
__4.9 독스트링
__4.10 디버깅
__4.11 용어
__4.12 연습문제

5장 조건문과 재귀
__5.1 몫과 나머지 연산자
__5.2 불 표현식
__5.3 논리 연산자
__5.4 조건부 실행
__5.5 대안부 실행
__5.6 연쇄 조건문
__5.7 중첩 조건문
__5.8 재귀
__5.9 재귀 함수를 위한 스택 다이어그램
__5.10 무한 재귀
__5.11 키보드 입력
__5.12 디버깅
__5.13 용어
__5.14 연습문제

6장 결과가 있는 함수
__6.1 반환값
__6.2 점진적인 개발
__6.3 조합
__6.4 불 함수
__6.5 재귀, 하나 더
__6.6 믿음의 도약
__6.7 재귀, 하나 더(2)
__6.8 타입 검사
__6.9 디버깅
__6.10 용어
__6.11 연습문제

7장 반복
__7.1 재할당
__7.2 변수 업데이트
__7.3 while 문
__7.4 break
__7.5 제곱근
__7.6 알고리즘
__7.7 디버깅
__7.8 용어
__7.9 연습문제

8장 문자열
__8.1 문자열은 시퀀스다
__8.2 len
__8.3 for 루프로 순회하기
__8.4 문자열 슬라이스
__8.5 문자열은 불변이다
__8.6 검색하기
__8.7 루프 돌기와 세기
__8.8 문자열 메서드
__8.9 in 연산자
__8.10 문자열 비교
__8.11 디버깅
__8.12 용어
__8.13 연습문제

9장 사례 연구: 워드 플레이
__9.1 단어 목록 읽어 들이기
__9.2 연습문제
__9.3 검색
__9.4 인덱스로 루프 돌기
__9.5 디버깅
__9.6 용어
__9.7 연습문제

10장 리스트
__10.1 리스트는 시퀀스다
__10.2 리스트는 변경된다
__10.3 리스트 순회하기
__10.4 리스트 연산
__10.5 리스트 슬라이스
__10.6 리스트 메서드
__10.7 맵, 필터, 리듀스
__10.8 원소를 삭제하기
__10.9 리스트와 문자열
__10.10 객체와 값
__10.11 별칭
__10.12 리스트 인수
__10.13 디버깅
__10.14 용어
__10.15 연습문제

11장 사전
__11.1 사전은 매핑이다
__11.2 카운터 컬렉션으로서의 사전
__11.3 루프와 사전
__11.4 역방향 조회
__11.5 사전과 리스트
__11.6 메모
__11.7 전역 변수
__11.8 디버깅
__11.9 용어
__11.10 연습문제

12장 튜플
__12.1 튜플은 불변이다
__12.2 튜플 할당
__12.3 반환값으로의 튜플
__12.4 가변 길이 인수 튜플
__12.5 리스트와 튜플
__12.6 사전과 튜플
__12.7 시퀀스의 시퀀스
__12.8 디버깅
__12.9 용어
__12.10 연습문제

13장 사례 연구: 자료 구조 고르기
__13.1 단어 빈도 분석
__13.2 난수
__13.3 단어 히스토그램
__13.4 최다 빈출 단어
__13.5 선택 인수
__13.6 사전 빼기
__13.7 무작위 단어
__13.8 마르코프 분석
__13.9 자료 구조
__13.10 디버깅
__13.11 용어
__13.12 연습문제

14장 파일
__14.1 영속성
__14.2 읽기와 쓰기
__14.3 서식 연산자
__14.4 파일명과 경로
__14.5 예외를 잡기
__14.6 데이터베이스
__14.7 피클링
__14.8 파이프
__14.9 모듈 작성하기
__14.10 디버깅
__14.11 용어
__14.12 연습문제

15장 클래스와 객체
__15.1 프로그래머 정의 타입
__15.2 속성
__15.3 사각형
__15.4 인스턴스를 반환값으로 하기
__15.5 객체는 가변이다
__15.6 복제하기
__15.7 디버깅
__15.8 용어
__15.9 연습문제

16장 클래스와 함수
__16.1 시간
__16.2 순수 함수
__16.3 변경자
__16.4 프로토타입 대 계획
__16.5 디버깅
__16.6 용어
__16.7 연습문제

17장 클래스와 메서드
__17.1 객체 지향 기능
__17.2 객체를 출력하기
__17.3 또 하나의 예제
__17.4 더 복잡한 예
__17.5 init 메서드
__17.6 __str__ 메서드
__17.7 연산자 오버로딩
__17.8 타입 기반 디스패치
__17.9 다형성
__17.10 인터페이스와 구현
__17.11 디버깅
__17.12 용어
__17.13 연습문제

18장 상속
__18.1 카드 객체
__18.2 클래스 속성
__18.3 카드 비교하기
__18.4 덱
__18.5 덱 출력하기
__18.6 추가, 제거, 섞기, 정렬
__18.7 상속
__18.8 클래스 다이어그램
__18.9 데이터 캡슐화
__18.10 디버깅
__18.11 용어
__18.12 연습문제

19장 알아두면 좋은 나머지
__19.1 조건식
__19.2 리스트 컴프리헨션
__19.3 발생자 표현식
__19.4 any와 all
__19.5 집합(set)
__19.6 카운터
__19.7 defaultdict
__19.8 이름있는 튜플
__19.9 키워드 인수를 모으기
__19.10 용어
__19.11 연습문제

20장 디버깅
__20.1 구문 오류
__20.2 런타임 오류
__20.3 의미 오류

21장 알고리즘 분석
__21.1 증가 기준
__21.2 파이썬 기본 연산의 분석
__21.3 검색 알고리즘의 분석
__21.4 해시테이블
__21.5 용어

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.