[COURSE] Add CS3110 Cornell University

This commit is contained in:
wangyx 2023-08-15 17:03:04 +08:00
parent ba9520c5b7
commit e34d8bf3d5
3 changed files with 69 additions and 0 deletions

View file

@ -0,0 +1,34 @@
# CS3110OCaml Programming Correct + Efficient + Beautiful
## Descriptions
- Offered by: Cornell University
- Prerequisites: basic knowledge about imperative programmingsuch as C, PythonJava
- Programming Languages: OCaml
- Difficulty: 🌟🌟🌟
- Class Hour: 40 hours
### Evaluation for course: Modern SICP
If the best course for getting started with programming is SICP, then following it is CS3110.
If you are unfamiliar with what a functional programming language is, or have only heard the term, then this course, just like its name, will allow you to experience what is meant by correctness, efficiency, and elegance.
CS3110 is not only limited to functional programming, but it also combines theory and practical applications extensively. The course content goes further, covering OCaml language fundamentals, data structures and algorithms, test development, formal proofs, language feature implementation, and many more topics. Moreover, these contents are not isolated; instead, they are progressive and complementary, making it highly worth studying.
The main instructor, Michael Ryan Clarkson, with years of immersion in programming, employs simple language, clear explanations, and dissects the content with precision. The course videos are even useful for improving listening skills, and understanding is effortless with the aid of English subtitles.
### A Brief History of CS 3110
CS3110 is a course meticulously crafted by Cornell University over more than 20 years. Initially inspired by MIT 6.001 SICP, it has been enriched with stricter methodologies and materials, encompassing functional programming, environment modeling, data structures, algorithms, and language implementation. In 2008, its formal title changed to CS3110, transitioning to the OCaml language. In the fall of 2018, the process of writing the [course textbook](https://cs3110.github.io/textbook) began. The current course instructor announced [course videos](https://www.youtube.com/playlist?list=PLre5AT9JnKShBOPeuiD9b-I4XROIJhkIU) on YouTube in 2021.
## Course Resources
- Recordings on youtube: <https://www.youtube.com/playlist?list=PLre5AT9JnKShBOPeuiD9b-I4XROIJhkIU>
- Recordings on Bilibili: <https://www.bilibili.com/video/BV1dv4y127Ui/>
- Textbook<https://cs3110.github.io/textbook>
- AssignmentsIn the textbook, exercises are optional, with difficulty ranging from 1 to 4 stars, noting that the difficulty between 3-star and 4-star exercises varies significantly.
## Personal Resources
All the resources and assignments used by @featherwit001 in this course are maintained in[featherwit001/CS3110_OCaml_Programming - GitHub](https://github.com/featherwit001/CS3110_OCaml_Programming)

View file

@ -0,0 +1,34 @@
# CS3110OCaml Programming Correct + Efficient + Beautiful
## 课程简介
- 所属大学Cornell
- 先修要求了解一门命令式编程语言类C语言
- 编程语言OCaml
- 课程难度:🌟🌟🌟
- 预计学时40 小时
### 课程评价: modern SICP
如果说编程入门的最好的课程是SICP。在其之后就是CS3110。
如果你不知道什么叫函数式编程语言,或者只是听过这个名词,那么这门课程,正如它的名字,会让你体会到什么叫正确,高效和美。
CS3110不仅局限于函数式编程更是将理论和实用充分结合。课程内容更进一步涵盖了OCaml语言基础数据结构和算法测试开发形式证明语言特性实现等诸多内容。而且内容之间并不割裂而是递进和互补非常值得学习。
主讲老师Michael Ryan Clarkson浸淫编程多年用词简单表述清晰内容环环相扣和剖析一针见血。课程视频甚至用来练听力听不懂开英文字幕理解起来毫不费力。
### 课程简史,摘自课程教材
CS3110是康奈尔大学打磨20余年的课程。最初发源于MIT6.001 SICP在其基础上增加更严格方法和材料涵盖函数式编程环境模型数据结构算法和语言实现。2008年正式名称改为CS3110改用OCaml语言。2018年秋季开始编写[课程教材](https://cs3110.github.io/textbook)。现任课程的主讲老师于2021年在youtube上公布了[课程视频](https://www.youtube.com/playlist?list=PLre5AT9JnKShBOPeuiD9b-I4XROIJhkIU)。
## 课程资源
- 课程视频油管: <https://www.youtube.com/playlist?list=PLre5AT9JnKShBOPeuiD9b-I4XROIJhkIU>
- 课程视频B站: <https://www.bilibili.com/video/BV1dv4y127Ui/>
- 课程教材:<https://cs3110.github.io/textbook>
- 课程作业课程教材中exercises自选难度1至4星注意3星至4星的难度跨越很大。
## 资源汇总
@featherwit001 在学习这门课中用到的所有资源和作业实现都汇总在 [featherwit001/CS3110_OCaml_Programming - GitHub](https://github.com/featherwit001/CS3110_OCaml_Programming) 中。

View file

@ -162,6 +162,7 @@ nav:
- "Stanford CS110L: Safety in Systems Programming": "编程入门/CS110L.md"
- "AmirKabir University of Technology AP1400-2: Advanced Programming": "编程入门/AUT1400.md"
- "Haskell MOOC": "编程入门/Haskell-MOOC.md"
- "Cornell CS3110: OCaml Programming Correct + Efficient + Beautiful": "编程入门/CS3110.md"
- 电子基础:
- "EE16A&B: Designing Information Devices and Systems I&II": "电子基础/EE16.md"
- "UCB EE120 : Signal and Systems": "电子基础/signal.md"