서브메뉴

본문

생각하는 프로그래밍 (프로그래밍 본질에 관한 15가지 에세이)
생각하는 프로그래밍 (프로그래밍 본질에 관한 15가지 에세이)
저자 : 존 벤틀리
출판사 : 인사이트
출판년 : 2013
ISBN : 9788966260997

책소개

프로그래밍 사고력 훈련의 첫걸음

프로그래밍 본질에 관한 15가지 에세이 『생각하는 프로그래밍』. ACM의 전통 있는 간행물 CACM에 연재된 《Programming Pearls》의 칼럼을 엮은 것으로, 몇 개의 간단한 알고리즘 및 데이터 구조를 통해 문제를 정확히 분석하고 효율적으로 해결할 수 있도록 생각하는 방법을 알려주는 책이다. 1부에서는 문제 정의, 알고리즘, 데이터 구조, 프로그램 검증, 테스팅과 같은 프로그래밍의 기본을 복습하고, 2부에서는 효율성에 관한 주제를 다루며, 3부에서는 이들 기술을 정렬, 탐색, 문자열과 같은 실질적인 문제에 적용한다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

프로그래밍 언어 문법을 외우고 개발 도구를 사용법을 익히면 소프트웨어를 만들 수 있다고 흔히 생각하지만, 실제 세계에서 부딪히는 개발 작업은 도구의 단순 사용을 반복하는 것이 아니라 깊은 사고력을 요하는 기예(技藝)에 가깝다. 시시각각 변하는 환경과 제한된 예산, 기간의 압박 속에서 각자 한계가 있는 현존 기술로 최적의 해법을 찾는 일을 도구나 언어가 100% 대신해 줄 수는 없다.
프로그래밍에서 이런 사고력 훈련의 첫걸음은 데이터 구조나 알고리즘 같은 기초를 적절히 학습하고 이를 코드로 구현하고 단계적으로 개선해 가는 것으로 시작할 수 있다. 이 책은 이런 수련을 하는 데 유용한 고전이다. ACM의 전통 있는 간행물인 CACM에 연재된 「Programming Pearls」란 칼럼을 묶어 발간된 이 책은 제목 그대로 조개 속에서 진주가 만들어지듯 긴 사고의 과정을 거쳐 깊은 프로그래밍의 세계에 들어갈 수 있도록 안내하고 있다.
눈앞에 닥친 비즈니스 로직의 정답을 문제집처럼 알려주지는 않지만 이 책을 계기로 충분한 수련을 거친 개발자라면 남의 답을 베끼는 것이 아니라 자신만의 해법을 고안해내는 즐거움을 누릴 수 있을 것이다.

이 책에서 다루는 내용
- 문제 정의, 알고리즘, 데이터 구조 등 프로그래밍의 기본
- 효율성 제고 기법
- 정렬, 탐색, 문자열 등 구체적 문제에 대한 해법
[교보문고에서 제공한 정보입니다.]

목차정보

제1부 준비

칼럼1 조개껍질 깨기
대화 / 정확한 문제 기술 / 프로그램 디자인 / 구현 스케치 / 원리
연습문제 / 더 읽을거리

칼럼2 아하! 알고리즘
세 가지 문제 / 여기저기에서 쓰이는 이진 탐색(Binary Search)
기초적인 조작의 위력 / 정렬 / 원리 / 연습문제 / 더 읽을거리
sidebar : 전철어구 프로그램의 구현

칼럼3 프로그램의 구조를 결정하는 데이터
설문 조사 프로그램 / 폼 레터 프로그래밍 / 다른 예제들 / 데이터 구조화하기
특화된 데이터를 위한 강력한 도구 / 원리 / 연습문제

칼럼4 정확한 프로그램 작성
생각보다 어려운 이진 탐색 / 프로그램 작성 / 프로그램에 대한 이해
원리 / 프로그램 검증의 역할 / 연습문제 / 더 읽을거리

칼럼5 프로그래밍에서의 사소한 문제
가상코드로부터 C로 / 테스트 장치(harness) / 단정문(assertion)사용 요령
자동화된 테스트 / 시간측정 / 완전한 프로그램 / 원리 / 연습문제
더 읽을거리
sidebar : 디버깅

제2부 퍼포먼스

칼럼6 퍼포먼스에 대한 개관
사례 연구 / 디자인의 수준 / 원리 / 연습문제 / 더 읽을거리

칼럼7 봉투뒷면에 하는 간단한 계산
기초 기술 / 퍼포먼스 추정 / 안전계수(Safety Factors)/ Little의 법칙
원리 / 연습문제 / 더 읽을거리
sidebar : 일상생활에서의 간단한 계산

칼럼8 알고리즘 디자인 기법
문제 및 간단한 알고리즘 / O(n2) 알고리즘 두 가지 / 나누어 푸는 알고리즘
스캐닝(scanning) 알고리즘 / 무엇이 중요한가? / 원리 / 연습문제 / 더 읽을거리

칼럼9 코드 튜닝
전형적인 이야기 / 코드 튜닝의 몇 가지 예제 / 대수술-이진 탐색 / 원리
연습문제 / 더 읽을거리

칼럼10 메모리 절약
핵심-단순함 / 이해를 돕는 문제 / 데이터 공간을 위한 기법
코드 공간을 위한 기법 / 원리 / 연습문제 / 더 읽을거리
sidebar : 대규모 절감

제3부 프로덕트

칼럼11 정렬
삽입 정렬 / 간단한 퀵 정렬 / 개선된 퀵 정렬 / 원리 / 연습문제 / 더 읽을거리

칼럼12 표본 선정 문제
문제 / 솔루션 하나 / 디자인 공간 / 원리 / 연습문제 / 더 읽을거리

칼럼13 탐색
인터페이스 / 선형적 구조 / 이진 탐색 트리 / 정수를 위한 구조 / 원리
연습문제 / 더 읽을거리
sidebar : 실질적 탐색 문제

칼럼14 힙(Heaps)
데이터 구조 / 두 가지 중요한 함수 / 우선순위 큐 / 정렬 알고리즘 / 원리
연습문제 / 더 읽을거리

칼럼15 문자열 처리
단어 / 어구 / 텍스트 생성하기 / 원리 / 연습문제 / 더 읽을거리

1판에 대한 에필로그
2판에 대한 에필로그

부록1 알고리즘 카탈로그
부록2 추정퀴즈
부록3 시간과 공간에 대한 비용모델
부록4 코드 튜닝을 위한 규칙
부록5 탐색을 위한 C++ 클래스
연습문제 힌트
연습문제 해답
[교보문고에서 제공한 정보입니다.]