U E D R , A S I H C RSS

1002/TPOCP

Seminar:ThePsychologyOfComputerProgramming맑은 챕터 정리ꢁ리μ‘.

  • μ–΄λ–€ μ’…λ₯˜μ˜ 책인지?
  • μ „λ°˜μ μΈ λ‚΄μš©μ— λŒ€ν•œ λΌˆλŒ€ & ꡬ성방식

  • μž₯λ₯΄κ΅¬λΆ„?
  • λ‚΄μš©μƒμ˜ λΆ„λ₯˜
  • μ±… 전체흐름에 λŒ€ν•œ abstraction
  • κ°œμš”
  • μ €μžκ°€ μ œκΈ°ν•˜λŠ” μ§ˆλ¬Έμ€? & μ±…μ—μ„œμ˜ λŒ€λ‹΅μ€? ( + )

  • κ΄€λ ¨ 자료 링크

  • μ½κ³ λ‚œ λ’€μ˜ λ‚˜μ˜ 생각


~cpp 
Part 3 Programming as an individual activity

Comment on Part 3

My goal was 
	ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ κ·Έλ“€μ˜ μž‘μ—…μ„ ν•˜λŠ” 방법에 λŒ€ν•œ 연ꡬ 격λ κ°œμΈ ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ˜ μ‹€λ μ„ ν–₯μƒμ‹œν‚€λŠ” 것에 λŒ€ν•œ 이해λ₯Ό 촉진

	25년이 μ§€λ‚¬μ§€λ§Œ, ν”„λ‘œκ·Έλž˜λ¨Έ κ°œμΈμ€ 이전보닀 더 μ ν•©ν•˜μ§„ μ•ŠμŒ. 비둝 생산성은 λ†’μ•„μ‘Œμ§€λ§Œ.

Variations in the programming task

	Professional versus amateur programming

		Amateur
			μžκΈ°μžμ‹ μ˜ μ΄μš©μ„ μœ„ν•΄ μž‘μ„±
			try & error μ‹μœΌλ‘œ μ ‘κ·Ό. ν”„λ‘œκ·Έλž˜λ°μ „ 미리 μƒκ°ν•˜κ±°λ‚˜ λ¨Έλ¦Ώμ†μœΌλ‘œ 그렀보지 μ•ŠμŒ
			ν”„λ‘œκ·Έλž˜λ° 뒀에 μžŠμ–΄λ²„λ¦°λ‹€.
			μ–΄λ μ›€μ΄ λ‹μ³€μ„λ•Œ, 문제 μžμ²΄λ§Œμ„ μ²˜λ¦¬ν•˜κΈ°λ₯Ό μ›ν•œλ‹€.
			λ¬Έμ œμ— λŒ€ν•΄μ„œλ§Œ λ°°μš΄λ‹€.
						

		Professional
			λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ μ΄μš©ν•œλ‹€λŠ” 것도 κ³ λ μΆ”ν›„ λ³€ν™”λ˜λŠ” 뢀뢄을 ν™•λ¦½ν•˜κ±°λ‚˜, μŠ€νŽ™μ„ λͺ…ν™•ν™”ν•œλ‹€.
			νŒ¨ν‚€μ§€μ— μ €μž₯ν•΄λ†“λŠ”λ‹€.
			문제 자체λ₯Ό μ•„λ§ˆμΆ”μ–΄λ§ŒνΌ μ‹¬κ°ν•˜κ²Œ κ³ λ―Όν•˜μ§€ μ•ŠλŠ”λ‹€.
			λ¬Έμ œν•΄κ²°λ°©λ²•μ„ μ°ΎλŠ” μ—¬λŸ¬ 방법듀을 μΈμ‹ν•˜κ³  μžˆλ‹€. 문제λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•œ ν”„λ‘œκ·Έλž¨μ„ μ€€λΉ„ν•˜κΈ°λ„ ν•œλ‹ν”„λ‘œκ·Έλž˜λ°μ— λŒ€ν•΄ λ°°μš΄λ‹€. (λ¬Έμ œμƒν™©μ΄λž€ 그의 개발 κ³Όμ •μ‘ λΆ€μˆ˜μ μΈ 일듀)
			
		
		exam) 2μ°¨ 방정식 풀이 예
		
	What the programmer is trying to do
		case) 물리 κ΅μˆ˜λ‘œλΆ€ν„° ν•΄λ‹Ή λ©”νŠΈλ¦­μŠ€λ₯Ό λ°˜μ „ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μž‘μ„±. ν•œ κ°œλ°œμžλŠ” (A) λ­”κ°€ 배울 수 μžˆλŠ” μ‹μ€ 기회라고 생각, buffering 을 μ΄μš©ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•˜λ κ³  함.

		각각의 ν”„λ‘œκ·Έλž¨μ—λŠ” μ μ ˆν•œ 레벨이 μžˆλ‹€.

		μ„±λŠ₯ : 효과

		case2) 4개의 ν”„λ‘œκ·Έλž˜λ¨Έ 그룹에 ν•΄λ‹Ή 일을 λ§‘κΉ€. 
			A : as efficient as possible		(λΉ λ₯Έ μ„±λŠ₯ μœ„μ£Ό)
			B : as short a time as possible		(λΉ λ₯Έ 개발 μœ„μ£Ό)
		비ꡐ :
			B 그룹이 λ¨Έμ‹  νƒ€μž„μ€ 2/5 λ‚˜ 1/3 μ •λ„λ§Œ 이용.
			B κ°€ νΌν¬λ¨ΌμŠ€μ—μ„œ A 보닀 10λ°° 느림.

			B - λ©”μ†Œλ“œκ°€ μž₯λ™ν•˜μ§€ μ•Ÿμ„λ•Œ, κ·Έλƒ₯ drop 해버리고 λ‹€λ₯Έ κ²ƒμœΌλ‘œ ꡐ체버림.
			A - λ¬Έμ œλ°œμƒμ‹œ 접근방법을 λ°”κΎΈκΈ° 싫어함.(μ„±λŠ₯을 희생해야 할것이라 생각해버림)

			μŠ€μΌ€μ„ μ˜ˆμΈ‘μ‹œμ— λ”°λ₯Έ 차이

		νŒŒν‚¨μŠ¨μ˜ 법칙 : μΌκ±°λ¦¬λŠ” ν• λ‹Ήλœ μ‹œκ°„μ„ μ±„μšΈλ§ŒνΌ λŠ˜μ–΄λ‚œλ‹€.

		'λͺ©ν‘œ'λ‘œμ„œμ˜ μŠ€μΌ€μ„은 'ν• λ‹Ήλœ μ‹œκ°„'에 영ν–₯을 μ„ μˆ˜ μžˆλ‹€.

	Stages of programming work
		ν”„λ‘œκ·Έλž˜λ°μ˜ 각 뢀뢄에 λŒ€ν•΄ λ™μΌν•œ λŠ₯λ κ³Ό μˆ˜κ³ κ°€ ν•„μš”ν•˜λ‹κ³  μƒκ°ν•˜λŠ” 것을 잘λͺ»μ΄λ‹€.

		'뢄석, ν”Œλ‘œμš° λ‹μ΄μ–΄κ·Έλž¨ μž‘μ„±, μ½”λ”©, ν…ŒμŠ€νŒ…, λ„νλ¨ΌνŠΈ' 둜 λΆ„λ¦¬ν•˜λŠ” μ‚¬κ³ λŠ” μ—¬λŸ¬ λ©΄μ—μ„œ ν”„λ‘œκ·Έλž˜λ°μ„ μ™œκ³‘μ‹œν‚¨λ‹€.
			* μ‹μ œ μˆœμ„œκ°€ 고정적이지 μ•Šλ‹€.
			* λͺ¨λ“  μ ˆμ°¨λ“€μ΄ ν•„μš”ν•˜μ§„ μ•Šλ‹€.
			* 순차적일 ν•„μš”κ°€ μ—†λ‹€.

		μš°λ¦¬λŠ” μ΄λŸ¬ν•œ λ³΅μž‘ν•œ ν–‰μœ„λ“€μ„ λ‹¨μˆœν•œ ν•˜λ‚˜λ‘œ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.
		
		ν”„λ‘œκ·Έλž˜λ° ν”„λ‘œμ νŠΈλ₯Ό μ •μ˜λœ λ‹¨κ³„λ“€λ‘œ μ„Έλ°€ν•˜κ²Œ λ‚˜λˆŒ 수 μžˆμ§€λ§Œ, μ‹μ€ μ•„μ΄λ””μ–΄λŠ” μ•„λ‹ˆλ‹€.

		μš°λ¦¬λŠ” ν”„λ‘œμ νŠΈμ˜ 일듀을 μ •λ¦¬ν•˜μ—¬ 각각의 μ‚¬λžŒλ“€μ΄ μžμ‹ μ΄ μž˜ν•˜λŠ” μ˜μ—­μ— λŒ€ν•΄μ„œλ‘œ νŠΉμˆ˜ν™”ν•  수 μžˆλ„λ‘ ν•  수 μžˆμ§€λ§Œ, 적어도 두가지 단점이 μ‘΄μž¬ν•œλ‹€.
			* 아무도 λ„νλ¨ΌνŠΈ μž‘μ—…μ„ ν•˜λ κ³  ν•˜μ§€ μ•Šμ„ 것이닀.
			* 아무도 κ·Έλ ‡κ²Œ 배울 게 μ—†λ‹€.

		μš°λ¦¬λŠ” 각각의 ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ μžμ‹ μ΄ 잘 λͺ»ν•˜λŠ” μ˜μ—­μ— λŒ€ν•΄ μŠ€νŽ˜μ…œλ¦¬μŠ€νŠΈκ°€ 되게 일을 ν• λ‹Ήν•¨μœΌλ‘œμ„œ ν•™μŠ΅λ₯ μ„ κ·ΉλŒ€ν™”ν•  수 μžˆλ‹€. λ˜ν•œ, κ·Έκ°€ λ¬Έμ œμƒν™©μ΄ μƒκ²Όμ„λ•Œ 각가이 λ‹€λ₯Έ μž‘μ—…μœΌλ‘œ ꡐ체할 수 μžˆλŠ” 기회λ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.

		ν”„λ‘œκ·Έλž˜λ° ν”„λ‘œμ νŠΈμ— λŒ€ν•œ 전체 ν•œλ°”ν€΄λ₯Ό 돌고 λ‚œλ’€, ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ μž‘μ—…ν•˜λŠ” 더 μ˜¬λ°”λ₯Έ λ°©λ²•μœΌλ‘œ μž‘μ—…μ„ λ‚˜λˆ„λŠ” 것을 μ‹œλ„ν•œλ‹€.

		exam) ν…ŒμŠ€νŒ… 단계
			μ—λŸ¬μ˜ 쑴재λ₯Ό νƒμ§€ν•œλ‹€.
			μ—λŸ¬μ˜ μœ„μΉ˜λ₯Ό μ°Ύμ•„λ‚Έλ‹€.
			μ—λŸ¬λ₯Ό μˆ˜μ •ν•œλ‹€.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:05
Processing time 0.0117 sec