# A Functional Introduction to Computer Science (Part I)

**URL:** <https://racket.discourse.group/t/a-functional-introduction-to-computer-science-part-i/947>\
**Category:** Show & Tell\
**Created:** [May 1, 2022, 3:04pm UTC](https://racket.discourse.group/t/a-functional-introduction-to-computer-science-part-i/947 "2022-05-01T15:04:12Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![plragde](https://avatars.discourse-cdn.com/v4/letter/p/ac8455/32.png) [@plragde](https://racket.discourse.group/u/plragde)\
**Post date:** [May 1, 2022, 3:04pm UTC](https://racket.discourse.group/t/a-functional-introduction-to-computer-science-part-i/947/1 "2022-05-01T15:04:12Z")

</div>

I have a complete draft of the first part of my flânerie [A Functional Introduction To Computer Science (Part I)](https://cs.uwaterloo.ca/~plragde/flane/FICS/) up. Like my other flâneries, it's based on courses I developed at the University of Waterloo, but is self-contained and freely available under a CC-by-SA 3.0 licence. It uses the Racket teaching languages. Comments welcome!

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [May 1, 2022, 5:57pm UTC](https://racket.discourse.group/t/a-functional-introduction-to-computer-science-part-i/947/2 "2022-05-01T17:57:02Z")

</div>

Thank you for doing this.

I'll take this moment to remind the community that you have made a whole set of wonderful flâneries:

- [A Functional Introduction to Computer Science (FICS), Part I)](https://cs.uwaterloo.ca/~plragde/flane/FICS), as well as its [lost preludes](https://cs.uwaterloo.ca/~plragde/flaneries/FICS/preludes.html)),
- [Teach Yourself Racket (TYR)](https://cs.uwaterloo.ca/~plragde/flane/TYR),
- [If You Must Learn C (IYMLC)](https://cs.uwaterloo.ca/~plragde/flane/IYMLC),
- [Functional Data Structures (FDS)](https://cs.uwaterloo.ca/~plragde/flane/FDS),
- [Logic And Computation Intertwined (LACI)](https://cs.uwaterloo.ca/~plragde/flane/LACI),
- [A Functional Introduction to Modular Synthesis (FIMS)](https://cs.uwaterloo.ca/~plragde/flane/FIMS).

List taken from [Prabhakar Ragde's flâneries](https://cs.uwaterloo.ca/~plragde/flane/) which has short descriptions.

Not all are related to Racket but many are - and all are highly recommended.

Stephen

---

<div class="post-metadata">

**Author:** ![plragde](https://avatars.discourse-cdn.com/v4/letter/p/ac8455/32.png) [@plragde](https://racket.discourse.group/u/plragde)\
**Post date:** [May 1, 2022, 8:51pm UTC](https://racket.discourse.group/t/a-functional-introduction-to-computer-science-part-i/947/3 "2022-05-01T20:51:57Z")

</div>

Thanks for your kind words, Stephen. LACI uses full Racket, as will Part II of FICS. FDS uses OCaml but doesn't assume any knowledge of it (I think it's actually a good way to learn OCaml). And "function" in FIMS means something rather different.
