목차
저자서문 = ⅰ
역자서문 = ⅶ
1부 컴퓨터와 데이터 = 1
1장 서론 = 3
1.1. 블랙 박스로서의 컴퓨터 = 4
데이터 처리기 = 4
프로그램이 가능한 데이터 처리기 = 4
동일 프로그램, 다른 입력 = 5
동일 입력, 다른 프로그램 = 5
동일 입력, 동일 프로그램 = 5
1.2. 폰 노이만 모델 = 5
네 개의 하부 시스템 = 6
메모리 = 6
산술 논리 회로 = 7
제어 장치 = 7
입출력기 = 7
저장된 프로그램 개념 = 7
순차적인 명령어의 실행 = 7
1.3. 컴퓨터 하드웨어 = 7
1.4. 데이터 = 8
저장 데이터 = 8
데이터 조직 = 8
1.5. 컴퓨터 소프트웨어 = 8
프로그램은 저장되어야 함 = 9
일련의 명령어들 = 9
알고리즘 = 10
언어 = 10
소프트웨어 공학 = 10
운영 체제 = 10
1.6. 역사 = 10
기계적인 장치시대(1930년 이전) = 11
전자 컴퓨터의 탄생(1930∼1950) = 11
초기 전자 컴퓨터 = 11
폰 노이만 모델에 기초한 컴퓨터 = 12
컴퓨터 세대(1950∼현재) = 12
제1세대 = 12
제2세대 = 12
제3세대 = 12
제4세대 = 13
제5세대 = 13
1.7. 주요 용어 = 13
1.8. 요약 = 13
1.9. 실전 문제 = 14
2장 데이터 표현 = 17
2.1. 데이터 타입 = 18
2.2. 컴퓨터 내부의 데이터 = 18
비트 = 19
비트 패턴 = 19
바이트 = 19
2.3. 데이터 표현 = 20
텍스트 = 20
코드 = 21
숫자 = 22
이미지 = 23
비트맵 그래픽 = 23
벡터 그래픽 = 24
오디오 = 24
비디오 = 25
2.4. 16진 표기법 = 25
변환 = 26
2.5. 8진 표기법 = 27
변환 = 27
2.6. 주요 용어 = 28
2.7. 요약 = 29
2.8. 실전 문제 = 29
3장 수 표현 = 33
3.1. 10진법과 2진법 = 34
10진법 = 34
2진법 = 34
3.2. 변환 = 35
2진수 10진 변환 = 35
10진수 2진 변환 = 35
3.3. 정수 표현 = 36
부호 없는 정수형 = 37
표현 = 38
해석 = 39
오버플로 = 39
응용 = 39
부호와 크기 형식 = 39
표현 = 40
해석 = 41
응용 = 41
1의 보수 형식 = 41
표현 = 42
해석 = 43
오버플로 = 44
응용 = 44
2의 보수 형식 = 44
표현 = 44
해석 = 46
응용 = 46
정수 표현에 대한 요약 = 47
3.4. 초과법 = 47
표현 = 47
해석 = 48
3.5. 부동 소수점 표현 = 48
2진수 변환 = 48
정수 부분 = 48
분수 부분 = 48
정규화 = 49
부호, 지수, 그리고 가수 = 50
부호 = 50
지수 = 50
가수 = 50
IEEE 표준 = 50
단정도 표현 = 51
단정도 표현에 대한 부동 소수점 해석 = 52
3.6. 16진표기법 = 52
3.7. 주요 용어 = 53
3.8. 요약 = 53
3.9. 실전 문제 = 54
4장 비트 연산 = 61
4.1. 산술 연산 = 62
정수형 산술 연산 = 62
2의 보수 덧셈 = 62
오버플로 = 64
2의 보수 뺄셈 = 65
부동 소수점 산술 연산 = 65
덧셈과 ?셈 = 66
4.2. 논리 연산 = 67
진리표 = 67
단항 연산자 = 68
NOT 연산자 = 68
이진 연산자 = 69
AND 연산자 = 69
OR 연산자 = 70
XOR 연산자 = 71
응용 = 72
특정 비트 0으로 설정하기 = 72
특정 비트 1로 설정하기 = 74
특정 비트 반전하기 = 75
4.3. 시프트 연산 = 76
4.4. 주요 용어 = 77
4.5. 요약 = 77
4.6. 실전 문제 = 78
2부 컴퓨터 하드웨어 = 83
5장 컴퓨터 구조 = 85
5.1. 중앙 처리 장치 = 86
산술 논리 회로(ALU) = 86
산술 연산 = 86
논리 연산 = 86
레지스터 = 86
데이터 레지스터 = 86
명령어 레지스터 = 87
프로그램 카운터 = 87
제어 장치 = 87
5.2. 메인 메모리 = 87
주소 영역 = 87
비트 패턴으로 표현된 주소 = 88
메모리 형태 = 89
RAM = 89
ROM = 90
메모리 계층 = 90
캐시 메모리 = 91
5.3. 입력/출력 = 92
비저장 장치 = 92
키보드와 모니터 = 92
프린터 = 92
저장 장치 = 92
자기 저장 장치 = 92
광 저장 장치 = 94
5.4. 서브시스템 연결 = 99
CPU와 메모리 간의 연결 = 99
데이터 버스 = 100
주소 버스 = 100
제어 버스 = 100
연결 입출력 장치 = 100
제어기 = 100
주소 입출력 장치 = 102
독립형 입출력 = 103
메모리 맵에 의한 입출력 = 103
5.5. 프로그램 실행 = 103
머신 사이클 = 104
인출 = 104
디코드 = 105
실행 = 105
머신 사이클의 예 = 105
첫 번째 연산 = 106
두 번째 연산 = 106
세 번째 연산 = 106
네 번째 연산 = 106
입출력 동작 = 106
프로그램 입출력 = 107
인터럽트 구동 입출력 = 107
직접 메모리 접근 = 108
5.6. 두 개의 시스템 구조 = 109
CISC = 109
RISC = 110
5.7. 주요 용어 = 110
5.8. 요약 = 111
5.9. 실전 문제 = 112
6장 컴퓨터 네트워크 = 117
6.1. 근거리, 장거리 네트워크 = 118
모델과 프로토콜 = 118
6.2. OSI 모델 = 118
7계층 = 118
계층의 기능 = 120
물리 계층 = 120
데이터 링크 계층 = 120
네트워크 계층 = 120
전송 계층 = 120
세션 계층 = 121
표현 계층 = 121
응용 계층 = 121
6.3. 네트워크의 분류 = 121
근거리 통신망 = 121
도시권 통신망(MAN) = 122
광대역 통신망(WAN) = 123
6.4. 접속 장치 = 124
리피터 = 124
브리지 = 125
라우터 = 126
게이트웨이 = 127
OSI 모델과 접속 장치 = 128
6.5. 인터넷과 TCP/IP = 128
물리와 데이터 링크 계층 = 129
네트워크 계층 = 129
주소화 = 129
전송 계층 = 129
응용 계층 = 130
파일 전송 프로토콜(FTP) = 131
단순 메일 전송 프로토콜(SMTP) = 131
텔넷(TELNET) = 132
하이퍼텍스트 전송 프로토콜(HTTP) = 132
월드 와이드 웹(WWW) = 133
6.6. 주요 용어 = 135
6.7. 요약 = 136
6.8. 실전 문제 = 137
3부 컴퓨터 소프트웨어 = 143
7장 운영 체제 = 145
7.1. 정의 = 146
7.2. 발전 = 146
일괄처리 시스템 = 146
시분할 시스템 = 147
개인처리 시스템 = 147
병렬처리 시스템 = 147
분산처리 시스템 = 147
7.3. 구성요소 = 148
기억 장치 관리자 = 148
단일프로그래밍 = 148
다중프로그래밍 = 149
가상 메모리 = 152
프로세스 관리자 = 152
프로그램, 작업, 그리고 프로세스 = 152
상태도 = 153
스케줄러 = 154
대기 = 156
프로세스 동기화 = 156
장치 관리자 = 158
파일 관리자 = 160
사용자 인터페이스 = 160
7.4. 유명한 운영 체제들 = 161
윈도 2000 = 161
유닉스 = 161
리눅스 = 161
7.5. 주요 용어 = 162
7.6. 요약 = 162
7.7. 실전 문제 = 163
8장 알고리즘 = 169
8.1. 개념 = 170
비형식적인 정의 = 170
예제 = 170
입력 = 171
처리 = 171
출력 = 172
동작 정의 = 172
세련화 = 173
일반화 = 173
8.2. 세 가지 구조 = 174
순차 구조 = 175
결정 구조 = 175
반복 구조 = 175
8.3. 알고리즘 표현 = 175
순서도 = 175
의사코드 = 176
8.4. 형식적 정의 = 179
순서 집합 = 180
모호하지 않은 단계 = 180
결과 생성 = 180
일정한 시간 안에 종료 = 180
8.5. 서브알고리즘 = 180
구조도 = 182
8.6. 기본 알고리즘 = 182
Summation = 182
Product = 182
Largest와 Smallest = 183
정렬 = 183
선택 정렬 = 183
선택 정렬 알고리즘 = 184
버블 정렬 = 184
삽입 정렬 = 187
다른 정렬 알고리즘 = 188
탐색 = 189
순차 탐색 = 189
이진 탐색 = 189
8.7. 재귀 = 191
반복적 정의 = 191
재귀적 정의 = 192
반복적 해법 = 192
재귀적 해법 = 193
8.8. 주요 용어 = 193
8.9. 요약 = 194
8.10. 실전 문제 = 194
9장 프로그래밍 언어 = 169
9.1. 언어의 발전사 = 200
기계어 = 200
기호 언어 = 201
고급 언어 = 201
자연어 = 202
9.2. 프로그램 작성 = 202
프로그램 작성 및 편집 = 203
프로그램의 컴파일 = 203
프로그램의 링크 = 204
9.3. 프로그램 실행 = 204
9.4. 언어의 분류 = 204
절차적 언어(명령형 언어) = 205
FORTRAN = 206
COBOL = 206
Pascal = 206
C = 207
Ada = 207
객체 지향 언어 = 207
C++ = 208
자바 = 209
함수형 언어 = 209
LISP = 210
Scheme = 210
선언적(논리) 언어 = 211
Prolog = 211
특수 언어 = 212
HTML = 212
PERL = 214
SQL = 214
9.5. 절차적 언어 : C = 214
식별자 = 214
데이터 타입 = 215
정수 = 215
문자 = 215
실수 = 215
변수 = 215
변수 선언과 정의 = 216
변수 초기화 = 217
상수 = 217
문자열 상수 = 217
이름 상수 = 217
기호 상수 = 217
상수와 타입 = 217
입력과 출력 = 218
입력 = 218
출력 = 218
표현식 = 218
연산자 = 218
피연산자 = 220
문장 = 220
표현식 문장 = 220
복합 문장 = 220
함수 = 221
함수 선언 = 222
함수 정의 = 222
함수 호출 = 222
매개변수 전달 = 223
선택 구조 = 224
if-else = 224
switch = 224
반복 구조 = 224
while 루프 = 224
for 루프 = 225
do-while 루프 = 226
파생 데이터 타입 = 226
재귀 = 227
9.6. 주요 용어 = 227
9.7. 요약 = 228
9.8. 실전 문제 = 229
10장 소프트웨어 공학 = 223
10.1. 소프트웨어 생명 주기 = 234
분석 단계 = 235
사용자 정의 = 235
필요 정의 = 235
요구사항 정의 = 235
방법 정의 = 235
설계 단계 = 235
모듈화 = 235
도구 = 236
구현 단계 = 236
도구 = 236
코딩 = 236
테스트 단계 = 236
블랙 박스 테스트 = 236
화이트 박스 테스트 = 237
10.2. 개발 프로세스 모델 = 237
폭포수 모델 = 237
증분 모델 = 238
10.3. 모듈화 = 239
도구 = 239
결합도 = 239
데이터 결합도 = 239
스탬프 결합도 = 240
제어 결합도 = 240
전역 결합도 = 240
내용 결합도 = 240
응집도 = 241
기능 응집도 = 241
순차 응집도 = 241
교환 응집도 = 242
절차 응집도 = 242
시간 응집도 = 242
논리 응집도와 우연 응집도 = 242
10.4. 품질 = 242
품질 정의 = 243
품질 요소 = 243
운영성 = 243
유지보수성 = 245
가반성 = 246
품질관리 순환 = 246
10.5. 문서화 = 248
사용자 문서화 = 248
시스템 문서화 = 248
분석 단계에서의 문서화 = 248
설계 단계에서의 문서화 = 248
구현 단계에서의 문서화 = 248
테스트 단계에서의 문서화 = 249
지속적 과정으로서의 문서화 = 249
10.6. 주요 용어 = 249
10.7. 요약 = 250
10.8. 실전 문제 = 250
4부 데이터구성 = 255
11장 데이터 구조 = 257
11.1. 배열 = 258
배열 응용 = 260
빈도 배열 = 260
히스토그램 = 261
이차원 배열 = 262
메모리 레이아웃 = 262
11.2. 레코드 = 262
레코드 접근 = 264
필드에 대한 개별적인 접근 = 264
11.3. 연결 리스트 = 264
노드 = 265
연결 리스트의 포인터 = 265
연결 리스트의 동작 = 266
노드 삽입하기 = 266
노드 삭제하기 = 266
리스트 탐색 = 267
노드 탐색 = 267
리스트 운행 = 267
11.4. 주요 용어 = 268
11.5. 요약 = 268
11.6. 실전 문제 = 269
12장 추상 데이터 타입 = 273
12.1. 배경 = 274
정의 = 275
추상 데이터 타입에 대한 모델 = 275
추상 데이터 타입에 대한 연산 = 276
12.2. 선형 리스트 = 276
선형 리스트에 대한 연산 = 277
삽입 = 277
삭제 = 277
검색 = 277
운행 = 278
범용 리스트의 구현 = 279
선형 리스트의 응용 = 279
12.3. 스택 = 279
스택에 대한 연산 = 280
push = 280
pop = 280
empty = 281
스택의 구현 = 281
스택의 응용 = 281
데이터의 역순화 = 281
파싱 = 282
연기 = 282
백트래킹 = 282
12.4. 큐 = 282
큐의 연산 = 282
enqueue = 283
dequeue = 283
empty = 283
큐의 구현 = 284
큐의 응용 = 284
12.5. 트리 = 285
기본적인 트리 개념 = 285
용어 = 286
트리에 대한 연산 = 287
12.6. 이진 트리 = 287
속성 = 288
이진 트리 상에서의 연산 = 289
이진 트리 운행 = 289
너비 우선 운행 = 292
이진 트리의 구현 = 292
이진 트리의 응용 = 292
12.7. 그래프 = 293
용어 = 293
그래프 상의 연산 = 294
정점 추가하기 = 294
정점 삭제하기 = 295
간선 추가하기 = 295
간선 삭제하기 = 295
정점 찾기 = 296
그래프 운행 = 296
그래프의 구현 = 297
그래프의 응용 = 298
네트워크 = 298
최소 신장 트리 = 299
12.8. 주요 용어 = 299
12.9. 요약 = 300
12.10. 실전 문제 = 302
13장 파일 구조 = 309
13.1. 파일 접근 방법 = 310
순차 접근 = 310
임의 접근 = 310
13.2. 순차 접근 파일 = 310
순차 접근 파일 갱신하기 = 311
순차 파일 갱신에 관련된 파일들 = 311
프로세스 = 312
13.3. 인덱스 파일 = 313
역파일 = 315
13.4. 해시 파일 = 315
해싱 기법 = 315
직접 해싱 = 315
나눗셈 - 나머지 방식 = 316
수 추출 해싱 기법 = 317
다른 기법들 = 317
충돌 = 317
충돌 해결법 = 318
13.5. 텍스트와 이진 = 319
텍스트 파일 = 320
이진 파일 = 320
13.6. 주요 용어 = 321
13.7. 요약 = 321
13.8. 실전 문제 = 322
14장 데이터베이스 = 327
14.1 데이터베이스 관리 시스템 = 328
하드웨어 = 328
소프트웨어 = 328
데이터 = 328
사용자 = 328
프로시저 = 329
14.2. 데이터베이스 구조 = 329
내부 단계 = 329
개념 단계 = 330
외부 단계 = 330
14.3. 데이터베이스 모델 = 330
계층적 모델 = 330
네트워크 모델 = 330
관계형 모델 = 331
14.4. 관계형 모델 = 331
관계 = 332
14.5. 관계에 대한 연산 = 332
insert = 332
delete = 333
update = 333
select = 333
preject = 334
join = 334
union = 334
intersection = 335
difference = 336
14.6. SQL = 336
문장 = 337
insert = 337
delete = 337
update = 337
select = 338
project = 338
join = 338
union = 338
intersection = 339
difference = 339
SQL 문의 조합 = 340
14.7. 다른 데이터베이스 모델 = 340
분산 데이터베이스 = 340
분할 분산 데이터베이스 = 340
복제 분산 데이터베이스 = 340
객체 지향 데이터베이스 = 340
14.8. 주요 용어 = 341
14.9. 요약 = 341
14.10. 실전 문제 = 342
5부 진보된 주제 = 347
15장 데이터 압축 = 349
15.1. 무손실 압축 = 350
실행 길이 인코딩 = 350
허프만 코딩 = 351
인코딩 = 353
디코딩 = 354
Lempel Ziv 인코딩 = 354
압축 = 355
복원 = 357
15.2. 손실 압축 방법 = 358
이미지 압축 : JpEg = 358
이산 코사인 변환 = 359
양자화 = 361
압축 = 361
동영상 압축 : MPEG = 362
15.3. 주요 용어 = 364
15.4. 요약 = 364
15.5. 실전 문제 = 365
16장 보안 = 369
사적 기밀 = 370
인증 = 370
무결성 = 370
부인 방지 = 370
16.1. 사적 기밀 = 370
암호화/복호화 = 370
비밀키 암호화에 의한 사적 기밀 = 374
공개키 암호화에 의한 사적 기밀 = 374
16.2. 전자 서명 = 374
전체 문서 서명 = 375
다이제스트 서명 = 376
16.3. 주요 용어 = 378
16.4. 요약 = 378
16.5. 실전 문제 = 378
17장 계산 이론 = 381
17.1. SL 언어 = 382
증가문 = 382
감소문 = 382
루프문 = 382
SL 언어의 표현력 = 382
SL 언어의 매크로 = 382
입력과 출력 = 385
결론 = 385
17.2. 튜링 기계 = 385
튜링 기계 구성요소 = 385
테이프 = 385
읽기/쓰기 헤드 = 386
제어기 = 386
SL 언어의 구현 = 387
증가문 = 387
감소문 = 388
루프문 = 389
결론 = 390
17.3. 괴델 수 = 390
프로그램을 표현하기 = 392
수를 해석하기 = 392
17.4. 종료 문제 = 393
종료 문제는 풀 수 없다 = 393
증명 = 393
17.5. 풀 수 있는 문제와 풀 수 없는 문제 = 395
풀 수 없는 문제 = 395
풀 수 있는 문제 = 395
풀 수 있는 문제의 복잡도 = 396
17.6. 주요 용어 = 397
17.7. 요약 = 397
17.8. 실전 문제 = 398
부록 A : 아스키 코드 = 403
부록 B : 유니코드 = 407
알파벳 = 408
기호와 구두점 = 409
CJK 보조 언어 = 409
CJK 통일 표의 문자 = 409
대용 문자 = 410
사용자 정의 코드 = 410
나머지 문자와 기호 = 410
부록 C : 순서도 = 411
C.1 보조 기호 = 412
시작과 끝 = 412
흐름선 = 412
연결자 = 413
C.2 주요 기호 = 413
순차 구문 = 413
널 문장 = 414
할당문 = 414
입출력문 = 414
모듈 호출문 = 414
복합 문장 = 415
선택 구문 = 415
2방향 선택 = 415
다중 방향 선택 = 416
루프 구문 = 416
for 문 = 416
while 문 = 417
do-while 문 = 417
부록 D : 의사코드 = 419
D.1 구성 요소 = 420
알고리즘 머리부 = 420
목적, 조건, 그리고 반환 값 = 420
목적 = 420
전조건 = 420
후조건 = 420
반환 결과 = 421
문장 번호 = 421
문장 구조 = 421
순차 구문 = 421
선택 구문 = 421
루프 구문 = 422
부록 E : 구조도 = 423
E.1 구조도 기호 = 424
함수 기호 = 424
구조도의 선택 구조 = 425
구조도의 루프 구조 = 425
데이터 흐름 = 426
E.2 구조도 판독 = 426
E.3 구조도의 규칙 = 427
부록 F : 이산 코사인 변환 = 429
F.1 이산 코사인 변환 = 430
F.2 역이산 코사인 변환 = 430
부록 G : 약자 = 431
용어해설 = 433
찾아보기 = 455