# Courses, books or other resources specifically written to teach and help understand algorithmic notation?

The algorithm course/book I'm taking (based on the book Algorithm Design by Jon Kleinberg and Éva Tardos) assumes we understand the language of algorithmic syntax used to describe problems and solutions, as well as theory.

However, the syntax is not intuitive (at least to me).

Basically, how would a brand new human who only knows English, understand ever thing in this book - between the words in English?

Aware of this question and the Wikipedia reference(s), it does provide a supplemental reference for after thought, which is great when in a pinch and need to "look-up" a specific....however, when attempting new algorithm problems, the reference does not translate to a transferable understanding.

Q:
Are there any courses, books or resources - specifically written to teach and help understand algorithmic language?

It seems like a cross between mathematical notation and theory notation? Not that I even know what that is... and other strange characters.

• Algorithmic language? there are many of those.
– user147263
Jun 12, 2015 at 1:22
• I have no idea what "algorithmic language" could possibly mean. Jun 12, 2015 at 8:42
• @fkraiem: all those strange symbols between all the words in English, throughout the entire book. I was never taught what all this means...what is it even called? Sets and unions are maybe some of them....?
– P.S.
Feb 11, 2018 at 2:28
• @P.S perhaps something like this: amazon.com/Mathematical-Notation-Guide-Engineers-Scientists/dp/…. Also this: en.m.wikipedia.org/wiki/List_of_mathematical_symbols. This is assuming I'm understanding correctly and your issue is with certain mathematical symbols. Feb 11, 2018 at 5:31
• @tyberius: yes, based on the Amazon pre-view that loos like what I am looking for. On another note, I am amazed that others are having trouble understanding my question...I must be further behind than I thought....Anyways, please add as answer so I can accept.
– P.S.
Mar 16, 2018 at 3:42

Kleinberg & Tardos (KT) is a good second book into algorithms. It assumes a lot of basics. I'd place it at a senior undergraduate level with at least two prerequisites (intro programming, and intro data structures & algorithms). It could be that you are just in too advanced a course and should take a course leading into this one that will teach you the foundations.

An interesting practical/theoretical approach can be found in Sedgewick & Wayne (SW) Algorithms. It does go through a lot of basic notations and definitions in a comfortable pace. I hear there are videos for it too though I have not seen them. The approach here is close to a real programming language and its structure (Java). I do highly recommend jointly engaging with the practice of writing algorithms (also just called programming) and the theory that allows us to do this with some smarts at the same time. It may be worthwhile to supplement with a text in your chosen programming language if you do not have the background yet.

A book that fills some term definitions that you may miss in KT can be found in Michael Sipser's Introduction to the Theory of Computation. It's introductory chapter goes through all typically used mathematical notation and it defines what an algorithm is. You won't need much else from Sipser but it will give you clear and careful notation definitions that are quite broadly used across many texts.

After briefly looking at the book, I think what you're most likely having trouble with is what I would call "basic formal mathematics notation", including set theory symbols, subscript notation for sequences, notation for functions, maybe summation notation, and the use of Greek letters.

At most colleges in the United States, computer science majors typically take a course called "Discrete Mathematics" or something similar during their first or second year which includes an introduction to set theory and formal mathematics. This would include all of the notation that you're missing as well as some basic formal proof techniques such as mathematical induction. The algorithms book that you're referring to seems to expect that students have taken such a course.

My advice would be to find something like a review book or outline of Discrete Mathematics and start looking through it. I'm not that familiar with any of these, but looking on Amazon I notice Discrete Mathematics Demystified by Steven Krantz and Schaum's Outline of Discrete Mathematics by Seymour Lipschutz. You could alternatively try to get an actual textbook on Discrete Mathematics, which would be much more complete but also longer.

Why don't you try a programming course for non-programmers, like this python one from coursera: https://www.coursera.org/course/pythonlearn

• That did not seem to help, did not see anything in the course like in the book...
– P.S.
Feb 11, 2018 at 2:34