- Level Foundation
- المدة
- الطبع بواسطة Korea Advanced Institute of Science and Technology(KAIST)
-
Offered by
عن
The goal of this course is to help students: 1. learn new languages quickly, 2. evaluate various languages and pick the most suitable one for a given task, 3. know when and how to design a little language, and 4. understand the effects of languages on thought and communication. We will study programming language concepts, not as paradigms but as a set of basic building blocks, by 1) implementing interpreters for the concepts using the Scala programming language and 2) rigorously discussing the concepts using the operational semantics.الوحدات
Week 1
1
Assignment
- Week 1 Review Quiz
5
Videos
- Introduction to Programming Languages
- How to Design Programs
- Pattern Matching
- Syntax
- Semantics
Week 2
1
Assignment
- Week 2 Review Quiz
4
Videos
- Identifiers
- Arithmetic Expressions with Identifiers
- Evaluation of VAE
- Semantics of VAE
Week 3
1
Assignment
- Week 3 Review Quiz
5
Videos
- First-Order Functions
- F1VAE: Interpreter
- Scope
- First-Class Functions
- FVAE: Interpreter
Week 4
1
Assignment
- Week 4 Review Quiz
5
Videos
- Functions
- Lambda Calculus
- Recursion
- RFAE
- Recursion Semantics
Week 5
1
Assignment
- Week 5 Review Quiz
4
Videos
- Mutable Data Structures
- Evaluation of BFAE
- Variables
- Evaluation of MFAE
Week 6
1
Assignment
- Week 6 Review Quiz
4
Videos
- Garbage Collection
- Two-Space Copying Collection
- Lazy Evaluation
- Evaluation of LFAE
Week 7
1
Assignment
- Final Exam
Auto Summary
"Programming Languages I" is an essential course for anyone looking to deepen their understanding of IT and Computer Science. The course is meticulously designed to help learners swiftly acquire new programming languages, evaluate and select the most appropriate language for specific tasks, and even design custom languages when necessary. It also delves into how languages influence thought and communication, providing a comprehensive grasp of programming language concepts. This foundational course focuses on the fundamental building blocks of programming languages rather than traditional paradigms. Learners will engage in hands-on activities, such as implementing interpreters using the Scala programming language, and participate in in-depth discussions on these concepts through operational semantics. Offered by Coursera, this course is perfect for individuals seeking to enhance their foundational knowledge in programming languages. While the course duration is flexible, it is available through a Starter subscription, making it an accessible option for learners at the beginning of their journey in IT and Computer Science. Join now to unlock the potential of programming languages and elevate your technical skills.

Sukyoung Ryu