I have successfully completed the Chapter 1, Classical Information and Computation, of the Introduction to Classical and Quantum Computing book by Thomas Wong. This concludes the introduction to the basic concepts from the classical computing. Next, we’ll start with the Quantum bits.

Lessons learned

We started off by learning about Bits and how different physical systems can be used to represent a bit. We then learned how all the information, from text to images and videos, can be represented by using just two numbers, $0$ and $1$. After that, we saw how to process and manipulate bits using Logic Gates, such as NOT Gate, AND Gate, OR Gate, NAND Gate, and so on. We also learned about the idea of Universal Logic Gate Sets and Universal Logic Gates, i.e. Gates that can be used to perform all possible logic operations.

Next, we looked at Adders to see how addition is performed using Binary Numbers. We first looked at the Half-Adder along with Verilog Code and then we learned about the Full Adder with code and circuit diagrams. We then saw how half and full adders can be combined to form a Ripple-Carry Adder that can perform binary additions. After that we learned about the circuit complexity and how it can be reduced using Boolean Algebra. We also learned about the Reversible and Irreversible Logic Gates and saw how we can create Reversible Logic gate from an irreversible one (e.g. Toffoli Gate from AND Gate).

We then learned about how to detect if an error has occurred, because of a single-event upset or during transmission, and how and when to correct that error. This will be helpful when we learn about error correction in quantum computing later on. In the end, we learned about the asymptotic notation and different computational complexity classes (P, NP, NP-COMPLETE, PSPACE, BQP), and finished off by learning about the Turing Machines, the Church-Turing Thesis, and the hope that quantum computers will be able to violate the Strong Church-Turing Thesis.

Moving forward

I spent a large amount of time yesterday to try to fix my Notes website so I can share my notes with you, which you can explore interactively. Some dependency issues with Gatsby took up a lot of my time and reminded me why I hate JavaScript 😕. For now, I’ll try not to spend so much time on this and try to focus on the actual task of learning and note-taking.

As far as the daily blog post is concerned, I’m not so sure if I should do it daily as there’s not much to write about. Like for Day 3, I was only half-way through the first chapter and I wanted to share my complete first chapters notes with you, so I decided to skip the day and share the progress on Blog once the notes are complete. I’ll be following this strategy moving forward. Although I’ll update my progress daily on Twitter, I will only be posting on my blog when I have something to share, maybe after a week to outline my progress throughout that week.

If you have any suggestions or questions, feel free to comment below. Talk to you tomorrow, InshaAllah.

PDF Notes

My notes on the first Chapter of the Thomas Wong’s Introduction to Classical and Quantum Computing book.

If the PDF display is not working, you can download it from here: Link