이미 소장하고 있다면 판매해 보세요.
|
PART Ⅰ 프로그래밍으로의 초대
CHAPTER 01 컴퓨터와 친하게 지내자 2 1.1 컴퓨터가 있는 생활 2 1.2 프로그래밍이란 무엇인가? 7 1.3 마음의 준비 12 CHAPTER 02 컴퓨터가 동작하는 원리 21 2.1 컴퓨터 완벽 해부 21 2.2 컴퓨터의 작업 방식 28 2.3 프로그램 완벽 해부 36 CHAPTER 03 프로그램을 한국어로 작성하자 44 3.1 프로그램이 만들어지는 과정 44 3.2 줄거리와 시나리오를 작성하기 위한 힌트 56 3.3 청소를 부탁해! 62 3.4 프로그램의 개념을 익히려면? 70 PART Ⅱ 프로그래밍의 기초 지식 CHAPTER 04 ‘1 + 1’ 프로그램 72 4.1 값을 넣는 상자 ― 변수 73 4.2 상자의 크기 ― 데이터 타입 77 4.3 상자 사용법 ― 초기화 86 4.4 상자에 값 넣기 ― 대입/대입 연산자 87 4.5 Q&A 90 CHAPTER 05 계산 실패의 정체 92 5.1 계산에 사용하는 기호 ― 산술 연산/산술 연산자 92 5.2 티끌모아 태산 ― 계산 오차 94 5.3 식을 작성하는 방법에 따라 답이 변한다 ― 우선순위 96 5.4 원인은 보관 용기에 있다? ― 데이터 타입 101 5.5 답을 알 수 없는 나눗셈 ― 0으로 나누기 104 5.6 Q&A 105 CHAPTER 06 프로그램의 흐름을 만들기 108 6.1 흐름의 방식은 세 종류 ― 제어 구조 108 6.2 ‘만약’인 경우의 프로그램 ― 조건 판단 구조 114 6.3 동일한 것의 반복 ― 반복 구조 122 6.4 흐름을 바꾸는 계기 ― 비교 연산/비교 연산자 132 6.5 함께 비교하기 ― 논리 연산/논리 연산자 137 6.6 Q&A 142 CHAPTER 07 데이터의 보관 용기 145 7.1 같은 종류의 상자를 나열해서 사용 ― 배열 145 7.2 상자를 가로와 세로로 나열하여 사용하기 ― 2차원 배열 155 7.3 관련 정보를 모아서 취급하기 ― 구조체/레코드 164 7.4 메모리의 번지를 이용하기 ― 포인터/주소 169 7.5 값에 이름을 붙여서 사용하기 ― 상수 177 7.6 중요한 데이터를 넣는 장소 ― 파일 180 7.7 Q&A 184 CHAPTER 08 프로그램을 부품화하기 186 8.1 부품이 된 프로그램 ― 함수 186 8.2 정보 전달 ― 인수 197 8.3 결과 수령 ― 반환값/리턴값 204 8.4 정보를 공유하는 방법 ― 지역 변수/전역 변수 206 8.5 Q&A 209 PART Ⅲ 다음 단계로 CHAPTER 09 무엇을 만들지 생각해보자 212 9.1 콘솔 애플리케이션과 윈도우 애플리케이션 212 9.2 프로그램이 움직이는 계기 214 9.3 프로그램을 만드는 방법 218 9.4 웹 프로그램 221 CHAPTER 10 도구를 준비하자 232 10.1 프로그래밍 언어의 종류 232 10.2 여러 가지 프로그래밍 언어 236 10.3 C 프로그래밍에 필요한 도구 249 10.4 객체 지향 프로그래밍 253 CHAPTER 11 한 발 앞으로 나아가자 262 11.1 프로그램이 생각대로 동작하지 않을 때 262 11.2 프로그래머의 마음가짐 267 찾아보기 272 |
|
왜 프로그래밍을 학습해야 하는가?
김상근 (dk1022@yes24.com)
2016.05.25.
그야말로 코딩교육 열풍이다.
정부가 2018년부터 초중고 교과과정에 소프트웨어교육을 의무화 한다는 발표 이후, 강남의 학원가에서 코딩교육을 받으려는 초등학생들로 문전성시를 이루고 있고, 한달 수강료가 200만원에 달하는 '코딩유치원'이 문을 여는 등 코딩 선행학습 열풍과 관련된 뉴스가 심심치 않게 들린다. 또한 교육부의 프라임 사업 시행 등을 통해 정보통신기술, 소프트웨어, 빅데이터 등 공학계열 학과를 신설하고 학과 정원을 늘리는 등 프로그래밍 관련 학과가 미래 유망산업으로 점차 인식되는 모양새이다. 그런데 정작 왜 프로그래밍을 배워야 하는지, 프로그래밍을 배우고자 하는 목표는 무엇지에 대한 고민은 과연 얼마나 많은 사람들이 하고 있는지 궁금하다. 정부의 정책에 의해, 또는 사회 분위기에 편승해 맹목적으로 배워보고 접해보고자 하는 사람들이 대다수가 아닐까 싶다. 이 책은 서두에도 나와 있듯이 단순히 프로그래밍 언어의 기초를 알려주는 해설서가 아니다. 인식하지 못하는 순간에도 일상 생활 속에 늘 '컴퓨터'를 사용하고 있었다는 점, 프로그래밍에 대한 개념, 프로그래밍을 배울 때 가져야 할 마음가짐 등 이전 입문서에서는 찾아보기 힘들었던 부분부터 다루고 있다. 마치 천천히 가도 좋으니 옳은 길로 가라고 일러주듯 프로그래밍을 처음 시작하려는 사람들이 가장 쉽고 명쾌하게 배울 수 있는 입문서가 아닌가 싶다. 왜 프로그래밍을 배워야 하는지, 프로그래밍을 하는 목표는 무엇인지 진지하게 고민해보고, 천천히 이 책을 읽어보면 좋겠다. 그래서 이 책을 통해 더 어려운 프로그래밍을 배워나갈 수 있는 양질의 토대를 만들었으면 한다. |
|
컴퓨터는 사용 목적이나 처리 능력에 따라 여러 가지 종류로 나눌 수 있다. 우선, 가전 제품이나 자동 판매기에 포함되어 있는 보이지 않는 컴퓨터의 경우, 마이크로 프로세서나 마이크로 컴퓨터(MCU)라는 아주 작은 부품으로 정해진 일만을 하도록 프로그램된 컴퓨터다. 예를 들어 냉장고에 내장된 마이크로 컴퓨터는 본체 내부의 온도를 지속적으로 모니터링하여 일정한 온도를 유지하도록 프로그램되어 있으며, 전기밥솥에 내장된 마이크로 컴퓨터는 쌀과 물 양에 따라 밥솥 내의 온도와 압력을 제어하여 맛있는 밥을 지을 수 있도록 프로그램되어 있다. 그러므로 일반적인 컴퓨터와 같이 여러 가지 일을 해낼 수 있는 것은 아니다. _8p
컴퓨터를 사용하여 어떤 작업을 하려면 이를 위한 프로그램이 필요하다. 예를 들어, 컴퓨터를 워드프로세서로 사용하려면 워드프로세서용 프로그램이 필요하고, DVD를 보려면 영상 재생용 프로그램이 필요하다. 대부분의 컴퓨터는 구입한 그날부터 사용할 수 있도록 다양한 프로그램이 포함되어 있다. 하지만 그 이외의 작업, 예를 들어 프로그램을 쾌적하게 개발하기 위한 환경이 필요하면, 그를 위한 프로그램을 컴퓨터에 직접 설치해야 한다. 이 작업을 설치(Install)라고 부른다. _27p 수많은 작은 상자가 일렬로 늘어선 상태를 상상해보자. 각 상자에는 위치를 나타내기 위한 번지가 부여되어 있다(그림 4-2). 컴퓨터가 뭔가 작업을 할 때 사용하는 메모리는 대체로 이런 모습을 하고 있으며, 그 상자에 어떤 값을 넣을 것인지, 그 값을 어떻게 이용할 것인지를 지시하는 것은 프로그램을 작성하는 우리의 일이다. 예를 들 어 다음과 같이 명령하면, 컴퓨터는 철수와 영희가 가지고 있는 사탕의 수를 제대로 계산해준다. _73p ‘만약 내일의 날씨가 맑다면 소풍을 나가고, 비가 온다면 집에서 느긋이 보낸다’와 같이 일상생활에서도 ‘만약’이라는 말은 자주 이용한다. 마찬가지로 ‘만약 입력된 패스워드가 맞다면, 인터넷에 연결한다. 맞지 않다면, 패스워드의 재입력을 촉구한다’ 등, 컴퓨터에서도 그때의 상황에 따라 다른 처리를 시키고 싶은 경우가 있다. 이렇게 처리의 흐름을 분기하는 구조를 조건 판단 구조라고 부른다. _114p 변수에 들어가는 데이터는 하나뿐이다. 배열도 한 종류의 데이터만 넣을 수 있다. 하지만 구조체에는 여러 종류의 데이터를 넣을 수 있다. 구조체를 어떤 멤버로 구성할지, 그리고 그 멤버에는 어떤 종류의 데이터를 넣을지는 프로그램을 만드는 사람이 자유롭게 결정할 수 있다. 그 때문에 구조체를 사용자 정의형이라고 부르는 프로그래밍 언어도 있다. _168p 우리가 무심코 보고 있는 웹 페이지는 크게 두 가지로 나눌 수 있다. 하나는 정적인 웹 페이지로, 클라이언트에서 URL을 받았을 때, 웹 서버에 등록되어 있는 내용을 그대로 반환하는 타입이다(그림 9-9). 미리 정해진 내용을 반환하는 것뿐이므로 통신에 걸리는 부하는 줄일 수 있지만, 예를 들어 쇼핑 사이트와 같이 사용자가 입력한 단어에 해당하는 제품 목록을 보거나 장바구니의 내용을 업데이트할 수는 없다. ---p.223 |