4190.210 Principles of Programming

À̱¤±Ù Kwangkeun Yi
Programming Research Lab.
/CSE/Seoul National University

°­ÀÇ: ¼ö 16:00-17:50 @ 302µ¿ 106È£
½Ç½À: ¿ù 16:00-17:50 @ 302µ¿ 311È£

¸ñÇ¥ Objectives

ÇлýµéÀÌ ÇÁ·Î±×·¥ ÀÛ¼ºÀÇ ±âº» ¿ø¸®, ±¸¼º ¿ä¼Ò, ÇÁ·Î±×·¡¹Ö ¹ÌÇеîÀ» ½ÀµæÇÏ°Ô ÇÔÀ¸·Î½á, ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀÌ µå·¯³»´Â º¹À⼺À» ¼Õ½±°Ô ´Ù·ê ¼ö ÀÖ´Â ´É·Â°ú ÀڽۨÀ» ÀÍÈ÷°Ô ÇÑ´Ù. ´õ±º´Ù³ª, ÇÁ·Î±×·¥ÀÌ ±â°è¸¦ »ç¿ëÇϱâ À§ÇÑ µµ±¸¶ó´Â Á¦ÇÑµÈ ½Ã°¢¿¡¼­ ¹þ¾î³ª ±â°è°¡ ÇÁ·Î±×·¥ ½ÇÇàÀ» À§ÇÑ µµ±¸¶ó´Â ½Ã°¢À» °®Ãßµµ·Ï º¸Á¤ÇØÁØ´Ù.

ÀÌ °­ÀÇ´Â ÇÁ·Î±×·¡¹Ö ¿¬½À(training)ÀÌ ¾Æ´Ï¶ó ÇÁ·Î±×·¡¹Ö ±³À°(education)ÀÌ´Ù. ÇлýµéÀÌ Æ¯Á¤ ¾ð¾îÀÇ ÇÁ·Î±×·¡¹Ö¿¡ Àͼ÷Çϵµ·Ï ¿¬½À¹ÞÁö ¾Ê´Â´Ù. º¸´Ù Áß¿äÇÏ°Ô, ¸í·áÇÏ°í È¿°úÀûÀ¸·Î »ý°¢ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÇÁ·Î±×·¡¹Ö ±³À°À» ¹Þ°Ô µÈ´Ù.

´Ù·ç´Â ÅäÇÈÀº

  • Àç±Í¿Í ¹Ýº¹(recursion and iteration)
  • ÇÔ¼ö·Î ¿ä¾àÇϱâ(procedural abstraction)
  • µ¥ÀÌŸ·Î ¿ä¾àÇϱâ(data abstraction)
  • ¸ðµâ°ú °èÃþ±¸Á¶·Î ¿ä¾àÇϱâ(modularity and hierarchy)
  • ¸Â´Â ÇÁ·Î±×·¥ÀÎÁö È®ÀÎÇϱâ(program proof)
  • ¹°°ÇÁß½ÉÀÇ ÇÁ·Î±×·¡¹Ö(objects and imperative programming)
  • °ªÁß½ÉÀÇ ÇÁ·Î±×·¡¹Ö(values and applicative programming)
  • ŸÀÔÀ» °®Ãá ÇÁ·Î±×·¡¹Ö(types and typeful programming)
  • ½ÇÇàÈ帧ÀÇ °ü¸®(exceptions and advanced control)

±ÔÁ¤ Policy

 ¼÷Á¦: 50%, ÇÁ·ÎÁ§Æ®: 20%, Å¥Áî: 20%, ½Ç½À: 10%
  • ¼ºÀûÀº Àý´ëÆò°¡ÀÌ´Ù.
  • ÇÁ·Î±×·¥ ¼÷Á¦°¡ º¹Á¦·Î ÆÇÁ¤µÇ¸é, ¼÷Á¦ÀÇ ¸ðµç Á¡¼ö°¡ 50% °¨Á¡µÈ´Ù.
  • ÇÁ·Î±×·¥ º¹Á¦¿©ºÎ´Â CloneChecker¿¡ ÀÇÇØ ÀÚµ¿À¸·Î °¨º°µÈ´Ù.

¼÷Á¦ Homeworks

  • ¼÷Á¦ ½Ã°£Ç¥
    • HW1: due 09/19
    • HW2: due 09/26 09/29
    • HW3: due 10/10 10/12
    • HW4: due 10/31 11/02
    • HW5: due 11/14 11/17
    • HW6: due 11/24 11/25
    • HW7: due 12/05
    • Project: due 12/17 12/14(league), 12/18(tournament)

ÇÁ·ÎÁ§Æ® Project

Áøµµ¹× ÀÚ·á Slides & Resources

  • ±³Àç(¹ø¿ª¼­): [ÄÄÇ»ÅÍ ÇÁ·Î±×·¥ÀÇ ±¸Á¶¿Í Çؼ®], ±èÀç¿ì ¿Ü, ÀλçÀÌÆ®, 2007
  • ±³Àç(¿ø¼­): Structure and Interpretation of Computer Programs(SICP), 2nd ed., Harold Abelson and Gerald Jay Sussman with Julie Sussman, MIT Press.
    (SICP's full-text on-line)
  • ½Ç½Àȯ°æ: MIT Scheme(or DrScheme) & OCaml
  • To view/print PDF files: Acrobat Reader
  • °­ÀÇ ½½¶óÀ̵å:
    • 0.ppt: what to teach/what to expect/policy
    • 1.ppt: programming elements, primitives, combination, abstraction, evaluation, expression, values, syntax, semantics
    • 2.ppt : abstraction with procedure, procedure application, typeful programming, scopes of names, syntactic sugars
    • 3.ppt: recursive definition, termination check, coverage check, abstraction with higher-order procedures
    • 4.ppt: compound data, pair introduction/elimination, pairs for list, type for list, type-case analysis
    • 5.ppt: data abstraction I, programming patterns I, abstraction hierarchy
    • 6.ppt: data abstraction II, programming patterns II
    • 7.ppt: implementation choices, tagged data, defensive programming
    • 8.ppt: static type-checking
    • 9.ppt : value-oriented programming (°ªÁß½ÉÀÇ ÇÁ·Î±×·¡¹Ö)
    • inductive data, inductive types
    • typeful programming, use of type inference
    • modules and parameterized modules
    • exceptions and advanced control
    • 14.pdf: programming by inductive refinement New

ÀÐÀ»°Å¸® Readings

±×·¸´Ù¸é? ¿Ö?

À¯»ç°­Á Similar Courses

 

© Copyright 2009, À̱¤±Ù Kwangkeun Yi