Syllabus: CS 163: Embedded Systems (Spring 2010)
- Meeting time: Tu/Th 1:30-2:45
- Location: Felgar Hall 334
- Computer Organization (CS 2613 or equivalent), Operating Systems (CS 3113 or equivalent), and Linear Algebra (Math 3333 or equivalent)
- Text Books (available in the book store):
- Designing Embedded Hardware, John Catsoulis,
O'Reilly, 2005, 2nd Edition, ISBN: 0-596-00755-8
(very optional) Embedded C Programming and the Atmel AVR, Richard
H. Barnett, Sarah Cox, Larry O'Cull (2003), Thomson/Delmar
Learning, ISBN: 1401812066
Other key materials:
Course web page:
- We will also be making heavy use of Desire to Learn
- Instructor: Dr. Andrew H. Fagg
- Teaching Assistant: Di Wang
Course Goals and Topics
By the end of this course, you should be able to:
- read technical specifications for microcontrollers and other components,
- design and implement embedded circuits involving
microcontrollers, sensors, actuators, and the associated "glue circuitry,"
- program and debug embedded sensing and control software, and
- work in collaborative teams.
This is a very hands-on class: every student will
be involved in the design, implementation, and programming for the
laboratory exercises. Note that this component of the class will
involve a non-trivial amount of time; students should plan their
Topics will include:
- embedded systems programming,
- microcontroller architecture,
- introductory electronics,
- digital and analog interfaces,
- embedded systems development environments,
- communication protocols,
- real-time operating systems (including concurrency and synchronization), and
- interrupt handling and timing.
- Attendance: We will discuss concepts and examples in
class that are not in the text book. Another student's notes
are an inadequate substitute for class attendance. You are
responsible for everything that is announced in class.
- Class Web Page: Most of the material that you will need
can be found on the class web page located at:
- Desire to Learn: This class will also use D2L, located at:
Login with your 4+4 (typically the first four letters of
your last name followed by the last four digits of your student
number), using your standard OU password. If you have difficulty
logging in, call 325-HELP. This software provides a number of useful
features, including a list of assignments and announcements, an
electronic mailing list, newsgroups, and a grade book.
I will update the main web site and the D2L page several
times a week. When I update the site in any significant way, I will
post an announcement on D2L telling you what has been added
and where it is located. You are responsible for things posted on the
site within 48 hours of the post.
- Class Email Alias: Urgent announcements will be sent
through email. It is your responsibility to:
- Have your university supplied email account properly forwarded to the location where you
- Make sure that your email address in D2L is correct, and forwards email to the place
where you read it. I'll send out a test message during the first week of class. If you do not
receive this message, it is your responsibility to get the problem resolved immediately.
- Have your email program set up properly so that replying to your email will work correctly the
first time. You can send email to yourself and reply to yourself to test this. I will not make any
attempt to get bounced email messages delivered.
If you need assistance in accomplishing any of these tasks, contact 325-HELP.
- Final Examination: The final examination is Monday, May
10th from 1:30 to 3:30. The final is comprehensive, as required by
College of Engineering policy. No final examinations can be given
early, except as required by University policy. During
examinations, students are expected to sit in assigned seats.
Missing an examination without a
previously approved excuse will result in a grade of zero for
- Newsgroups and Email: The newsgroup on D2L should
be the primary method of communication (outside of class). This
allows everyone in the class to benefit from the answer to your
question, and provides students with more timely answers since both the TA and I check D2L
at least once a day. Matters of personal interest should be directed to email instead of to the
newsgroup, e.g. informing me of an extended personal illness. Posting guidelines for the newsgroup
are available on D2L.
- Academic Misconduct:
Feel free to discuss homework and labs with the instructor or the TA.
However, do not discuss, look at, or copy another
student's solution to a homework assignment, as this is considered
The five project milestones will be performed in collaboration with 3-4
other people. Within groups, you are expected to discuss and share
solutions. General discussion between groups is fine. However, unless otherwise stated,
the sharing of project-specific circuit diagrams or code is
You may make use of the net as a reference as you are working on homework
and labs. However, downloading specific homework or project
solutions from the net is considered cheating.
Make sure that your computer account is properly protected. Use a good password, and do not
give your friends access to your account or your computer system. Do not leave printouts,
floppy disks or thumb drives around a laboratory where others might access them.
Programming projects will be checked by software designed to detect collaboration. This software
is extremely effective and has withstood repeated reviews by the campus judicial processes.
Upon the first documented occurrence of collaborative work, I will report the academic misconduct
to the Campus Judicial Coordinator. The procedure to be followed is documented in the University
of Oklahoma Academic Misconduct Code (
http://www.ou.edu/studentcode/OUStudentCode.pdf). In the unlikely event that
I elect to admonish the student, the appeals process is
described in http://www.ou.edu/provost/integrity-rights/.
- Tutors: Tutors can be an excellent source of
support for students who are having difficulty in the
class, but only if the tutor is aware of the distinction
between teaching students the material so that they can
do their own work, and doing work for students. Tutors
who do work for students are not only failing to help
the students learn, they are abetting academic
misconduct. Examples of misconduct include:
- If your tutor is sitting behind you while you are
typing and methodically telling you what to
enter, he or she is abetting academic
- If you tutor is emailing files containing partial
or complete programming projects to you, you will
commit academic misconduct if you use those lines
in your program.
A more effective use of tutoring services is to do problems that are similar to the assigned work,
instead of doing assigned work. For example, it would be fine to work unassigned problems from
the textbook with a tutor. This requires significant discipline, both on the part of the tutor and the
part of the student. Copying from a tutor is as unacceptable as copying from another student. If
your tutor doesn't know how to teach properly, please ask them to call or visit me and I will provide
training and guidance. If you are tutoring someone else in the class, you can be accused of
academic misconduct if this person copies your work.
- Incompletes: The grade of "I" is intended for the
rare circumstance when a student who has been successful in a
class has an unexpected event occur shortly before the end of
the class. I will not consider giving a student a grade of
"I" unless the following three
conditions have been met.
It is within two weeks of the end of the semester.
The student has a grade of C or better in the class.
The reason that the student cannot complete the class is properly
documented and compelling.
Accommodation of Disabilities: The University of Oklahoma is committed to providing
reasonable accommodation for all students with disabilities. Students with disabilities who
require accommodations in this course are requested to speak with the professor as early in the
semester as possible. Students with disabilities must be registered with the Office of Disability
Services prior to receiving accommodations in this course. The Office of Disability Services is
located in Goddard Health Center, Suite 166, phone 405/325-3852 or TDD only 405/325-4173.
- Classroom Conduct: Because cell phones and laptops can
distract substantially from the classroom experience, students
are asked not to use either during class (except in cases in
which the laptop is required as part of a classroom exercise).
Disruptions of class will also not be
permitted. Examples of disruptive behavior include:
In the case of disruptive behavior, I may ask that you leave the classroom and may charge you
with a violation of the Student Code of Responsibilities and Conduct.
Allowing a cell phone or pager to repeatedly beep audibly.
- Playing music or computer games during class in such a way that they are visible or audible to other class members.
- Exhibiting erratic or irrational behavior.
- Behavior that distracts the class from the subject matter
- Making physical or verbal threats to a faculty member,
teaching assistant, or class member.
- Refusal to comply with faculty direction.
Grades will be computed according to the following distribution:
- In-class participation: 10%
- Four homework assignments: 20%
- Five project milestones: 50% (25% for personal work; 25% for group work)
- Final exam: 20%
A total of five project milestones will be due over the course of the semester,
each building on the results of the previous project. The final
product will be a soccer playing robot. Project work will be performed in groups of
4-5. However, grades will be assessed in two components: personal
work and group work.
- Personal work: during the course of the semester, each student
must be a primary contributor to 2 (4163) or 3 (5163) major system
components. There will be 2-5 such major components that are
required for each of project milestones 2-5 (and other major components
may be proposed).
To receive full credit for a major component, you must be one
of (at most) two group members who perform the design and
implementation of the subsystem. Your other group members
should be involved in reviewing your design, testing your
implementation, and helping you to debug. But - a primary
contributor will have a significantly larger role in the
- Group work: the project milestones are designed as major stepping stones in
bringing the soccer playing robot up to speed. Points will be
awarded for demonstrating functionality for the milestone and
for properly documenting the work. Hence, if the primary
contributors are doing their job, the group work will
focus on system integration, testing, and documentation.
However, if the primary contributor fails to complete their
task (or no one has stepped up to perform the task), then the
group grade can suffer.
In general, group members will receive the same group grade.
However, if it is clear from the personal reports that some
group members are not contributing to the group work, then
their group grades can suffer.
General Grade Issues
- Grade questions: Homework and project grade disputes
should first be brought to the TA. If this does not resolve
your question, please see me during office hours. Please note
that I will examine the entire project or homework in question
and your final grade may end up lower. All disagreements about
the grading of projects or homework must be brought to the
attention of the teaching assistant within one week of when the
item was returned.
- Desire to Learn Grade Summary: D2L has a grade book
that is used to store the raw data that is used to calculate your
course grade. It is the responsibility of each student in this class
to check their grades on D2L after each project or homework
is returned. If an error is found, bring the graded document to me
or the TA, and we will correct D2L.
- Examination Grading Questions: If there is a dispute
about the grading of an examination problem, you may stay after
class the day the tests are returned to discuss
it. If you cannot stay at this time, return the paper to me and
stop by during my office hours. Once a test has been removed
from the classroom after it has been returned, the grade is
final and will not be changed, even if it is found to be in
Projects and Homework
- Due dates: Projects and homework assignments are due at
5:00pm on the date that is listed on the schedule.
- Hand-in procedure: Homework assignments may be handed in
using the digital drop box on D2L, or in hardcopy form.
Project materials must be handed in (and shared with group members)
using subversion. We will use
doxygen to automatically generate code-level documentation. Other associated documentation may be done in HTML or PDF.
addition, individuals will be asked to hand in a short text
evaluation of the project (more information to follow).
- Late policy: Because late assignments will seriously
impact your ability to follow the next section of the course, you are
required to hand in homework assignments on time.
No late assignments will be accepted.
Projects may be handed in late. If late by 0-24 hours, the
project grade will incur a 10% penalty; if late by 24-48 hours,
a 20% penalty will be imposed. Projects that have not been
handed in by 48 hours will receive no credit.
Many of the materials created for this course are the intellectual
property of Andrew H. Fagg.
This includes, but is not limited to, the
syllabus, lectures and course notes. Except to the extent not protected
by copyright law,
any sale of such materials
requires the permission of the instructor.
This page is online at http://www.cs.ou.edu/~fagg/classes/embedded_systems_2010/syllabus.html
Andrew H. Fagg
Last modified: Mon Jan 18 17:18:59 2010