E D R , A S I H C RSS

Focus On Fundamentals

๊ทผณธ— ง‘ค‘•˜๊ธฐ

––๊ฒŒ Šน ••œ ”Œžซผ—„œ, Šน ••œ –ธ–กœ, ™”„ นจฆฌ ฆฌ”„ž˜‰ฌ•˜Š”€ …Œฌ‹‰„ ๊ฐ€ณฃผŠ” ฑ…— ๊€‹ฌžˆŠ” ‚ฌžŒ€ งŽ•„„ “  ”Œžซผ—„œ, “  –ธ–กœ, Šน • ฌธ œ— ––ค ŒจŸฌ‹คž„„  šฉ•••  €€‹ฌžˆŠ” ‚ฌžŒ€ “œฌผ‹ค.


Software Engineering Education Can, And Must, Focus On Fundamentals.
†Œ”„Šธ›จ– —”€‹ˆ–ง ๊ตœก€ ๊ทผณธ— ง‘ค‘•  ˆ˜ žˆœผฉฐ, ˜•œ ๊ทธ ‡๊ฒŒ •••œ‹ค.

When I began my EE education, I was surprised to find that my well-worn copy of the "RCA
Tube Manual" was of no use. None of my lecturers extolled the virtues of a particular tube or type
of tube. When I asked why, I was told that the devices and technologies that were popular then
would be of no interest in a decade. Instead, I learned fundamental physics, mathematics, and a
way of thinking that I still find useful today.

‚๊ฐ€ EE ๊ตœก„ ‹œž‘–ˆ„•Œ ‚˜Š” ‚˜˜ ‚ก•„น ง„ 'RCA Tube Manual' “ธ—†Š” ๊ฒƒž„„ •Œ๊ณ  †€ผ๊ฒŒ ˜—ˆ‹ค. ‚˜˜ ๊ตˆ˜“ค ๊ทธ ˆ„๊ตฌ„ Šน • tube ‚˜ tube ˜ ƒ€ž…˜ žฅ — Œ€• นญฐฌ•œ   —†—ˆ‹ค. ‚๊ฐ€ ™œ ๊ทธžฌŠ”€ งˆฌธ–ˆ„•Œ 'œ …–ˆ˜ ””ฐ”Šค‚˜ ๊ธฐˆ “ค€ 10…„ ‚—Š” ณ„ณผผ —†–ง„‹ค'Š” ๊ฒƒ„ •Œ๊ฒŒ˜—ˆ‹ค. Œ€‹ , ‚˜Š” ๊ทผณธ ธ ฌผฆฌ, ˆ˜•™, ๊ทธฆฌ๊ณ  ‚๊ฐ€ ˜คŠ˜‚ ๊นŒ€„ œ šฉ•„ ฐœ๊ฒฌ•˜Š”, ‚ฌ๊ณ •˜Š” ฐฉ•— Œ€• ฐฐ› ‹ค.

Clearly, practical experience is essential in every engineering education; it helps the students to
learn how to apply what they have been taught. I did learn a lot about the technology of that day in
laboratory assignments, in my hobby (amateur radio), as well as in summer jobs, but the lectures
taught concepts of more lasting value that, even today, help me to understand and use new
technologies.

…ฐฑ•˜๊ฒŒ, ‹คšฉ ธ ๊ฒฝ—˜€ “  —”€‹ˆ–ง ๊ตœก—„œ •„ˆ˜ ‹ค; Š” •™ƒ“คกœ •˜—ฌ๊ธˆ ๊ทธ“ค ฐฐ›Œ˜จ ๊ฒƒ„ ––๊ฒŒ  šฉ• €— Œ€• ฐฐšฐŠ”ฐ „›€„ €‹ค. ‚˜Š” —ฐ๊ตฌ‹ค ˆ™ œ, ‚˜˜ ทจฏธ (•„งˆธ„– ผ””˜ค) —„œ ๊ธฐˆ “ค— Œ€• งŽ€ ๊ฒƒ„ ฐฐ› ๊ณ , ˜•œ —ฌฆ„ฐฉ•™•Œ •„ฐ”Šธ “ฑ—„œ„ ฐฐ› ‹ค. •˜€งŒ, ˆ˜—…“ค€ ” €† ธ ๊ฐ€น˜“ค˜ ๊ฐœ…„ ๊ฐ€ณฃผ๊ณ , Š” ˜คŠ˜‚ ๊นŒ€„ ‚˜—๊ฒŒ ƒˆกœš ๊ธฐˆ “ค— Œ€• ••˜๊ณ  šฉ•  ˆ˜ žˆ„ก „›€„ ฃผ๊ณ  žˆ‹ค.

Readers familiar with the software field will note that today's "important" topics are not
mentioned. "Java", "web technology", "component orientation", and "frameworks" do not appear.
The many good ideas that underlie these approaches and tools must be taught. Laboratory exercises
and other projects should provide students with the opportunity to use the most popular tools and
to experiment with some new ones. However, we must remember that these topics are today's
replacements for earlier fads and panaceas and will themselves be replaced. It is the responsibility
of educators to remember that today's students' careers could last four decades. We must identify
the fundamentals that will be valid and useful over that period and emphasise those principles in
the lectures. Many programmes lose sight of the fact that learning a particular system or language
is a means of learning something else, not an goal in itself.

†Œ”„Šธ›จ– •„“œ— ตˆ™•œ …ž“ค€ ˜คŠ˜‚ ˜ 'ค‘š”•œ' ฃผ œ“ค€ –ธ๊ธ‰˜€ •ŠŒ„ € •œ‹ค. Java, "›น ๊ธฐˆ ", "ฌ„ŒŠธ €–ฅ", ๊ทธฆฌ๊ณ  "”„ ˆž„›Œฌ" Š” ‚˜ƒ€‚˜€ •Š•˜‹ค. Ÿฌ•œ  ‘๊ทผ•๊ณผ ˆ“ค— ๊ธฐฐ˜•œ งŽ€ ข‹€ •„””–“ค€ ฐ˜“œ‹œ ๊ฐ€ณ••œ‹ค. —ฐ๊ตฌ‹ค ˆ™ œ“ค๊ณผ ‹คฅธ ”„กœ Šธ“ค€ •™ƒ“ค—๊ฒŒ ๊ฐ€žฅ Œ€ค‘ ๊ณ  œ …•œ ˆ“ค„ šฉ•  ๊ธฐšŒฅผ  œ๊ณต•••˜ฉฐ, ˜•œ ญ”๊ฐ€ ƒˆกœš ๊ฒƒ„ ๊ฒฝ—˜•  ๊ธฐ˜ธฅผ  œ๊ณต•••œ‹ค. •˜€งŒ, šฐฆฌŠ” Ÿฌ•œ ฃผ œ“ค€ ˜คŠ˜‚ ˜ ฅธ €•„ œ„•œ ๊ต’ˆ“ค ฉฐ งŒณ‘†ตน˜•ฉฐ ๊ณง ๊ต  ๊ฒƒ“คž„„ ๊ธฐ–ต•••œ‹ค. ๊ตœกž“ค—๊ฒŒŠ” ˜คŠ˜‚ ˜ •™ƒ“ค˜ „ฑ๊ณต 40…„€ €†•  ˆ˜ žˆ–••„ ๊ธฐ–ต•••  ฑ…ž„ žˆ‹ค. šฐฆฌŠ”  ๊ธฐ๊ฐ„™•ˆšจ๊ณผ ๊ณ  œ šฉ•œ ๊ทผณธ“ค„ •Œ๊ณ , ๊ทธฆฌ๊ณ  ˆ˜—…‹œ๊ฐ„—  ›ฆฌ“ค„ ๊ฐ•กฐ•••œ‹ค. งŽ€ ”„กœ๊ทธž˜จธ“ค€ Šน • ‹œŠค…œ‚˜ ”„กœ๊ทธž˜ฐ –ธ–ฅผ ฐฐšฐŠ” ๊ฒƒ ญ”๊ฐ€ ‹คฅธ ๊ฒƒ„ ฐฐšฐŠ” ๊ฒƒผ ฟ, ๊ทธ ๊ทธ๊ฑฐ ž˜ ‘œ๊ฐ€ •„‹ˆผŠ” ‚ฌ‹ค— Œ€• ‹œ•ฅผ žƒ๊ณค •œ‹ค.


Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he or she will be in a far better position to recognize their bad features as he or she encounters them.

•™ƒ“ค€ ผฐ˜ œผกœ ๊ฐ€žฅ งŽ šฉ  ๊ฒƒ ๊ฐ™€ –ธ–“ค (FORTRAN ‚˜ C)„ ๊ฐ€น˜๊ธฐฅผ š”๊ตฌ•œ‹ค. Š” ž˜‹ค. ›Œฅญ•˜๊ฒŒ •™Šตฐ›€ •™ƒ“ค (ฆ‰, ฐ”๊ฟ” ง•˜, clean language(?)ฅผ ๊ฐ€นจฐ›€ •™ƒ)€ ‰ฝ๊ฒŒ –ธ–ฅผ „ ƒ•  ˆ˜ žˆ๊ณ , ” ข‹€ œ„น˜— žˆ๊ฑฐ‚˜, ๊ทธ“ค €”น˜๊ฒŒ ˜Š” •‹น –ธ–“ค˜ ž˜œ Šน•“ค— Œ€• ” ž˜ ธ‹•œ‹ค.

-- C. H. Lindsey, History of Algol 68. ACM SIGPLAN Notices, 28(3):126, March 1993.

€๊ธˆ ๊ณต€•˜๊ณ ž •˜Š” ๊ฒƒ ‚ฌžฅ  ๊ธฐˆ ผ๊นŒ ๊ฑฑ •ฉ‹ˆ๊นŒ?  •ง œฐ ˆ˜ žˆ„๊นŒ ˜‹ฌ ๊ฐ‘‹ˆ๊นŒ? งŽ€ ‚ฌžŒ“ค€ žฐ”๊ฐ€ ‚ฌžฅ  ๊ฒƒผ๊ณ  ง–ˆŠต‹ˆ‹ค. งŽ€ ‚ฌžŒ“ค€ ธ”ฃจˆฌŠค๊ฐ€ œฐ ๊ฒƒผ๊ณ  ง–ˆŠต‹ˆ‹ค. ––๊ฒŒ •••˜‚˜š”? FocusOnFundamentals. ˜คผงŒ ›„ฒผŒŒ๊ธฐ‹ค RDB˜ ๊ทผณธ„ ›„ฒผŒŒ, žฐ”งŒ ›„ฒผŒŒ๊ธฐ‹ค OOP˜ ๊ทผณธ„ ›„ฒผŒŒ  –„ –ฅ›„ 5…„๊ฐ„€ “ “ •  ๊ฒƒž…‹ˆ‹ค. Ÿฐ ๊ทผณธ„ ›„ฒผŒŒŠ” ๊ฒƒ€ –ธ œ•  ˆ˜ žˆ‚˜š”? •™ƒ •Œ •  ˆ˜ žˆŠต‹ˆ‹ค. ‚ฌšŒ— ‚˜๊ฐ€ •˜๊ธฐ – ต‚˜š”? ๊ทธ ‡Šต‹ˆ‹ค. ฏธฆฌ €—ฝ—งŒ งค‹ฌ •„š”Š” —†Šต‹ˆ‹ค. ‹จ, ˜ˆ™Š” žˆŠต‹ˆ‹ค. ๊ณต€•˜๊ณ  ‹ถ–„œ ฐค— ž‹ค๊ฐ€„ ๊ฐ€Š ›‹ค ๊ทธ๊ฒƒ €—ฝ๊ฑ ๊ทผณธ๊ฑ งคง„ •˜‹ญ‹œ˜ค. ›„šŒ•˜€ •Š„ ๊ฒ‹ˆ‹ค. •˜€งŒ งˆƒ•••  ๊ฒƒ ๊ฐ™•„„œ, ‚˜ค‘— ทจง— „›€   ๊ฒƒ ๊ฐ™•„„œ, ‚จ“ค ‹ค •˜‹ˆ๊นŒ “ฑ“ฑ˜ žก‹ค•œ ๊ธฐˆ „ ฃผ›Œ‹Š” –ฆฌ„Œ€ ฒ”•˜€ งˆ‹ญ‹œ˜ค.

 €Š” ฃผ€—„œ žฐ”งŒ ๊ณต€•œ ‚ฌžŒ„ Šต‹ˆ‹ค. ๊ทธ ‚ฌžŒ€ žฐ”๊ฐ€ •„‹Œ ‹คฅธ –ธ–ฅผ ๊ฑ ‚˜ž‘ ƒ๊€—†Š” ๊ฑฐผ๊ณ  ƒ๊ฐ•˜ฉฐ ๊ณ ๊ฐœฅผ Œฆฝ‹ˆ‹ค. –А •˜‚˜˜ OOP –ธ–— •œ๊ณ„ฅผ ‘€ •Š๊ณ  ๊ณต€•˜Š” ‚ฌžŒ„ Šต‹ˆ‹ค. ๊ทธ ‚ฌžŒ€ ‹คฅธ ๊ฒƒ๊ฐ„˜ ๊€๊ณ„ฅผ ฐพ๊ณ  —ฐ๊ฒฐง“๊ณ , ” ฐ ๊ทธฆผ„ งŒ“ค– ‚˜๊ฐ‘‹ˆ‹ค. ‘˜ ค‘— ›„ž๊ฐ€ OOP(‹ฌ€–Š” žฐ” ž)— Œ€•œ •๊ฐ€ ” ๊นŠ๊ณ  ณธงˆ —ˆŠต‹ˆ‹ค.  €Š”    ” ™€ น„Šท•œ ‚ฌ€ฅผ  ‘•˜๊ฒŒ ฉ‹ˆ‹ค.

žฐ”ฅผ ›„ฒผŒŒŠ” ๊ฒƒ€ ข‹Šต‹ˆ‹ค. ๊ทธŸฌ‚˜ ™‹œ— OOP„ ›„ฒผŒŒ••‹ˆ‹ค -- ‚ฌ‹ค OOPฅผ ›„ฒผŒŒ„œ žฐ”ฅผ “ฑ•œ‹œ •˜๊ธฐŠ” – คšธ ๊ฒƒž…‹ˆ‹ค. •˜€งŒ žฐ”งŒ ›„ฒผŒŒŠ” ๊ฒƒ€ ‹ค‹œ •œฒˆ ƒ๊ฐ• ‹ญ‹œ˜ค(๊ทธŸฌ‚˜  œ๊ฐ€ •ž„œ ง–ˆ“ฏ ž ž‹ค๊ฐ€„ žฐ” •Œฌธ— ๊ฐ€Š ›‹ค ๊ณต€•˜‹ญ‹œ˜ค). ฏธฆฌ ฐฐ›€— •œ๊ณ„ฅผ ๊ธ‹€ งˆ‹ญ‹œ˜ค. ๊ทธฆฌ๊ณ  € ถ”ƒ ธ •ผ๊ธฐ๊ฐ€  €„ ๊ฒ Š”ฐ, šฐฆฌŠ” "†Œฌผ…ŒŠค๊ฐ€ ฃฝŠ”‹ค"Š” ๊ฒƒ„ ฐฐšฐŠ” ๊ฒƒ—„œ ๊ทธน˜๊ธธ ›•˜€ •ŠŠต‹ˆ‹ค. šฐฆฌŠ” "‚ฌžŒ€ ฃฝŠ”‹ค"Š” ๊ฒƒ„ ฐฐšฐ๊ณ  ‹ถ–•‹ˆ‹ค. ๊ทธŸฌ‚˜ ๊ทธ ฐฐ›€€ ง ‘ ธ ‚ฌ‹ค˜ —˜ ›„— ๊ฐ€Šฅ•‹ˆ‹ค. ๊ณ กœ “  ๊ณต€Š” ๊ธฐณธ œผกœ ๊ท€‚ฉ„ ฐ”ƒ•œผกœ •‹ˆ‹ค(๊ฒƒ  œ๊ฐ€ ง•˜Š” "ธ ๊ณต€"ž…‹ˆ‹ค). ๊ท€‚ฉ‹, —ฐ—ญ‹ ๊ณต€ผ๊ณ , ˜ ๊ทธ๊ฒƒ„ ๊ฐœ„ฑผ๊ณ  ๊ตฌถ„•˜Š” ๊ฒƒ€ ˜ฏธ•‹ˆ‹ค. see also NoSmok:ตœ•œ๊ธฐ˜ ถ”ธกก

šฐฆฌ๊ฐ€ กฐ‹ฌ•••  ๊ฒƒ€ –А •œ ฐฉ•  ˆŒ€ ผ๊ณ  •˜Š” ๊ฒƒ๊ณผ, ฐ˜Œ€กœ ƒŒ€ฃผ˜— งค˜Š” ๊ฒƒ ‘๊ฐ€€ ž…‹ˆ‹ค. —‡๊ฑœฐฎ‹ค(anything goes)™€ ๊ฒƒงŒ œ ผ•˜‹ค ค‘ •˜‚˜งŒ ๊ณจผ••˜Š” ๊ฒƒ€ •„‹™‹ˆ‹ค.

‚ฌ‹ค  œ •ผ๊ธฐŠ” ˆ˜‚ฌ ธ ฐจ›—„œ •ฝ๊ฐ„ ๊ณผžฅœ ๊ฒƒผ€„ ๊ฒ Šต‹ˆ‹ค. FocusOnFundamentals๊ฐ€  šฉ˜Š” ฒ”œ„ฅผ ๊ผญ •œ๊ณ„€„ •„š”Š” —†„ “ฏ ‹ถŠต‹ˆ‹ค. žฐ”ฅผ ๊ณต€•œ‹ค žฐ”˜ "fundamentals"— ” ง‘ค‘„ •  ˆ˜„ žˆ๊ฒ ฃ . •˜€งŒ Š˜ "ฐ ๊ทธฆผ"„ „ก …ธ ฅ•••  ๊ฒƒž…‹ˆ‹ค. ‚๊ฐ€ ๊ณต€•˜Š” ๊ฒƒ †—„œ "fundamentals"Š” —‡๊ณ , ‚๊ฐ€ ๊ณต€•˜Š” ๊ฒƒ †•œ ฒ”ฃผ—„œ "fundamentals"Š” —‡ธ€.

ง€ ๊ธธ๊ฒŒ –ˆ€งŒ ๊ฒฐ๊ตญ DavidParnas๊ฐ€ •œ ง๊ณผ ๊ฐ™€ „  ƒ— žˆ‹ค๊ณ  ˜๊ฒ Šต‹ˆ‹ค.


„ธƒ—Š” ฐธ ‹ค–‘•œ ‚ฌžŒ žˆŠต‹ˆ‹ค. ๊ท€‚ฉ‹˜ ๊ณต€ฅผ ••ž˜˜Š” ‚ฌžŒ, —ฐ—ญ‹˜ ๊ณต€ฅผ ••ž˜˜Š” ‚ฌžŒ.. žฐ”ฅผ ฃฝ„ก ๊ณต€–ˆ”‹ˆ OOP˜ ๊ทผณธงŒ„ ›„ฒผŒ ‚ฌžŒ‹ค ” OOPฅผ ž˜ ๊ฟฐŠ” ‚ฌžŒ„ žˆ„ ˆ˜ žˆŠต‹ˆ‹ค. RDB๊ฐ€ •„‹Œ ˜คผงŒ RDB˜  „€ผ๊ณ  ƒ๊ฐ•˜Š” ‚ฌžŒ ˜คžˆ ค ” นจฆฌ RDB˜ ๊ทผณธ„ ๊นจน  ˆ˜„ žˆŠต‹ˆ‹ค. ŒŒผŸฌ•™ฌธ ‚˜˜ค๊ณ  ฌŠธž€ –ธ–๊ฐ€ ‚˜˜จ ๊ฒƒ€ •„‹™‹ˆ‹ค. –А •˜‚˜˜ ฐฉ•งŒ ˜ณ‹ค๊ณ  ƒ๊ฐ•˜€Š” •ŠŠต‹ˆ‹ค. ๊ทธฆฌ๊ณ  ๊ทธ ––ค ๊ฒƒ„ žก‹ค•˜€Š” •Š‹ค๊ณ  ƒ๊ฐ•‹ˆ‹ค. ‚ฌžŒงˆ‹ค „ˆ‚˜ ‹ค–‘•œ ๊ฐœ„ฑ žˆ๊ฒ €š”. --•„๊ฐœ
šฐ„ ,  œ๊ฐ€ OOP‚˜ RDB “ฑ ๊ทผณธ„ ๊ณต€•˜ผ๊ณ  •œ ง„ OOP, RDB ก „œงŒ ™žก๊ณ  Š˜– ธผŠ” ˜ฏธกœ ๊ณก••˜‹  “ฏ •‹ˆ‹ค. žฐ” ง๊ณ  OOPฅผ ๊ณต€•ผŠ” ง €”” žฐ”ฑ…€ €ง๊ณ  OOP ก „œงŒ ผŠ” งกœ ˜ค•˜€ •Š๊ธฐฅผ ฐ”ž‹ˆ‹ค( €Š” š”ฆ˜“ค– OOP ๊ณต€Š” Šค† ฌ—„œ ‹œž‘•˜Š” ๊ฒƒ ข‹€ •Š„๊นŒ ƒ๊ฐ•˜๊ณ  žˆŠต‹ˆ‹ค). ๊ทธฆฌ๊ณ  žก‹ค•˜‹คŠ” ๊ฒƒ€ —ฌŸฌ๊ฐ€€ „ˆ €ถ„•˜๊ฒŒ „ž—ฌžˆ– ๊ณ„๊ฐ€ —†‹คŠ” ๊ฒƒž…‹ˆ‹ค. "X๊ฐ€ žก‹ค•˜‹ค"๊ณ  •˜Š” ๊ฒƒ€ X †— žˆŠ” ‚šฉฌผ ๊ณ„๊ฐ€ —†‹คŠ” •ผ๊ธฐ๊ฐ€ ฉ‹ˆ‹ค. žก‹ค•˜‹คŠ” ๊ฒƒ€ žฌ €–ฅ •„‹ˆ๊ณ  ๊€๊ณ„ €–ฅ˜ ‘œ˜„ž…‹ˆ‹ค. --๊น€ฐฝ€

{{|
Q: What advice do you have for computer science/software engineering students?

A: Most students who are studying computer science really want to study software engineering but they don't have that choice. There are very few programs that are designed as engineering programs but specialize in software.

I would advise students to pay more attention to the fundamental ideas rather than the latest technology. The technology will be out-of-date before they graduate. Fundamental ideas never get out of date. However, what worries me about what I just said is that some people would think of Turing machines and Goedel's theorem as fundamentals. I think those things are fundamental but they are also nearly irrelevant. I think there are fundamental design principles, for example structured programming principles, the good ideas in "Object Oriented" programming, etc.



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:16
Processing time 0.0320 sec