 Spader, who was an associate professor in Colorado University and is also part of a researcher in Quantinium. So please go ahead. Thank you. Thank you. Hello. OK. So I'm making sure that this works here. OK. So thank you very much. So at Quantinium, I'm pretty much responsible with some Mark Jackson and Thomas Sarwoni. We are like academic outreach travel universities and talk about Quantinium, but also about quantum computing and so on. So today, I want to now give the second lecture on Introduction to Quantum Computing. So it's going to be a little bit different flavor now. So you have been now told how you went from the Turing machine to kind of P and MP hard problems and how you would like to have your computer to be able to do statistical computations. And then you have been shown where classical probability theory kind of breaks down because you have to think about quantum mechanical concepts. So what we're going to do now in this lecture is I'm going to make these slides available to you. And my notes after my lecture today, I will use the board in conjunction with the slides. So I'm going to work between the board and the slides. If you do not have a notebook, here's a stack of notebooks. I'm going to give you now five seconds to pick up your notebook. If you haven't done so, go get your notebook. Active writing. And there are pens, I think, right next to it. Because we all tend sometimes to fall asleep, which is OK. Well, I didn't know that notebooks can sew up notepads to write on can be that popular. That's amazing. OK, great. If you still have a notebook, just go around on the side and get one. So that's good. OK, great. So let's quickly go over the topics. I want to cover now the next hour. So it's quite a lot of material I want to cover. But first, I want to kind of tie on to what you have heard right now and talk about logical bits in the classical sense. And then I want to introduce the idea of classical bits versus qubits and how they are the unique properties of quantum computing common to play there. We'll talk about the postulates of quantum mechanics. I'm going to give you an overview. Each of them are probably a lecture by themselves. But you should get an overview, just in case you have forgotten. Then we'll discuss the Bloch sphere, which is a way of visually representing the qubit. And then we'll do a little bit of complex numbers and linear algebra that we use for quantum computing. And then we'll talk about a quantum circuit model. So I will not do any programming yet when we get to the quantum circuit model. At the end, you pretty much then in the afternoon, you will be exposed to ticket, quantum SDK, which is state of the art. And you will learn then how to implement quantum circuits using ticket. That's in the afternoon today. So let's get going. So first of all, I want you to do a little bit of an exercise here if I can connect with you. But first of all, let's go back to kind of like logical circuits. All of us are used to logical circuits. We have our cell phones that work with logical circuits. So even simpler than our cell phone, what is another example of everyday's life where you have a logical circuit? I can imagine a little chip in a device at home, maybe? Anyone? Switches, yes, switches, on-off switches. Yes, so switches, any kind of remote control you have. These are all based on logical circuits. So pretty much logical circuits, as you know, you have your logic gates. And pretty much for logical circuits, you have either a 0 or a 1. So this is a logical bit. You start there, and then when you are developing a circuit, your fundamental building block of logical computing, what you do is you kind of have gates that help you go through your computation and what you like to do. So first of all, in logical circuits, what you have is you have some kind of input, then you do something, do something, and then you have an output. So we have learned today that obviously in order to do that, you must have some kind of function you work on or your computation you work on. And in a logical circuit, what you have, you have these gates. And there are many of these gates. For example, the AND gate, the OR gate, the NOT gate, right? And each of what these do is you take an input, you have this gate, that that's your computation, and then you get this output. So what you see up here is a lot of different tables. I do want to write this down. So here you have the AND gate, which looks like this. Then you have your table. So the idea is you have an A going in, you have a B going in, and you have a A and B coming out. So this is kind of like what logical circuits do. So if you have an A and a B, you go in with a 0, 0. You add them together. A and B gives you 0. So both of the input and output have to be one in order to get that one for output. Let's go back to how does it work on a level of computation or in a device? So how does it work? So you have typically a transistor, right? So you have a voltage going in, right? And then you have some kind of chip, some material, that's very smartly sandwiched together in order to do the computation for you. So for example, you have this chip. When you have voltage going in, just say for being easy. So 1 would be 1 volts and 0 would be 0 volts, right? You go into the chip. The chip has a smart setup. And then it gives you the output exactly how you would like to put the gate together. So in any case, so you have all these gates. And then what you do when you have a logical circuit, like talk to you about, this is, for example, the NOT gate. If you have a logical circuit, you have some computation in mind. What you do is you add these different gates together, OK? So I want you to think about it. And I'm going to write it down, too. You also have a cell phone, right? But for example, now, if you just want to think about something very simple, your garage door opener, right? So you want to design a circuit using basic logic control to have your garage door open, right? So first of all, you're going to have to have a remote control, right? That either is active or inactive, for example. And then maybe you want to detect an obstacle, right? So for example, you don't want your garage door to close, for example, when there is an obstacle, right? So I don't know how many of you have played with the sensors in the garage door opener. I've spent a lot of time on that in my house. By any case, you can think about how could you put a logical circuit together in order to have a garage door opener. So maybe I give you five minutes to, you know, five minutes is a little bit too long. But I give you a little bit of time to think about that. So what you want is you want the door to open only if no obstacle, garage door opener. So the way you can think about it, so A, let's say this is your opener, and B, let's say that's your obstacle, detector. What you typically do is you look at the sentence and says, like, and, right, is active. There's a couple of, like, words you can see there. But in any case, what you could do, for example, you can say, well, at the end of the day, I want to have kind of like an AND gate, right? Where I say that both of them have to be one in order to get a one output to open or close, right? So in this way, you can see, well, this is maybe, this is an input here. I have into my AND gate. But then B, that's your obstacle detector, right? So typically, your obstacle detector is zero when there is nothing in the way, and it becomes one when there is something in the way, right? So what you want, you only want to open it or close it when there's no obstacle, right? When I close it when there's an obstacle. So you want here a NOT gate, and you want that to go in here. So this is a NOT. So only when B is not, when there's no obstacle, you want, after A, being active, you want it to open, right? So you can try in town, just call a truth table. So you can think about what's A, what's B, what's your output. And you can go through all of these possibilities. So when A is active, and when B, when I don't have an obstacle, right, what happens here now in this intermediate step, because B is not active, it becomes a one. So now, maybe we should do here, sorry, a B. So now it becomes a one, and my output is one, and my garage door opens, right? So we can go through this truth table to figure out what you're doing. So this is a classical circuit. And it turns out that quantum computing is very similarly set up where you have gates that do operations on an input in order to get your output, OK? The difference here is this is a truth table. This is deterministic, right? You know your outcome. We just heard about there's ways of doing it probabilistic. So the output for quantum computers will be non-deterministic, right? So there's going to be a probability you have to work with. So we'll build up to this. OK, so you've probably heard about bits, as we talked about already. And there's a calculation, right? So typically, you have zero at once. And if you want to, for example, take a bit string, and you want to turn it into bit string, and you want to turn it into your decimal number, right? You can do some math. So for example, if you want to build an adder, right? You want to add two numbers together. You would represent five in terms of bits, and six in terms of bits. Then you have an adder, gates to add them together. You build an adder circuit, for example. And then you get, again, a string of output bits. And then you convert them into your decimals, right? Which you use in a computer. So you know how this goes. So typically, you have some numbers, right? You have a bit string. And what you can do with this bit string is you can pretty much say, well, the decimal number is you take the entries of your bit string, and you multiply that number times 2 to the i, right? So where i is your exponent. So how do you do this? And i depends on the position, right? So for example, as an example right now, let's look at a value. So example, which I have up next, what is the binary number of 1, 0, 1, 1 in a decimal number? So we have here a suggestion, 11. So let's do this. So 1, 0, 1, 1. Oh, yes, 1, 0, 1, 1. So this is your first one, right? So this would be now, if you relate it, would be 1 times 2 to the 0 plus 1 times 2 to the 1 plus 0 times 2 to the 2 plus 1 times 2 to the 3, right? So you have 1 plus 2 plus, what's this? 8, which gives you 11, right? So this was a crash course in kind of like how you do a logic circuit. What do you do with bits, right? You get the deterministic output value. This is 11. OK, any questions? So now let's talk about quantum bits a little bit. And while I do the active exercise of raising, so I talked about bits. Now let's talk about quantum bits. So we call these quantum bits qubits, as it says up there. And you can also quantum bits qubits. You can sometimes see them written differently. But the unique thing about qubits is that they are not deterministic. And they are kind of used as a tool to explain to you how quantum computing works and what's the uniqueness thing about it. And then we have come up with a very nice and smart mathematical ways in order to do computation on these qubits and describe what they mean in a function. Because mathematically, we like to work with functions. So the first thing I want to point out is that you have a qubit. You have seen this notation already in the previous lecture. So it can be in state 0. It's a state 0. Then you also have your state 1. So if you've seen this notation before, this is written in terms of direct notation. So 0, as you've seen already, this is in direct notation. So this is a column vector. So this is also called a cat. So cat 0 and cat 1. So the thing about qubits now, which is interesting, is that a qubit is a two state system. So it can be in state 0 and state 1 simultaneously at the same time. So compared to a classical bit, you are either 0 or you're 1. That's it. You have to make up your mind. You flip a coin, it's 0, 1, in essence. So you have to make up your mind. A qubit, on the other hand, is both states at the same time. It doesn't make up its mind until we measure it. So this is very, very much different to the classical bit. So if you think about it, you could have the state 0 to be, you spin to the left, and the state 1, you spin to the right. But if you're a real qubit, you spin to the left and right at the same time. You don't know what you're doing. You can't make up your mind. So that's the difference between a classical bit and a qubit. And it kind of goes deeper than that. But that's the main thing right now you have to understand is that it has the simultaneous properties of both states. And we call this a superposition. So that is the important thing right now. And we'll go through the math in just a bit. Oh, yeah, sorry. Good, Brownie points. Yes, thank you. When you are going through computation, quantum computing, there's a lot of different ways of you are developing a quantum computer. So you can have photonics qubits. You can have trapped ions, superconducting qubits. And they all have a different ways of computation. So a qubit for photons could be a different polarization. It could be horizontal polarized and vertically polarized. And you manipulate the qubits in terms of using kind of like photonics devices, filters, for example, rotations and such. If you have trapped ion qubits, then you have some kind of ion. And you think about the different energy levels. So a zero qubit would be a lower energy level than one qubit of the energy level of the ion. Superconducting, again, has different ways. Trapped ion quantum computers are used typically lasers to manipulate the state of your qubit. Then superconducting qubits like IBMs. So we have trapped ion quatinium and superconducting qubits. Then you have, again, a superconducting circuit and use kind of pulses, microwave pulses in order to manipulate between these two states. So again, these are just a few of them. There are more out there. And you can look up details. So now let's go into the postulates of quantum mechanics because they're very important for quantum computing. So sometimes you hear about a postulate, you hear about principles. There are different ideas of scientists have come up with during history. Some of these postulates were kind of like given. And then sometimes we have done experiments to show that they're true. Some of these postulates are still not well understood in quantum mechanics, and we need to understand them better. But in any case, quantum computing is pretty much a consequence of all of these postulates and principles in quantum mechanics that made it possible for us to actually have actual hardware to run a quantum computer on. So some of these postulates in quantum mechanics, how many of you have not taken quantum mechanics? Good, so all of you have. So this is the review. So you know that there's the state postulate. So a vector describes a quantum system. You have to measure and postulate until you measure something. I don't really know which state your system is in. It has to collapse. There's a superposition postulate. I just talked about you have the quantum system exist in a superposition state of zero and one. And then you have this evolution postulate that you have your state, which you have, your quantum state evolves over time, right? Which if you use the Schrodinger equation to describe that. Then there's different principles. Kind of experiments have shown that quantum mechanics follows these principles. You've heard about the wave particle duality. For example, particles exist both wave-like and particle-like features depending on what you do. Uncertainty principle, right? You know that if you know momentum very well, you don't know the position well, right? And vice versa. That's one of the limiting factors of quantum mechanics. And then you also have the entanglement principle, right? So you can entangle states. So when they are far, far apart, you can still kind of communicate with that state. So there's some intrinsic correlation between the two states and that's also very unique for quantum computing. Then obviously as consequences of these postulates and principles, for example, is that you have quantization. So certain physical properties, you have discrete energy levels, right? That is not very obvious from classical mechanics. Where you have rather continuous values, right? Your function is continuous in classical mechanics, for example. Then you have interference, which we already talked about today a little bit, that you have the quantum particles that can interfere with each other constructively and destructively, and that's an important tool for quantum computing. And yes, quantum computing is a consequence of these principles. So in any case, you know you study quantum mechanics fairly deeply, and then all of these things you learn in quantum mechanics feed into quantum computing, which is just very nice. So pretty much now what I want to do is I want to kind of talk a little bit about superposition principle, right? So when we talked about that your qubit has two states, it can be zero and one. But in principle you could have k states, right? So classically think about energy levels. You could populate the zero state, the first state, the second state, the third state, and so on, right? So you have many states. So classically you have all these states, you could populate with and each of these states could be assigned to something, and you could use that for computation. So in principle you could have k of these states, we typically work with two, a qubits of two, right? So with two states, the zero state and the ground state, but you can have many of these. So in principle you could have k states if you wanted to, and people are looking into ways of having more states in their bits for quantum computing. So this is something we talked about already. So you have your quantum state and you want to write your wave function. So this is something very important now, that when you write your wave function, you're shooting at the equation the way your qubit state evolves, so you have a wave function. We typically call it capital psi. Again in the ket notation. And then what you have, you have a probability amplitude in front of it. So you may have the zero state, plus you could call it actually alpha sub zero, I believe. Yes, and then you have alpha sub one for one to alpha sub k minus one, k minus one. So in the case, this is your wave function. This is what you evolve over time with your Schrodinger equation. You can also write in terms of a vector, which are still not there, and then you have to have them to be normalized. So in any sense, your state, your quantum state is a unit vector in the k space. It's a complex space, and it has to normalize to one. And we also know this as Hilbert space. And then, also in order to operate on this wave function, so typically when we do operations, we apply a unitary operator to that wave function. Okay, so now we are going to, this is your input, right? Go back to your classical idea of gates. This is your input, right? Now you're applying some gates or operators to that input to get a new output. So you're doing an operation on your state function, a state vector, and that's how you do it. So these operators for quantum computing are matrices. These are Hermitian matrices, and they have a very specific property that if you take the complex conjugate or transpose u dagger, you do u, u dagger, or u, u to the inverse, right? The inverse matrix. Then you get the identity matrix back, and that's a very important feature of quantum computing. It's a very important feature. We talk about circuit optimization to run it on a quantum computer. They even make it possible to run on a quantum computer. Unitary matrices are very important because we've all learned about gates, basic gates of a quantum computer, and they all connect to this unitary matrix. So that's a very important concept. Okay, so now, just as an exercise again, again imagine you have these Baudy matrices. These are very common in quantum computing. These are Hermitian matrices. These are two by two matrices. And for example, you want to show that they are indeed unitary operators. How would you do that? So you have sigma sec x, which is 0, 1, 1, 0. So how do you show that this is a unitary operator? You sigma x, sigma x conjugate, right? So you have this, right? Times the same, right? And if you do this, because you have to do the dot product between it, right? If you do the math, you should get your identity matrix, right? So that's how you show it. If you wonder how to do this, so you do this times this plus this times this, right? You have to this entry, this times this times this times, oh yeah, so this times this, this times this, and so on, right? So you go through your entries in that way. Okay, so now let's talk about different qubits. So if you have one qubit, right? And you only have two states, the zero state and the ground state. You write this down in the superposition, where alpha sub zero and alpha sub one are your probability amplitudes we talked about before. You square these, these give the probability of being in a zero and a one state. You can write the wave functions term of a column vector, instead of the bracket notation, and then you have a unitary matrix that operates on your one qubit, right? So now what happens if you have two qubits? Well, if you have two qubits, it's getting a little bit more complex, right? So now each of these qubits can be simultaneously in the zero and a one state, right? So now you have four different states. You can put your single qubit in, up, down, down, up, or like zero, one, right? So you have four different states, and each of them is gonna have a probability amplitude assigned to them. Again, this is your wave function. If you square your probability amplitudes, you get the probability out. Again, you have your bracket notation here, right? This is your column vector, and your unitary operator is now a four by four matrix. Okay. Also, I wanna say here, we talk about Hilbert space sometimes. So your two qubit system, once qubit system lives in C squared, Hilbert space, your two qubit system lives in the C to the fourth Hilbert space. If you now have multi qubits, right? Now again, what you have, you have to think about each of these qubits can be in two states simultaneously, right? So now you have two to the n possible states. So you see how this is blowing up quickly. And that's where quantum computing is making big leaps, right? Because if you have 50 qubits, you're already talking about terabytes of information, right? So it's blowing up quickly. So quantum computing is gonna be very, it's impossible to do like model classically if you have 50 qubits. It's just you're gonna need too much computational power from a classical computer. So in any case, you can see how it flows up. And you can also see like computationally how it gets, that's why it's so difficult, right? Imagine you have a two to the n times two to the n matrix. You have to all write it all out, right? And you have to go along. Maybe I've heard about sparse matrices that's so much easier in quantum computing than we've worked with because you have lots of series you can throw out, right? So it makes it a little bit easier for your computer. But in any case, you can now appreciate why it blows up. It just gets bigger and bigger and bigger and bigger. And eventually classical computing can't, you know, simulate this. So let's just get you an idea about what a single qubit is, what two qubits are, multi qubits. Obviously we can work with more states and then it actually gets more complicated. But typically our qubits now in our actual hardware has two states, right, a zero and a one. Okay, we really did this a bit twice. Okay, so now a lot of you have heard about a block sphere. So who has not heard about a block sphere? Okay, so most of you did, right? So a block sphere, this is your physical representation of your qubit, right? So in essence, what you can think of is that your qubit can be either, you can think about the qubit being on this block sphere, it's a vector on this block sphere with lengths of one. And you use spherical polar coordinates to describe the position of that vector. And pretty much what you do when you do a computational process, you can think about this that you have your block sphere, you initialize your state function, right? In a position, maybe in a zero state. And then what you do is you apply these unitary operators and what you do is you rotate your vector on that block sphere, okay? So in essence, that's what you do. So each qubit is in essence a vector on this block sphere of radius one. If you have multiple qubits, you have multiple of these block spheres and then if you entangle the qubits, the spheres in essence talk to each other. But it's a little bit difficult to draw this picture. By any case, this is what we use typically in order to describe qubits. So it's a very nice visual representation of what a qubit does during a computation. So what you add is you add these matrices. And that's another thing about these Hermitian matrices. They are rotation matrices. So maybe you remember in classical mechanics, right? When you talk, when you go between different, you go between different, yeah, representation, you want to rotate it, right? On somehow for application or you want to go to a different space, you have to rotate it. And that's what all unitary matrices are. So pretty much rotations on this block sphere. So yes. So pretty much then if you have your block sphere, right? And I'm not really good at drawing. It's why I have a picture up there, right? But if you think about this, you're looking at the block sphere this way. So see, this is the y-axis and that's the c-axis. Here we have state zero. And here in the bottom, we have state one. And you have a vector there. You are thinking about the probability amplitudes, right? So in essence, you can think about the projections. But these probability amplitudes are the projections on the c-axis. But then when you actually measure, when you measure a cube with what it does, it jumps either to this state or it jumps to this state, right? So it becomes then that value on a block sphere and it sticks there. It stays there, okay? So it becomes then once you measure it, this qubit on this state vector jumps to this state or this state. So it collapses onto the zero and one when you do a quantum computation. Okay. So let's see your time. Yeah, so this is what I said here in words. So typically what you do, if you have one qubit really talked about this, you have it in a bracket notation, you have your zero state and your one state. If you wanna calculate your alpha, right? What you do is you take the inner product. So you may have seen, remember that in quantum mechanics. So you apply the bra to your wave function, right? So what is the bra? That's now a row vector, right? So that would be then one, zero. So now this is your row vector. So it's a bra and the other thing was the cat. That would be this way. So in the case it's the inner product, so you have then you have to multiply a row vector times a column vector and then you get out a number. If it's imaginary, right? You're gonna take the complex conjugate and you get alpha squared, which gives you the amplitude. You do the same thing for beta and so on. So you can do also now, you can map your qubit onto the block sphere. So you can take this equation here. Okay, here, this equation. And you want to map it onto the block sphere. So onto here. What you do in this case is you are told you that you know from the postulates of quantum mechanics that alpha and beta must be complex numbers. So you can rewrite them in the Euler's notation. And then pretty much what you can do is you can go through the algebra and you can go back, right? This was your alpha, this was your beta. You put in your Euler notation, which are angles, right? So for your Euler's notation or science and cosons, if you wish. You can factor out the E to the i theta one. This is a common phase. And this phase, remember what the phase was on the block sphere? The phase of the block sphere took you around, right? Like this. This has no effect. Like an overall phase does not have an effect on your amplitude or probability amplitudes. So you can take that overall phase out. And now what you do is rewrite this in this fashion. So now you have alpha, upset value of alpha. And then here you have a phase, a complex, possibly complex number, right? Here in front of your one state. And then you can even go further and pull a coordinates that's a little bit more mathy, a little bit more messy, have to go through a lot of algebra. But at the end of the day, what you end up with is this representation of your psi function where you have your theta, right? Your theta takes you from up to down on your block sphere. And then you have your phi. E to the i phi, that's your phase angle. Takes you around the block sphere. So your qubit now can be represent on this block sphere very nicely. So either you can use your bracket notation, which is very nicely a way of representing it a very compacted nicely. Or you can go onto a block sphere where you can think about rotations on a block sphere. So these are different ways. So when you do a computation, you can think about it in these different ways. Okay, so now the last thing I wanna do now is to cover quantum circuits, okay? So quantum circuits is a way of doing your computation. And in essence what you have here is a quantum circuit. I gotta redraw this a little bit because late check doesn't necessarily show you the circuit you will see when you start computation today. So what you have is a quantum circuit. So typically start with your state, right? That's your input. Then we call this a wire, right? So this is a wire. So now we're gonna do computation for this qubit on this wire. So this is the qubit one. Typically actually we call this qubit zero. So in ticket what you're gonna see here is q sub zero. That is gonna be your first one. So now we're gonna do a computation on this wire. So we call this a wire. Time is going this way. And then what we do is we're gonna do a unitary operator, okay? We can apply that to the wire. And then we keep going. And then what we could have because we have two qubits. So maybe your qubit one is maybe initialized to a random input, right? It could be a random state function. Doesn't have to be clearly in the up and the zero position or down position. It could be any. Again, you have a wire. You maybe apply another unitary matrix. You shouldn't do your prime. So we call this u one, u two. And then you could have some unitary matrix u that maybe is in this case four by four matrix, right? And then you can now, for example, entangle it and you keep going. And then eventually what you do is you measure out. You measure your qubit. Why do we need to measure your qubit? So we measure our qubit. And then what we do typically what you have, and this is kind of like drawn differently up there, but here you have your classical registers, okay? So maybe here you have your first one and here. So you have a classical register one and classical register two. So what you can do is you can measure them out, right? During the school for the next four days, you will see algorithms that actually can measure things out. And depending on what you measured out and what result you got, you can feed that back into your algorithm, right? So this is pretty cool. We'll do that quite a lot. For example, for quantum error correction and that other like algorithms that have it. But this is your input. This is your algorithm. That's your measurement function, right? And obviously what you can have, you can have it even more complex. You could have this classical, your classical computer, right? Have doing some classical computation. And then part of the computation is fed into a quantum computer. And then information comes out from the quantum computer and then you do a classical computation. So there's also something called hybrid computing. So in essence, your quantum computer will never be by itself. It always gonna have a classical component to it that you need for computation, okay? So that's kind of like the very beginnings of a quantum circuit. Now, let's talk a little bit about some of the gates you may experience this week. One of them is the Hadamard gate. So Hadamard gate is an H gate, right? We call it H. You see up there, it's a two by two matrix. It's a one over square root of two. It looks like this. And what you do in this case is here, you can now imagine if you have a quantum circuit. So here you have your initial state. Now you apply a Hadamard gate. What is the output, right? Output wave function. So what you do, this is kind of like intuitively, but what you do is you apply the gate here. So what we're looking for, the output wave function is the Hadamard gate applied to the zero state. So now you have a two by two matrix. So we're gonna do this one over square root of two. You have your one, one, one minus one. You apply that to your zero state, right? You go through the matrix multiplication and what you get is one over, sorry, one over square root of two and you get one, one. Again, remember, this is your direct notation, right? So this is your direct notation. So remember that your zero was your one zero and your one was your zero one. So now you can rewrite this as one over square root of two. Of zero plus one. So what does this Hadamard gate do? It took a qubit that was initialized up on a block sphere, rotated it in a superposition of between your zero and the one state, right? So the Hadamard gate is the gate that puts your qubit into superposition. So you will see Hadamard gate in every circuit in quantum computing because it puts the qubit in superposition and that's how you do it. You can think about a rotation on the block sphere or you can think about it as bracket notation matrix multiplication. So there are many, many, many two qubit gates you will experience or see or work with when you do quantum computing. I obviously don't have time to go through all of them but you know there are, which is out there. You can Google them, you can see them. We have an explanation in our ticket documentation too. But pretty much these are your different rotations. Baoli x, Baoli y, Baoli c gates, right? Rotation about the x-axis, y-axis, c-axis, s-gates, t-gates, there are different rotations. You can also have gates that don't rotate at any given angle, right? So for example your quantum computer, quantum devices can have unitary operators that rotate just a little bit or a lot so you can rotate any angle on your block sphere. So you can think about your matrix rotation, you can think about rotational block sphere, whatever works best for you to understand how algorithm works you develop then during the hackathon for example. Very important is the tensor product that you will see and you have to work with. It's used to combine qubits into a joint state, okay? So first you have two qubits, right? You have two qubits here, they're on each of them wire. The wires don't talk. Now you have to somehow join them, right? So when you do that you are applying an essence, a tensor product, but it's more than that because when you entangle things it's getting more complicated. But if you want to join the two qubits typically you use a tensor product, the map is up there which is very important in order to make a joint state. So then you get for two qubits you get a two, hold on. So it's like a column vector of four entries, right? When you have three qubits how many entries does your column vector have? Eight, good. If you have n qubits two to the n, right? So again, very long column vector. Okay, then what you're gonna also introduce in your computation is something called the C naught gate. So now the C naught gate, that is your unitary operator that for example IE C naught gate, right? So this unitary operator here for a two qubit system could be a C naught gate. And again, there are different types of gates there. In this case, if your qubit one, which is your kind of like your initial qubit, right? Is in state zero then a C naught gate acts as the identity gate on qubit two. If qubit one is in state one, the C naught gate applies a naught gate to qubit two, right, so it flips it. So again, sometimes you can actually see controlled naught, that's what that means, right? So you have now the logical naught gate we talked about, right, the flipping gate. So this just means controlled. So you have a qubit that controls the flipping or not flipping, that's another qubit, right? So that's your naught gate. So again, you can have many, many, many of these gates. You can have a swap gate where you swap your qubits, the position of them. You can have your controlled Y, applies a Y gate to a second qubit if the first qubit is in the one state and such. So there are many, many, many of these, of these processes you can think of. You will experience many of these gates. There are also three qubit gates, okay? They're entangle three qubits with different control sequence and such. So it goes on and on. We have developed many of these things. And the important thing I wanna say here is that controlled naught, that's a typical gate operation you can do in your quantum computer, okay? That's how you entangle typically to qubits. Can you represent the C naught gate on a block sphere? No, right? So two qubit gates you can represent on a block sphere. You cannot represent on a block sphere, right? The single qubit gates you can, these are rotations, but the two qubit gates you cannot. So that's why the block sphere has a limited representation here regarding how algorithms work. That's one thing I wanna say. And then I guess just as an exercise, you know this is a very, very common exercise you have seen, but just to get us all to the start, what you need to do now, for example, if you think about the Bell state, the Bell state is a state, there are four Bell states, and it's kind of like the most basic quantum state that entangles two qubits. And in this case, what I want to do, right? So what I haven't told you now, maybe I should go back. So zero, so now you have the tensor product of zero, right? That gives you now a one zero zero zero, right? Or you can write this as zero zero. So this is your tensor product, so you have two qubits, you put them in a combined state with the tensor product. So now the question is, how can you design this circuit, which is the Bell state, using the gates we discussed, okay? You wanna use the, a lot many gates, you wanna have a two qubit gate, you wanna use the least number of gates because in quantum computing we'll talk about it, the more gates you have, each of them are operation with lasers, or they're operations with a filter, or they are operations with a microwave, and each of these operations will add noise, right? Because your quantum computer is not perfect, it's gonna obtument errors. So for example, one thing you wanna do when you do algorithm development is you wanna apply the least number of gates because each of them gonna add error. So in any case, if you wanna think about this, what I want here is again, the one over square root of two, that's your altitude, you squared it, so one half of the time, you wanna have both qubits in the up position, one half of the time, you wanna have both qubits in the down position, okay? So that's what you're looking for, and typically your quantum computer starts with some initial states for each of your qubits, and in this case, both of them are up. So just assume that you start with this. You have qubit one, qubit zero, sorry, this is a little bit confusing, but this is what your quantum ticket is gonna do. You're gonna have a zero and one qubit, so it's gonna be initialized in the up position, and now we have to do a computation, right? So now we have to put it first into superposition, right? So which gate do we use to put something in superposition? Hadamagate, right? So we apply the Hadamagate, so, and then what you wanna do actually, you wanna apply the C naught gate, and I think you see it differently. So C naught or X naught, it's a controlled exportation given your target qubit. Sometimes you see this here as, you can also see it in terms of this, right? The X. Ticket will give you an X here. If you work with Qiskit, it has this symbol, and then in any case, you are measuring out, right? So this is then your final state. So if you wanna write this down, you can show mathematically that, I also have to make sure that I get that right, because I always mess up where the I is. Yes. So if you wanna do it mathematically, what you do is you have your zero, zero state you start with, then you have to do a Hadamagate. You have to bring these two qubits, right, into superposition, and then you are applying the C naught gate in your, to your circuit, okay? So what it does here, this right, so Hadama with the identity matrix, this gives you a four by four matrix. So if you wanna write this all out, it looks like this. So make sure that I got that right. Yeah, so let's do it step by step for those who have seen this. So zero, zero is your one, zero, zero, zero column vector. Then what you do is Hadama tensor product into the identity matrix. You have one over square root of two of one, one, one minus one. You do your tensor product into the identity matrix. This gives you then, what should you get here? Because again, what does the tensor product do? It puts us into a combined state, right? So you should get a four by four matrix out. So if you do that, you get one over square root of two. A one, zero, one, zero, zero, one, zero, one, one, zero, minus one, zero, zero, one, zero, minus one. And then what you do is you apply your controlled C naught gate things here. But now if you do your, and then, oh, sorry. This is your matrix running out of space here. And then you still have to apply it to, oh, sorry, that's right. So now what you do is you apply this, right, to your zero, zero column vector. And then you apply the C naught gate. And if you do this, then you should get your final answer. Let's see, do I have enough time? I have two minutes left. So if you're interested, I can write this out now. So if you do the Hadamard gate tensor into your identity matrix, then you apply it to your zero, zero state, right? If you do that, you're gonna get one over square root of two of one, zero, one, zero. Now what you do is you flip the C naught gate. You're applying a C naught to this. And that will give you a one over square root of two. So you're flipping it, C naught. So what do you get? So did I maybe made a mistake here, sorry. So zero, zero is one, zero, zero, zero. What is your one, one, zero, zero, zero, one, right? So you're flipping this. So you get one over square root of zero, zero, zero, one. And then I need here a one, right? So now I have both of these states in here. And now you know you're getting your wave function which you were looking for. Okay, so I said that I'm not gonna go through any time of quantum computing, but just take this away, right? So your classical bits, deterministic, your quantum bits, non-deterministic. You have a probability. You spin left, right at the same time, right? You don't know until you get measured. Measurement is collapsing on a block sphere and sort of the top or the bottom. It's actually, you can do a measurement calculation in your bracket notation, which is your projection operator. We're not talking about that. And then pretty much what a quantum algorithm is, you take your input state function, right? Whatever it is, it's defined by the Schrodinger equation. You evolve it over time about applying gates. All you do is rotation on a block sphere and then eventually it's a matrix multiplication. If you think about that and then you're measuring out what you got. If it's gonna be up, up, down, down or whatever and so on. You have tens of products that go into there. Unitary matrices are very important. These are your operators and they must have the properties of you, you dagger, giving you an identity matrix. And if you keep all this in mind, you will be perfectly set up to do your algorithms. So next after lunch, you're gonna learn about ticket, how to actually program these circuits into a software development kit, right? And then once you know the tools, we then go into algorithm studies the rest of the day. So enjoy your lunch and thank you for your attention.