SNU 4190 210 Principles of Programming 10 00









- Slides: 9
SNU 4190. 210 Principles of Programming 강의: 화 10: 00 -11: 50 @ 301 -101 실습: 목 10: 00 -11: 50 @ 302 -311 이광근 Programming Research Lab ropas. snu. ac. kr/~kwang
내용 • programming principles (the practical aspect) – – – – – 재귀와 반복 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 • essential concepts of computing (the theoretical aspect) – evaluation, execution, environment, memory, bindings, names • program problem solving skills (the methodological aspect) – recursive/inductive definitions – types for specification – reasoning about programs
Computer Programming • 주로, 프로그램 = 컴퓨터를 돌리기 위한 도구 – how to make machines useful – how to talk to machines – how to run machines • 더불어 이제는, 컴퓨터 = 프로그램을 돌리기 위한 도구 – – – – programming moves to higher- and higher-level how to control complexity how to abstract complexity how to think in/for programming how to write correct programs how to prove programs correct how to write understandable programs
실습언어의 선택: Scheme + ML • simple and tiny language – focus on learning programming principles – focus on learning computing concepts – focus on learning big problem-solving skills • powerful and realistic language – can learn almost all programming fundamentals • automatic tool for typeful programming • 생소한 실습언어 = 복음 – 프로그래밍 경험이 많다고 유리하지 않음 – 프로그래밍 경험이 없다고 불리하지 않음 – 모두 같은 선에서 출발한다: 맘껏 능력을 발휘하자
실습 • MIT Scheme or Dr. Scheme @ MS Windows and Linux • SNU/KAIST n. ML @ MS Windows and Linux