장바구니 담기 close

장바구니에 상품을 담았습니다.

자기주도 C언어 프로그래밍

자기주도 C언어 프로그래밍

  • 김동규
  • |
  • 복두출판사
  • |
  • 2019-07-01 출간
  • |
  • 406페이지
  • |
  • 188 X 257 X 20 mm /835g
  • |
  • ISBN 9791159065422
판매가

18,000원

즉시할인가

17,820

카드할인

0원(즉시할인 0%)

적립금

180원 적립(1%적립)

배송비

2,500원

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
17,820

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

 

책소개

 

 

 

 

 

 

 

 

 

개정 8판을 내면서

2010년 처음으로 이 책을 출간하면서 과연 이런 형태의 프로그래밍서가 얼마나 긍정적인 반응을 보일 수 있을지 무척 걱정스러웠지만 어느 덧 개정 8판을 내게 되니 참으로 감회가 새롭다. 영국을 비롯한 주요 선진국에서 일찌감치 프로그래밍 코딩 교육이 주요과목으로 자리 잡은 마당에 늦긴 했지만 우리나라도 2018년 교육과정부터 소프트웨어가 정규 과목으로 교육이 진행되고 있는 시점이라 더욱 그렇다. 

 

필자가 처음으로 C언어에 대한 교육을 시작하게 된 것은 정보올림피아드에 도전하는 학생들을 지도하기 위해서였다. 당시 초등학생과 중학생 몇 명을 대상으로 프로그래밍 수업을 하기 위한 교재를 선정하기 위해 대형서점에 들러서 그곳에 있는 C언어 책을 하루 종일 분석했던 것 같다. 아쉽게도 초·중학생이 쉽게 이해할 수 있도록 구성된 책은 찾지 못했고 그나마 좀 쉬워 보이는 책을 구해서 교재로 사용하였다.

 

그런데 책에서 주어진 순서대로 학습을 하면서 진도를 나가다가 간혹 이해도를 점검하기 위해 학생들에게 간단한 문제를 한 번씩 제시해 주면 예상과 달리 쉽게 해결하지 못하고 힘겨워 하는 모습을 보면서 역시 초·중학생들에게 프로그래밍을 지도하는 일은 쉬운게 아니라는 생각을 하게 되었다. 

 

그러면서 여러 가지 방법을 시도한 끝에 결국은 교재의 진도를 맞추어 단체로 수업하는 방식을 포기하기로 했다. 그리고 교재의 의존도를 낮추고 각 단원마다 다양한 문제들을 제시하여 그것을 완벽하게 작성해야만 다음 단원으로 넘어가도록 하는 자기주도 수업 방식으로 전환하였다. 또한 프로그램 작성을 위해서 꼭 필요하지 않은 복잡한 문법들은 과감하게 생략하고 쉽고 편하게 사용할 수 있는 방법을 중심으로 익혀 나가도록 했다.

 

그랬더니 진도는 조금씩 늦어지긴 했지만 일단 한번 넘어간 단원의 내용들은 완전하게 활용하여 주어진 과제를 해결해 나가는 것은 물론, 프로그램이 어렵다던 학생들이 이제는 거리낌 없이 프로그램이 재미있다고 말하게 되었다. 그 해에 이 학생들 전원이 정보올림피아드 본선에서 입상을 하였고 일부는 전국대회까지 진출하여 입상하는 등 예상 밖의 성과를 내면서 자신감을 갖게 되었다.

 

이듬해부터는 학생들이 보다 쉽게 학습을 익힐 수 있도록 전체적인 내용을 새롭게 구성하여 독자적인 커리큘럼에 의한 프린트 물을 만들어 나갔다. 어느 정도 데이터가 축적이 되자 체계적인 관리의 필요성을 느끼게 되어 그 자료들을 온라인으로 탑재하여 관리를 시작하였다. 이렇게 하니 교육내용의 관리는 잘 되는데 형성평가 문제를 여전히 수동으로 채점하는 것이 마음에 걸렸다. 시간이 오래 걸리는 것은 둘째로 하고 소스의 무결성을 완전하게 검증하는 것이 쉽지가 않았다. 생각 끝에 정보올림피아드에서 채점하는 방식의 온라인 자동채점 시스템을 개발하기에 이르렀고 내친김에 학습관리 시스템까지 개발하여 탑재하고 나니 완전한 C언어 프로그래밍 학습시스템이 탄생하였다.

 

그 후 수년에 걸쳐 실제 수업을 진행하면서 보다 효과적인 방법을 찾아 커리큘럼과 문제들을 바꾸어 나가다 보니 최적의 상태로 체계가 갖추어지고 다른 어떤 교재나 시스템에서도 찾아볼 수 없는 명실상부한 최적의 학습도구로 정착이 되었다.

 

새로움에 도전하려는 초등학생부터 프로그램 작성을 두려워하는 대학생에 이르기까지 C언어를 제대로 익히고자 하는 모든 이들에게 이 시스템은 확실한 학습 성과를 보여주었고, IOI(국제 정보올림피아드), KOI(한국 정보올림피아드) 등에서 수많은 입상실적을 통해 이를 확실하게 입증하였다.

 

그러한 성과를 바탕으로 이러한 자기주도 프로그램을 교재로 발간하고 동영상 강의와 온라인 채점시스템을 결합하면 더 많은 학생들이 어려움에서 벗어나 손쉽게 프로그램에 접할 수 있게 되지 않을까 생각하기에 이르러 지난 2010년에 초판을 발행하였고 어느덧 개정 8판을 내기에 이르렀다.

 

그동안 이 책을 사랑해 주시고 성원을 보내주신 많은 분들게 진심으로 감사드리고, 프로그래밍에 도전하는 모든 분들에게 부디 말문이 확 트이는 실전 프로그래밍 실습서로서 좋은 길잡이가 되었으면 하는 바람이다.

 

이 책은 어떤 책인가?

이 책은 C언어의 다양한 문법을 속속들이 파헤치는 문법서가 아니라 누구나 쉽게 프로그램을 작성할 수 있도록 이끌어주기 위한 실습서이다. 우리나라 학생들이 10년 이상 영어를 배우고도 막상 외국인과 의사소통이 안 되는 것과 마찬가지로, C언어 역시 어려운 문법책을 독파하고도 막상 간단한 문법만 알아도 처리할 수 있는 프로그램조차 제대로 작성하지 못하는 학생들이 의외로 많은게 현실이다. 이 책은 이러한 학생들에게 복잡한 문법에 매달리지 말고 그냥 순서대로 따라 하면서 간단한 과제만 수행해 나가다 보면 자신도 모르는 사이에 프로그래밍 작성의 고수가 되어 있는 자신의 모습을 확인할 수 있기를 바라는 마음으로 쓰인 책이다.

 

이 책은 누구를 위한 것인가?

이 책은 C언어를 처음 배우는 초보자를 위해 쓰였다. 물론 이미 C언어를 어느 정도 익히긴 했지만 아직도 프로그램을 작성하라는 과제만 주어지면 겁부터 먹는 많은 학생들에게도 이 책은 매우 유용할 것이다. 정보올림피아드나 정보영재 등에 도전하려는 초·중·고등학생들에게도 이 책은 입문서로서 매우 훌륭한 길잡이가 될 것이다.

 

이 책에서 다루는 버전은 어떻게 바뀌었나?

이 책의 모든 소스는 C언어 표준 및 C++ 표준에 맞추어 작성되었다. 따라서 초판에서 마이크로소프트의 “Visual studio”에서만 지원이 되었던 일부 함수나 문법 등은 개정판부터 제외되었다. IDE는 기본적으로 윈도우에서는 “Visual Studio 2019”, 리눅스(우분투)에서는 “code::blocks 17.12”을 기준으로 설명이 되었고, 각각에서 모든 소스를 실행해 보아 무결성을 확인한 만큼 어떤 에디터나 컴파일러에서도 호환이 가능하도록 하였다. 한편 이 책은 기본적으로 C언어의 문법을 기준으로 작성되었다(예 : scanf, printf, cin, cout). C++의 문법을 알면 보다 간단하게 처리할 수 있는 부분이 있기는 하지만 기본적인 프로그램의 원형을 알아두는 것이 향후 다양한 응용에 도움이 될 것으로 생각했기 때문이다. 하지만 굳이 C언어의 문법을 알 필요 없이 C++의 문법만으로도 충분하다고 생각되는 부분은 과감하게 그것을 도입하였다. (예 :malloc,new) 물론 이런 경우에도 C언어로 사용하는 문법과 방법을 제시하였다.

 

이 책의 구성 및 활용법

 이 책은 각 단원마다 따라하면서 쉽게 익힐 수 있는 기본학습과 온라인을 통한 동영상강의, 각 단원마다 마무리 평가를 위한 형성평가 등 3단계 학습을 통해 학습자 스스로가 자기 주도적으로 프로그램을 익혀나갈 수 있도록 구성되어 있다.

 

기본학습

 각 단원마다 8개 내외의 과제를 해결해 나가는 형식으로 구성되었다. 각 과제를 해결해 나가는 과정은 다음과 같다.

 

1. 과제제시

- 해결해야 하는 과제가 문제 형식으로 주어지고 입력과 출력의 예가 제시된다.

- 기존에 자신이 알던 방법으로 이 과제를 해결하기 위해 무엇이 부족한지를 생각해보아야 한다.

- 새로 익히게 될 문법이나 형식에 대하여 호기심과 동기를 유발하고자 함이다.

 

2. 소스

- 위 과제를 해결하기 위한 소스 파일을 제시한다.

- 전체적인 내용을 보면서 자신이 모르는 생소한 부분을 찾아서 그 내용이 자신이 위에서 생각했던 것과 

 연관지어 어떤 역할을 하는지를 개략적으로 유추하게 한다.

 

3. 설명

- 위 소스에서 새로운 문법이나 형식에 대하여 자세한 풀이를 한다.

- 위에서 이미 생소한 부분에 대하여 일차적으로 생각을 했다면 그냥 문법을 제시하고 설명하는 것보다 훨씬 강하게 의미가 전달될 수 있다.

- 과제를 해결하기 위해서 새로운 문법의 도입 필요성을 인식하고 구체적으로 활용사례를 익힘으로써, 문법을 먼저 이해하고 예제에 적용하는 방법보다 훨씬 효과적으로 새로운 내용을 익히게 될 것이다.

 

4. 자가진단

 위 과제와 거의 유사한 문제를 제시하여 반복학습과 약간의 응용을 통해 새로운 문법이나 형식을 확실하게 적용할 수 있도록 한다.

 

기타 필요할 경우 “따라하기”와 “Tip”등을 두어 보충설명을 하였다.

 

형성평가

 모든 과제에 대한 학습이 완료되면 단원을 마무리하기 위해 5~10개의 형성평가 문제가 제시된다. 

 

동영상강의

 각 단원의 전반적인 중요 학습내용을 언제 어디서든 온라인을 통하여 저자직강 동영상 강의로 수강할 수 있다.

 

자가진단, 형성평가 등 이 책에서 주어지는 모든 문제는 온라인상에서 채점을 받을 수 있도록 되어 있다. 채점 시에는 대소문자 구분이나 띄어쓰기 등의 사소한 실수도 용납되지 않는다. 

또한 문제에서 제시된 예제가 완벽하게 실행이 되어도 여러 가지 예제를 바꾸어서 입력했을 때 항상 정확한 결과가 나오지 않는다면 결코 100점을 받을 수 없다. 

채점을 받을 때마다 그 결과가 항상 기록이 되므로 자신 혹은 선생님이 늘 학습을 관리할 수 있다. 그러므로 각 단원에서 주어진 모든 문제를 완벽하게 맞히지 않고 다음 단원으로 넘어가서는 안된다. 

이 책으로 공부하여 프로그래밍의 고수가 되는 열쇠는 바로 이 채점프로그램을 통해 스스로 프로그램 작성능력을 확실하게 키워나가는 데에 있다.

 

동영상 강의 수강 방법과 온라인 채점 방법은 마지막장(404~405페이지)에 자세하게 설명되어 있다. 

 

C언어란?

 

언어라는 것은 의사소통을 위한 도구이다.

한국어, 영어, 중국어, 일본어와 같이 사람끼리 대화하기 위한 언어가 있는 반면 사람과 컴퓨터가 대화하기 위한 언어가 있는데 이것을 프로그래밍 언어라고 한다.

C언어 역시 이러한 프로그래밍 언어의 하나이다.

 

이 책은 프로그램 실습서로서 따분할지도 모르는 이론적인 부분은 가능한 생략하려 했지만 최소한 내가 배우려는 것이 무엇인지는 기본적으로 알고 시작하는 것이 예의일 것 같아 간단하게 C언어에 대한 소개를 하려고 한다. 하지만 이 단원에서 무슨 뜻인지 이해되지 않는 부분이 있다 하더라도 크게 개의치 말고 가벼운 마음으로 ‘아, 대충 그런 거구나’하고 넘어가기 바란다.

 

C언어는 사람이 알아보기 쉽도록 서로 약속된 명령어 또는 함수의 집합이라고 생각하면 된다. 이 명령어들을 조합하여 작성된 프로그램을 원시파일 또는 소스파일이라고 한다.

그런데, 컴퓨터는 0과 1의 조합으로 이루어진 이진코드만을 이해할 수 있기 때문에 C언어로 작성된 소스파일을 이해할 수 없다. (참고로 컴퓨터가 이해할 수 있도록 이진코드로 작성된 프로그램을 기계어라고 한다.)따라서 C언어로 작성된 소스파일을 컴퓨터가 이해할 수 있도록 하려면 기계어로 번역을 해 주어야 하는데 이러한 역할을 하는 것을 “컴파일러”라고 하고 이러한 작업을 “컴파일 한다.”라고 한다.

 

C언어는 1972년 UNIX 운영체제를 만들 목적으로 벨(Bell) 연구소의 데니스리치(Dennis Ritchie)에 의해 개발되었다. 수많은 프로그래밍 언어들이 새로 만들어지고 사라지기도 하면서 오늘에 이르렀지만 유독 C언어는 탄생된 지 40년이 넘도록 변함없이 사랑받으며 지금도 프로그래밍에 입문하는 모든 학생들이 배워야 하는 필수과목으로 자리매김하고 있는 것을 보면 아마도 C언어가 갖는 특별함이 있기 때문일 것이다.

 

그렇다면 그러한 특별함이 무엇인지 C언어의 특징을 간략하게 살펴보자.

 

① 이식성 

C언어로 작성된 프로그램은 어떤 기종의 컴퓨터에서도 정상적으로 컴파일 되고 실행될 수 있다.

 

② 다양성

C언어는 과학 계산은 물론, OA(사무자동화), GUI(Graphics User Interface), 시스템 프로그램(system program), 응용 프로그램(application program) 등과 같이 컴퓨터의 모든 분야에서 사용할 수 있도록 설계된 효율적인 프로그램 언어이다. 

 

③ 유연성

C언어는 함수를 사용해서 프로그램을 기능별로 분할하여 구조적인 프로그램을 작성할 수 있으며 모듈화가 가능하다.

 

④ 기타

 코드가 간결하고 다른 프로그램 언어와 함께 혼합되어 사용될 수 있어 확장성이 높다.

 

한편 프로그램을 작성하기 위해서는 에디터가 있어야 하는데 소스를 입력하고 편리하게 컴파일 및 실행을 해볼 수 있도록 제작된 툴(IDE)을 사용하는 것이 편리하다. 

 

참고로 한국정보올림피아드 대회에서는 2012년까지 마이크로소프트의 “Visual C/C++컴파일러”를 공식 언어로 채택하여 주로 “Visual studio 6.0”으로 프로그램을 작성하였으나 2013년부터는 리눅스(우분투)의 “GCC/C++ 컴파일러”를 채택함으로써 “Code::Blocks” 또는 “Eclips”를 사용하여 프로그램을 작성하도록 하고 있다.

따라서 가능하다면 정보올림피아드에서 주로 사용되고 있는 “Code::Blocks”를 설치하여 사용할 것을 추천하며 “Visual C++”와 “Code::Blocks”의 설치방법은 이 책의 공식 채점사이트인 정올(www.jungol.co.kr)사이트에 자세하게 소개되어 있다.

목차


- Chapter 1 출력
- Chapter 2 입력
- Chapter 3 연산자
- Chapter 4 주석문과 디버깅
- Chapter 5 선택제어문
- Chapter 6 반복제어문1
- Chapter 7 반복제어문2
- Chapter 8 반복제어문3
- Chapter 9 배열1
- Chapter 10 배열2
- Chapter 11 함수1
- Chapter 12 함수2
- Chapter 13 함수3
- Chapter 14 문자열1
- Chapter 15 문자열2
- Chapter 16 구조체
- Chapter 17 포인터
- Chapter 18 파일입출력
- 부록

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.