서브메뉴

본문

생각하는 프로그래밍
생각하는 프로그래밍
저자 : 존 벤틀리
출판사 : 인사이트
출판년 : 2003
ISBN : 8995300930

책소개


이진 탐색이나 정렬 또는 기타 어려운 알고리즘과 복잡한 데이터 구조가 아니라, 프로그래머로 하여금 문제를 정확히 분석하고 효율적으로 문제를 해결할 수 있도록 생각하는 방법을 알려준다.

총 15개의 칼럼으로 구성된 이 책은 1부에서는 문제에 대한 정확한 정의를 강조하는 것을 시작으로, 알고리즘과 데이터 구조가 프로그램에 미치는 영향력을 보여주고, 정확한 코드 작성을 위한 검증 기법을 자세히 소개한다.

2부에서는 프로그램의 퍼포먼스와 알고리즘 및 데이터 구조 간의 관계를 설명하고, 속도 향상과 메모리 절감을 위해 디자인 과정에서 적용할 수 있는 여러 기법을 알려준다. 3부에서는 1, 2부에서 배운 내용을 기반으로 실질적이고 재밌는 프로그램들을 작성하면서, 책의 주제를 공고히 한다.

목차


제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++ 클래스
연습문제 힌트
연습문제 해답

QuickMenu