Instructor
Dr. Carrick Detweiler
Assistant Professor
220 Schorr Center
Department of Computer Science and Engineering
University of Nebraska-Lincoln
Lincoln, NE 68588
carrick _at_ cse.unl.edu
Course Info
Spring 2016
Lecture: TTh 8:00-9:15am in Avery 110
Instructor office hours (220 Schorr):
See course website, schedule online (http://carrick.youcanbook.me/), and by appointment (email)
Teaching Assistants
Graduate TA: Najeeb Najeeb
Undergraduate TA: Zack Boone
Undergraduate TA: Dylan Fromm
Undergraduate TA: Manuel Garcia
Undergraduate TA: Jonathan Lee
Undergraduate TA: Firhard Roslan
TA office Hours:
See Course Website
Course Description
Embedded Systems are everywhere. Every time you look at your watch,
answer the phone, take a picture, or turn on the TV you are
interacting with an embedded system. Embedded systems are also found
in cars, airplanes, and robots. They far outnumber traditional
computers (which also contain embedded processors) and learning to design and
program embedded systems is a critical skill that is necessary for
many industry and scientific jobs.
In this course you will learn the basics of designing, interfacing,
configuring, and programming embedded systems. We will make use of the
Arduino platform, which is an inexpensive, popular embedded system
used by hobbyists, researchers, and in industry, to implement the
techniques learned in class. By the end of the course you will have
mastered the basics of embedded system design and programming. This
course will help to prepare you for cutting edge careers in industry
and research.
Course Website and email
The website for the course is: http://cse.unl.edu/~carrick/courses/\classyear/236/
This syllabus is subject to change, you will find the most up-to-date
version of the syllabus on the course website, as well as information
on readings, assignments, and projects. Please make sure to check it
regularly. In addition to posting information and assignments on the
course website, I will send information over email to the address you
gave me at the start of the course. I expect that you will check your
email on a daily basis. Please make proper arrangements if you will
not be able to check your email or if your email address changes.
Prerequisites by TopicsMastery of: processor organization, instruction set architecture, I/O
Interfaces, Boolean algebra, logic equations, binary and hexadecimal
number systems, fixed-point arithmetic.
Familiarity with: programming languages,
interrupt processing, I/O devices, logic gates, basic floating point
arithmetic, memory devices and hierarchies, assembly languages.
Textbooks
This course has a number of recommended textbooks. Most Readings are from the first two, the third is listed here for reference. The fourth is a
good reference for general C programming, although there are also
numerous resources available online.
Marilyn Wolf, Computers as Components, Third Edition: Principles of Embedded Computing System Design, 3nd ed. Morgan Kaufmann, 2012.
Available in the book store or purchase online.
David Russell, Introduction to Embedded Systems, 2010.
Available for free download when on the UNL campus:
http://www.morganclaypool.com/doi/pdfplus/10.2200/S00291ED1V01Y201007DCS030.
Good reference for embedded C programming. Do not print out this
book, it is less expensive to order a printed copy than to print it
yourself.
Edward Lee and Sanjit Seshia, Introduction to Embedded Systems, A Cyber-Physical Systems Approach, 2011.
Available as a free download online:
http://leeseshia.org/ Do not print out this book, it is less expensive to order a printed copy than to print it yourself. There are no specific readings from this book, but it is a good reference for those interested in exploring some subjects further.
Brian W. Kernighan and Dennis M. Ritchie, C Programming Language (2nd Edition), 1988. ISBN: 0131103628
Optional: suggested for those with little prior C programming experience
Course Platform
Each student will be given, and be responsible for, an Arduino
embedded system platform and associated hardware. You will be
responsible for taking care of these throughout the semester and you
may be charged for damage or loss of these.
Topics CoveredEmbedded System Organization: Major components in a typical embedded system, operating requirement, modes of operation, hardware/software codesigns, hardware-software trade-offs.
Microcontroller Programming: Basic structures of microcontrollers, basic features, memory interfacing, digital I/O, timers, analog interfaces, interrupt services, programming in high-level languages and assembly languages, basic data types, operators, constructs, data structures, compiler directives, power management.
I/O Interfacing Concepts: Input devices, output devices, memory mapping, bus structures, peripheral and external communication interfaces.
Operating System: Design and organization of embedded and real-time operating systems, scheduling, power management, communication, debugging.
Assignments and Grading
Assignments and due dates will be announced in class. Typically, all
assignments are due before the beginning of class on the day they are
due. Note that many of the assignments require check-off by the
instructor or TA before the start of class.
Your final grade will be composed of a number of components. These
are:
Percentage
Assignment
25%
Homeworks
15%
In-class Labs, Pop Quizzes, and Participation
15%
Exam 1
15%
Exam 2
15%
Project 1
15%
Project 2
Homework
There will be a number of homeworks assigned throughout the semester.
These will typically have both questions and programming components.
Most often these will require demonstrating the final operation to the
instructor or TA before the assignment is due during one of their
regularly scheduled office hours, so please plan accordingly.
These are individual assignments. It is ok to discuss concepts
behind the problems in the homeworks with classmates, however, you
cannot do them together. If you do discuss problems with classmates
or other people, you must acknowledge this on the assignment (this
will not lead to any grade reduction). As a metric for what level of
discussion is allowed, it is ok to meet and talk over coffee about the
assignment. It is not ok to show someone your solution or to work on
the details of the problems together. In addition, you should not
take notes while discussing the problems. If in doubt, ask the
instructor or TA questions about assignments.
Late homeworks will not be accepted.
In Class Labs
There will be a number of small group assignments that will be done
during class times. Some labs may have small components that must be
performed individually before the start of lab. Groups will be
randomly assigned at the start of class. Your group will be graded
based on what you are able to successfully accomplish during class.
Homework assignments will often build on these mini-labs. If you are
not in class or are not properly prepared for the lab, you will
receive a zero for that lab.
Pop Quizzes
There will be several unannounced short quizzes at the very start of
some classes. These will be open book and notes and will cover
materials recently discussed in class. There are no makeups for these
quizzes, so if you are not in class you will receive a zero on the
quiz.
Projects
There will be two projects in this class that will build on and
combine the components you develop in your homeworks. The projects
will involve an in-class competition where you compete with your
classmates to accomplish a task. In addition, there will be an
associated project report. The first project/competition will be due
in the middle of the semester. The second project/competition will be
due the last week of classes. Additional details will be announced in
class.
Absences
Students are encouraged to attend all classes. Absences will likely
lead to a reduction in the class participation grade. In addition,
missing an in-class lab, exam, or project competition will result in a
zero for that assignment and being absent is not an excuse for not
turning in an assignment.
In very rare cases the instructor may make an exception to this policy
in case of an illness or family emergency if acceptable written
evidence is given and you notify me as soon as possible. Even if you
are sick or leaving town on short notice you should be able to have a
friend notify me that you will be missing class or an assignment.
University Writing Center
The University of Nebraska-Lincoln Writing Center can provide you with
meaningful support as you write for this class as well as for every
course in which you enroll. Trained peer consultants are available to
talk with you as you plan, draft, and revise your writing. Please
check the Writing Center website (http://www.unl.edu/writing/) for
locations, hours, and information about scheduling appointments.
CSE and UNL Policies
The CSE Department has a Student Resource Center in Avery 13A
(http://cse.unl.edu/src) where you can go for assistance with
any of your courses.
All students enrolled in any computer science course is bound by the
Computer Science and Engineering academic integrity policy:
http://cse.unl.edu/ugrad/resources/academic_integrity.php
You are expected to read, understand, and follow this policy.
For this course, do not plagiarize (writing or code) and make sure to
properly cite any sources you use. Any cheating or plagiarism will be
reported to the Chair of your department and your Dean, and will
result in an F for the assignment and possibly for the course.
The CSE Department has an anonymous suggestion box:
http://cse.unl.edu/department/suggestion.php
that you may use to voice your concerns about any problems in the
course or department if you do not wish to be identified.
Disabilities
Students with disabilities are encouraged to contact the instructor
for a confidential discussion of their individual needs for academic
accommodation. It is the policy of the University of Nebraska-Lincoln
to provide flexible and individualized accommodation to students with
documented disabilities that may affect their ability to fully
participate in course activities or to meet course requirements. To
receive accommodation services, students must be registered with the
Services for Students with Disabilities (SSD) office, 132 Canfield
Administration, 472-3787 voice or TTY.
File translated from
TEX
by
TTH,
version 3.89. On 11 Jan 2016, 14:37.