ECE 390





Dr. Zbigniew Kalbarczyk:

Office: 267 Coordinated Science Laboratory;

            1308 W. Main, Urbana

Phone: (217) 244 7110
Office hours: Thursday, 1:00 p.m. to 3:00 p.m. and by appointment





  • ECE 290 or CS 231 or consent of instructor.
  • Students may not receive credit for both ECE 390 and CS 232.



  • Course goals:
    • To understand the principles and techniques of machine-level programming.
    • To design and implement complex programs.
    • To learn to use computers for real time data acquisition and control of input-output devices.
    • To develop teamwork skills
  • Detailed instructional objectives are available online.


LECTURES: 119 Material Science and Engineering Bld. Tuesdays and Thursdays, 10:30 a.m. to 11:50 a.m.

  • Lecture notes are available on-line from the ECE 390 Web site.
  • These notes serve as an outline for the course, not as a substitute for regular classroom attendance. Additional discussions, clarifications, and examples are provided in the classroom.


LABORATORY: 238 Everitt Lab. Phone: 333-9591

  • Your blue key card provides 24-hour access to the laboratory, except during official university holidays and breaks. Access will end on Reading Day.
  • The instructor and TAs will be in the laboratory according to the schedule posted on-line.
  • Lab etiquette:
    • Cleanliness: Keep food and drinks away from the machines. Put trash in wastebaskets.
    • Thrift: Use the printer sparingly. On-line homework assignments are not meant to be printed on paper.
    • Safety: Do not prop the door open at night or on weekends.
    • Manners: Use headphones when listening to music.



  • The ECE 390 Web site contains important information about the course.
    • Course Information: Announcements, exam, homework, and machine problem due dates.
    • Homework: Homework assignments are posted and graded on-line.
    • Machine Problems: Machine problem assignments are available on-line.
    • Grades: Your grades will be posted in the ECE 390 online gradebook.



  • Every student must have Internet access, a Web browser, and an e-mail account.
    • Engineering students have logins on the Engineering Workstation Laboratory machines.
    • Web browsers and telnet are installed on the machines in the laboratory.
  • Every student must set an Active Directory password at in order to access ECE 390 assignments and resources.
  • The ECE 390 WebBoard, Web site, and schedule are accessible via
  • You should read the ECE 390 WebBoard every day for important information about the course.
    • Help with assignments
    • Updated deadlines
  • WebBoard etiquette: You may read and post announcements, questions, answers, and comments about any aspect of the course. Complaints must include constructive suggestions. Flaming and personal attacks are unacceptable. Compliments and public recognition of good deeds are always welcome.



  • There will be two midterm examinations and a final examination
  • Copies of examinations from previous semesters are available online in the "Resources" area of the course Web site.
  • See the schedule for scheduled exam dates.



  • Assigned approximately every other week.
  • Submitted and graded on-line via the ECE 390 Web site.
  • May be resubmitted for higher credit until 11:59 p.m. on the due date.
  • See the schedule for scheduled assignments and due dates.
  • There is no credit for late homework.



  • Deadlines: To receive full credit for a machine problem you must demonstrate your correctly working program to a TA or the instructor by 5:00 p.m. on the day that the machine problem is due. For a submission after the deadline, 10% per weekday (Monday through Friday) will be deducted.
  • Subroutines: You will be given library versions of subroutines that you are assigned to write. You may use these library versions to help you develop your own program. If you are unable to complete all of the assigned subroutines, then you may use a library version of a subroutine, with loss of credit. There will be no credit for programs that do not work at all.
  • Bonus Points: You are encouraged to turn in your programs early. Beginning with MP1, you will be awarded one extra point for each weekday the program is early. You may earn a maximum of five bonus points (five days early). Bonus points are worth just as much as normal points. Bonus points can offset subtractions for deficiencies in style, modularity, and documentation.
  • See the schedule for scheduled due dates.
  • Start Early: There are fewer machines in the lab than students in the class. Long waits to use a computer or demonstrate a program can be avoided if you start and finish your machine problems promptly.



  • ECE 390 grades are based on a 1000-point scale. A student's total score is computed as the sum of the raw points earned on the homework, machine problems, exams, and final project, with caps on the raw points earned on the homework and machine problems.
  • The approximate allocation of points to assignments is shown in the table below.




Machine Problems

MP Bonus Points



















































1000 points


  • Course Grades: Plus and minus grades will be assigned using cutoffs calculated in two different ways. For each grade, the lower of the two calculated cutoffs will be used. Each grade cutoff may be lowered further, but will not be raised.
    • First method: A-plus = 967, A = 934, A-minus = 900, B-plus = 867, B = 834, B-minus = 800, C-plus = 767, C = 734, C-minus = 700, D-plus = 676, D = 634, D-minus = 600, F = less than 600
    • Second method: Calculated relative to the average of the total scores of the top 10% of the class
      • Minimum A-minus = 95% x Avg(Top 10%)
      • Minimum B-minus = 85% x Avg(Top 10%)
      • Minimum C-minus = 75% x Avg(Top 10%)
  • For example, if your total score is 891, then you would be guaranteed a B-plus or higher grade. If 95% of the average of the top 10% of the class is 887, then you would receive an A-minus.



  • If you have any concerns about factors such as a disability or a religious practice that may interfere with the successful completion of a course requirement by its deadline, please contact the instructor in advance.
  • Requests for time extensions on machine problems and excuses for missed examinations will be considered only if accompanied by documentation from a physician or an omnipotent dean.



  • The faculty of the Department of Electrical and Computer Engineering expects all students to conduct their academic work with the high ethical standards of the engineering profession.
  • Except for group assignments, each machine problem, homework assignment, and exam must represent your own work. You may help other students by discussing assignments, but you must not copy anyone else's solution. Violations of these standards of academic integrity will result in appropriate disciplinary action.
  • For group assignments, expectations for individual accountability will be stated.



  • Required Materials
    • ECE 390 Laboratory Notes. (Available through IEEE Student Branch, Room 243 Everitt Lab early in the semester)
    • Key Card. If you already have a blue key card, then by registering for ECE 390, you will have access to the lab. If you do not have a key card, see Kara MacGregor, Room 153 Everitt Lab.
  • On-line Materials
  • Recommended Books
    • D. W. Lewis, Fundamentals of Embedded Software, Prentice Hall, 2002.
    • W. S. Humphrey, Introduction to the Personal Software Process, Addison-Wesley, 1997.
    • D. Kushner, Masters of Doom, Random House, 2003.
  • Other Books (on reserve at Grainger Library)
    • P. Abel, IBM PC Assembly Language Programming, 5th ed., Prentice Hall, 2001.
    • B. B. Brey, The Intel Microprocessors 8086/8088 - Pentium, Merrill (MacMillan)
    • J. Duntemann, Assembly Language Step By Step, 2nd ed., Wiley.
    • W. B. Giles, Assembly Language Programming for the Intel 80XXX Family, Macmillan, 1991.
    • R. L. Gray, Macro Assembler Programming for the IBM PC and Compatibles, Macmillan, 1989.
    • H. Hahn, Assembler Inside and Out, Osborne-McGraw Hill, 1992.
    • R. E. Haskell, Introduction to Computer Engineering- Logic Design and the 8086 Microprocessor, Prentice Hall, 1993.
    • K. R. Irvine, Assembly Language for Intel-Based Computers, 3rd ed., Prentice Hall, 1999.
    • Pentium Family User's Manual, Volume 3: Architecture and Programming Manual, Intel Corporation, 1995.
    • J. Sanchez and M. Canton, Numerical Programming the 387, 486, and Pentium, McGraw-Hill, 1995.
  • Other Resources:
    • Copies of exams from previous semesters are available online via this Web page.
    • The locked cabinet in the ECE 390 lab has a small collection of reference books on programming and interfacing. Please ask the TAs for access to the cabinet.