These are student perspectives on courses in the Electrical and Computer Engineering department. Note: There are recent changes regarding Senior Design Projects; this list does not yet have the updated info on them.
ENG 6 - Engineering Problem Solving
- This course is intended to teach engineering students how to write programs in MATLAB. Since programming experience is not a prerequisite, this class ends up being an introduction to computer programming that just happens to use MATLAB. If you've passed ECS 30, sit back and enjoy your easy A. This class is normally taught by Lagerstrom and can be quite boring. The professor just goes over code the whole time and if you already understand it, then it is probably not worth your while to attend. On the bright side, the notes for this class are very nice and you would do well to buy a bound copy of them. According to Prof. Gundes, this course had its start a few years ago when someone with tons of stock in the MathWorks became Dean of the College of Engineering.
- If you have already taken ECS 30, this class will be VERY BORING. The only time it gets interesting is the odd time when some math pops up that wasn't in calculus (i.e. Phasors, Euler's Formula). And by that time you'll be asleep, if you're even at lecture. I only went to lecture twice before the first midterm, and the only reason I ever took notes was that it gave me something to do to keep myself paying attention just in case the Prof mentioned when the sample final would be posted. However, on the upside, it's an easy A which you never need to attend and you don't have to buy anything, if you don't mind doing the homework at the computer lab in the Academic Surge.
- Easiest course I have ever taken at UC Davis, since I came in knowing the basics of programming (loops, conditionals, etc). Homework was easy but very long. Nobody went to class and around 90% of the class got As and A-s when I took this class in Winter of 2014. If you know how to program coming into this class its a very easy A+ or A. If you are new to programming you should be able to get an A- even with minimal effort. Took this class with Andre Knoesen but I can't really review him since I only went to the first lecture. - John McHugh
ENG7. Technology and Culture of the Internet
ENG17. Circuits I
- Introductory circuits course. Mandatory for all engineering majors (No longer for ECI, not sure about others). Covers basic analog circuit analysis. You know, resistors, inductors, capacitors, KVL, KCL, nodal analysis, mesh-current analysis. It is hated by many, both EE and non EE, because this class is basically learning a few algorithms and crunching the numbers by hand, over and over again. Watch out if the textbook being used is by Rizzoni. It is dry, obtuse, and riddled with errors, not to mention you'll need to buy a new textbook for EEC 100.
EEC1. Introduction to Electrical and Computer Engineering
- One unit pass/no pass. This class is required of all EE/ECE majors in order to graduate. Grading is based on attendance and the submission of a final report which probably isn't even graded. Don't bother buying the book, you don't need it. Covers Engineering ethics, requirements for the EE/ECE major, and the various specialties within EE/ECE. Delves a bit into basic circuits and such. Can be quite boring if you already know the material, so don't put this off until your sophomore or junior year.
EEC10. Introduction to Digital and Analog Systems
EEC70. Computer Structure and Assembly Language
- It's an assembly language course (dur). Not terribly hard, especially when compared with ECS50. They used to teach with RISC, but have recently moved to an Intel instruction set. Never take it with Wilkins. He's a horrible prof and the tests were written to screw you since they are nothing like the homework or lectures.
- Not too difficult and sometimes pretty interesting. Take it with Akella; he seems to enjoy teaching the class and it shows in his lectures.
- Class is fun, if writing assemblers in assembly is fun to you. You learn about IEEE floating point; as of Fall 2007 they were still on RISC, and I think that will continue since 170 builds on that.
- In Fall 2014 EEC70 is being phased out, the major requirement being supplanted by EEC10.
ENG100. Electronic Circuits and Systems
- A final electronics course (after E17) for non-EE/CE engineering majors. Covers both analog and digital.
ENG191. Communication Strategies in Engineering
EEC100. Circuits II
- Continuation of ENG 17 for EE/CE majors. More circuits stuff. Most of the class is devoted to finding and analyzing the frequency response of circuits. The class introduces op-amps, filters (active and passive), SPICE, the Laplace transform, the convolution integral, and two port circuits. There is a lab that isn't too much of a pain.
- The labs aren't too much of a pain IF you or your partner have 'bench skills' or can develop them quickly. Failure to setup the correct inputs from the signal generator and power supply makes many students spend 'extra' hours in lab beyond the already high numbers. Hone your 'attention to detail' skills here, because they will be used again and again, especially in 180A.
EEC110A. Electronic Circuits I
- Analog/Digital circuit design. No lab, but you get to use transistors and diodes in circuits now! The first half of the course is analog. The second part of the course focuses mostly on the low-level transistor electronics used in digital integrated circuits. Prof. Spencer is by far the best professor to take this course from, especially if you want to go into analog, or you are going to take 110B. He wrote the textbook, and he's incredibly intelligent!
- Had Yankelevich, wasn't bad. This is the circuits continuation of 100.
- Even if 100 was easy for you though, do be sure to study. All those models and linearity assumptions need some care in their execution.
EEC110B. Electronic Circuits II
- Analog circuit design. A continuation of 110A, but only the analog part. It's pretty much transistor amplifier design. See above comment about Prof. Spencer. If he teaches 110A, he'll also teach 110B.
- Analog circuit design with feedback. The 110a/b electric circuit class is being modified. Spring 2009 was the last time 110b would be taught by Professor Spencer. PSPICE was used for projects to analyze feedback networks.
EEC112. Communication Electronics
- Learn lots of communications theory and build a few transmitters and receivers in lab. Realize that the actual electronics of radio is best left to the experts and you're not going to become an expert just by taking this class.
EEC116. VLSI Design
- A look at designing ICs at the individual transistor level. Use a program called Magic, which is basically a glorified version of MS Paint to draw Pwells, Nwells, Polysilicon, etc. Easy class, but watch out for the final project; it's a huge time sink.
EEC118. Digital Integrated Circuits
- Looking at digital circuits with an analog perspective. It is only three units, but the work you do for it feels like five. There is a bit of overlap with 116 on some topics.
EEC130A. Introductory Electromagnetics I Most of the class is devoted to transmission lines. By the end of this class, the Smith chart will be your friend. The remainder of the class treats Maxwell's equations in more depth than PHY 9C. Don't expect the integrals to be pretty.
- Math math math math math math....
- Professor Pham taught Winter 2009. It's really a continuation of methods learned in the PHY 9C course with more calculus. I think you should understand gauss law and stokes theorem when you leave.
- Pretty much the same as PHY9C with transmission lines thrown in.
- Above bullet is not very accurate. This class will introduce the smith chart and transmission line theory, and you will be using a lot of the electromagnetics from 9b
- Take it with professor Leo, he is simply the best and his exams are easy AF.
EEC130B. Introductory Electromagnetics II
- Waves, waveguides, and antennas. If you're into that type of thing, this class can be rather fun. The math gets WAAAAAY easier than 130A. Prof. Knoesen does an excellent job of teaching this. He wrote a textbook with Carl Arft for this class that is the best free textbook I've encountered at Davis so far.
- Spring 2009 EEC130B taught by Prof. Knoesen was excellent. He provides an excellent text that his grad student and him wrote for the course. In addition, he expects students to watch videos he posts before lecture. The material is interesting but heavy requiring a large time devotion. The lecture was composed mostly of group discussion with open question sessions for confused students. Knoesen is best professor in the department IMO.
- While the math is easier, Prof. Knoesen does expect you to be able to derive results starting from Maxwell's equations.
- Maxwell's equations for DAYSSSS, this class is a lot of math and simply being able to identify when it is appropriate to use the nearly 50 or more equations you learn.
- Pham is a very good professor for this class, and although his in class derivations are extremely unnecessary and fast paced his exams will not test you on derivations, but just easy HW problems.
EEC132A. High-Frequency Systems, Circuits and Devices
- If you pass this class you know you are an engineer. Very detailed look at microwave circuits and the use of transmission lines, including coaxial cables, wave guides, striplines and micro striplines. Separates the microwave engineers from all the others. Be prepared to have no life but 132.
EEC132B. High-Frequency Systems, Circuits and Devices
EEC132C. RF Amplifiers, Oscillators, Mixers and Antennas
EEC133. Electromagnetic Radiation and Antenna Analysis
EEC135. Optical Communications I: Fibers
- Informative class on how fiber optics works. Examination of the types of fiber and how light propagates through them. Learn how to design optical networks
- When taken with Knoesen, you will spend a lot of time on the projects. You will also learn a lot about fiber optics.
EEC 136AB. Opto-electronic Senior Design Project.
- Design and build a pulse oximeter, a nifty device that can tell you a person's blood oxygen saturation by shining light through their skin. Learn how to solder tiny SMT devices, layout and mill circuit boards, and get an appreciation of how much noise really does suck. Like the other senior design project classes, this is a huge timesink.
EEC140A. Principles of Device Physics I
- Uses a ton of quantum physics. This must have been the hardest final I have ever had. A HUGE percentage of students get C's.
- Only really uses quantum directly in the beginning. The rest is just algebra and calc mostly.
- Pain in the butt. The text used in this class is absolutely horrible. Probably ok if you have a good prof, though.
- Exams are extremely challenging, and this is one class that you cannot BS your way through! Success in this class will help EEs a lot in 110A.
EEC140B. Principles of Device Physics II
- Builds on the principles from 140A to model BJT, MOSFET, and JFET transistors, as well as a bit of laser diodes and quantum effect devices thrown in at the end. Not as bad as 140A, IMHO.
- Spring 2009 EEC140B taught by Prof. Islam was a great course. The course is split between analysis of MOSFET and the BJT. The physics of the FET is explained and the non-ideal effects are introduced. The basic of the BJT is explained and further analyzed for non-ideal effects. The course is really a primer and much is left for outside reading and further course exploration (240,241,242,243)
EEC145. Electronic Materials
EEC146A. Integrated Circuits Fabrication
EEC146B. Advanced Integrated Circuits Fabrication
- As of December 2013 it seems 146B is being phased out due to decreased interest and insufficient resources, according to Charles Hunt.
EEC150A. Introduction to Signals and Systems I
- Yeah, signals and whatnot. Linear Time-Invariant System analysis, Fourier transforms, Laplace transforms, Fourier series, convolution, transfer functions, frequency and amplitude modulation. Mostly just math.
- 150A is the continuation of the math part of 100
- Kinda wished I took this class before EEC 100, but this is simply put a pure math class learning how to do Laplace transforms and solving differential equations using different methods.
EEC150B. Introduction to Signals and Systems II
- 150A, except replace the Laplace transform with the z-transform, the Fourier transform with the discrete Fourier transform, and finally understand the sampling theorem. The final project is usually a DTMF decoder done in MATLAB, which you could probably do without even taking the class.
- All that DFT and z-transform stuff are the fundamentals of Digital Signal Processing. Save your Oppenheimer & Schaffer textbook if you think you will ever run into something DSP related. (Which is just about everyone.)
EEC152. Digital Signal Processing
- Implementing basic DSP algorithms in C on a real DSP board. Includes sample-by-sample and frame-based FIR and IIR filters, as well as the Goertzel algorithm and FFT. Students who've taken 172 will have a small leg up because they understand interrupts and such; everyone has a leg down because the smallest error in implementation completely distorts the output. I suspect that having an experienced TA would make the labs much more productive.
EEC157A. Control Systems I
- An introduction to the mathematics of control systems. You will learn how to model dynamical systems and learn how to get them to behave like you want them to by using various kinds of controllers. You won't be concerned with actually implementing said controllers with electronic parts, even on paper. A continuation of 150A.
EEC157B. Control Systems II
- Covers PID controllers, lead/lag compensators, analysis and design of systems with state-space methods, and discrete time systems (including Jury's criterion and root locus design in the z-domain). There is a "lab" that consists of the TA demoing things and you writing about it... in 2009 this consisted of controlling a DC motor and magnetically levitating a steel ball. Too much time is spent in this class going over topics that should have been covered in 157A. If Gundes offers you take home exams, say no. They'll be difficult time sinks that you have no hope of completing. If this doesn't scare you off, take the class. Really, it's one of the more useful classes in the ECE department, especially paired with the skills learned in 151.
EEC158 Control Systems Design Methods
- This course deals with more actual design than the 157 series, or so I've been told. It supposedly goes into things that are mentioned in passing in 157B, like linear quadratic regulators and quantitive feedback theory.
EEC160. Signal Analysis and Communications
EEC161. Probabilistic Analysis of Electrical & Computer Systems
- A new class required for majors instead of taking STA 120 or similar. ABET basically said the EEs didn't know how to actually apply stats, so now maybe they will.
EEC165. Statistical and Digital Communication
EEC166. Digital Communication Design Techniques
EEC167. Telecommunications Measurements and Instrumentation
EEC170. Introduction to Computer Architecture
- Wilken is a good professor; slow, steady, and clear. Learning how a basic pipelined RISC CPU works, down to the gate level.
- Compilers, Caches, Paging, Pipelining, Disks. Measuring performance.
- Review of EEC070, especially MIPS integer instructions. You might be slightly screwed if you elected to take ECS 50.
EEC171. Parallel Computer Architecture
- Cover's instruction level parallelism, thread level parallelism, and data level parallelism. Analyzes many modern architecture designs and spells out where the trends are going. You get to learn about the Pentium 4, Core 2, Itanium, Sun Niagra, Cray, Transmeta, and all sorts of other architecture designs—kind of a history of computer architecture, with technical discussion on why they were successes or failures. One of the most interesting classes I've taken at Davis, and the workload is nothing to be afraid of.
EEC172. Microcomputer-Based System Design
- Interesting course. It combines both software and hardware design. Programs are written in C, with assembly know-how basically limited to exam questions.
- Labs can be kind of killer if you don't start them early.
- On the other hand, a pair of engineers who are decent at C can finish many of the labs 1 or 2 sections early. With Wilkens, watch out for the midterm and final; they will make you dig for the details in both your knowledge of the different interrupt schemes as well as your data sheets.
EEC173A. Computer Networks
EEC173B. Design Projects in Communication Networks
EEC180A. Digital Systems I
- The labs in this course can be very frustrating. You will have a million wires going every which way and then the output won't look right. You'll debug it for hours and find out that your wiring was correct but you just had a faulty chip. If you're lucky, they won't run out of licenses for the software just when you need it the most. Tech support was always "working on it."
- They've seemed to have straightened out the license issues as of 2009. Straightening out one's wiring is still a headache and a half.
- First class that has a "Wallball" lab. Look forward to doing it all over again in 180B and 172.
- Do yourself a favor and DO NOT take this class with EEC 100 and 140A. The labs in this class are insanely time consuming WTF, 180B is actually easier imo.
EEC180B. Digital Systems II
- No more wiring, which should please anyone who got annoyed by 180a. You'll be programming FPGAs, which were touched on in 180A near the end. It'll either use Verilog or VHDL; they seem to have transitioned to Verilog, which is *much* nicer to use.
- At this point the puny disk space allocation will start to annoy you since Quartus eats space pretty quickly.
EEC181. Application Specific Processor Design Project
- New course in Spring 2009; next year it will be 2 quarters long and will thus be much, much better. In this first offering, we're making a Sudoku solver on an Altera DE2 FPGA. Most teams are using Altera's NIOS II processor and stapling on a 'hardware accelerator' for the most used functions in accordance with Amdahl's law. The first few weeks are spent making a Design Plan that outlines an algorithm and hardware implementation, then you build the thing and hope you don't have to redesign too many times before its due. Hopefully next year a more in depth analysis of algorithms will be possible—it'd be cool to create our own processor rather than use the NIOS.
EEC183. Testing and Verification of Digital Systems
- Introdution to fault models in both design and production, and basically covers testing for errors and verifying designs. The lectures are heavy on boolean algebra, but that shouldn't be much of a problem for anyone at this point. The lab starts with making a simple CPU, which is probably a first for most students since 170 has no lab. Once the CPU is designed, the rest of the labs basically test your design in concert with the lectures. So plan on a rough first few weeks, but then things will ease up considerably.
EEC194ABC. Micromouse Design Project
Fun times for the geeks. Unless your group sucks, since it's a year long commitment.
We've traditionally had strong performance in regional competitions, I've been told.
EEC195ABC. Natcar Design Project
- Because everyone loves toy cars...
- A Prof. Spencer course. Is being changed from a 3-quarter class to a 2, so there are going to be some changes. Expect to spend long hours in the lab. Hint: make / have PCBs made; do not use his project boards for the final design. It will save much frustration. Start working on your final design early, in parallel to the the analog circuits he wants made.
EEC196. Issues in Engineering Design
- A one-unit requirement. Covers many of the responsibilities and considerations of engineers, eg environmental, health and safety, and intellectual property.
- Took it with Diego. Even he didn't understand why there was a quiz and final component to the class - the course didn't even have a scheduled final exam time.
EEC73. Applications of Object-Oriented Programming
- Man oh man this one sucked for me. I think it may be phased out of the EE curriculum, replaced by ECS40. It's just JAVA (ECS40 is C++).
- No longer offered as of Fall 2006. Students now take ECS 40 in lieu of this course.
EEC101. Gateway to Electrical and Computer Engineering
- No longer offered as of Winter(?) 2004. Was formerly a weeder course. Some course descriptions still list this as a prerequisite as of Winter 2008.
EEC106. Introduction to Image Processing and Computer Vision
EEC114. Analog Integrated Circuits
- A comprehensive look at analog circuits. BJT intensive circuits: Single-stage amplifiers, cascaded amplifier stages, current sources, differential pair, frequency response, and feedback amplifiers. Lab is also reasonably difficult. Time consuming, but if analog is your thing, then its pretty cool.
EEC136. Opto-Electronics and Fiber-Optics Laboratory
- Fun lab on optical fibers. Very time consuming. Very rewarding and educational. Begin by learning how to couple lasers into fiber, move into more advanced fibers and in the end, design a optical transmitter and receiver and characterize the system.
EEC145A. Solid-State Electronics
EEC145B. Solid-State Electronics
- The class was created by Professor Knoesen, although he hasn't taught it in awhile. Student's T test and the null hypothesis, statistics, electronic noise (mostly Johnson and shot noise), the practicalities of measuring things with electronic sensors, instrumentation amplifiers, ADCs and DACs, the DFT, regressions, and controllers. The biggest part of this class is the lab. You do lab reports in lieu of homework. The labs use LabVIEW to interface with various circuits and write programs to control these circuits. Eventually, you develop a system that monitors and controls temperature in an "oven".
- The ovens are constantly being tweaked because its just about impossible to meet the specs with some of them. This is where students who've taken 157AB realize they know nothing about applying control theory.
- No longer offered as of December 2013