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
- Elements & Compound (기본부품과 조합)
- Recursion & Iteration (재귀와 반복)
- Procedural & Data Abstraction (속내용 감추기)
- Modularity & Hierarchy (계층구조로 속내용 감추기)
- Types & Typeful Programming (타입으로 정리+이해하기)
- Program Proof (맞는 프로그램인지 확인하기)
- Values & Applicative Programming (값중심의 프로그래밍)
- Objects & Imperative Programming (물건중심의 프로그래밍)
- Exceptions & Advanced Control (예외상황 관리)
Homework: 60%, Project: 30%, Practice: 10%
- 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,
recursion.
- 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
abstraction.
- 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.
(in Korean)
English version Uploaded!
- HW6: due
11/20 11/23 24:00. imperative/stateful
programming, automatic typeful programming I, Challenge II.
(in Korean)
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.
(in Korean)
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.
(in Korean)
HW8 uploaded! (at 11:59 pm, Nov 30)
- Project: due 12/21 24:00.
(in Korean)
Project uploaded! (at 1 pm, Nov 10)
- Syllabus
- Textbook:
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:
MIT Scheme
(or Racket)
& OCaml
- 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
원리? 어떻게? 왜? 그렇다면?
|
|