· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
HTDP

How to Design Programs

ÇÁ·Î±×·¥À» Â¥´Â ¹ý

Preface

¾Õ¿¡¼­

It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? -- Alan Perlis, Epigrams in Programming Áö±Ýó·³ ¾ÆÀ̵鿡°Ô ÇÁ·Î±×·¥À» °¡¸£Ä¡´Â ±³À°¹æ½ÄÀº ¸¾¿¡ µéÁö ¾Ê´Â´Ù. °èȹÀ» ¼¼¿ì°í, »ý°¢À» Á¤¸®ÇÏ´Â ¿øÄ¢À» ¹è¿ì°í, ÀÛÀº ÀÏ¿¡ ÁÖÀǸ¦ ±â¿ï¿©¾ßÇÏ°í, ÀÚ±âºñÆÇÀûÀÎ ÇнÀ¿¡ ¹«½¼ Àç¹Ì°¡ ÀÖÀ»±î? -- ¾Ù·± ÆÛ¸®½º, ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ °æ±¸

Many professions require some form of computer programming. Accountants program spreadsheets and word processors; photographers program photo editors; musicians program synthesizers; and professional programmers instruct plain computers. Programming has become a required skill. Àü¹®Á÷ Á¾»çÀÚÀÇ ´ëºÎºÐÀº ƯÁ¤ÇÑ ÇüÅÂÀÇ ÄÄÇ»ÅÍ ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÏ´Ù. ȸ°è»ç´Â ½ºÇÁ·¹µå½ÃÆ®¿Í ¿öµåÇÁ·Î¼¼¼­°¡ ÇÊ¿äÇÏ°í, »çÁøÀÛ°¡´Â »çÁø ÆíÁý±â°¡ ÇÊ¿äÇϸç, À½¾Ç°¡´Â ½Åµð»çÀÌÀú°¡ ÇÊ¿äÇÏ°í, Àü¹® ÇÁ·Î±×·¡¸Ó´Â ½±°Ô ÄÄÇ»ÅÍ¿Í ´ëÈ­ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÏ´Ù. ÇÁ·Î±×·¥À» Â¥´Â ±â¼úÀº Á¡Á¡ Áß¿äÇØÁö°í ÀÖ´Ù.

Yet programming is more than just a vocational skill. Indeed, good programming is a fun activity, a creative outlet, and a way to express abstract ideas in a tangible form. And designing programs teaches a variety of skills that are important in all kinds of professions: critical reading, analytical thinking, creative synthesis, and attention to detail. ±×·¡µµ ¾ÆÁ÷±îÁö´Â ÇÁ·Î±×·¡¹ÖÀº ¾÷¹«¸¦ À§ÇÑ ±â¼úÀÌ´Ù. »ç½Ç ÁÁÀº ÇÁ·Î±×·¡¹ÖÀº »ó´çÈ÷ Àç¹Õ°í, âÀǼºÀ» Ç¥ÇöÇÏ´Â ¼ö´ÜÀ̸ç, ½ÇÁúÀûÀÎ ¸ð¾çÀ¸·Î ¸Ó¸®¼Ó¿¡ ÀÖ´Â »ý°¢À» Ç¥ÇöÇÏ´Â ¹æ¹ýÀÌ´Ù. ¶ÇÇÑ, ¸ðµç Àü¹®Á÷¿¡¼­ Áß¿äÇÏ°Ô ¿©±â´Â ´Ù¾çÇÑ ±â¼úÀ», ÇÁ·Î±×·¥À» ¸¸µé¸é¼­ ¹è¿ï ¼ö ÀÖ´Ù. ¿äÁ¡À» ÆľÇÇÏ°í, ºÐ¼®ÀûÀ¸·Î »ý°¢ÇÏ°í, âÀÇÀûÀ¸·Î À̸¦ ÅëÇÕÇÏ°í, »ó¼¼ÇÑ °Í¿¡ ÁÖÀǸ¦ ±â¿ïÀ̸鼭 ¸»ÀÌ´Ù.

We therefore believe that the study of program design deserves the same central role in general education as mathematics and English. Or, put more succinctly, ¿ì¸®µéÀº ÇÁ·Î±×·¥ Â¥´Â ¹æ¹ýÀ» ´Ù °¡¸£Ä¡Áö´Â ¾Ê´Â´Ù°í Çصµ, ¼öÇаú ±¹¾î¸¦ °¡¸£Ä¡´Â °Íó·³ ±³À°¿¡¼­ Áß¿äÇÑ °ú¸ñÀ̾î¾ß ÇÑ´Ù°í »ý°¢ÇÑ´Ù.

everyone should learn how to design programs.

¸ðµç ÀÌ°¡ ÇÁ·Î±×·¥ Â¥´Â ¹æ¹ýÀ» ¹è¿ö¾ßÇÑ´Ù.

On one hand, program design teaches the same analytical skills as mathematics. But, unlike mathematics, working with programs is an active approach to learning. Interacting with software provides immediate feedback and thus leads to exploration, experimentation, and self-evaluation. Furthermore, designing programs produces useful and fun things, which vastly increases the sense of accomplishment when compared to drill exercises in mathematics. On the other hand, program design teaches the same analytical reading and writing skills as English. Even the smallest programming tasks are formulated as word problems. Without critical reading skills, a student cannot design programs that match the specification. Conversely, good program design methods force a student to articulate thoughts about programs in proper English. ÇÑÆíÀ¸·Î, ÇÁ·Î±×·¥À» Â¥¸é ¼öÇÐó·³ ºÐ¼®ÀûÀÎ ±â¼ú ¹è¿ï ¼ö ÀÖ´Ù. ÇÏÁö¸¸, ¼öÇаú´Â ´Ù¸£°Ô, ÇÁ·Î±×·¥Àº µ¿ÀÛÇϱ⠶§¹®¿¡ Á÷Á¢ÀûÀ¸·Î ¹è¿ì±â°¡ ½±´Ù. ¼ÒÇÁÆ®¿þ¾î¿Í ´ëÈ­ÇÏ´Â °ÍÀº Áï°¢ÀûÀÎ ¹ÝÀÀÀ» º¼ ¼ö ÀÖÀ¸¹Ç·Î, ŽÇè°ú ½ÇÇè, ÀÚ±âÇнÀÀ» À̲ö´Ù. ¶ÇÇÑ, ÇÁ·Î±×·¥À» Â¥¸é¼­ À¯¿ëÇÏ°í Àç¹Õ´Â °ÍÀ» ¸¸µé±â¶§¹®¿¡ ¼öÇÐ ¹®Á¦¸¦ Ç®¾îº¸´Â °Í°ú ºñ±³ÇÏ¸é ¼ºÃë°¨Àº ´õ Å©´Ù. ¶Ç´Ù¸¥ ÇÑÆíÀ¸·Î, ÇÁ·Î±×·¥À» Â¥¸é¼­ ±¹¾î¿¡¼­Ã³·³ ºÐ¼®ÀûÀÎ Àбâ¿Í ¾²±â ±â¼úÀ» ¹è¿ï ¼ö ÀÖ´Ù. °¡Àå °£´ÜÇÑ ÇÁ·Î±×·¥À» Â¥·Á°í Çصµ Word Problemó·³ Á¤È®ÇؾßÇÑ´Ù. ¿äÁ¡À» ÆľÇÇÏÁö ¸øÇÏ´Â ÇлýÀº ¸í¼¼¿¡ ¸Â´Â ÇÁ·Î±×·¥À» ¸¸µé ¼ö ¾ø´Ù. ¹Ý´ë·Î ¸»ÇÏÀÚ¸é, ÇÁ·Î±×·¥Â¥´Â ¹æ¹ýÀÌ Àß ¸¸µé¾îÁö¸é, Ç¥Áؾ ÇϵíÀÌ ÇÁ·Î±×·¥¿¡ ´ëÇÑ »ý°¢À» ¾Ë¸Â°Ô Ç¥ÇöÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-08-28 13:24:55
Processing time 0.0060 sec