3. 강의목표
This course covers the basics of the **theory of programming languages**. We will begin with an introduction to functional programming and the mathematical foundation for programming language theory, and then proceed to the techniques for formally defining programming languages such as abstract syntax, operational semantics, and type systems.
We will investigate important features found in modern programming languages and their implementation issues. This course places a strong emphasis on the role of **type theory** in modern programming languages. To complement our theoretical study with practical programming, we will learn a **higher-order functional language** in the ML family.
4. 강의선수/수강필수사항
- Requirements: None, as this course is self-contained. However, familiarity with Discrete Mathematics and Data Structures is recommended.
- Expectations: A strong interest in both Computer Science and Mathematics, and a strong willingness to learn new and challenging material.
5. 성적평가
| 중간고사 |
기말고사 |
출석 |
과제 |
프로젝트 |
발표/토론 |
실험/실습 |
퀴즈 |
기타 |
계 |
| 15 |
15 |
5 |
65 |
|
|
|
|
|
100 |
| 비고 |
- Attendance (0%): Fail if you are absent for ≥ 8 classes (based on the electronic attendance system).
- Participation (5%): Full credit if you ask ≥ 4 in-person questions during or after class.
- Homework (65%): You will have 9 programming assignments (with nonuniform weights).
- Exams (30%): You will have a midterm exam (15%) and a final exam (15%).
|
7. 참고문헌 및 자료
- Textbook: Programming Languages Course Notes (by Sungwoo Park)
- Reference: Types and Programming Languages (by Benjamin Pierce)
8. 강의진도계획
More details: https://github.com/fpc-lab/class-pl-26s
- Functional Programming
- Inductive Definitions
- Untyped λ-Calculus
- Simply Typed λ-Calculus
- Polymorphic λ-Calculus
- Theorem Proving
9. 수업운영
- Theoretical lectures (이론 강의)
- Programming assignments (프로그래밍 과제)
11. 장애학생에 대한 학습지원 사항
- 수강 관련: 문자 통역(청각), 교과목 보조(발달), 노트필기(전 유형) 등
- 시험 관련: 시험시간 연장(필요시 전 유형), 시험지 확대 복사(시각) 등
- 기타 추가 요청사항 발생 시 장애학생지원센터(279-2434)로 요청