• Length:
    8 Weeks
  • Effort:
    8–10 hours per week
  • Price:

    Add a Verified Certificate for $49 USD

  • Institution
  • Subject:
  • Level:
  • Language:
  • Video Transcript:
  • Course Type:
    Self-paced on your time


Computer programming course in any language with exposure to variables, arithmetic, logic, loops, and functions. High school physics course covering current, voltage, resistance, and power.

About this course

Skip About this course

Learn how electronic gadgets are designed, developed, and built as embedded systems that shape the world.

This is part one of a two part sequence. Together these are hands-on, learn-by-doing courses that show you how to build solutions to real-world problems using embedded systems. In this course, we take a bottom-up approach to problem solving, building gradually from simple interfacing of switches and LEDs to complex concepts like a microcontroller-based pacemaker, digital lock, and a traffic light controller. We will present both general principles and practical tips for building circuits and programming the microcontroller in the C programming language. You will develop debugging skills using oscilloscopes, logic analyzers, and software instrumentation. Laboratory assignments are first performed in simulation, and then you will build and debug your system on the real microcontroller. At the conclusion of this part 1 you will possess the knowledge to build your own traffic light controller from the ground up.

This is the fourth time we have offered this course. Since the reviews have been overwhelmingly positive we do not plan major changes over the previous offerings of the course. We did however break the large class into two smaller classes. There are eight labs in part 1 and six labs in part 2. Students can pick and choose a subset of labs to achieve certification. The three labs that students found most rewarding in this part were designing the software algorithm for a demand pacemaker, interfacing switches and LEDS, and the finite state machine traffic light controller.

To complete this course, you will be required to purchase a Texas Instruments TM4C123 microcontroller kit and a few electronic components.

This microcontroller has a state-of-the-art ARM Cortex-M4 processor.

We will provide instructions about purchasing the kit and installing required software at: http://edx-org-utaustinx.s3.amazonaws.com/UT601x/index.html.

What you'll learn

Skip What you'll learn
  • Understanding of embedded systems using modular design and abstraction
  • C programming: considering both function and style
  • Build and test circuits with switches, LEDs, resistors, potentiometers, and liquid crystal displays
  • Synchronizing hardware and software input/output with switches, lights, sound, sensors. motors, and liquid crystal displays 
  • Learn how to solve problems using a finite state machine
  • Debug using oscilloscopes, logic analyzers, and software instrumentation
  • Learn how to read a data sheet
  • Construct traffic light controller

The best way to understand what you will learn in this class is to list the labs you will complete and the example projects we will build. You will complete each lab first in simulation and then on the real board. For each module we will design a system and you will build and test a similar system.

Module 1: Welcome and introduction to course and staff

Module 2: Fundamental concepts: numbers, computers, and the ARM Cortex M processor

Lab 2. Run existing project on LaunchPad with switch input and LED output

Module 3: Electronics: resistors, voltage, current and Ohm’s Law

Module 4: Digital Logic: transistors, flip flops and logic functions

Lab 4. Debug a system with two inputs and two outputs

Module 5: Introduction to C programming

Lab 5. Write a C function and perform input/output

Module 6: Microcontroller Input/Output

Lab 6. Write C software that inputs from a switch and toggles an LED output

Module 7: Design and Development Process

Lab 7. Write C functions that inputs from a switch and outputs to two LEDs, which is a virtual pacemaker

Module 8: Interfacing Switches and LEDs

Lab 8. Interface an external switch and LED and write input/output software

Module 9: Arrays and Functional Debugging

Lab 9. Write C functions using array data structures that collect/debug your system

Module 10: Finite State Machines

Lab 10. Interface 3 switches and 6 LEDs and create a traffic light finite state machine

Meet your instructors

Jonathan Valvano
Professor, Department of Electrical and Computer Engineering
The University of Texas at Austin
Ramesh Yerraballi
Distinguished Senior Lecturer, Department of Electrical and Computer Engineering
The University of Texas at Austin

Pursue a Verified Certificate to highlight the knowledge and skills you gain
$49 USD

View a PDF of a sample edX certificate
  • Official and Verified

    Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects

  • Easily Shareable

    Add the certificate to your CV or resume, or post it directly on LinkedIn

  • Proven Motivator

    Give yourself an additional incentive to complete the course

  • Support our Mission

    EdX, a non-profit, relies on verified certificates to help fund free education for everyone globally