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.0392 sec