4190.210 Principles of Programming
Lecture: Mon 16:00-17:50 @ 302-105
Practice: Wed 16:00-17:50 @ 302-311-1
Ability. You will have ability to write good programs by
learning the principles of programming.
Generality. You will learn general principles that can be
applicable to any programming languages.
Viewpoint. You will have a balanced viewpoint for
programming languages. Programs can be seen as a tool
for using computers, but on the other hand computers can be seen as
a tool for executing programs.
The topics covered are
Homework: 60%, Project: 30%, Practice: 10%
- Elements & Compound (기본부품과 조합)
- Recursion & Iteration (재귀와 반복)
- Procedural & Data Abstraction (속내용 감추기)
- Modularity & Hierarchy (계층구조로 속내용 감추기)
- Types & Typeful Programming (타입으로 정리+이해하기)
- Program Proof (맞는 프로그램인지 확인하기)
- Values & Applicative Programming (값중심의 프로그래밍)
- Objects & Imperative Programming (물건중심의 프로그래밍)
- Exceptions & Advanced Control (예외상황 관리)
- Grading is based on your absolute score, not your relative score among others.
- Any copied program will get no points.
- CloneChecker will detect
copied programs automatically.
- HW1: due
09/21 09/25 24:00. primitives, compound,
- HW2: due
09/28 10/02 10/05 24:00. recursion, typeful programming.
Note: HW2 was updated at 10am on Sep 30.
- HW3: due
10/10 10/19 24:00. typeful programming, data
- HW4: due
10/22 10/26 24:00. data implementation,
termination check, Huffman encoding, SKI reactor.
Uploaded! Check the due date.
- HW5: due
11/02 11/09 24:00. data abstraction with
multiple implementations, Turing machine, Challenge I.
English version Uploaded!
- HW6: due
11/20 11/23 24:00. imperative/stateful
programming, automatic typeful programming I, Challenge II.
HW6 uploaded! (at 5 pm, Nov 5)
- HW7: due
12/02 11/30 12/03 24:00. automatic typeful
programming II, module programming I, Challenge III.
HW7 in Korean uploaded! (at 4 pm, Nov 24), HW7 in English uploaded! (at 11 am, Nov 25)
- HW8: due
12/09 12/07 12/10 24:00. module programming II.
HW8 uploaded! (at 11:59 pm, Nov 30)
- Project: due 12/21 24:00.
Project uploaded! (at 1 pm, Nov 10)
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)
- Textbook (Translated):
[컴퓨터 프로그램의 구조와 해석], 김재우 외, 인사이트, 2007
- Programming languages used in the course:
- To view/print PDF files: Acrobat Reader
- Lecture slides:
- Part 0: For lecture, For printing(2in1, 4in1)
- Part 1: For lecture, For printing(2in1, 4in1)
Note: Slides for Part 1 were updated at 10am on Sep 30.
- Part 2: For lecture, For printing(2in1, 4in1)
- Part 3: For lecture, For printing(2in1, 4in1)
- Part 4: For lecture, For printing(2in1, 4in1),
inductive refinement examples
원리? 어떻게? 왜? 그렇다면?