- 『Programming: Principles and Practice Using C++』 3판은 프로그래밍을 처음 배우는 독자를 주 대상으로 하며, 경험이 조금 있는 독자에게도 현대 C++ 와 더 나은 스타일·기법을 익히는 입문서로 쓰일 수 있음
- 책의 중심은 C++ 문법 세부 암기가 아니라 프로그래밍 기본 원리와 실전 기술이며, 절차적·객체지향·제네릭 프로그래밍을 함께 다룸
- PPP3는 PPP2보다 약 절반 크기로 줄었고, 한 학기 과정에서 다루는 기초 장을 강화하면서 C++20·C++23과 Qt 기반 Graphics/GUI 코드를 반영함
- 더 전문적인 장과 순수 참고 자료는 웹으로 옮겨 필요할 때 보게 했으며, 최신 참고 정보는 cppreference.com 같은 웹 자료로 보완하는 흐름임
- 샘플 PDF, PPP 모듈·헤더, Qt GUI 코드, 강의 슬라이드, 코딩 스타일 가이드 등이 제공되어 수업과 자습 모두에 활용 가능함
책의 목표와 독자
- 『Programming: Principles and Practice Using C++ (3rd Edition)』, 약칭 PPP3, 는 프로그래밍 경험이 없는 사람을 위한 입문서임
- 이미 조금 프로그래밍해 본 독자도 스타일과 기법을 개선하거나 현대 C++ 를 배우는 자료로 활용할 수 있음
- 수업용으로 설계됐지만 자습도 염두에 두고 작성됨
- 이전 판은 Texas A&M University의 전기공학, 컴퓨터공학, 컴퓨터과학 학생 대상 첫 프로그래밍 수업과 여러 곳에서 사용된 바 있음
프로그래밍을 가르치는 방식
- 책은 독자가 결국 다른 사람이 사용하고 유지보수할 수 있을 만큼 좋은 프로그램을 작성하게 되는 것을 목표로 삼음
- 초점은 지엽적인 언어 기술 세부사항보다 기본 개념과 기법에 있음
- 단순한 C++ 언어 입문서가 아니라 프로그래밍 일반에 대한 입문서로 구성됨
- 절차적 프로그래밍
- 객체지향 프로그래밍
- 제네릭 프로그래밍
- 현대적인 고수준 기법과 함께, 하드웨어를 효율적으로 쓰는 데 필요한 저수준 기법도 다룸
- 유용하고, 정확하고, 타입 안전하고, 유지보수 가능하며, 효율적인 코드를 작성하기 위한 기반을 제공함
- 필수 개념, 설계와 프로그래밍 기법, 언어 기능, 라이브러리를 폭넓게 다룸
3판에서 달라진 점
- PPP3는 PPP2에 비해 약 절반 크기임
- 한 학기 과정에서 보통 다루는 기초 장을 강화해 분량을 줄임
- C++20과 C++23의 핵심 부분을 활용함
- Graphics/GUI 장의 코드를 Qt 기반으로 다시 구성해 브라우저와 휴대폰 같은 환경에서의 이식성을 고려함
- PPP2에서 “broadening the view”로 불리던 더 전문적인 장은 필요할 때 사용할 수 있도록 웹에 배치함
- 순수 참고 자료는 제거됨
- 더 많고 최신인 자료를 웹에서 찾을 수 있으며, 예로 cppreference.com이 언급됨
C++ 표준과 라이브러리 범위
- 책은 C++20과 C++23을 사용함
- 내장 타입과 사용자 정의 타입의 설계와 사용을 다룸
- 입력
- 출력
- 계산
- 간단한 그래픽/GUI
- C++ 표준 라이브러리의 컨테이너와 알고리듬 입문도 포함함
공개된 샘플 자료
- Preface: 책이 약속하는 것과 약속하지 않는 것을 다룸
- Table of Contents: 목차 PDF
- Chapter 0: Notes to the Reader: 책의 접근 방식 안내
- Chapter 10: A Display Model: 샘플 장
- 완전 초보자는 아직 읽지 않는 편이 좋음
- 교사와 경험 있는 독자에게 주당 2장 기준 약 5주 차에 책이 도달하는 수준을 보여주기 위한 장임
- 현대 C++의 일부를 보여주는 목적도 있음
지원 자료와 코드
- Links: C++ 구현체와 개발 환경 링크, 시작을 위한 간단한 조언
- How to use modules?:
PPP_support.h를 사용해 module PPP를 빌드하는 방법 포함 - module PPP: 모듈을 사용할 수 있을 때 쓰는 PPP 모듈
- header "PPP.h":
std와PPP모듈을 가장 쉽게 사용하기 위한 헤더 - header "PPPheaders.h": 헤더 파일 사용으로 되돌아가야 할 때 쓰는 헤더
- GUI support: PPP3 10~14장의 Graphics/GUI 사용자 인터페이스 라이브러리 포함
- 실행하려면 Qt 설치가 필요함
- The User Manual도 제공됨
- Sample code from the various chapters: 여러 장의 샘플 코드, TBD로 표시됨
- Errata: 정오표
- Lectures based on PPP: PPP3용으로 갱신된 강의 슬라이드
- PPP Coding Style Guide
- Exercise Material: TBD로 표시됨
웹에 남아 있는 PPP2 장
- PPP2의 일부 장은 C++14를 사용해 작성됐지만, 여전히 올바르며 해당 주제를 합리적으로 소개함
- 제공되는 PPP2 자료:
번역 현황
- PPP3의 번역판은 아직 없음
- 이전 판의 번역은 book covers page에서 확인할 수 있음