Flash and JavaScript are required for this feature.

Download the video from iTunes U or the Internet Archive.

**Topics covered:** Basic circuit analysis method (KVL and KCL mMethod)

**Instructor:** Prof. Anant Agarwal

Lecture 2: Basic Circuit An...

Good morning, OK.

Let's get started. We have one handout today.

That's your lecture notes. There's some copies still outside for those who haven't picked one up.

In general, what I do is, in the lecture notes, I leave out large amounts of material.

So, this will enable you to keep your hands busy while I'm lecturing and take down some notes and so on.

So, don't assume that everything that I talk about is on here. Please follow along.

OK, so as is my usual practice, let me start with a quick review of what we covered so far.

So what we did primarily was looked at this discipline that we call the lump matter discipline, which was very similar, very reminiscent of the point mass simplification in physics. And this discipline, this set of constraints we imposed on ourselves, allowed us to move from Maxwell's equations to a very, very simple form of algebraic equations.

And specifically, the discipline took two forms.

One is, we said that we will deal with elements for whom the rate of change of magnetic flux is zero outside of the elements, and for whom the rate of change of charge I want to charge inside the element was zero. So, if I took any element, any element that I called a lump circuit element, like a resistor or a voltage source, and I put a black box around it, then what I'm saying is that the net charge inside that is going to be zero. And this is not true in general. We will see examples where, if you choose some piece of an element for example, there might be charge buildup, but net inside the, if I put a box around the entire element, I am going to assume that the rate of change of charge is going to be zero. So, what this did was it enabled us to create the lump circuit abstraction, where I could take elements, some element of the sort, this could be a resistor, a voltage source, or whatever, and I could now ascribe a voltage, some voltage across an element, and also some current, "i," that was going into the element.

And as I go forward, when I label the voltages and currents across and through elements, I'm going to be following a convention. OK, the convention is that I'm going to label, if I label V in the following manner, then I'm going to label "i" for that element as a current flowing into the positive terminal.

It's just a convention. By doing this, it turns out that the power consumed by the element is "vi" is positive. OK, so by choosing I going in this way into the positive terminal, the power consumed by the element is going to be positive.

OK, so in general of even simply following this convention, when I label voltages and currents, I'll be labeling the current into an element entering in through the plus terminal. Remember, of course, if the current is going this way, let's have one amp of current flowing this way, then when I compute the current, "i" will come out to be negative.

OK, so by making these assumptions, the assumptions of the lumped matter discipline, I said I was able to simplify my life tremendously. And, in particular what it did was it allowed me to take Maxwell's equations, OK, and simplify them into a very simple algebraic form, which has both a voltage law and a current law that I call Kirchhoff's voltage law, and Kirchhoff's current law.

KVL simply states that if I have some circuit, and if I measured the voltages in any loop in the circuit, so if I look at the voltages in any loop, then the voltages in the loop would sum to zero. OK, so I measure voltages in the loop, and they will sum to zero.

Similarly, for the current, if I take a node of a circuit, if I build the circuit, a node is a point in the circuit where multiple edges connect.

If I take a node, then the current coming into that node, the net current coming into a node is going to be zero. OK, so if I take any node of the circuit and sum up all the currents going into that node, they will all net sum to zero. So, notice what I've done is by this discipline, by this constraint I imposed on myself, I was able to make this incredible leap from Maxwell's equations to these really, really simple algebraic equations, KVL and KCL. And I promise you, going forward to the rest of 6.002, if this is all you know, you can pretty much solve any circuit using these two very simple relations. It's actually really, really simple. It's all very simple algebra, OK? So, just to show you an example, let me do a little demonstration.

Let me build let me build a small circuit and measure some voltages for you, and show you that the voltages, indeed, add up to zero. So, here's my little circuit.

So, I'm going to show you a simple circuit that looks like this, and let's go ahead and measure some voltages and currents. In terms of terminology to remember, this is called a loop. So if I start from the point C and I travel through the voltage source, come to the node A down through R1 and all the way down through R2 back to C, that's a loop. Similarly, this point A is a node where resistor R1 the voltage source V0, and R4 are connected. OK, just make sure your terminology is correct. So, what I'll do is I'll make some quick measurements for you, and show you that these KVL and KCL are indeed true. So, the circuits up there, could I have a volunteer? Any volunteer?

All you have to do is write things on the board.

Come on over. OK, so let me take some measurements, and why don't you write down what I measure on the board? What I'll do is, let me borrow another piece of chalk here.

What I'll do is focus on this loop here, and focus on this node and make some measurements.

All right, so you see the circuit up there.

OK, so I get 3 volts for the voltage from C to A.

so why don't you write down 3 volts?

OK, so the next one is -1.6. And so that will be, I'm doing AB, V_AB.

OK, and then let me do the last one.

It is -1.37. The measurements, I guess, have been this way. So, what's written is V_AC.

But it's OK for now. Don't worry about it.

So, well, thank you. I appreciate your help here.

OK, so within the bonds of experimental error, noticed that if I add up these three voltages, they nicely sum up to zero. OK, next let me focus on this node here. And at this node, let me go ahead and measure some currents.

What I'll do now is change to an AC voltage so that I can go ahead and measure the current without breaking my circuit.

OK, this time around, you'll get to see the measurements that I'm taking as well.

So, what I have here, I guess you can see it this way. What I have here is three wires that I have pulled out from D. And this is the node D, OK? So, I have three wires coming into the node D just to make it a little bit easier for me to measure stuff. OK, so everybody keep your fingers crossed so I don't look like a fool here.

I hope this works out. So, you roughly get, what's that, 10 mV.

OK, so it's about 10 mV peak to peak out there, and let's say that if the waveform raises on the left-hand side, it's positive. So, it's positive 10 mV.

And another positive 10 mV, so that's 20 mV.

And this time, it's a negative, roughly 20, I guess, -20.

So, I'm getting, in terms of currents, I have a -10, -10, I'm sorry, positive 10, positive 10, and a -20 that adds up to zero. But more interestingly, I can show you the same thing by holding this current measuring probe directly across the node.

And, notice that the net current that is entering into this node here is zero. OK, so that should just show you that KCL does indeed hold in practice, and it is not just a figment of our imaginations. So, before I go on, I wanted to point one other thing out.

Notice that I've written down two assumptions of the lumped matter discipline, OK?

There is a total assumption of the lump matter discipline, and that assumption is, in spirit, at least, shared by the point mass simplification in physics as well. Can someone tell me what that assumption is? A total assumption, which I did not mention, which you can read in your notes in section 8.2 in the appendix, what's a total assumption that is shared in spirit with the point mass simplification? Anybody?

A total assumption to be made here is that in all the signals that we will study in this course, we've made the assumption that the signal speeds of interest, transition speeds, and so on, are much slower than the speed of light. OK, that my signal transition speeds of interest are much slower than the speed of light.

Remember, the laws of motion, the discrete laws of motion break down if your objects begin moving at the speed of light.

OK, the same token here, our lump circuit abstraction breaks down if we approach the speed of light.

And there are follow on courses that talk about waveguides and other distributed analysis techniques that deal with signals that travel close to speeds of light.

OK, so with that, let me go on to talking about method one of circuit analysis. This is called the basic KVL KCL method. So just based on those two simple algebraic relations, I can analyze very interesting and complicated circuits. The method goes as follows.

So, let's say our goal is, given a circuit like this, our goal is to solve it. OK, in this course, we will do two kinds of things: analysis and synthesis.

Analysis says, given a circuit, OK, what can you tell me about the circuit?

OK, so we'll solve existing circuits for all the voltages and currents, voltages across elements, and currents through those elements.

Synthesis says, given a function, I may ask you to go and build circuits.

OK, so for analysis here, we can apply this method that I want to show you. And the idea here is that, given a circuit like this, let us figure out all the voltages and currents that are a function of the way these elements are connected. So, the basic KVL and KCL method has the following steps. The first step is to write down the element VI relationships. OK, right down the element VI relationships for all the elements.

The second step is write KCL for all the nodes, and the third step is to write KVL for all the loops in the circuit. That's it.

Just go ahead and write down element rules, KVL, and KCL, and then go ahead and solve the circuit. So, what we'll do, we'll do an example, of course.

But, just as a refresher, we've looked at a bunch of elements so far, and for the resistor, the element relation says that V is pi R, where R is the resistance of the element here. For a voltage source, V is equal to V nought. That's the element relationship. And for a current source, the element is the relation is, "i" is simply the current flowing through the element. OK, so these are some of the simple element rules for the devices that the current source, voltage source, and the resistor.

So let's go ahead and solve this simple circuit.

And what I'll do is go ahead and solve the circuit for you.

OK, if you turn to page five of your notes, I'm going to go ahead and edit the circuit here. You can scribble the values on your notes on page five. OK, so as a first step of my KVL KCL method, I need to write down all my element VI relationships. So, before I do that, let me go ahead and label all the voltages and currents that are unknowns in the circuit. So, let me label the voltages and currents associated with the voltage source as here.

Notice, I continue to follow this convention where whenever I label voltages and currents for an element, I will show the current going into the positive terminal of the element variable, OK, after element variable voltage.

So here, I have V nought and I nought.

Let me pause here for five seconds and show you a point of confusion that happens sometimes.

Often times, people confuse between what is called the variable that is associated with the element versus the element value. OK, notice that here, capital V nought is the voltage that this voltage source provides, while this name here, v nought, is simply a variable that we've used to label the voltage across that element.

So, similarly, I can label v1 as the voltage across the resistor, and i1 is the current flowing through the resistor. So this method of labeling, where I follow the convention, that the current flows into the positive terminal is called the associated variables discipline.

I was trying to use the word discipline in situations where you have a choice, OK, and of a variety of possible choices, you pick one as the convention.

OK, so here, as a convention, we use the associated variables discipline, and use that method to consistently label the unknown voltages and currents in our circuits. OK, so let me continue the labeling here, v4, i4, i3, v3 here, and v2 and i2, v5, and i5.

I think that's it. So, I've gone ahead and labeled all my unknowns. So each of these voltages and currents are the voltages and currents associated with each of the elements. And my goal is to solve for these. OK, so in terms of our solution here, let's follow the method that I outlined for you.

So, as the first step I am simply going to go ahead and write down all the element VI relationships.

OK, so as a first step, I'm going to go ahead and write down all the VI relationships. So, can someone yell out for me the VI relationship for the voltage source?

OK, good. So, v0 is capital V nought, that is that the variable V nought is simply equal to the voltage, v0. Similarly, I can write the others. v1 is i1, R1.

v2 is i2, R2, and so on.

OK, and I have one, two, three, four, five, six elements. So, I will get six such equations. Step two, I'm going to go ahead and write KCL for the nodes in my system.

So, let me start with node A. So, for node A, let me take as positive the currents going out of the node.

So, I get i nought flowing out, plus i1 flowing out, plus i4 flowing out, and they must sum to zero for node A. Then, I can go ahead and do the other nodes, let's say, for example, I do node B. For node B, I have i2 going out. That's positive, i3, and i1 is coming in, so I get -i1 equals zero.

OK, so I have one, two, three, four, I have four nodes. OK, so I would get four equations. It turns out that the fourth equation is not independent. You can derive it from the others. So, I get three independent equations out of this. I can then write KVL.

And for KVL, I just go down my loops here.

And let me go through this first loop here in this manner.

OK, and a simple trick that I use, you have to be incredibly careful when you go through this in keeping your minuses and pluses correct. Otherwise you can get hopelessly muddled. Once you label it, you need to be sure that you get all your minuses and pluses correct. So, for KVL, what I'd like to do is, let's say I start at C, and from C I'm going to go to A.

For A I go to B, and from B I'm going to come back to C. OK, that's how I traverse my loop. And, the trick that I'm going to follow is, as my finger walks through that loop, I'm going to label the voltage as the first sign that I see for that voltage. OK, so I'm going to start with C, and I go up. I start by punching into the voltage source element, and then punch into it, I hit the minus sign for the V nought.

OK, so I'm just going to write down minus V nought, plus then I go through and as I come up to A and go down to B, I punch to the plus sign of the V1.

So, that's plus V1. And then I punch into the plus sign of the V2, and so I get plus V2, and that is zero. OK, good.

So, that matches what you have in your notes as well.

So, this is the first equation. Similarly, I can go through my other loops and write down equations for each of the loops.

OK, and the convention that I like to follow is as I go through the loop, I write down as a sign for the voltage the first sign that I counter for that element.

OK, you can do the exact opposite, if you want, just to be different. But, as long as you stay consistent, you'll be OK. All right, so in the same manner here, there are four loops that I can have, so four equations. Again, one of them turns out to be dependent on the others. So I end up getting three independent equations. So, I get a total of 12 equations. I get 12 equations.

There are six elements, OK, voltage source, and five resistors. So, there are six unknown voltages, and six unknown currents.

So, I have 12 equations, and 12 unknowns.

OK, I can take all of the equations and put them through a big crank, and sit there and grind.

And if I was really cruel, I'd give this as a homework problem, and have you grind, and grind, and grind until you get your six voltages and six currents.

OK, it works. OK, so you get 12 equations, and this method just works. However, notice that this is quite a grubby method. It's quite grungy.

I get 12 equations, and it's quite a pain even for a simple circuit like this. However, suffice it to say that this fundamental method is one step away from Maxwell's equations, simply works. OK?

So what you'll do is the rest of this lecture, I'll introduce you to a couple more methods.

One is an intuitive method, and another one called the node method is a little bit more formal, but is much more, I guess, terse Than the KVL KCL method.

Method 2. So the relevant section to read in the course notes is section One of the things that I will be stressing this semester is intuition. What you'll find is that as you become EECS majors, and so on, and go on, or if you talk to your TAs or your professors and so on, you will find that very rarely do they actually go ahead and apply the formal methods of analysis.

OK, by and large, engineers are able to look at a circuit and simply by observation write down an answer. And usually in the past, what we have tried to do is kind of ignore that process and told our students, look, we teach you all the formal methods, and you will develop your own intuition and be able to do it. What we'll try to do this term is try to stress the intuitive methods, and try to show you how the intuitive process goes, so you can very quickly solve many of these circuits simply by inspection.

OK, so this method that I'm going to show you here is one such an intuitive method. And I'll call it element combination tools. OK, for many simple circuits, you can solve them very quickly by applying this method.

The components of this method are these.

I learned about how to compose a bunch of elements.

So, let's say, for example, I have a set of resistors, R1 through RN, in series. OK, you can use KVL and KCL to show that this is equivalent to a single resistor whose value is given by the sum of the resistances.

OK, so if I have resistors in series, then effectively it's the same as if there was a single resistor whose value is the sum of all the resistances. OK, you can look at the course notes for a proof for derivation of this fact.

Similarly, if I have resistances in parallel, so let me call them conductances.

A conductance is the reciprocal of a resistance.

If resistance is measured in ohms, conductance is measured in mhos, M-H-O-S. OK, so that's the conductance is G1, G2, and G3. And effectively, this is the same as having a single conductance whose effective value is given by the sum of the conductances.

OK, the conductances in parallel add, and resistances in series add. Similarly, for voltage sources, if I have voltage sources in series, then they are tantamount to the sum of the voltages. And similarly, for currents, if I have currents in parallel, then they can be viewed as a single current source, whose currents are the sum of the individual parallel currents. So, let's do a quick example.

So let's do this example. So, let's say I have a circuit that looks like this, and three resistances.

And let's say all I care about is the current, I, that flows through this wire.

All I care about is that current.

Of course, you can go ahead and write KVL and KCL.

You will get four equations, and there are four unknowns.

And you can solve it. But, I can apply my element combination rules, and very quickly figure out what the current I is, using the following technique.

So, what I can do is, I can, first of all, take this circuit. And, I can compose these two resistances and show that the circuit is equivalent as far as this current, I, is concerned to the following circuit, R1.

And I take the sum of the two conductances, OK, and that comes out to be R1, R2, R3, R2 plus R3.

And then, I can further simplify it, and I get a single resistance, whose value is given by R1 plus R2, R3, R3. OK, I'm just simplifying the circuit. Now, from this circuit, I can get the answer that I need.

I is simply the voltage, V, divided by R1 plus.

OK, so in situations like this where I'm looking for a single current, I can very quickly get to the answer by applying some of these element combination rules.

And, I can get rid of having to go through formal steps.

So, in general, whenever you encounter a circuit, by and large attempt to use intuitive methods to solve it. And go to a formal method only if some intuitive method fails. Even in your homework, by and large, the homeworks are not meant to be grungy. OK, if you find a lot of grunge in your homework, just remember you're probably not using some intuitive method. OK, so just be cautious.

All right, so let me go on to the third method of circuit analysis, and the third method is called the node method.

So, the node method is simply a specific application of the KVL KCL method and results in a much, much more compact form of the final equations. If there's one method that you have to remember for life, then I would say just remember this method. OK, the node method is a workhorse of the easiest industry.

OK, if there's one method that you want to consistently apply, then this is the one to remember.

So, let me quickly outline for you to method, and then work out an example for you.

The first step of the node method will be to select a reference or a ground node. This is the symbol for a ground node. The ground node simply says that I'm going to denote voltages at that point to be zero, and measure all my other voltages with reference to that point. So, I'm going to select a ground node in my circuit. Second, I want to label the remaining voltages with respect to the ground node.

So, label voltages for all the other nodes with respect to the ground node. Next, write KCL for each of the nodes write KCL. OK, but don't write KCL for the ground node. Remember, if you have N nodes, the node equations will give you N-1 independent equations.

So, write KCL for the nodes, but don't do so for the ground node. Then, solve for the node voltages. So, let's say when we label voltages. I want to be labeling them as E something or the other. So, solve for the unknown node voltages. And then, once I know all the voltages associated with the nodes, I can then back solve for all the branch voltages and currents.

OK, once I know all the node voltages, I can then go ahead and figure out all the branch voltages and the branch currents. So, let's go ahead and apply this method, and work out an example.

Again, remember, if there's one method that you should remember, it's the node method.

OK, and when in doubt, consistently apply the node method and it will work whether your circuit is linear or nonlinear, if the resistors are built in the US or the USSR it doesn't matter. OK, the node method will simply work, linear or nonlinear, OK?

So, what I'm going to do is I'm going to build a circuit that's my old faithful. It's our old faithful, plus I'll make it a little bit more complicated by adding in the current source. So, let's go have some fun.

Let's do this. So here's my voltage source, as before. OK, what I'll do is for fun, add a current source out there. And, you can convince yourselves that if you go ahead and apply the KVL KCL method, it'll really be a mess of equations.

OK, so R1, R3, R4, R2, R5.

OK, so let's follow our method and just plug and chug here.

So let's apply the first step. I select a ground node.

It's a reference node from which I'll measure all my other voltages. OK, now without knowing anything about the node method, try to use intuition as to which node you should choose as a ground node.

Remember, you want to label the ground node with the voltage zero, and measure all the other voltages with respect to that node. OK, a usual trick is to pick a node which has the largest number of elements connected to it as the ground node. OK, and in particular, you will find out later it's useful to pick a node in which all your voltage sources, the maximum number of your voltage sources are also connected.

OK, so in this instance, I'm going to choose this as my ground node. OK, that's my first step.

I chose that as my ground node. And I'm going to label that as having a voltage zero. Second step, I'll label voltages of the other branches with respect to the ground node. OK, so what I'll do is add this node here. So I'm going to label that voltage E1. These are my unknowns.

Remember, node method, because my node voltages are my unknowns. So, I label this as E1.

I label this one as my unknown voltage, E2.

What about this one here? Is that voltage unknown?

No. I know what the voltage is because I know that this node is at a voltage, V0, higher than the ground node.

OK, notice that to go from here to here, I directly go through a voltage source. And so, this node has voltage V0. And I'll simply write down V0.

OK, try to simplify the number of steps that you have to go through, so directly go ahead and write down the voltage, V0, for that node. What I will also do, is for convenience, I'm going to write down, I'm going to use conductances. So I'm going to use GI in the place of one by RI, and write down a bunch of node equations. OK, so step one, I've chosen my ground node. Step two, I've labeled my node voltages, E, OK? I've done that with two of my steps. Now, let me go ahead and -- OK, so let me go ahead and apply step three.

And, step three says go ahead and apply KCL for each of the nodes at which you have an unknown node voltage.

And then that will give you your equations.

So let me start by applying KCL at E1.

So, let me write KCL at E1. I do one more thing.

Notice, I don't have any currents there.

OK, so how do I write KCL? KCL simply says the sum of currents into a node is zero again, remember, by the lump matter discipline. So, if I don't have currents in there, so the trick that I adopt is that to write KCL, I use the node voltages, and implicitly substitute for the node voltages, divide by the elemental the resistance, for instance, so I take the node voltages, and divide by the resistance, get the current.

OK, so I implicitly apply element relationships to get the node currents. So, the example that make it clear, so I take node E1 and, again, for currents going out I'm going to assume to have, to be positive.

So, the current going up is E1 minus V nought, divide by R1, so I multiplied by the G1.

That's the current going up. Plus, the current going down is E1 minus zero where the ground node potential is zero, G2, OK, plus the current that is going to resistor R3, which is simply E1 minus E2, divide by R3.

So, E1 minus E2, divide by R3, or multiplied by G3 is equal to zero.

OK, see how I got this? This is simply KCL, but to get my currents, I simply take the differences of voltages across elements, and divide by the element of resistance, and I get the currents.

OK, so I can similarly write KCL at E2.

So, at KCL at E2, again, let me go outwards.

So, the current going up is E2 minus V nought multiplied by G4.

The current going left is E2 minus E1 divided by R3 or multiplied by G3. The current going down is E2 minus zero multiplied by G5. And, the current going down is -I1. OK, you've got to be careful with your polarities here. So all the currents going out sum to zero. And here are the currents that are going out at this point. So what I do next is I can move the constant terms to the left-hand side and collect my unknowns. So, let me write them out here.

So, let's say I get E1 here, OK, and from this equation, I have a V nought, G1, which comes out here.

So, minus V nought G1 comes over to the other side.

And, let me collect all the values that multiply E1.

So I get, G1 is one example. I have G2, and I have G3.

And then, for E2, I have minus G3.

OK, so I'll simply express this as the element voltages multiplied by some terms in parentheses, and I put my external sources on the right hand side.

Similarly, I go ahead and do the same thing here.

In this instance, let me move my sources to the right. So, I get I1 coming out there, and I get V nought G4 coming out there.

By the way, I just want to mention to you that if you're looking to fall asleep, this is a good time to do so because as soon as I write down these two equations, OK, from now on it's nap time. There's nothing new that you're going to learn from here on. It's just Anant Agarwal having fun at the blackboard, pushing symbols around.

So, once you write down these two node equations, the rest of it is just grubby math.

So, let me just have some fun. So let me just go ahead and do that. So, I moved my voltages and currents to the other side. And let me collect all the coefficients for E1 here. So, E1 minus G3, and that's it, I guess.

OK, and then I'll do the same for E2.

So, I get G4, and I get G3, and I get G5. OK, so notice here that I have two equations, and two unknowns.

OK, the two equations are on the right hand side, I have some voltages and currents which are my dry voltages and dry currents. OK, so actually this is getting quite boring. I'm going to pause here, and talk about something else. So, you can take this and you can put it in matrix form, so I've done that for you on page ten. It's all matrix form.

Yeah, I know that. You can use any technique to solve it, use algebraic techniques, use linear algebraic methods to solve it, use a computer, whatever you want. And, computers, when computers analyze circuits, they write down these equations, and deal with solving matrices.

So, when you take the linear algebra across, how many people here have taken a linear algebra class?

How many people here have heard of Gaussian elimination?

How can more people have heard of Gaussian elimination than took a linear algebra class? Well anyway, so now you know why you took those linear algebra classes.

And so, if I just collected these into matrix form -- OK, so I just simply expressed those two equations in linear algebraic form, and here's my column vector of unknowns, and you can apply any of the techniques you've learned in linear algebra to solve for this.

Gaussian elimination works. OK, and in computer, people doing research in computer techniques, or solving such equations simply deals with huge equations like this, building computer programs that, given equations like this, can go ahead and solve them.

OK, so let me stop here and reemphasize that what you've done is made a huge leap from Maxwell's equations to using the lump matter discipline to KVL and KCL, which ended up giving a simple algebraic equation to solve, and not having to worry about partial differential equations that were the form of Maxwell's equations.

## Welcome!

This is one of over 2,400 courses on OCW. Explore materials for this course in the pages linked along the left.

**MIT OpenCourseWare** is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.

**No enrollment or registration.** Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.

**Knowledge is your reward.** Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.

**Made for sharing**. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)

Learn more at Get Started with MIT OpenCourseWare