이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
프로그램 디자인, 어떻게 할 것인가
베스트
IT 모바일 top100 3주
가격
35,000
10 31,500
YES포인트?
1,750원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

이 분야의 이벤트

책소개

목차

옮긴이의 글

서문
왜 모든 사람이 프로그래밍을 배워야 하는가
디자인 레시피
Scheme과 DrRacket의 선택
이 책의 구성
감사의 글

1부. 간단한 형태의 데이터 처리
1장 학습자, 교육자, 컴퓨터
2장 수, 표현, 간단한 프로그램
2.1 수와 연산
2.2 변수와 프로그램
2.3 응용 문제
2.4 오류
2.5 프로그램 디자인
3장 프로그램은 함수+변수 졍의다
3.1 함수 조합
3.2 변수 정의
3.3 함수 구성에 관한 연습문제
4장 조건문과 함수
4.1 불린과 관계
4.2 조건을 검사하는 함수
4.3 조건과 조건문
5장 기호 정보
5.1 기호에 관한 몸풀기 문제
6장 복합 데이터 1: 구조체
6.1 구조체
6.2 추가 연습문제: 간단한 그림 그리기
6.3 구조체 정의
6.4 데이터 정의
6.5 복합 데이터를 다루는 함수 디자인
6.6 추가 연습문제: 원과 사각형 움직이기
6.7 추가 연습문제: 행맨 단어 맞히기
7장 데이터의 다양성
7.1 데이터를 혼합하고 구분하기
7.2 혼합 데이터를 다루는 함수 디자인
7.3 함수 조합 다시 보기
7.4 추가 연습문제; 도형 움직이기
7.5 입력 오류
8장 쉬어가기 1: 구문과 의미
8.1 Scheme의 어휘
8.2 Scheme의 문법
8.3 Scheme의 의미
8.4 오류
8.5 불린 표현
8.6 변수 정의
8.7 구조체 정의

2부. 임의의 큰 자료 처리
9장 복합 데이터 2: 리스트
9.1 리스트
9.2 임의 길이의 리스트에 대한 데이터 정의
9.3 임의 길이의 리스트 다루기
9.4 자기 참조 데이터 정의에 대한 함수 디자인
9.5 간단한 리스트를 다루는 다양한 예
10장 리스트 처리 더 보기
10.1 리스트를 출력하는 함수
10.2 구조체를 포함하는 리스트
10.3 추가 연습문제: 그림 옮기기
11장 자연수
11.1 자연수의 정의
11.2 임의 길이의 자연수 다루기
11.3 추가 연습문제: 리스트 작성 및 함수 테스트
11.4 자연수에 대한 또 다른 데이터 정의
11.5 자연수의 성질에 관한 보다 자세한 논의
12장 함수 조합 다시 보기
12.1 복잡한 프로그램 디자인하기
12.2 재귀 보조 함수
12.3 문제 일반화, 함수 일반화
12.4 추가 연습문제: 단어 재배열하기
13장 쉬어가기 2: 리스트 축약

3부. 임의의 큰 데이터 처리 더 보기
14장 자기 참조 데이터 정의 더 보기
14.1 구조체의 구조
14.2 추가 연습문제: 이진 검색 트리
14.3 리스트 내의 리스트
14.4 추가 연습문제: Scheme 계산
15장 상호 참조 데이터 정의
15.1 구조체 리스트, 구조체 내의 리스트
15.2 상호 참조 정의를 다루는 함수 디자인하기
15.3 추가 연습문제: 웹페이지 더 보기
16장 반복적 개선을 통한 개발
16.1 데이터 분석
16.2 데이터 집합 정의하기 및 개선하기
16.3 함수 및 프로그램 개선하기
17장 두 복합 데이터 다루기
17.1 두 리스트 동시에 다루기: 경우 1
17.2 두 리스트 동시에 다루기: 경우 2
17.3 두 리스트 동시에 다루기: 경우 3
17.4 함수 단순화
17.5 복잡한 두 개의 데이터를 입력받는 함수 디자인
17.6 복잡한 두 입력을 다루는 예
17.7 추가 연습문제: Scheme 계산하기, 두 번째
17.8 통일성과 테스트
18장 쉬어가기 3: 지역정의와 유효 영역
18.1 local을 이용한 함수 조직
18.2 유효 영역과 블록 구조

4부. 디자인 추상화
19장 정의 사이의 유사성
19.1 함수 사이의 유사성
19.2 데이터 정의 사이의 유사성
20장 함수는 값이다
20.1 구문과 의미
20.2 추상 함수 및 다형적 함수에 대한 계약
21장 예에서 추상화 디자인하기
21.1 예에서 추상화 끌어내기
21.2 추상화 리스트 함수를 다루는 몸풀기 문제
21.3 추상화와 유일한 관리 지점
21.4 추가 연습문제: 움직이는 그림 다시 보기
21.5 참고: 템플릿으로부터 추상화 디자인하기
22장 함수를 출력하는 함수를 이용한 추상화 디자인
22.1 함수를 출력하는 함수
22.2 값으로서의 함수를 이용한 추상 함수 디자인
22.3 GUI 맛보기
23장 수학 예제399
23.1 수열과 급수
23.2 등차수열과 급수
23.3 등비수열과 급수
23.4 함수 내 면적
23.5 함수의 기울기
24장 쉬어가기 4: 즉석에서 함수 정의하기
24.1 람다 표현의 구문
24.2 람다의 영역과 의미
24.3 람다의 활용

5부. 발생적 재귀
25장 새로운 형태의 재귀 호출
25.1 테이블 위의 공 모델링하기
25.2 빠르게 정렬하기
26장 알고리즘 디자인하기
26.1 종료
26.2 구조적 재귀 대 발생적 재귀
26.3 선택하기
27장 주제에 의한 변주곡
27.1 프랙탈
27.2 파일에서 선으로, 리스트에서 리스트를 갖는 리스트로
27.3 이진 검색
27.4 뉴턴 방법
27.5 추가 연습문제: 가우스 소거법
28장 역추적하는 알고리즘
28.1 그래프 순회
28.2 추가 연습문제: 퀸 체크
29장 쉬어가기 5: 컴퓨팅 연산 비용과 벡터
29.1 구체적 시간, 추상 시간
29.2 ‘차수’의 정의
29.3 벡터 맛보기

6부. 지식 축적527
30장 지식의 손실
30.1 구조적 처리의 문제점
30.2 발생적 재귀의 문제점
31장 축적기 방식의 함수 디자인하기
31.1 축적기의 필요성 인식하기
31.2 축적 방식의 함수
31.3 함수를 축적 방식으로 바꾸기
32장 축적의 다른 용도559
32.1 추가 연습문제: 트리에서의 축적기
32.2 추가 연습문제: 선교사와 식인종
32.3 추가 연습문제: 보드 솔리테어
33장 쉬어가기 6: 근사값의 본질
33.1 고정 길이 수 연산
33.2 오버플로
33.3 언더플로
33.4 DrRacket의 수

7부. 변수의 상태 바꾸기
34장 함수의 메모리
35장 변수의 할당
35.1 작업에서의 간단한 할당
35.2 순차적 표현 연산
35.3 할당과 함수
36.4 유용한 첫 예제
36장 메모리를 갖는 함수 디자인하기
36.1 메모리의 필요성
36.2 메모리와 상태 변수
36.3 메모리르 초기화하는 함수
36.4 메모리를 바꾸는 함수
37장 메모리 사용 예
37.1 상태 초기화
37.2 사용자의 행동으로 인한 상태 변화
37.3 재귀 호출로부터의 상태 변화
37.4 상태 변화에 관한 몸풀기 문제
37.5 추가 연습문제: 장소 탐험
38장 쉬어가기 7: 최종 구문과 의미
38.1 상급자용 Scheme의 어휘
38.2 상급자용 Scheme의 문법
38.3 상급자용 Scheme의 의미
38.4 사급자용 Scheme에서의 오류

8부. 복합 값 바꾸기
39장 캡슐화
39.1 상태 변수가 있는 추상화
39.2 캡슐화 연습하기
40장 변경 가능한 구조체
40.1 함수로부터의 구조체
40.2 변경 가능한 함수 구조체
40.3 변경 가능한 구조체
40.4 변경 가능한 벡터
40.5 변수 바꾸기, 구조체 바꾸기
41장 구조체를 변경하는 함수 디자인하기
41.1 왜 구조체를 변경하는가
41.2 구조적 디자인 레시피와 변경 1
41.3 구조적 디자인 레시피와 변경 2
41.4 추가 연습문제: 그림 움직이기 3
42장 동일성
42.1 외면적 동일성
42.2 내포적 동일성
43장 구조체, 벡터, 객체 바꾸기
43.1 벡터 더 연습하기
43.2 순환되는 구조체 집합
43.3 상태 역추적

에필로그
컴퓨팅
프로그래밍
더 나아가기

찾아보기

저자 소개

저자 : 마티아스 펠라이젠 Matthias Felleisen
펠라이젠은 현재 보스턴 메사추세츠에 위치한 노스이스턴 대학교의 컴퓨터정보과학과 명예교수다. 인디애나 대학교에서 대니얼 프리드먼으로부터 박사 학위를 받았다. 그의 주요 관심사는 프로그래밍 도구 디자인, 웹 프로그래밍 등이다. 펠라이젠은 PLT와 TechScheme! 프로젝트를 시작하여 초보자들에게 프로그램 디자인 원칙을 가르치고, Scheme을 활용해 큰 규모의 시스템을 만들 수 있도록 돕고 있다.
저자 : 로버트 브루스 핀들러 Robert Bruce Findler
보통 ‘로비’라 불리며 현재 노스웨스턴 대학교에서 강의하고 있는 컴퓨터 과학자다. PLT의 회원으로, DrRacket을 만들었으며 유지보수를 책임지고 있다. TeachScheme! 프로젝트의 선임 멤버이기도 하다.
저자 : 매튜 플랫 Matthew Flatt
현재 솔트레이크 시티에 위치한 유타 대학교에서 강의를 하고 있는 컴퓨터 과학자다. 그 역시 PLT의 회원으로, Racket을 만들었으며 유지보수를 담당하고 있다. 라이스 대학교에서 마티아스 펠라이젠의 지도 아래 박사 학위를 취득했다.
저자 : 슈리람 크리스나무르티 Shriram Krishnamurthi
프로그래밍 언어에 깊은 애정을 갖고 있지만, 주로 컴퓨터 보안, 소프트웨어 공학에 관련된 연구를 한다. 오랜 시간 동안 Racket(DrRacket)을 비롯해 WeScheme, Flapjax, FrTime 같은 혁신적이고 유용한 여러 소프트웨어 시스템에 공헌하였다.
역자 : 김중철
포항공대 컴퓨터공학과를 졸업하였으며, 여러 회사에서 Java JIT 포팅부터 웹 애플리케이션에 이르는 다양한 분야의 프로젝트를 수행하였다. 이 과정에서 컴퓨터 프로그래밍 언어에 관심을 갖게 되었다. 단순히 이론에 그치기보다는 실무 경험을 바탕으로 개발자적인 관점에서 문제에 접근하는 것을 좋아한다. 현재는 KBS에서 IT 분야 업무를 수행하고 있다.

품목정보

발행일
2011년 04월 20일
쪽수, 무게, 크기
850쪽 | 1320g | 172*225*40mm
ISBN13
9788991268975

출판사 리뷰

프로그래밍 언어를 익히기 전에 프로그래밍을 배우다.

프로그래밍을 배우려는 대다수 사람들은 유행하는 언어 혹은 비전 있어 보이는 언어의 문법을 익힌 다음 프로그램을 작성하는 방법으로 공부를 시작한다. 하지만, 이렇게 언어의 문법만 익히는 식으로는 제대로 프로그래밍하기가 힘들다. 많은 학습자들이, 문법은 알겠는데 이 문법들을 어떻게 구성하여 프로그래밍해야 하는지 갈피를 잡지 못하는 경험을 하며, 혼자서는 넘기 힘든 벽에 부딪힌다.

『프로그램 디자인, 어떻게 할 것인가』는 컴퓨터 프로그래밍을 처음 접하는 사람들에게 프로그램을 ‘디자인’하는 방법을 가르치는 책이다. 여기서 말하는 ‘디자인’이라는 용어는 단순히 프로그램을 설계한다는 의미를 넘어, 이론적으로나 구조적인 내용을 파악하여 예술적인 경지에 이르도록 주의 깊게 프로그램을 ‘만든다’는 것을 뜻한다.

이 책에서는 구조체, 트리, 그래프와 같은 기본적인 프로그래밍에 필요한 자료 구조 및 알고리즘에 대해서도 설명하고 있다. 이러한 개념들은 예를 통해 제시되며, 반복적으로 살펴봄으로써 프로그래밍의 수준을 점점 높여 나가는 방식을 취하고 있다.
또한 구조적으로 프로그래밍할 수 있도록 자주 쓰이는 디자인 방법들을 모아 ‘디자인 레시피’라는 이름으로 제시한다. 프로그래밍을 할 때, 이 디자인 레시피 가운데 필요한 것을 선택하여 템플릿을 만들고, 이 템플릿에 내용을 채워 넣기만 하면 된다.

프로그래밍은 이론만 알고 있다고 해서 완성되지 않는다. 직접 구현하면서 이론만으로는 해결할 수 없는 어려운 부분도 만나게 되고, 특정한 문제를 해결하기 위해 기발한 아이디어를 이용해야 할 수도 있다. 이 책에서는 다양한 연습문제를 통해 이러한 연습을 직접 해 볼 수 있도록 도와준다. 이 연습문제들을 살펴보는 것만으로도 이 책의 진가를 확인할 수 있을 것이다.

리뷰/한줄평0

리뷰

첫번째 리뷰어가 되어주세요.

한줄평

첫번째 한줄평을 남겨주세요.