Skip to content

Commit

Permalink
Wrote 220 article
Browse files Browse the repository at this point in the history
  • Loading branch information
mikinty committed May 4, 2020
1 parent f726039 commit ac4413c
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ in ECE and CS at CMU.

- [18-100: Introduction to ECE](ece_core/18100.md)
- [18-213: Introduction to Computer Systems](ece_core/18213.md)
- 18-220
- [18-220: Electronic Devices and Analog Circuits](ece_core/18220.md)
- [18-240: Structure and Design of Digital Systems](ece_core/18240.md)
- 18-290
- [18-500: ECE Design Experience](ece_core/18500.md)
Expand Down
96 changes: 96 additions & 0 deletions ece_core/18220.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# 18-220: Electronic Devices and Analog Circuits

| Category | Difficulty |
|:-: | :-: |
| HW | 5 |
| Exams | 6 |
| Labs | 3 |

This course for many ECE majors is the first opportunity to work with circuits,
in building, measuring, and debugging them. Although the applications of your
circuits isn't as hobby-like as you would expect, the skills you learn from
working with circuits is a handy fundamental for any future Arduino/RPi projects
you may pursue in the future.

The lecture component of the class goes over the theory behind all of the hardware
you will work with in labs. While the theory may not be as interesting to you, for
the most part, the class is very straightforward in teaching theory, in that you are
mostly just learning equations and figuring out when to apply them. You should know how
to solve circuits though, with KVL and KCL, so make sure you brush up on those skills before
you take this class.

While many ECE majors nowadays see themselves being software engineers or working with FPGAs
and thus neglect this class, keep in mind that many fundamental circuit concepts will appear
in any computer-like device you work with. In digital, you might have to work with signal reflection
and parasitic capacitance. In computer architecture, you might have to understand how
storage systems work, and how devices are connected and powered.

## Homeworks

Homeworks assignments are fairly straightforward. Some problems are taken straight out
of lecture, but other problems are an extension from concepts you learn in class,
and you might not be able to figure it out directly without asking for help.

## Lectures

Professors expect you to go to class, so they don't upload lecture notes
that are written in class. Students mostly complain about lectures for this reason,
not having out-of-class support. In addition, lectures can be dry at times, since
it's a very structured

- History
- Equations
- Practice problem
- Applications

for every topic. While this is not necessarily bad, the concepts taught in class
may not necessarily correspond as closely to the homeworks as you think, which
then makes people feel like the lectures are not that useful. I think this is
done intentionally to challenge students, but I do feel like certain topics in
the class could be taught more comprehensively, such as

- Second-order circuits
- Feedback systems
- Bode plots
- Small signal

## Labs

Labs are a unique hands-on experience offered by this course, and also an
effective way to teach students about how to work with circuits. There are labs every week, except for exam weeks. Since labs are intended purely as a learning experience, your grade in lab is essentially guaranteed to be 100%, unless you

- Show up late
- Don't do your prelab
- Do the lab too slowly
- Break lab rules, i.e. making a mess, not turning off equipment, eating in class

Just follow the rules, be nice to your TAs, and you will get 100%.

When making circuits, people often just string together whatever they can, and just pray it works. What you should do instead, is treat your circuit like code you write in software. Would you write messy code? Would you write code that is not possible to debug, i.e. not have anywhere to insert `print` statements or set breakpoints? If you think about making "good circuits" as you do lab, you will make you and your TA's lives much better.

- Make your circuits as neat as possible
- Cut wires long enough so you don't have to cram everything in a small space
- Likewise, don't make wires ridiculously long so "you can always extend your connection" You will have a hot spaghetti mess on your board
- You have an oscilloscope, which means you can literally probe in anywhere in your circuit and measure what's going on. This is basically an irl super debugger.

## Exams

Exams are not much more difficult than HW problems, aside from the time pressure you have on exams. If you can do all of the HW problems fluently,
and not just in the sense of memorizing the solutions, but understanding how and why the solutions were written that way, you should be able to do
the exams pretty well. There are plenty of practice problems to study for exams, from the HW, to the pre-exam review sessions; I've also posted some links in the [Resources Section](#resources).

Therefore, a reasonable study plan is to

1. Do all the HW problems without help from the solutions
2. Do the exam review session problems
3. Glance over slides for trivia/equations not covered in lecture


## How to do well

- Know how to apply KCL to any circuit, no matter how complicated.
- Keep a list of equations/properties as you take the course, as they will help you study for exams in a more condensed way

## Resources

- <https://github.com/mikinty/CMU-Notes/tree/master/18-220> Exam review and handouts.

0 comments on commit ac4413c

Please sign in to comment.