# Algorithms design book / cookbook for Julia?

**URL:** <https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720>\
**Category:** General Usage\
**Tags:** books\
**Created:** [July 15, 2021, 11:12pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720 "2021-07-15T23:12:58Z")\
**Posts on this page:** 9\
**Page:** 2

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [July 17, 2021, 3:01pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/21 "2021-07-17T15:01:04Z")

</div>

Indeed, a good debugger is good ;-). But needing a debugger to do any programming at all in Matlab is not.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 17, 2021, 3:03pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/22 "2021-07-17T15:03:57Z")

</div>

Again the same argument. If you need a debugger it’s because you are a bad programmer.

---

<div class="post-metadata">

**Author:** ![bpr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bpr/32/2710_2.png) [@bpr](https://discourse.julialang.org/u/bpr)\
**Post date:** [July 17, 2021, 4:03pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/23 "2021-07-17T16:03:05Z")

</div>

I agree with @lmiq that this is for the most part, language independent. Interestingly, many of the suggestions here are for numerical algorithms; not what you are asking! I can recommend Tim Roughgarden’s books and online lectures, which are language independent, but I would highly recommend that you implement the full algorithms yourself. If you need to see complete implementations, then Sedgewick/Wayne is good, but it is in Java, which is not ideal IMO.

Given a book, I’d take a look at [DataStructures.jl](https://github.com/JuliaCollections/DataStructures.jl), which has nice implementations of many of the basic data structures.

---

<div class="post-metadata">

**Author:** ![phendric](https://avatars.discourse-cdn.com/v4/letter/p/58f4c7/32.png) [@phendric](https://discourse.julialang.org/u/phendric)\
**Post date:** [July 18, 2021, 3:10am UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/24 "2021-07-18T03:10:02Z")

</div>

> [@zdenek\_hurak](#):
>
> it should be emphasized that it is a linear algebra (plus some intro to optimization) textbook. I am not sure if it classifies as a textbook on data structures and algorithms.

Yeah, I’m pretty sure that’s not the case.

> [@zdenek\_hurak](#):
>
> which suggests that indeed some material on numerical (linear algebra and related) algorithms is actually desired.

It might be. I mentioned it more as an illustration of a time I realized a book like that might be really useful. If it has sections on combinatorics and graph manipulation / traversal in addition to all the numerical stuff, then that could be useful.

> [@zdenek\_hurak](#):
>
> although Kwong’s [Hands-On Design Patterns and Best Practices with Julia | Packt](https://www.packtpub.com/product/hands-on-design-patterns-and-best-practices-with-julia/9781838648817) has already been mentioned here and refused by the author of the original post, I would still suggest giving this book another chance.

I think the book may be useful for me at some point, but not for what I’m asking for here - it’s not a book on algorithm design / data structures.

> [@rafael.guerra](#):
>
> See the corresponding [JuliaCon 2019 talk by Tim Wheeler](https://youtu.be/ofWy5kaZU3g)

I watched the entire talk, though I didn’t get through all of the questions. Unless I’m missing something, the only part of the talk relevant to this conversation was the part where Tim says most algorithims books write pseudo-code, which doesn’t compile or run and can’t be tested for correctness. It strengthens @lmiq’s assertion that most algorithms books are language independent.

> [@bpr](#):
>
> I agree with @lmiq that this is for the most part, language independent. Interestingly, many of the suggestions here are for numerical algorithms; not what you are asking!

Yes and yes.

> [@bpr](#):
>
> I can recommend Tim Roughgarden’s books and online lectures…

[These](http://www.algorithmsilluminated.org/)? Yes! I’m looking for something like these. I’m already reading the intro to the first book, and it appears to be on-topic for my request and very well written.

> [@bpr](#):
>
> I would highly recommend that you implement the full algorithms yourself.

Yes. Doing greatly helps me learn.

> [@bpr](#):
>
> Given a book, I’d take a look at [DataStructures.jl](https://github.com/JuliaCollections/DataStructures.jl)

Thanks. That’ll probably be phase two of my foray into algorithm design. Want to work through (relevant) books first.

---

<div class="post-metadata">

**Author:** ![blackeneth](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blackeneth/32/10353_2.png) [@blackeneth](https://discourse.julialang.org/u/blackeneth)\
**Post date:** [July 18, 2021, 8:14pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/25 "2021-07-18T20:14:45Z")

</div>

I’ve read answers to similar questions, and a lot of computer science grads recommend [An Introduction To Algorithms](https://mitpress.mit.edu/books/introduction-algorithms-third-edition), often referred to as the CLRS book.

---

<div class="post-metadata">

**Author:** ![phendric](https://avatars.discourse-cdn.com/v4/letter/p/58f4c7/32.png) [@phendric](https://discourse.julialang.org/u/phendric)\
**Post date:** [July 19, 2021, 3:36pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/26 "2021-07-19T15:36:23Z")

</div>

> [@blackeneth](#):
>
> I’ve read answers to similar questions, and a lot of computer science grads recommend [An Introduction To Algorithms](https://mitpress.mit.edu/books/introduction-algorithms-third-edition), often referred to as the CLRS book.

Thanks. I recognize the cover…which probably means the university I graduated from uses it as a textbook. Have never looked inside, though the [ToC](https://en.wikipedia.org/wiki/Introduction_to_Algorithms) looks interesting and relevant.

---

<div class="post-metadata">

**Author:** ![tobydriscoll](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobydriscoll/32/1843_2.png) [@tobydriscoll](https://discourse.julialang.org/u/tobydriscoll)\
**Post date:** [July 29, 2021, 10:55pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/27 "2021-07-29T22:55:55Z")

</div>

@zdenek_hurak Yes, in fact, the next edition of FNC will be all-Julia! I have been updating all the codes, text, and exercises (of which there are now 499), and expect formal publication in early 2022.

Thanks to the jupyterbook project, the text will be fully HTML, with a printed copy available. We hope to offer code editing and execution in-browser as well, but that is TBD.

Feel free to have a sneak peek at [http://tobydriscoll.net/fnc-julia](http://tobydriscoll.net/fnc-julia).

---

<div class="post-metadata">

**Author:** ![zdenek\_hurak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zdenek_hurak/32/53118_2.png) [@zdenek\_hurak](https://discourse.julialang.org/u/zdenek_hurak)\
**Post date:** [July 29, 2021, 11:05pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/28 "2021-07-29T23:05:00Z")

</div>

That is awesome. By the way, do you consider any systematic way of receiving some feedback like a github issue tracker or anything like that? Or just emails? Just in case.

---

<div class="post-metadata">

**Author:** ![tobydriscoll](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobydriscoll/32/1843_2.png) [@tobydriscoll](https://discourse.julialang.org/u/tobydriscoll)\
**Post date:** [July 29, 2021, 11:11pm UTC](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720/29 "2021-07-29T23:11:37Z")

</div>

When it comes to the core functions, an issue at the [public repo](https://github.com/fncbook/FundamentalsNumericalComputation.jl) would be appropriate. (The README there is out of date at the moment.)

For text material it’s less clear. I’ve received mainly email notices for the original edition and it’s worked fine; not everyone wants to go through github for that sort of thing. It’s also hard to constantly update a text, since it gets a DOI/ISBN and all that jazz.

[Previous page](https://discourse.julialang.org/t/algorithms-design-book-cookbook-for-julia/64720.md?page=1)
