EE319K Introduction to Embedded Systems, Spring 2016 (4/18/2016 version)

Email all professors and TAs (  
Course Catalog Description

Embedded systems; machine language execution; assembly and C language programming; local variables and subroutines; input/output synchronization; analog to digital conversion and digital to analog conversion; debugging; and interrupts.


EE319K will continue the bottom-up educational approach, started in EE302 and EE306. The overall educational objective is to allow students to discover how the computer interacts with its environment. It will provide hands-on experiences of how an embedded system could be used to solve EE problems. The focus will be understanding and analysis rather than design. The analog to digital converter (ADC) and digital to analog converter (DAC) are the chosen mechanism to bridge the CE and EE worlds. EE concepts include Ohms Law, LED voltage/current, resistance measurement, and stepper motor control. CE concepts include I/O device drivers, debugging, stacks, FIFO queues, local variables and interrupts. The hardware construction is performed on a breadboard and debugged using a multimeter (students learn to measure voltage and resistance). Software is developed in ARM Cortex-M assembly and C; most labs will be first simulated then run on the real LM4F120/TM4C123 board. Software debugging occurs during the simulation stage. Verification occurs in both stages. Labs 1, 2, 3, 4 are written in ARM assembly language. Labs 8 and 9 are written in a combination of assembly and C.  Labs 5, 6 and 10 are written in C.


EE319K is team-taught. All five lecture sections will share the same TAs, PowerPoint slides, homework assignments, lab assignments, Exam 1, Exam 2, and Final Exam. EE319K will give common Exams 1 and 2 in the evening. Please check the date/time for exams 1 and 2 and make sure they fit your schedule; Let your instructor know if your schedule conflicts with these date/time. The final exam is also common and the date/time will be announced once assigned by the registrar.  Here are the section details:

Jon Valvano - 16065, 16070, 16075, 16080
Lecture BUR116 MWF 1000 to  1100a
16065 T10
16070 T11
16075 T12
16080 T1

Ramesh Yerraballi - 16085, 16090, 16095,16100
Lecture ETC2.136 MW1200 to 130p
16085 T2
16090 T3
16095 T4
16100 T5

Vijay Janapa Reddi - 16105, 16110, 16115, 16120
Lecture BUR212 MW130 to 300p
16105 Th2
16110 Th3
16115 Th4
16120 Th5

Ramesh Yerraballi - 16125, 16130, 16135, 16140
Lecture WEL2.304 TTH 200 to 330p
16125 W3
16130 W4
16135 W5
16140 W6

Mohit Tiwari - 16150,  16160
Lecture RLM6.104 MW 300 to 430p
16150 W10
16160 Th1 

Please note that all labs are held in ECJ  1.314. EE319K shares the room with EE302, so please be respectful to other students.


Ramesh Yerraballi, POB 6.24X, (512) 471-2080,,

Vijay Janapa Reddi, ENS530, (512) 475-6153,vj@ece.utexas.edu

Mohit Tiwari, POB 6.240, UTA 7.213,, 

Jonathan Valvano, UTA 7.343, (512) 471-5141, ,

Office Hours (subject to change):

    Ramesh Yerraballi, MW: 2:00-4:00pm  (ACA 109)

    Vijay Janapa Reddi, MW: 4:00-5:00pm (POB 6.244)

    Mohit Tiwari, MW 4:00--5:00pm. Schedule additional office hours by appointment (email or drop in if you see my door open.

    Jonathan Valvano, M: 2:00-4:00pm (ACA 150) F: 2:00-4:00pm (ACA 150).Tuesday, Wednesday and Thursday hours can be arranged by appointment. in UTA 7.343 (check Canvas for lastest updates.

Lab lectures Each week we will provide two optional Lab lectures. The times for the lectures are Fridays 4-5pm  in CPE 2.212,  Mondays 6:30-7:30 in CPE 2.216.,and Mondays 7:30-8:30 in CPE 2.216. They will given by the TAs each week with the following exceptions. Lab lectures will start the Friday before Lab 2.
1) No lab lecture Friday 1/22, Monday 1/25
2) There will be reviews for Exams 1 2 and the final (time and place TBA)   

TAs (Photos of TAs): TAs will hold office hours in  either ACA or in lab. The office hours and locations will be posted in lab. About 34 students will be assigned to each 20-hour TA, and 17 students to each 10-hour TA.             
   Chun-Kai Chang

   Zhao Zheng

   Ce Wei

   Kelsey Taylor Ball

   Brandon Nguyen

   Turan Vural

   Schuyler Christensen
   Danny Vo

   Justin Nguyen

   Danial Rizvi

   Armand Behroozi

   Vivian Tan

   Anthony Bauer

   Jun Qi Lau

Mailing (all Professors and TAs)  

Teaching Videos and interactive web pages

EE319K Class Web page (Lecture notes, homeworks and lab assignments): 
Data sheets:  
Starter files:  Look for examples that have TM4C in the name.


Text: Embedded Systems: Introduction to ARM Cortex-M Microcontrollers,  Fifth Edition. Look on Canvas announcement for an inexpensive way to purchase the newest version of the book. The fifth edition has a lot more information on the TM4C123 compared to the third edition. However, you are allowed to buy/borrow a used third or fourth edition, all editions have the same ISBN: 978-1477508992. This means if you buy it used you are likely to get an older edition. Available from Amazon (not available in local bookstores):®-Cortex/dp/1477508996 

Reference materials:


Equipment to buy: 

  1. We expect each EE319K student to have a personal laptop. The laptop minimum specifications listed on will be acceptable for EE319K. We think adding more RAM will make the operating system run faster. This laptop will greatly simplify lab completion, and it is required to complete Exam 2. However, if having a laptop presents difficulty, please see your professor to see what options are available. The EE319K staff feels very strongly that you should have your own computer on which you develop your software and write your reports. We think both software development and report writing should be done without paper, pencil and erasers. Having a computer at home allows you to organize your information (files, directories etc.) as well as your schedule (allocate your software development time for that the time of day during which you are most creative and energetic.) Physiologically most people are more energetic in the morning. On the other hand, there are fewer distractions late at night. Some students do their EE319K lab work on campus using the computers in ECJ1.314, but most find it convenient to configure their laptops to work with the EE319K hardware. This way they have a common platform while working at home as they have while demonstrating to the TA in lab. To work on your laptop, you will need to install Keil uVision for the ARM. For drawing electrical circuit diagrams some students use PCBArtist. Both of these applications run on a PC computer running Windows XP, Windows 7, or Windows 8. These software development systems will run on any PC with a USB port.
  2. Every team of two students will be required to have a microcontroller board, either the EK-TM4C123GXL or EK-LM4F120XL(older, hard to find, but OK). You should have the microcontroller board by the start of your lab period the week of 2/9. Since this is a new kit and we will be using the kit in EE319K and EE445L for a few years, you will have the option of selling it at the end of the semester. We recommend you purchase a new Texas Instruments Tiva LaunchPad, which includes a board, and the microB USB cable. The cost will be $12.99 plus tax and is available from many sites, but the cost will vary from $10 to $23 depending on where you order it. Obtain this kit:

·        EK-TM4C123GXL (newer and more costly, but harder to get)


The Tiva LaunchPad can also be purchased at regular vendors like

· (EK-TM4C123GXL is part number 296-35760-ND)

· (595-EK-TM4C123GXL)

We will allow our students to use either Tiva LaunchPad, the same code runs on both (the TM4C123 has hardware PWM and USB host).  If you do buy or borrow a board from another student, I recommend you let the TA test it to make sure the board is functional. 

  1. Each group of two students will need an LCD graphics display. We recommend each group of two students purchase a Sitronix ST7735R 18-bit color 1.8" TFT LCD display. EE319K Lab 10 is a design competition where students build a hand-held video game. Owning the LCD means you will be able to show off your game to friends and family. Just like the microcontroller board, you will have the option of selling the LCD to subsequent students. There are three options to purchase a display. The best option is Adafruit (Links to an external site.) . The second option is (search for "Sitronix ST7735R". The cheapest option is to search for "Sitronix ST7735R". We will first need the LCD in Lab 7. You do not need to purchase the 8-pin male header (the TAs will have some of these).
  2. Every student should have a solderless breadboard. There are many options for finding one of these. In the building, you can get one from the IEEE student society. In town, you can get one at Frys or Radioshack. On the internet there are many options for the solderless breadboard. We recommend the Twin Industries TW-E40-1020, which is available in many places:

·        Newark                        56T0250                     $9.54

·        Mouser                        589-TW-E40-1020     $7.99

·        Allied Electronics       70012446                    $7.79

·        Digi-Key                      438-1045-ND             $8.98

There should be four power strips and at least 400 points, so little boards are also ok:

·        Newark            Twin Industries    TW-E40-510  56T0249                   $7.63

·        Mouser            Twin Industries    TW-E40-510  589-TW-E40-510     $7.18

You can wait to buy the breadboard until classes start, because it will be cheaper to get together with other students to save shipping costs. PLEASE DO NOT BORROW OR BUY A USED BREADBOARD. Used breadboards can develop weird and confusing faults (pins not connected or multiple pins inadvertently shorted) and could cost you hours and hours of frustration. We recommend you wait until classes start to buy the breadboard, this way 3 or 4 students can team up and make one combined order and save on shipping. (On the other hand, we do recommend you get the microcontroller board as soon as possible).

  1. Every student should own their own voltmeter and their own wire strippers. A voltmeter less than $20 will do, see BG Micro, or Jameco  Harbor Freight has three locations around Austin and usually sells voltmeters for less than $10: Since you will be making only 5 solder joints all semester, all students will be able to share the soldering iron in lab. However, all EE319K students will need their own voltmeter and wire strippers.

Safety warning: Due to the lead in most solder, please wash your hands after soldering, before eating or drinking. If you drop the soldering iron, let it fall to the ground. Do not try and catch it. If you are pregnant or think you might be pregnant, have someone else do the soldering.


Course Outcomes

After the successful conclusion of EE319K students should be able to understand the basic components of a computer, write assembly and C language programs that perform I/O functions and implement simple data structures, manipulate numbers in multiple formats, and understand how software uses global memory to store permanent information and the stack to store temporary information.

Detailed Objectives of EE319K:

  1. Understanding how the computer stores and manipulates data (characters, integers, and fixed-point numbers), the basic arithmetic and logical operations performed by the computer.
  2. The understanding of embedded systems (a system with the computer hidden inside) using modular design and abstraction.
  3. Assembly language and C programming: considering both function and style.
  4. Understanding how the computer executes instructions (fetch opcode, fetch operand, read data, operate, and write data).
  5. The use of a microcontroller (strategic use of RAM ROM and I/O) Microcontrollers typically have a little RAM and a lot of ROM. Globals, locals and the heap go in RAM. Constants and programs go in ROM.
  6. Debugging and verification using a simulator and on the microcontroller (embedded systems typically do not have a print function). Debugging techniques, such as breakpoints, scanpoints, profiles, monitors, voltmeters, oscilloscopes, logic analyzers.
  7. How input/output actually happens (the students wire up analog and digital signals to the TM4C123 and measure them with a voltmeter), synchronization,  including switches, LEDs, LCDs, DACs, ADCs, and serial ports.
  8. The implementation of an I/O driver (a set of programs that perform input/output).
  9. Understanding, from an architecture standpoint, how local variables and parameters work (e.g., space on the stack is dynamically created, the local variable is accessed using stack-pointer relative addressing, then the space is deallocated).
  10. Analog to digital conversion (ADC), e.g., the students interface a slide potentiometer to the ADC and write software that measures the position of the slide, creating a display like “1.234 cm”.
  11. Interrupt synchronization, real-time ADC sampling (periodic timer interrupts), introduction to multithreaded programming.
  12. Digital to analog conversion (DAC), used to make simple sounds.
  13. Design and implementation of elementary data structures, such as linked lists, stacks and queues.


Prerequisites: EE306 or BME303 with a grade of at least C-. You should recall:

  1. Bits
    1. Numbers - Unsigned and Signed Integer representation in 2’s Complement
    2. True/False - Logical Operations
    3. Characters - ASCII representation
  2. Gates
    2. DeMorgan’s Laws
  1. Computer Components
    1. Central Processing Unit: Arithmetic Logic Unit, Control Unit, Registers
    2. Memory – ROM and RAM

                                                               i.      Address Space and Addressability

    1. I/O
  1. LC3 Assembly Language
    1. Instruction Set (ISA)
    2. Pseudo-ops
    3. Op-codes and Operands

                                                               i.      Memory operations

                                                             ii.      Arithmetic and Logic operations

                                                            iii.      Control operations – Branches/Jumps

    1. Addressing Modes
  1. Programming
    1. Algorithms, Flow-Charts
    2. Data Types
    3. Arrays
    4. Interrupts


Teaching Philosophy

The EE319K staff strongly encourage students to take an active role in this class.  Questions are welcome before, during and after class. Please feel free to email, visit or call us if you have questions.




Homework/Programming Assignments

Weekly, turned in during class


Laboratory Assignments

Due at lab times (Tue/Wed/Thu)


Exam 1 (common exam in evening)

Thu 2/25 7-8:30pm


       Tiwari and Yerraballi Classes: BUR 106

       Janapa Reddi and Valvano Classes: WEL 1.308


Exam 2 (common exam in evening)

Thu 4/7 7-8:30pm

      Valvano  Class: PHR 2.108

       Janapa Reddi Class: PHR 2.110

       Tiwari Class: UTC 3.110

       Yerraballi Classes: ECJ 1.202


Final Exam (common exam, not usual time)

Date FRIDAY, MAY 13, 7-10 PM

Location: HMA

Makeup SATURDAY, MAY 14, 2-5 PM, CPE 2.216

There will be no re-tests, make-ups, or incompletes.

Cutoff scores for the letter grades will not be determined until after the final exam.

Attendance: Students are expected to attend lectures. The book covers more information than the class, and we will use lectures to map our way through the book. If you miss class you may find it difficult to catch up.  

Laboratory Policies and Lab Partners: See the introduction to the Lab manual. Please DO NOT unplug the monitors and attach the monitor to your laptop.

Exams: All students in EE319K will take Exam 1, Exam 2 and the Final Exam at the same time and place. Exam 1 is a regular written test, but outside of the normal class time and room. Exam 2 is a practical programming exam during which you will design, implement, and debug a software system in assembly. Your exact room will be assigned to you by your professor. Each student will need a laptop that can run for 120 minutes on battery power. You will need wireless internet connection for the first and last 10 minutes of the exam. You will be writing software using Keil uVision in simulation mode. No microcontroller hardware will be needed. During the exam you will not have access to the book, to the internet, to any starter code, or to any of your previously downloaded or written software. You will have access to the two page instruction sheet handout (like Exam 1), and the help system in Keil uVision. Please contact your professor by March 1 for any of the following four reasons: a) you do not own a laptop that can run simulation of uVision; b) your laptop runs but will need AC power because of a weak battery; c) your laptop runs but does not have wireless connection; d) you have a schedule conflict that prevents you from taking the test at the given time.


Tentative Lecture Schedule

The following schedule is preliminary; please check the web for the most recent version.





Lecture Schedule





Ch. 1, Ch. 2

Introduction Course administration; Embedded systems, development cycle;

Flow charts, data flow and call graphs; Electronics, logic, Ohm’s law;

ARM programming and Keil uVision tools.







Ch. 3 (3.1-3.3),
Sec. 4.1.3, 4.2.1

(Patt Ch. 11, 12)

Architecture – ARM architecture and execution; Simple addressing modes;

Introduction to C programming; Structure of a C program.

I/O – Parallel ports, direction registers; Logical and shift operations;

C variables, assignments and Boolean expressions.




Lab 1


Sec. 4.6, 5.8,

Sec. 4.2.2

(Patt Ch. 15)

Debugging – Debugging techniques, monitors, breakpoints, single stepping;

Debugging using Keil uVision.

Board – Demo of the board (in class);

Switch input and LED output






Ch. 5 (5.1-5.3),

Sec. 3.3.6, 3.3.8

(Patt Ch. 13, 14)

Modular programming – Abstraction and refinement;

Subroutines, parameters, stack; C functions.

Arithmetic – Arithmetic operations; Overflow, condition code bits;

Control structures, branches, if-then, loops.




Lab 2


Ch. 6 (6.1-6.3),

Sec. 6.9

(Patt Ch. 16)

Pointers – Indexed addressing; Arrays; Strings;

C pointers, arrays, indexing, strings.

Advanced functional debugging – Debugging dump.





Lab 3


Sec. 4.4


Ch. 1-5


Timers – SysTick Timers; Review for Test 1.


Test 1 (closed book), Thursday, 2/25, 7-8:30pm, room TBA





Lab 4


Sec. 6.4, 6.5,

Sec. 9.1

(Patt Ch. 19)

FSMs – Finite state machines (FSMs); Linked structures;

C structures and data types; FSMs in C.

I/O synchronization – Blind cycle, busy wait, interrupts;

Phase locked loop (PLL).




Lab 5 


Ch. 9 (9.1-9.4),

Sec. 9.6,

Sec. 10.1-10.3


Interrupts – ARM interrupts and interrupt processing; Interrupt controller;

Thread synchronization; Periodic interrupts; C/assembly interface;

D/A conversion – Digital to analog conversion (DAC); Resistor networks;

Sound and music generation.

Spring break 3/14-3/19





Lab 6


Ch. 7 (7.1-7.8)

(Patt Ch. 17)

Variables, parameters – Locals; Scope (local/global); Stack frames, recursion;

Parameter passing, call-by-value, call-by-reference.

LCD interface – LCD programming;

Fixed-point numbers, number conversions.




Lab 7


Sec. 10.4-10.6

Sec. 7.6

A/D conversion – Analog to digital conversion (ADC); Nyquist theorem;

Lab 8 design methods.

Numerical calculations – Multiplication and division;
Interpolation and calibration.






Exam 2

Ch. 1-7

Review for Test 2.


Test 2 (closed book), Thursday 4/7, 7-9pm,  (room TBA).





Lab 8


Ch. 8 (8.1, 8.2),

Ch. 11 (11.1‑11.4)

(Patt Ch. 19,

skip Sec. 19.4)

Serial I/O – Universal asynchronous receiver transmitter (UART);

UART programming and interrupts; Lab 9 introduction

Thread communication – Producer-consumer problems; FIFO queues;

FIFOs and queues in C.




Lab 9


Sec. 6.7, 9.7

Game programming – 2-D arrays, bitmaps, sprites;
Game engine design; Data structures, timer interrupts;

Lab 10.









Floating Point; Advanced Embedded System Design; 

each professor will explore topics related to embedded systems




Lab 10


Ch. 1-11

Review for Final Exam.


Game Competition, during class time on last  day of class



Lab Schedule

Labs are due during your lab time (Tue/Wed/Thu), and are demonstrated to the TA.

There will be a signup for Lab checkout times. Each student will have a specific checkout time which will be when their lab will be demonstrated to their TA.

You can only switch lab sections using official add/drop procedures.

Lab Manual
Lab Introduction
Lab Demo Week 1 and Week 3
Lab 1 Digital Logic Implemented on a Microcontroller
Lab 2 For-loops, while-loops, if-then branching, subroutines, and time delays
Lab 3 Switch and LED interfacing
Lab 4 Minimally Intrusive Debugging Methods
Lab 5 Traffic Light Controller
Lab 6 Digital Piano using a Digital to Analog Converter
Soldering Safety, Preparing, Making good joints, components
Lab 7 LCD Device Driver for the Sitronix ST7735
Lab 8 Real-Time Position Measurement System
Lab 9 Distributed Data Acquisition System
Lab10 Embedded System Design






None, do not go to lab.



Go to ECJ 1.314 for demonstration, install Keil tools on your laptop before.


Lab 1

Digital lock, I/O, parallel port, direction register and logic function, written in assembly (simulated, each student does Lab 1 themselves)



Real board demonstration, bring your board to lab.


Lab 2

For-loops, while-loops, if-then branching, subroutines, and time delays, written in assembly (simulated and board, groups of two)


Lab 3

LED and switch interface, circuit measurements, schematics, written in assembly (board, groups of two)


Lab 4

Debugging techniques, one switch, one LED, written in assembly (simulated and board, groups of two)


Lab 5

Traffic Light Controller, FSMs, written in C (simulated and board, groups of two)

Spring Break


Lab 6

Digital Piano using a 4-bit DAC, written in C (simulated and board, groups of two)


Lab 7

LCD device driver, decimal fixed-point output, local variables, written in assembly (simulated and board, groups of two)


Exam 2

Thursday, 4/7, 7-9pm, room to be announced (Programming Exam)


Lab 8

Real-time position monitor, ADC, interrupts, LCD, mixture of assembly and C (simulated and board, groups of two)


Lab 9

Distributed DAS, serial port interrupts, FIFO queue, mixture of assembly and C (simulated and board, groups of two)



 No lab  (TAs help with Lab10 and Final)


Lab 10

Game design competition, written in C (simulated and board, groups of two)


The Homework schedule can be found in the Homework Manual posted on the class website at:


Lab Computer Usage

Computers in ECJ1.314 are available for your usage. EE319K shares this room with EE302. TAs in the laboratory are checking off programs and supervising while on duty, thus you can expect to have only brief consultations with them. You should learn to develop software while on the computer. This course involves some projects that require extended periods of time to complete and a project cannot be done just overnight. Get started on an assignment early so you can get help if you need it. There are not enough machine hours to give everyone more than enough time to complete each program. We expect students to have a laptop or have access to a machine to run at home. Unfortunately, expect the laboratory to be crowded and machine time to be scarce if you attempt to work in the lab a day or two before an assignment is due. You will be competing with students in other courses for computer time. We need your assistance in the laboratory. Please report any equipment problems to the TA if they are present. If a TA is not present, use the form provided in the lab. If you do this, we can rapidly get repair service. Please help to keep the lab clean. 

EE319K kit handed out by TAs (do not need to be returned)

1 7406, six open collector drivers used for the LED interfaces

6 LEDs (20 mA, 2 red, 2 yellow, and 2 green LEDs)

6 220 ohm 5%, 0.25 watt resistors

3 push-button switches

3 10k ohm 5%, 0.25 watt resistors

3 1.5k ohm 5%, 0.25 watt resistors

3 12k ohm 5%, 0.25 watt resistors

2 feet of 4-Wire 24 gauge solid wire, used to prototyping (you can get more wire, just ask your TA)

1 0.1 uF ceramic bypass cap, place across power and ground of the 7406

1 headphone jack, used in lab 6 to create audio

1 10k or 20k ohm slide pot, used in labs 8 and 9 to measure distance, used in Lab 10 as joystick

Items to get from your TA

Serial cable for Lab 9, used to connect one LM4F120/TM4C123 board to another (this cable is simply 3 wires about 2 feet long).

Software to install on your laptop

1.      Go to

2.      Enter your contact information with valid address, phone and email:

Company = University of Texas, devices = TI, architecture = Cortex-M4

3.      Click submit.

4.      Right-click on mdk474_a.exe and save it to your computer.

5.      Run the exe to install.

1.    Download the TM4C123/LM4F120 example files This installer includes starter files for Labs 1-4. The starter files for Labs 5-10 will be delivered as part of the SVN repository.

2.    Find the Keil\EE319Kware\windows_drivers folder within this set of examples

3.    Plug the LaunchPad board in, and direct Windows to find drivers in this windows_drivers folder


The Digilent Analog Discovery is a low-cost but wonderful tool for this class. It is not required, but very handy, especially if you need to work at home this semester.

Legal Notes

The 12th class day is February 3 The drop policy is extremely complicated. See your academic advisor or the Dean of Students for more information. Course evaluation is conducted on the last class day in accordance with the Measurement and Evaluation Center form. The final exam is at the time and place stated in the course schedule. April 4th is the last day an undergraduate student may, with the Dean’s approval, withdraw from the University or drop a class except for urgent and substantiated, nonacademic reasons.

Students with disabilities: The University of Texas at Austin provides upon request appropriate academic adjustments for qualified students with disabilities. Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement. For more information, contact Services for Students with Disabilities, 471-6259,
Religious Holy Days: By UT Austin policy, you must notify the instructor of your pending absence at least fourteen days prior to the date of observance of a religious holy day. If you must miss a class, an examination, a work assignment, or a project in order to observe a religious holy day, we will give you an opportunity to complete the missed work within a reasonable time after the absence.

Electronic mail notification policy: In this course, e-mail will be used as a means of communication with students. You will be responsible for checking your e-mail regularly for class work and announcements. The complete text of the University electronic mail notification policy and instructions for updating your e-mail address are available at

Use of Canvas and class web site: This course uses the class web page and Canvas to distribute course materials, to communicate and collaborate online, to submit assignments and to post solutions and grades. You will be responsible for checking the class web page and the Canvas course site regularly for class work and announcements. As with all computer systems, there are occasional scheduled downtimes as well as unanticipated disruptions. Notification of disruptions will be posted on the Canvas login page. Scheduled downtimes are not an excuse for late work. However, if there is an unscheduled downtime for a significant period of time, we will make an adjustment if it occurs close to the due date.


Scholastic Dishonesty

"Faculty in the ECE Department are committed to detecting and responding to all instances of scholastic dishonesty and will pursue cases of scholastic dishonesty in accordance with university policy. Scholastic dishonesty, in all its forms, is a blight on our entire academic community. All parties in our community -- faculty, staff, and students -- are responsible for creating an environment that educates outstanding engineers, and this goal entails excellence in technical skills, self-giving citizenry, an ethical integrity. Industry wants engineers who are competent and fully trustworthy, and both qualities must be developed day by day throughout an entire lifetime. Scholastic dishonesty includes, but is not limited to, cheating, plagiarism, collusion, falsifying academic records, or any act designed to give an unfair academic advantage to the student. The fact that you are in this class as an engineering student is testament to your abilities. Penalties for scholastic dishonesty are severe and can include, but are not limited to, a written reprimand, a zero on the assignment/exam, re-taking the exam in question, an F in the course, or expulsion from the University. Don't jeopardize your career by an act of scholastic dishonesty. Details about academic integrity and what constitutes scholastic dishonesty can be found at the website for the UT Dean of Students Office and the General Information Catalog, Section 11-802." 

You are encouraged to study together and to discuss information and concepts with other students. You can give "consulting" help to or receive "consulting" help from such students in oral form. However, this permissible cooperation should never involve one student having possession of a copy of all or part of work done by someone else, in the form of an email, an email attachment file, a portable storage device, or a hard copy. Copying of any part of a program is cheating without explicit reference to its source. We do enter lab assignments turned in by EE319K students through a plagiarism checker, comparing them to assignments of this and previous semesters. If we find two programs that are copied, there will be a substantial penalty to both students, e.g., failure in the course. Students who cheat on tests or in lab will fail. Prosecution of cases is very traumatic to both the student and instructor. It is appropriate to use software out of the book, class website as long as all copy-pasted software is explicitly referenced. Copy-pasting software from current or past EE319K students is scholastic dishonesty. Policies concerning the use of other people's software in this class:


A practical guide to ethics involving software development for EE319K labs

Activities you can and should do

  1. You are supposed to share everything with your partner. If you form a Lab 10 team with a different student from your partner in labs 3-9, then you can share your lab 3-9 code with the new partner. Make sure the code contains the proper names of who actually helped develop it.
  2. You can and should discuss strategy, theory, approach, and debugging tips with past, present, and future students in this class. This includes flowcharts, data flow graphs, call graphs, pictures and descriptions of data structures.
  3. You can and should read books and search the internet for existing software similar to the problem you have been asked to solve. You may copy-paste that software into your lab as long as you include a full reference of its source. In fact, we all stand on the shoulders of giants and in (large) software development projects, code reuse and building on top of rich libraries is often a key strategy to success. However, proper credit needs to be given and permission to (re)use code from others needs to be obtained. Anything else is cheating and stealing. You are of course also responsible for understanding all software used in your lab solution.
  4. You can look at up to 3 or 4 lines of code from another EE319K student as part of the discussion described in 1), as long as you are not observing the entire function.

Activities you cannot and should not do

  1. If you form a Lab 10 team with a different student than your partner in Labs 3-9, then you cannot share any newly written lab 10 code with the old partners.
  2. You cannot copy any software either electronically or optically (look at it and type it) from any past, present or future EE319K students. This includes lab solutions that another student has inappropriately posted on the internet. You are not allowed to look at another student’s lab solution and reproduce it with different formatting or variable names. This can be simply stated “do not look at Lab solutions of another student”, with the 3-4 line exception listed above.
  3. You may not copy-paste old lab solutions to another student. For example, you may not share your LCD driver from Lab 6 to another group while working on Labs 7-10. You cannot give your lab solutions you develop this semester to a student taking the course in the future.
  4. When copy-pasting code from a book or the internet, you should never remove the author’s name. See rule 2) above.
  5. When copy-pasting code from a book or the internet, you should not expect the code to work (most likely it won't work as expected anyway); it is your responsibility to understand and debug all code used in your lab solutions.


University Honor Code: "The core values of the University of Texas at Austin are learning, discovery, freedom, leadership, individual opportunity, and responsibility. Each member of the University is expected to uphold these values through integrity, honesty, trust, fairness, and respect toward peers and community."


Abet material
Three lecture hours and one laboratory hour a week for one semester.  
Design Assignments: Labs 5, 8, 9, 10 (1 week each)
Laboratory Projects: Labs 1, 2, 3, 4, 6, and 7
SCH Engineering Topics 3 (Including: 1 SCH of Engineering Design)

Relationship of the Course to ABET EC2000 Program Outcomes:

ABET EC2000 Program Outcomes

a.      An ability to apply knowledge of mathematics, science, and engineering

b.   An ability to design and conduct experiments, as well as to analyze and interpret data

c.   an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability


d.   An ability to function on multi-disciplinary teams

e.   An ability to identify, formulate, and solve engineering problems


f.    An understanding of professional and ethical responsibility

g.   An ability to communicate effectively


h.   The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context

i.    A recognition of the need for, and an ability to engage in life-long learning

j.    A knowledge of contemporary issues

k.   An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice


ABET Criterion 9:  Program Criteria for Electrical Engineering Curriculum Achieved:



 Programs must demonstrate that graduates have a knowledge of:


1.   Probability and statistics, including applications appropriate to the program name and objectives;

2.   Mathematics through differential and integral calculus, basic sciences, computer science, and engineering sciences necessary to analyze and design complex electrical and electronic devices, software, and systems containing hardware and software components, as appropriate to program objectives.

3.   (Electrical) Advanced mathematics, typically including differential equations, linear algebra, complex variables, and discrete mathematics.




Curious about Reddi's research? See

Curious about Tiwari's research? See

Curious about Valvano's research? See  

Emergency Preparedness and Emergency Plan Instructions
Please review
    Every member of the university community must take appropriate and deliberate action when an emergency
strikes a building, a portion of the campus, or entire campus community. Emergency preparedness means we
are all ready to act for our own safety and the safety of others during a crisis. It takes an effort by all of us to
create and sustain an effective emergency preparedness system. Your support is important to achieving the
best possible outcomes during a crisis event.
    As a University faculty member, you are responsible for pointing out your classrooms' building emergency
evacuation routes and for reviewing emergency procedures with students at the beginning of each semester.
This review should include a mention of the monthly emergency communications test (every first Wednesday
at 11:50 a.m.) and the list of communications channels the university uses during emergencies. It should also
include a review of the attached document outlining emergency terms (e.g., the difference between “shelter-inplace”
and “lockdown”) and instructions for faculty and students to follow during emergencies. As a matter of
convenience, we recommend including this information in your syllabus along with the phone number for the
Behavior Concerns Advice Line (BCAL: 512-232-5050). This is the number to call if you have concerns
regarding the attitude or actions of students, staff, or other faculty.
    Finally, at the end of your emergency preparedness review, request that students requiring assistance in
evacuation inform you in writing of their needs during the first week of class. This information must then be
provided to the Fire Prevention Services office by fax (512-232-2759), with "Attn. Mr. Roosevelt Easley" written
in the subject line.
    Thank you in advance for taking the time to ensure the safety of your classroom. I assure you this small effort
can yield much greater rewards should the unthinkable happen. If you would like more information regarding
emergency preparedness, visit