책소개
수만 명의 학생들이 검증한 강의로 입문하자
캐나다 토론토 대학교와 코세라에서 Learn to Program을 통해 이미 수만 명의 학생과 독자가 이 책으로 학습했다. 직접 학생들을 가르치고, 학생들이 어려움이 무엇인지 이해하는 강사가 쓴 제대로 된 입문서로 학습하자.
스텝과 미스스텝으로 배우는 예제
프로그래밍 경험이 없어도 쉽게 시작할 수 있는 간단한 예제로 시작한다. 스텝을 밟으며 점진적으로 발전하는 예제와 미스스텝으로 발생하는 오류를 직접 해결하는 예제를 접하며 기초를 터득한다.
프로그래밍에 대한 체계적인 사고법 터득
실생활에서 접할 수 있는 문제를 컴퓨터 과학자는 어떻게 접근하는지 보여준다. 복잡한 문제를 간단한 문제로 분해하고, 각 문제를 해결하는 방법을 찾아내는 방법, 이러한 방법을 결합해 복잡한 문제를 해결하는 애플리케이션을 작성하는 방법을 학습한다.
[예제 코드]
https://github.com/gilbutITbook/007016
저자소개
ㆍ지은이 제니퍼 캠벨
저자소개
토론토 대학교 컴퓨터 과학과의 강의 전담 교수로 있으며 2014년에는 우수업적교수상을 받았다. 그는 거꾸로 학습이나 온라인 학습과 같은 다양한 강의 방식의 교육 효율 평가, 학습 성공 요인, 학생 체험 등을 연구하는 컴퓨터 과학 교육 연구를 하고 있다.
ㆍ지은이 폴 그라이즈
저자소개
토론토 대학교 컴퓨터 과학과에서 부교수로 15년 이상 학생들을 교육하고 있다. 토론토 대학에서 재직하는 동안 여러 차례 우수강의상을 받았다. 제니퍼 캠벨과 함께 두 권의 교재를 공동 집필했으며 컴퓨터 과학과의 교육 과정 설계와 개정 작업의 책임자로 있다. 또한, 무크(MOOC)에서 수만 명의 학생에게 파이썬을 가르치고 있다.
ㆍ지은이 제이슨 만토요
저자소개
19년 이상 경력을 쌓은 베테랑 소프트웨어 개발자로 소프트웨어 유지보수를 위해 문서화되지 않은 오래된 소프트웨어를 연구하는 응용 소프트웨어 고고학 분야의 전문가로 일하고 있다. 학생 개발자들이 오픈 소스 개발에 참여하는 구글 Summer of Code와 코딩과 데이터 과학이 필요한 연구자에게 코딩을 가르치는 Software Carpentry 프로그램에서 십여 명의 학생들의 멘토를 맡고 있다.
목차
0장 서문
__0.1 이 책의 구성
__0.2 참고 도서
__0.3 이 책의 내용
__0.4 온라인 자원
1장 프로그래밍이란?
__1.1 프로그램, 그리고 프로그래밍
__1.2 프로그래밍 언어란?
__1.3 버그란?
__1.4 대괄호, 중괄호, 괄호 간 차이
__1.5 파이썬 설치
__1.5.4 마이크로소프트 윈도에 설치하는 법
2장 안녕, 파이썬?
__2.1 컴퓨터는 어떻게 파이썬 프로그램을 실행할까요?
__2.2 표현식과 값: 파이썬 산술 연산
__2.3 타입이란 무엇일까요?
__2.4 변수와 컴퓨터 메모리: 값 저장
__2.5 파이썬은 오류를 어떻게 알려줄까요?
__2.6 여러 줄로 이뤄진 하나의 명령문
__2.7 코드 설명
__2.8 읽기 쉬운 코드 만들기
__2.9 2장에서 다룬 내용
__2.10 연습문제
3장 함수 디자인과 사용
__3.1 파이썬이 제공하는 함수
__3.2 메모리 주소: 파이썬은 값을 어떻게 관리할까?
__3.3 사용자 정의 함수
__3.4 임시 저장 공간으로 지역 변수 사용
__3.5 메모리 모델로 함수 호출 추적
__3.6 새로운 함수 디자인: 방법
__3.7 프로그램 작성과 실행
__3.8 return 문 생략: None
__3.9 코드가 다루지 않는 상황 처리
__3.10 3장에서 배운 내용
__3.11 연습문제
4장 텍스트 처리
__4.1 문자들로 문자열 생성
__4.2 문자열 내 특수 문자
__4.3 다행 문자열 생성
__4.4 정보 출력
__4.5 키보드로 정보 받기
__4.6 문자열 요약
__4.7 연습문제
5장 선택
__5.1 불 타입
__5.2 실행할 명령문 선택
__5.3 중첩 if 문
__5.4 불 표현식 평가 결과 저장
__5.5 5장에서 배운 내용
__5.6 연습문제
6장 모듈화 방식으로 프로그램 구성
__6.1 모듈 임포트
__6.2 사용자 정의 모듈
__6.3 반자동식 코드 테스트
__6.4 함수 그루핑 비법
__6.5 개념 정리
__6.6 연습문제
7장 메서드
__7.1 모듈과 클래스, 메서드
__7.2 객체 지향 방식으로 메서드 호출
__7.3 문자열 메서드
__7.4 밑줄의 쓰임새
__7.5 체계적인 복습
__7.6 연습문제
8장 리스트로 데이터 컬렉션 저장
__8.1 리스트 내 데이터 저장과 접근
__8.2 리스트의 타입 표기
__8.3 리스트 수정
__8.4 리스트 연산
__8.5 리스트 슬라이싱
__8.6 에일리어싱: 이름에 무엇이 들어있나요?
__8.7 리스트 메서드
__8.8 리스트들의 리스트 다루기
__8.9 요약 목록
__8.10 연습문제
9장 루프로 코드 반복
__9.1 리스트 내 항목 처리
__9.2 문자열 내 문자 처리
__9.3 수 범위 순회
__9.4 인덱스로 리스트 처리
__9.5 루프 안에 중첩된 루프
__9.6 조건에 도달할 때까지 순회
__9.7 사용자 입력에 따른 반복
__9.8 break와 continue로 루프 제어
__9.9 복습
__9.10 연습문제
10장 파일 읽기와 쓰기
__10.1 파일 종류에는 어떤 것이 있을까요?
__10.2 파일 열기
__10.3 파일을 읽는 방법
__10.4 인터넷상의 파일
__10.5 파일 쓰기
__10.6 StringIO로 예제 호출 작성
__10.7 파일 읽기 방법을 사용하는 알고리즘 작성
__10.8 다수 행 레코드
__10.9 미리보기
__10.10 내용 정리
__10.11 연습문제
11장 그 밖에 컬렉션 타입으로 데이터 저장
__11.1 세트로 데이터 저장
__11.2 튜플로 데이터 저장
__11.3 딕셔너리로 데이터 저장
__11.4 딕셔너리 도치
__11.5 튜플과 세트, 딕셔너리에 in 연산자 사용하기
__11.6 컬렉션 비교
__11.7 새로운 타입 표기 생성
__11.8 새로 알게 된 정보
__11.9 연습문제
12장 알고리즘 디자인
__12.1 가장 작은 두 값 찾기
__12.2 함수 시간 측정
__12.3 최소한 이 정도는 배웠죠
__12.4 연습문제
13장 검색과 정렬
__13.1 리스트 검색
__13.2 이진 검색
__13.3 정렬
__13.4 더 효율적인 정렬 알고리즘
__13.5 병합 정렬: 더 빠른 정렬 알고리즘
__13.6 13장에서 배운 내용
__13.7 연습문제
14장 객체 지향 프로그래밍
__14.1 문제 도메인 이해하기
__14.2 isinstance 함수, 클래스 객체, Book 클래스
__14.3 Book 클래스에 메서드 작성하기
__14.4 파이썬 문법과 연결: 또 다른 스페셜 메서드
__14.5 객체 지향 이론 맛보기
__14.6 사례 연구: 분자와 원자, PDB 파일
__14.7 14장에서 배운 내용
__14.8 연습문제
15장 테스트와 디버깅
__15.1 테스트가 필요한 이유
__15.2 사례 연구: above_freezing 테스트
__15.3 사례 연구: running_sum 테스트
__15.4 테스트 케이스 고르기
__15.5 버그 사냥
__15.6 귀띔한 내용
__15.7 연습문제
16장 그래픽 사용자 인터페이스 생성
__16.1 tkinter 모듈 사용하기
__16.2 기초 GUI 개발
__16.3 모델과 뷰, 컨트롤러, 이런!
__16.4 시각 스타일 맞춤화
__16.5 그 밖에 위젯 소개
__16.6 객체 지향 GUI
__16.7 지금까지 배운 개념으로 GUI를 도배하지 말자
__16.8 연습문제
17장 데이터베이스
__17.1 개요
__17.2 생성과 삽입
__17.3 데이터 추출
__17.4 업데이트와 삭제
__17.5 누락된 데이터에 NULL 사용하기
__17.6 조인으로 테이블 합치기
__17.7 키와 제약
__17.8 고급 기능
__17.9 배운 내용 정리
__17.10 연습문제