Hands-On Courses

ECE 5: Making, Breaking, and Hacking Stuff


The primary focus of this course is to give freshmen students confidence, motivation, and insight into what is to come in the rest of their undergraduate careers through a series of hands-on projects. ECE 5 consists of 4 main labs covering 4 emphases: Communication, Analog Circuits, Digital Signal/Image Processing, and Embedded Systems and Control. The labs allow students to develop practical hard skills including programming in C and MATLAB, soldering, building circuits, and using microcontrollers, oscilloscopes, function generators, power sources, multi-meters and 3D printers. The students also work on their soft skills communicating, planning and working within teams to complete challenges tasked to them in each of the 4 labs. ECE 5 students are also encouraged to be creative with open-ended projects leveraging Arduinos and abundant choices of tools, sensors, and actuators so that they can further explore ECE concepts outside of class.



ECE 16: Rapid Hardware and Software Design for Interfacing with the World

Students tackle the concept of hardware and software for interfacing with the world, and in particular, the trade-offs between them. If you’re studying computer science, you can start with the assumption that you can have access to unlimited resources – in memory, storage or speed – whereas in developing a device in ECE, it always comes with trade-offs. How much can you accomplish with limited resources?  ECE 16 students apply C, to program microcontrollers, and they are introduced to the Python programming language to analyze data (a pre-requisite for many internship opportunities). The course also introduces students to real-world sensing through the structured design and development of a controller based on electromyogram signals. Teams complete four design-oriented lab projects, culminating in a final design competition focused on controllers for a video game. Key concepts developed through the quarter include sampling, signal processing, communication, and real-time control.



ECE 115: Rapid Prototyping

Experience Engineering in the ECE curriculum is not limited to courses using the EnVision Maker Studio. Students enrolled in ECE 115 work in ECE’s own Makerspace inside Jacobs Hall. The lab-based, design-focused course teaches students how to prototype a mechatronic solution. Students learn to identify specifications for a problem, use block diagrams to design the system, and employ rapid prototyping (3D printing, laser cutting, etc.) to build a prototype. They learn to use motors, touch sensors, and computer-assisted software. They do 3D modeling of parts and create their own design using computer-assisted design (CAD) software. The prototypes are then made from laser-cut and 3D-printed parts. The teams create circuits to connect their sensors and actuators, which are then integrated into a microcontroller. They program the microcontroller to run the whole system.


ECE 140 AB: The Art of Product Engineering

In the Winter and Spring quarters of 2018, ECE will launch a sequence of two courses on Internet of Things (IoT) and Systems Thinking. The first course will focus on software development fundamentals from an end-to-end perspective, so that students will develop competency in building hardware-based systems, utilizing all the latest web-based tools and infrastructure. In addition, the students will build a “smart plug” in the course lab. The plug will be a sensing and communication device built on the Raspberry Pi platform.

The second course in the sequence will focus on applying the principles acquired in the first course to add functionality and intelligence to the plug. Students will compete in small teams in a design project where they will use their “smart plugs” to perform intelligent sensing in the cloud and present their complete system at the culmination of the second course. The two courses will be under the special topics banner of ECE 140 AB.

These two courses are being designed to explore and develop essential technical skills, strong architectural intuition, elective collaboration skills, and the practical ability to deliver viable customer products in the context of a real-world product development challenge. Advanced topics will include practical hardware and software engineering. Students will learn about engineering patterns and anti-patterns, customer and user experience design, full-stack web development in the Python programming language, and best practices in building a product ecosystem. The second course in the series will have a particular emphasis on more advanced topics, such as security, algorithms, and analytics.


ECE 144: LabVIEW Programming: Design and Applications

An interactive LabVIEW programming course designed to teach students how to design and develop LabVIEW applications. This ECE 188 course prepares students to develop, debug, and test LabVIEW VIs, solve problems using LabVIEW, use data acquisition, and perform signal processing and instrument control in LabVIEW applications.  Each class includes instruction and a series of building and programming hands-on exercises. Students will work in teams to build prototypes from laser-cut and 3D printed parts, integrate sensors and actuators, and program using state-machine architecture in LabVIEW to form a complete system. Students will have the opportunity to take the National Instruments Certified LabVIEW Associate Developer (CLAD) exam at the end of the class to validate their LabVIEW development skills. Website


ECE 148 Introduction to Autonomous Vehicles


Autonomous vehicles, such as the ones being developed by Google, Uber, and Apple, as well as semi-autonomous cars on the market by Tesla, are generating exciting engineering challenges and catching significant public attention. As one of the goals of the Jacobs School of Engineering at the University of California San Diego is to provide students with up-to-date relevant knowledge, MAE/ECE 148 (Introduction to Autonomous Vehicles) will incorporate engineering theory and good practices, industry relevant lectures, and practical application with the development of 1/10 scale autonomous cars that must perform on a simulated city track.




ECE 191: Engineering Group Design Project

Groups of students work to design, build, demonstrate, and document an engineering project. All students give weekly progress reports of their tasks and contribute a section to the final project report. 





ECE 196: Engineering Hands-On Group Project 

ECE 196 is a Project-in-a-Box (PIB)-based course. PIBs are literally boxes containing all the parts and equipment that students need to build a hands-on project. While other hands-on courses may only be taught during one-quarter each year, ECE 196 can be taken in any quarter and is open to all undergraduates. The format is adaptable to the experience level of students at any grade level because each PIB carries instructions suitable for students at beginner, intermediate, or advanced levels. The inaugural edition of the lab-based course will be taught by ECE Chair Truong Nguyen in Fall 2016. It aims to provide hands-on engineering and team-building experiences to students as they build a variety of different systems ranging from a binary clock to an infrared whiteboard.

Each system is selected to expose students to particular real-world technical skills. For instance, they build solar trackers to power light-emitting diodes (LEDs). The tracker is an electro-mechanical device to shift the direction in which a photo-voltaic panel is facing in order to optimize the amount of sunshine hitting it, thus producing more power to run the LEDs. Students making the solar tracker gain experience with Arduino programming, design optimization, CAD, mechanical control, and maximum power-point tracking. Another hands-on sequence engages students in laser cutting, soldering, and 3D printing of parts for a robotic arm. Thirdly, in the course of creating a pedal to render guitar audio elects, students read schematics, construct a breadboard (on which integrated circuits are designed), and conduct Fourier analysis.