IT
HOME > 도서 > IT

C언어로 배우는 프로그래밍의 기초

  • 부제 : 반도체부터 컴퓨터까지
  • 저자 : 김화수, 조영권
  • 발행일 : 2018-08-17
  • 페이지 : 352쪽
  • ISBN : 978-89-8379-966-1
  • 판형 : 188mm*257mm
  • 정가 : 18,500원
  • 책 소개
  • 저자소개
  • 미리보기
  • 목차
  • 다운로드

컴퓨터와 프로그래밍이 무엇인지, 어떻게 구성되며 어떻게 동작하는지 근본적인 궁금증에 목마른 독자를 위한 책

 

이 책은 단순히 프로그래밍 언어의 문법을 설명하는 매뉴얼이 아니라 컴퓨터가 무엇인지, 프로그래밍이 어떤 것인지 알려 주는 책입니다.

 

컴퓨터를 구성하는 기본 부품인 논리 게이트, 반도체, 트랜지스터가 어떤 원리와 방식으로 구성되는지, C 언어를 비롯한 다른 프로그래밍 언어들이 컴퓨터에서 어떤 과정을 거쳐서 어떻게 처리되는지 등 프로그래밍의 원리와 개념이 궁금하다면 이 책을 추천합니다.

 

프로그램의 작동 방식을 설명하기 위해 Low-Level에 가까운 C 언어를 주로 사용하지만, JavaC# 등 다른 언어에서는 같은 내용을 어떻게 다루는지에 대한 설명도 잊지 않았습니다.

 

글로만 설명해서는 이해하기 힘든 내용들을 소스 코드와 함께 소스 코드가 실제 메모리에서 어떤 식으로 동작하는지 그림으로 설명하여 프로그래머에게 필수적인 메모리에 대한 이해를 돕습니다. 

저자 김화수 金花秀

서울대학교에서 컴퓨터공학을 전공했다. SMIT에서 2002 부산 아시안게임 국제 송출 CG프로그램을 개발했고, 네이버에 입사해 P2P 네트워크, 검색광고 시스템, 네이버 클라우드를 개발했다. 현재 SK텔레콤에서 클라우드 플랫폼(CLOUDBERRY) 개발을 담당하고 있다.

일반 서적과 웹에서는 쉽게 접할 수 없는 프로그래밍 정보를 제공하기 위해 성남현인의 프로그래밍 원리블로그를 운영하고 있으며, 저서로는 Fundamental C++ 프로그래밍 원리(혜지원, 2015)기본 개념과 핵심 원리로 배우는 C++프로그래밍(한빛아카데미, 2017)이 있다.

2015~2017 Microsoft Visual C++ MVP(Most Valuable Professional)이다.

 

저자 조영권 曺永權

고려대학교 전기전자전파공학부를 졸업했으며, 동 대학원 전자컴퓨터공학 박사 학위를 받았다. 졸업 후 삼성전자와 SK하이닉스에서 DDR3, DDR4, LPDDR4 관련 초고속 인터페

이스 회로 개발을 담당하였다.

중앙대학교 전자전기공학부 연구교수를 거쳐, 현재 제주반도체에서 IoT용 저전력, 초고속 인터페이스 회로 및 각종 아날로그 회로를 개발 중이다. 


 

추천사

머리말

목차

 

{ PART 01 컴퓨터 Computer }

 

Chapter 01 컴퓨터의 개요

1. 하드웨어

2. 소프트웨어

 

Chapter 02 컴퓨터의 역사

1. 기계식 계산기

2. 진공관을 이용한 1세대 컴퓨터

3. 트랜지스터를 이용한 2세대 컴퓨터

4. 집적회로를 이용한 3세대 컴퓨터

5. 4세대 컴퓨터

 

{ PART 02 디지털과 논리 회로 }

 

Chapter 01 컴퓨터의 정보 표현 방법

1. 아날로그 신호와 디지털 신호

2. 디지털과 아날로그의 장단점

 

Chapter 02 디지털 연산을 위한 논리 회로

1. 불 대수

2. 논리 게이트(Logic Gate)

 

Chapter 03 논리 회로 설계의 예

1. 기억할 수 있는 회로 래치(Latch)

2. 계산을 하는 회로 덧셈기

 

 

 

{ PART 03 컴퓨터와 반도체 }

 

Chapter 01 반도체

1. 실리콘으로 만들어지는 반도체

2. 트랜지스터

3. 트랜지스터로 게이트를

 

Chapter 02 반도체 공정

1. N형 불순물 반도체 공정 예

2. 인버터 제작 공정

3. 마이크로 프로세서

4. 메인 메모리

 

{ PART 04 프로그래밍 Programming }

 

Chapter 01 프로그래밍이란?

 

Chapter 02 프로그래밍 언어

1. 프로그램이란?

2. 기계어

3. 프로그래밍 언어

4. 어셈블리어

5. C 언어

 

Chapter 03 프로그래밍 실습 언어 C

1. C 언어를 알아야 하는 이유

 

Chapter 04 디지털 처리

1. 비트열(bits)

2. 바이트(Byte)

3. 디지털 처리 가능 여부

4. 디지털 처리의 한계

5. 프로그래밍 대상

 

{ PART 5 실습 환경 구축 }

 

Chapter 01 C 프로그래밍을 위한 도구

1. 코드 편집기

2. 컴파일러(Compiler)

3. 그 외의 도구

 

Chapter 02 통합 개발 환경(Integrated Development Environment)

 

Chapter 03 비주얼 스튜디오(Visual Studio)

1. Visual Studio Community 2017

 

Chapter 04 Visual Studio Community 2017 설치하기

1. 다운로드

2. 로그인 및 설정

3. 솔루션 및 프로젝트 만들기

 

{ PART 06 프로그래밍 기초 }

 

Chapter 01 언어의 기본 단위 토큰(Token)

1. 키워드(Keyword)

2. 식별자(Identifer)

3. 상수(Constant)

4. 문자(Character)

5. 문자열(String-literal)

6. 연산자(Operator)

7. 문장부호(Punctuator)

 

Chapter 02 표현식(Expression)과 명령문(Statment)

1. 표현식(Expression)

2. 명령문(Statement)

 

 

 

Chapter 03 소스(Source) 파일

1. 소스 파일의 종류

2. C 언어 파일 104

3. 소스 파일(*.c) 105

4. 헤더 파일(*.h) 108

 

Chapter 04 함수와 프로그램의 시작

1. 함수(Function)

2. 프로그램 시작 함수

 

Chapter 05 표준 입출력

1. 출력

2. 입력

3. 다른 언어의 표준 입출력

 

Chapter 06 주석(Comments)

 

{ PART 07 변수와 상수 }

 

Chapter 01 기억장치

1. 가상 메모리

2. 가상 메모리 주소

3. 프로그램의 실행 과정

4. 계산기 - C 프로그램

 

Chapter 02 변수

1. 변수명

2. 변수의 종류

3. 정적 타입 지정

4. 변수 사용

5. 동적 타입 지정

 

 

 

Chapter 03 상수

1. 상수의 표기

2. 정수 상수

3. 실수 상수

4. 변수의 상수화

 

{ PART 08 타입 Type }

 

Chapter 01 타입(Type)

1. 기본 타입

2. 집합 타입

3. 기능 타입

4. 사용자 정의 타입

 

Chapter 02 정수 타입

1. 부호 없는 정수(Unsinged Type)

2. 부호 있는 정수(Singed Type)

3. 2의 보수(2's Complement)

4. 정수 타입 크기

 

Chapter 03 부동소수점 타입

1. 고정소수점과 부동소수점

2. 부동소수점과 2진법

3. 부동소수점 구조

4. 부동소수점의 표현 한계

5. 부동소수점 사용 시 주의점

6. 부동소수점 부가 정보

 

Chapter 04 문자 타입

1. 기본 문자 타입 char

2. 유니코드

3. UTF - N(Unicode Transformation Format)

4. 확장 문자 타입 wchar_t

5. Escape Sequence

 

Chapter 05 문자열

1. 문자 배열

2. NULL 종료 문자열

3. 유니코드 문자열

 

{ PART 09 제어문 }

 

Chapter 01 제어문의 구조

 

Chapter 02 조건 분기문

1. if

2. if ~ else ~

3. if ~ else if~ [else~]

4. switch

 

Chapter 03 반복문

1. for

2. while

3. 그 외 반복문

4. 다중 반복

5. continue

 

{ PART 10 연산자 }

 

Chapter 01 연산자의 분류

1. 기능별 분류

2. 형태별 분류

 

Chapter 02 산술 연산자

1. 기본 할당 연산자(대입 연산자)

2. 나머지(Modular) 연산자

3. 증감 연산자

 

Chapter 03 비교 연산자

 

Chapter 04 논리 연산자

1. NOT(!)

2. AND(&&)

3. OR(||)

 

Chapter 05 비트 연산자

1. 반전 연산자(~)

2. 비트 곱(&), (|), (^) 연산자

3. 비트 이동 연산자 (<<, >>, >>>)

 

Chapter 06 복합 할당 연산자

 

Chapter 07 기타 연산자

1. 삼항 연산자

2. sizeof

3. 타입 변환 연산자

 

Chapter 08 연산자의 우선 순위

 

{ PART 11 함수 }

 

Chapter 01 함수 정의

 

Chapter 02 함수 선언

 

Chapter 03 함수 인자

1. 매개변수와 실인자(Parameter & Argument)

2. 값 전달(Call by Value)

3. 가변 인자 함수

 

 

 

Chapter 04 함수 호출

1. 스택 프레임

2. 재귀 호출

 

{ PART 12 배열 Array }

 

Chapter 01 배열 정의

 

Chapter 02 인덱스

 

Chapter 03 배열명

 

Chapter 04 배열 생성 및 초기화

1. C 언어 배열 초기화

2. C# 배열 초기화

3. 문자열 초기화

 

Chapter 05 다차원 배열

1. C 언어 2차원 배열

2. C# 2차원 배열

3. Java 2차원배열

 

Chapter 06 배열 인자

1. C 언어 배열 타입 인자

2. C#, Java 배열 타입 인자

 

Chapter 07 배열 요소의 개수

1. C 언어 배열 요소의 개수

2. C#, Java 배열 요소의 개수

 

Chapter 08 실습

 

 

 

{ PART 13 구조체 Struct }

 

Chapter 01 구조체 정의와 변수 정의

1. 태그 미사용 구조체 변수 정의

2. 태그 사용 구조체 변수 정의

3. typedef 구조체 변수 정의

 

Chapter 02 구조체 연산자

1. 대입 연산자

2. 사용 불가 연산자

3. 직접 멤버 연산자(.)

4. 간접 멤버 연산자(->)

 

Chapter 03 구조체 인자

1. 값 전달

 

Chapter 04 구조체 메모리 구조

1. 오프셋(Offset)과 패딩(Padding)

2. 구조체의 크기

 

Chapter 05 구조체와 배열

 

{ PART 14 포인터 Pointer }

 

Chapter 01 포인터(Pointer) 소개

1. 포인터를 배우는 이유

2. 포인터를 사용하는 이유

 

Chapter 02 포인터 정의

1. TYPE 변수를 가리키는TYPE* 포인터

2. TYPE1 변수를 가리키는 TYPE2* 포인터

 

 

 

Chapter 03 포인터 연산자

1. 참조 연산자(&)

2. 산술 연산자(+, -)

3. 증감 연산자(++, --)

4. 간접 연산자(*)

5. 간접 멤버 연산자(->)

6. 첨자 연산자([ ])

7. 범용 포인터

 

Chapter 04 void 포인터

1. void 포인터의 한계

 

Chapter 05 문자열 포인터

 

Chapter 06 포인터 인자

1. 주소 전달

 

Chapter 07 동적 메모리 할당과 해제

1. 스택의 한계

2. 힙 요구 사항

3. mallocfree

4. C#, Java의 힙 메모리

 

{ PART 15 알고리즘 Algorithm }

 

Chapter 01 알고리즘이란?

 

Chapter 02 최댓값 찾기

 

Chapter 03 정렬

 

Chapter 04 검색

 

Chapter 05 알고리즘의 이용