컨텐츠상세보기

혼자서도 쉽게 익힐 수 있는 자기주도 C언어 프로그래밍 (10판)
혼자서도 쉽게 익힐 수 있는 자기주도 C언어 프로그래밍 (10판)
  • 저자김동규
  • 출판사복두출판사
  • 출판일2022-06-03
  • 등록일2022-09-19
보유 1, 대출 0, 예약 0, 누적대출 0, 누적예약 0

책소개

개정 10판을 내면서



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





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





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



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





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





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





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





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





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





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





이 책은 어떤 책인가



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





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



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





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



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

목차

Chapter 01 출력



Chapter 03 연산자



Chapter 05 선택제어문



Chapter 07 반복제어문2



Chapter 09 배열1



Chapter 11 함수1



Chapter 13 함수3



Chapter 15 문자열2



Chapter 17 포인터