파이썬을 이용한 컴퓨터 과학 입문
더북(TheBook)

파이썬을 이용한 컴퓨터 과학 입문

예비 과학자를 위한 파이썬 입문서

토이 프로젝트가 아니라 공학 문제로 접근한다

로버트 세지윅, 케빈 웨인의 Introduction to Programming 시리즈는 학제간 접근 방법이 특징으로 공학 전공자에게 필요한 내용을 프로그래밍으로 접근한다. 지루한 문법 설명이나 문법을 보여주기 위한 예제 대신 수학, 물리학, 화학, 생물학, 컴퓨터 과학의 문제를 예제로 설명한다. 재료 과학, 유전 공학, 천체 물리학, 네트워크 시스템 등에서 프로그래밍의 역할을 강조하며 컴퓨팅이 어떻게 연결되어 있는지 핵심을 꿰뚫어 볼 수 있게 해준다.

프로그래밍 핵심 개념을 학습한다

파이썬 자체보다는 프로그래밍 핵심 개념을 학습한다. 프린스턴 대학교의 프로그래밍 입문 수업은 신입생을 대상으로 프로그래밍 언어의 문법이 아니라 프로그래밍 핵심 개념을 학습하는 데 목표를 두고 있다. 이 수업을 통해 컴퓨터를 활용한 문제 해결 능력을 배우고, 프로그래밍 경험이 없는 학생들도 학습할 수 있는 내용을 모두 담으려 노력했다.

공학 현장에서의 프로그래밍을 학습한다

정보화 시대 이후 엑셀과 워드가 기본 소양이 되었다면 4차 산업혁명 시대에는 프로그래밍이 기본 소양이 되고 있다. 컴퓨터를 효율적으로 활용하는 데 필요한 기본 지식을 제공해 학생들의 프로그래밍 능력을 향상시키는 것이 이 책의 궁극적인 목표다. 여기에서는 프로그램을 작성하는 일이 자연스럽고, 즐겁고, 창의적이라고 가르친다.

«파이썬을 이용한 컴퓨터 과학 입문»은 1장을 공개합니다.

목차

  • 1장 프로그래밍 기초
  • 1.1 첫 프로그램
  • 파이썬 프로그래밍
  • 입출력
  • Q&A
  • 연습문제
  • 1.2 내장 데이터 타입
  • 정의
  • 문자열
  • 정수형
  • 실수형
  • 불형
  • 비교
  • 함수와 API
  • 형 변환
  • Q&A 문자열
  • Q&A 정수
  • Q&A 실수
  • Q&A
  • 연습문제
  • 심화학습
  • 1.3 조건문과 반복문
  • if 조건문
  • else 절
  • while 반복문
  • for 반복문
  • 내포
  • 응용
  • 중간 탈출 루프
  • 무한 루프
  • 요약
  • Q&A
  • 연습문제
  • 심화학습
  • 1.4 배열
  • 파이썬 배열
  • 배열 별명과 사본
  • 시스템에서의 배열 지원
  • 배열의 기본 응용
  • 쿠폰 수집가
  • 에라토스테네스의 체
  • 2 차원 배열
  • 예제: 자기 회피 무작위 보행
  • 요약
  • Q&A
  • 연습문제
  • 심화학습
  • 1.5 입출력
  • 조감도
  • 표준 출력
  • 표준 입력
  • 리다이렉션과 파이프
  • 표준 그래픽스
  • 애니메이션
  • 표준 오디오
  • 요약
  • Q&A
  • 연습문제
  • 심화학습
  • 1.6 사례 연구: 랜덤 웹 서퍼
  • 입력 서식
  • 변환 행렬
  • 시뮬레이션
  • 마르코프 연쇄의 혼합
  • 요약
  • 연습문제
  • 심화학습
  • 2장 함수와 모듈
  • 2.1 함수 정의
  • 함수의 사용과 정의
  • 수학 함수의 구현
  • 코드를 구조화하는 함수
  • 인수 전달과 값 반환
  • 사례: 음파의 중합
  • Q&A
  • 연습문제
  • 심화학습
  • 2.2 모듈과 클라이언트
  • 다른 프로그램 안의 함수 사용하기
  • 모듈화 프로그래밍 개념
  • 난수
  • 배열 처리 API
  • 반복 함수계(iterated function system, IFS)
  • 표준 통계
  • 모듈화 프로그래밍
  • Q&A
  • 연습문제
  • 심화학습
  • 2.3 재귀
  • 처음 만든 재귀적 프로그램
  • 수학적 귀납법
  • 유클리드 알고리즘
  • 하노이의 탑
  • 함수 호출 트리
  • 기하급수적인 시간
  • 그레이 코드
  • 재귀적인 그래프
  • 브라운 다리
  • 재귀와 관련해 주의할 점
  • 요약
  • Q&A
  • 연습문제
  • 심화학습
  • 2.4 사례 연구: 침투
  • 침투
  • 기본 스캐폴딩
  • 수직 침투
  • 테스트
  • 확률 추정
  • 침투 문제의 재귀적 해결법
  • 적응형 그래프
  • 교훈
  • Q&A
  • 연습문제
  • 심화학습
  • 3장 객체 지향 프로그래밍
  • 3.1 데이터 타입의 이용
  • 메서드
  • 문자열 처리
  • 문자열 처리 애플리케이션: 유전체학
  • 사용자 정의 데이터 타입
  • 색상
  • 디지털 이미지 처리
  • 입출력 다시 보기
  • 메모리 관리
  • Q&A
  • 연습문제
  • 심화학습
  • 3.2 데이터 타입의 생성
  • 데이터 타입의 기본 요소
  • 스톱워치
  • 히스토그램
  • 터틀 그래픽스
  • 복소수
  • 망델브로 집합
  • 금융 데이터 처리
  • Q&A
  • 연습문제
  • 심화학습
  • 3.3 데이터 타입 설계
  • API 설계
  • 캡슐화
  • 불변성
  • 사례: 공간 벡터
  • 튜플
  • 다형성
  • 오버로딩
  • 함수는 객체다
  • 상속
  • 애플리케이션: 데이터 마이닝
  • 계약에 의한 설계
  • Q&A
  • 연습문제
  • 심화학습
  • 3.4 사례 연구: n-체 시뮬레이션
  • n-체 시뮬레이션
  • Q&A
  • 연습문제
  • 심화학습
  • 4장 알고리즘과 데이터 구조
  • 4.1 성능
  • 측정
  • 가설
  • 증가도의 종류
  • 예측
  • 주의할 점
  • 성능 보장
  • 파이썬 리스트와 배열
  • 문자열
  • 메모리
  • 필자의 소견
  • Q&A
  • 연습문제
  • 심화학습
  • 4.2 정렬과 검색
  • 이진 검색
  • 삽입 정렬
  • 합병 정렬
  • 파이썬 시스템 정렬
  • 애플리케이션: 빈도수
  • 요약
  • Q&A
  • 연습문제
  • 심화학습
  • 4.3 스택과 큐
  • 푸시다운 스택
  • 파이썬 리스트로 스택 구현하기
  • 연결 리스트로 스택 구현하기
  • 스택의 응용
  • FIFO 큐
  • 큐의 응용
  • 자원 할당
  • Q&A
  • 연습문제
  • 연결리스트 연습문제
  • 심화학습
  • 4.4 심볼 테이블
  • API
  • 심볼 테이블 클라이언트
  • 초급 심볼 테이블 구현
  • 해시 테이블
  • 이진 검색 트리
  • BST의 성능 특성
  • BST의 순회
  • 반복 가능형
  • 정렬된 심볼 테이블 연산
  • 딕셔너리 데이터 타입
  • 집합 데이터 타입
  • 요약
  • Q&A
  • 연습문제
  • 이진트리 연습문제
  • 심화학습
  • 4.5 사례 연구: 작은-세상 현상
  • 그래프
  • 그래프 데이터 타입
  • 그래프 클라이언트의 예
  • 그래프 안의 최단-경로
  • 작은-세상 그래프
  • 요약
  • Q&A
  • 연습문제
  • 심화학습
  • 부록 A 책을 마치며
  • A.1 표준 파이썬 모듈
  • A.2 프로그래밍 환경
  • A.3 과학 컴퓨팅
  • A.4 컴퓨터 시스템
  • A.5 컴퓨터 과학 이론
  • 부록 B 용어
  • 부록 C API
  • 부록 D 교재에 사용된 프로그램
  • D.1 도서 웹사이트 모듈
  • 교재의 프로그램과 데이터세트
  • D.2 윈도에서 파이썬 프로그래밍 시작하기
  • 개요
  • 파이썬 3.7, IDLE, Tkinter의 설치
  • 예제용 라이브러리를 내려받고 설치하기
  • IDLE 설정
  • 첫 프로그램 작성
  • 첫 프로그램 실행
  • 도서 예제 프로그램 내려받기(선택사항)
  • 도서 예제 데이터 내려받기(선택사항)
  • 예제용 라이브러리 소스 코드 내려받기(선택사항)
  • Q&A
  • D.3 macOS에서 파이썬 프로그래밍 시작하기
  • 개요
  • 파이썬 3.7, IDLE, Tkinter, NumPy, Pygame을 내려받고 설치하기
  • 예제용 라이브러리를 내려받고 설치하기
  • IDLE 설정
  • 첫 프로그램 작성
  • 첫 프로그램 실행
  • 도서 예제 프로그램 내려받기(선택사항)
  • 도서 예제 데이터 내려받기(선택사항)
  • 예제용 라이브러리 소스 코드 내려받기(선택사항)
  • Q&A
  • D.4 리눅스에서 파이썬 프로그래밍 시작하기
  • 개요
  • 파이썬 3.7, Tkinter, NumPy, Pygame을 내려받고 설치하기
  • 예제용 라이브러리 내려받고 설치하기
  • IDLE 설정
  • 첫 프로그램 작성
  • 첫 프로그램 실행
  • 도서 예제 프로그램 내려받기(선택사항)
  • 도서 예제 데이터 내려받기(선택사항)
  • 예제용 라이브러리 소스 코드 내려받기(선택사항)
  • Q&A
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.