알고리즘 산책: 수학에서 제네릭 프로그래밍까지 (알렉산더가 강의하고 다니엘이 정리한 수학과 프로그래밍의 상관 관계)

알고리즘 산책: 수학에서 제네릭 프로그래밍까지 (알렉산더가 강의하고 다니엘이 정리한 수학과 프로그래밍의 상관 관계)

$26.00
Description
"좋은 프로그래머가 되려면 제네릭 프로그래밍의 원리를 이해해야 한다. 제네릭 프로그래밍의 원리를 이해하려면 추상화를 이해해야 한다. 추상화를 이해하려면 그 바탕을 이루는 수학을 이해해야 한다." _알렉산더 스테파노프
알렉산더 스테파노프가 설명하는 프로그래밍과 수학 이야기
제네릭 프로그래밍의 개념을 적용해 STL을 만든 스테파노프가 강의하고, 다니엘 로즈가 정리한 프로그래밍과 수학 이야기. 제네릭 프로그래밍의 원리와 추상화에 대한 수학 개념을 살펴보면서 간결하고 정확한 코드를 작성하는 원리를 깨우친다.

수학 개념에서 제네릭 프로그래밍으로
논리적으로 생각하는 프로그래머를 위한 추상대수학과 정수론을 설명한다. 수학자들이 처음 해결해야 했던 문제를 설명하고, 수학의 해법을 어떻게 제네릭 프로그래밍으로 옮기는지 보여주면서 더 효과적이며 우아한 코드를 작성하는 과정을 보여준다. 이러한 수학 원리가 현대 응용 프로그램에서 중요한 역할을 하고 있음을 입증하기 위해 수학 원리와 제네릭 프로그래밍을 사용해 공개 키 암호 시스템을 구현하는 방법을 보여준다.

생각하는 프로그래밍을 배운다
간결하고 정확하게 동작하는 코드를 작성하는 데 필요한 사고법을 익힌다. 협소한 문제를 해결하는 알고리즘을 일반화하면서도 효율성은 떨어뜨리지 않고 유용성은 확대하는 방법을 배우게 된다. 수학적인 의미를 프로그래밍으로 바꾸는 깊이 있는 통찰력도 얻게 된다. 이러한 통찰력은 프로그래밍 언어와 패러다임에 관계 없이 중요한 가치가 있다.

[이 책의 내용]
고대의 곱셈 알고리즘과 개선 방안
정수의 속성과 소수를 찾기 위한 알고리즘
최대공약수 찾기와 추상화
제네릭 프로그래밍의 핵심 개념인 추상대수학
공리체계, 이론, 모델로 알아보는 제네릭 프로그래밍의 구성요소
수학과 알고리즘을 암호화에 적용하는 방법
저자

알렉산더A.스테파노프

저자알렉산더A.스테파노프(AlexanderA.Stepanov)
모스크바국립대학교에서1967년부터1972년까지수학을공부했다.프로그래밍은1972년부터시작했는데처음에는소련에서,그리고1977년후로는미국에서계속프로그래밍을했다.운영체제,프로그래밍툴,컴파일러와라이브러리를만들었다.GE,폴리테크닉대학교,벨연구소,HP,SGI,어도비의지원을받아프로그래밍기초에관한일을해왔으며2009년부터는아마존의검색기술자회사인A9.com에서일하고있다.1995년에는C++표준템플릿라이브러리(StandardTemplateLibrary,STL)설계에대한공로를인정받아Dr.Dobb’sJournal의ExcellenceinProgrammingAward를받았다.

목차

1장이책에관하여
__1.1프로그래밍과수학
__1.2역사적인관점
__1.3미리알아야할것
__1.4로드맵

2장첫번째알고리즘
__2.1이집트인의곱셈
__2.2알고리즘개선
__2.3마무리

3장고대그리스의정수론
__3.1정수의기하학적인성질
__3.2소수걸러내기
__3.3코드구현및최적화
__3.4완전수
__3.5공측도
__3.6공측도개념의치명적인약점
__3.7마무리

4장유클리드의알고리즘
__4.1아테네와알렉산드리아
__4.2유클리드의최대공약수알고리즘
__4.3수학이없는밀레니엄
__4.4영의기묘한역사
__4.5나머지와몫알고리즘
__4.6코드공유
__4.7알고리즘유효성검증
__4.8마무리

5장근대정수론의시초
__5.1메르센소수와페르마소수
__5.2페르마의작은정리
__5.3상쇄
__5.4페르마의작은정리증명
__5.5오일러의정리
__5.6모듈러산술응용
__5.7마무리

6장수학에서의추상화
__6.1군
__6.2단항과반군
__6.3군에관한정리몇가지
__6.4부분군과순환군
__6.5라그랑주정리
__6.6이론과모형
__6.7범주이론과비범주이론의예
__6.8마무리

7장제네릭알고리즘유도방법
__7.1알고리즘요구조건매듭풀기
__7.2A에대한요구조건
__7.3N에대한요구조건
__7.4새로운요구조건
__7.5곱셈에서거듭제곱으로
__7.6연산일반화
__7.7피보나치수계산
__7.8마무리

8장기타대수구조
__8.1스테빈,다항식그리고최대공약수
__8.2괴팅겐과독일의수학자들
__8.3뇌터와추상대수학의탄생
__8.4환
__8.5행렬곱과반환
__8.6응용:소셜네트워크와최단경로
__8.7유클리드영역
__8.8체와기타대수구조
__8.9마무리

9장수학지식체계화과정
__9.1증명
__9.2첫번째정리
__9.3유클리드와공리적방법
__9.4비유클리드기하학
__9.5힐베르트의형식주의접근법
__9.6페아노와그의공리
__9.7산술구축하는법
__9.8마무리

10장기초프로그래밍개념
__10.1아리스토텔레스와추상화
__10.2값과유형
__10.3개념
__10.4반복자
__10.5반복자의범주와연산,속성
__10.6구간
__10.7선형검색
__10.8이진검색
__10.9마무리

11장순열알고리즘
__11.1순열과호환
__11.2구간맞바꾸기
__11.3회전
__11.4순환사용법
__11.5뒤집기
__11.6공간복잡도
__11.7메모리적응형알고리즘
__11.8마무리

12장GCD확장
__12.1하드웨어의제약과더효율적인알고리즘
__12.2슈타인알고리즘일반화
__12.3베주항등식
__12.4확장된GCD
__12.5GCD의응용
__12.6마무리

13장실전응용
__13.1암호학
__13.2소수여부검사법
__13.3밀러-라빈테스트
__13.4RSA알고리즘의작동원리
__13.5마무리

14장결론

15장읽을거리

부록A표기법

부록B일반적인증명기법
__B.1귀류법
__B.2수학적귀납법
__B.3비둘기집원리

부록CC++의기초
__C.1템플릿함수
__C.2개념
__C.3선언구문과유형이정해진상수
__C.4함수객체
__C.5전제조건,사후조건그리고assert구문
__C.6STL알고리즘과자료구조
__C.7반복자와구간
__C.8C++11의using을이용한유형앨리어스와유형함수
__C.9C++11의리스트초기화
__C.10C++11의람다함수
__C.11inline지시자에관하여

부록D참고문헌