- I have been reading about this topic for quite some time. Since my college days I wanted to learn about how computers fundamentally work. I got some answers to those questions by learning about transistors, electronic gates, embedded systems, digital logical design, data structures and algorithms and some other computer science fundamentals. Then I started learning about Theory of computation in my spare time.
- Initially I started taking short notes on the topics that are easy which I wanted to put my own thoughts about those topics somewhere. So the initial topics in these notes will be short and kind of revision notes. Later as I progressed to some intermediate to advanced topics I started asking more questions about those topics. So I noted down all my answers to those questions somewhere. That’s what became this material. So you can say that these are my personal notes.
- References I have used: I have used the book “Introduction to Theory of Computation” by Michael Sipser and his lecture videos(very good explanation) about this topic on MIT OCW Youtube channel (https://www.youtube.com/playlist?list=PLUl4u3cNGP60_JNv2MmK3wkOt9syvfQWY). These notes follow the same order and same ideas as this book since I used this book as my main reference material.
- Other than the book I have used many different online resources and free lecture videos on YouTube(like Easy theory channel). I sincerely thank everyone for making some of those contents available for free.
- I have learned all these topics from various free materials available online. I thought these notes might be helpful for someone or might be motivation for someone to start learning this beautiful subject. After all, the world we are living is largely affected by the random things(events). So this material could be one of those random events.
-
I am not sure how accurate this content will be since this is my personal notes. But I have tried my best to be accurate on what I am trying to explain. So I suggest only using these notes as a supplement to some other main reference book from where you can learn about the subject.
-
The initial topics will be short and straight to the point because they seemed a bit simple for me. The later topics will be a little bit more detailed than the initial topics because I had a lot of questions when I was learning them.
- So learning something from a single source might not work out for everyone. I can be a good example for this. Whenever I am learning something I encounter a lot of questions about it, then I will start exploring some other resources such as online content or lecture videos to get more clarity on those topics. I thought these notes can be one of those supplements you can use that’s why I am sharing this.
- For the same reason I am sharing this content with everyone. When you are learning from some book or lecture videos and couldn’t get a clear picture about some topic you can refer here to get a different perspective on those topics. It may help you to understand the topic. If it really helps you then leave a star in the repo.
If anyone has a problem with this content please contact me through github issues. I am very happy to act up on them.