Self-study Theory of Computation

In summary, the person is an expert in self-study and recommends the following:1. Discrete Algorithmic Mathematics by Maurer and Ralston2. The Design and Analysis of Algorithms by Levitin3. Introduction to Automata Theory, Languages and Computation by Hopcroft
  • #1
pc2-brazil
205
3
Good night,

I want to study by myself Theory of Computation and its three main areas: Computational Complexity, Automata Theory and Computability.
I find Algorithms and Algorithm Analysis to be specially interesting (although I don't know exactly where this topic fits).
I am starting to self-study Discrete Mathematics, which I know to be fundamental for understanding all these subjects. For Discrete Mathematics, I'm reading Kenneth Rosen's "Discrete Mathematics and Applications", which I find very didactic.
My doubt is the following:
How should I proceed for being able to study these subjects the right way?
By "the right way", I mean in the correct order, without missing on any basic subjects. I want to be correctly introduced to everything starting from the basics.
Are there any other mathematics requirements besides Discrete Mathematics? Is there still something "between" Discrete Math and Theory of Computation?

Also, I have the book "Algorithms" by Dasgupta, Papadimitriou and Vazirani, but I also don't know where to fit it.

My current background in Mathematics is basically: high-school math and some self-taught Calculus (limits, derivatives and basic integrals). I'm currently reading Leithold's "The Calculus with Analytic Geometry".

Thank you in advance.
 
Last edited:
Technology news on Phys.org
  • #2
I'm studying CompSci at uni, currently 2nd year and I'm a mature age student with a 10 year gap since I finished high school, so my maths is quite rusty. We use the following books:

Discrete Algorithmic Mathematics - Maurer & Ralston
The Design & Analysis of Algorithms - Levitin
Languages & Machines - Sudkamp

In my introductory maths course we studied set theory, some number theory, probability, logic and matrix manipulation - with a focus on set theory and logic. The prescribed book was quite good I thought, and I occassionally dig it out again. I'm certainly not getting rid of it, the concepts are core to Computer Science.

For algorithms and complexity, I like the prescribed book VERY MUCH! It has hundreds of great exercises and good explanations of all the topics. This is a difficult subject for me, and I've found the book invaluable. We don't use a whole lot of maths in this course, as it's quite practical (we study different sorting algorithms, data structures, graph traversal, etc). We do derive summations to work out algorithm complexity, and I've had to study up on logarithm identities

I found I was quite prepared for Computing Theory, we study languages, grammars, regular expressions, automata, complexity classes and cryptography which is an interesting application of some of the theory. We don't use much math in this course, most time is spent on regular/context-free/sensitive/unrestricted grammars and their relation to DFA/NFA/PDA/TM automata. If anything, I'd like a better understanding of proofs (by induction), as I get a bit lost in those sometimes.

I'm yet to use much calculus (except for my OpenGL procedural modelling class, and not much there), but I start on more advanced maths next semester.

So in short, IMHO, a basic understanding of discrete maths should set you up quite nicely to start on (theory of) computation and algorithm complexity.

For the record, my next purchase is going to be Donald Knuth's books on algorithms. I'm going to have a look at the ones you've listed too as I've not heard of them before (that's not saying much, I'm only 18 months into my course and don't have much time for texts outside the prescribed ones).
 
  • #3
I think that would be nice... there are more online lectures... check youtube for nptel and its course on discrete maths. and then you can see the course on numerical methods (if you are interested) on the same channel and finally you can get into the course on mit channel that deals directly with algorithms. B/w do some probability too.

I am also going to self study some of these topics in coming summers :)
 
  • #6
Thank you for your answers.

Adyssa said:
Discrete Algorithmic Mathematics - Maurer & Ralston
The Design & Analysis of Algorithms - Levitin
Languages & Machines - Sudkamp
Based on Adyssa's suggestions, I think that I could use:
- "The Design & Analysis of Algorithms" by Levitin for algorithms and
- "Introduction to Automata Theory, Languages and Computation" by Hopcroft for Theory of Computation,
both at the same time.
It is a good combination?
But, before studying these topics, I need to study well Discrete Structures.

For discrete structures, I'm using "Discrete Mathematics and Its Applications" by Rosen, which I think is very good.

schip666! said:
I'm afraid I just can't remember the name of the automata book I remember somewhat successfully poking at 10 years ago... but the Wiki FSA and Markov pages have what looks to be a number of interesting sources in their bib's:
http://en.wikipedia.org/wiki/Finite-state_machine
http://en.wikipedia.org/wiki/Markov_chain

For math, strong combinatorics and good linear algebra come to mind.
Do you think that Rosen's book provides the necessary basis (for combinatorics, discrete probability etc.)?
What about Markov chains? Is there some other math topic that I should study for this subject?

Another question:
What about Cormen's book on algorithms? I think that, besides Discrete Structures, I will need Statistics for this book.
 
  • #7
Cormen's book was recommended for me, but it's apparently more rigorous and harder going than the one we were prescribed for the course. I plan on having a look at it, when I have some more time!
 

What is the Self-study Theory of Computation?

The Self-study Theory of Computation is a branch of computer science that studies the fundamental principles and capabilities of computers, including algorithms, languages, and models of computation. It aims to understand the power and limitations of computing machines and is essential for developing efficient and effective algorithms.

What are the main components of the Self-study Theory of Computation?

The main components of the Self-study Theory of Computation are automata theory, computability theory, and complexity theory. Automata theory deals with abstract machines and their computational capabilities, while computability theory focuses on the fundamental limits of computation. Complexity theory studies the resources required to solve computational problems, such as time and space.

Why is the Self-study Theory of Computation important?

The Self-study Theory of Computation is important because it provides a theoretical foundation for computer science and helps in understanding the capabilities and limitations of computers. It also plays a crucial role in the development of efficient and effective algorithms, which are essential for solving complex computational problems.

What are some real-world applications of the Self-study Theory of Computation?

The Self-study Theory of Computation has many real-world applications, such as in the fields of artificial intelligence, machine learning, cryptography, and database design. It also has practical applications in the development of software and programming languages, as well as in the design and analysis of computer algorithms.

How can one learn and apply the concepts of Self-study Theory of Computation?

One can learn and apply the concepts of Self-study Theory of Computation through self-study, attending courses and lectures, and solving practice problems. It is important to have a strong foundation in mathematics and computer science to fully understand and apply the concepts. Additionally, practical applications and projects can also aid in the understanding and application of the theory.

Similar threads

  • Programming and Computer Science
Replies
29
Views
3K
  • STEM Career Guidance
Replies
11
Views
695
  • Science and Math Textbooks
Replies
10
Views
1K
  • STEM Academic Advising
Replies
16
Views
380
  • STEM Academic Advising
Replies
3
Views
819
  • STEM Academic Advising
Replies
14
Views
1K
Replies
7
Views
849
  • STEM Academic Advising
Replies
6
Views
154
  • STEM Academic Advising
Replies
1
Views
883
  • Science and Math Textbooks
Replies
4
Views
1K
Back
Top