ECEn 425 Syllabus

ECEn 425: Syllabus


Course Overview

This course on real-time systems is intended to give students insight into the hardware-software interface, the structure and functionality of system software, and the challenges of real-time system development. ECEn 324 (or equivalent) is a hard prerequisite for this class. It is essential that all students have programming experience, reasonable knowledge of the C programming language, and a good grasp of fundamentals regarding computer systems.

Course Competencies

Each degree program at BYU has specified Program Educational Objectives (what the program prepares students to achieve) and Program Outcomes (specific skills, attributes, and knowledge that students should possess upon graduation). Relative to the Program Outcomes, each course has associated competencies that define specific, measurable skills, attributes, or areas of knowledge that successful completion of the course should demonstrate. For this class, these are the following: These competencies will be demonstrated through a sequence of labs in which student teams will design and implement a real-time micro-kernel (a simple operating system) using a set of simulation and development tools developed specifically for this course. Once the kernel is functional, students will develop application code that uses their kernel, that runs correctly, and that meets real-time constraints.

Text

Simon, David E., An Embedded Software Primer, Addison Wesley, 1999.

We will not be running the uC/OS software on the CD included with your text, but you may find it helpful to look through the source code, since the uC/OS kernel is similar to the YAK kernel that you will create. The contents of the disk can be found in /ee2/ee425/src/uCOS for your convenience.

Lab Assignments

The labs are the major emphasis in this course. Through a series of "hands-on" projects, participants will become much more familiar with the C programming language, the structure and operation of a real-time kernel, the interaction of hardware and software required to support multitasking and interrupt handling, and the design of real-time applications.

The initial labs will be completed by each individual; subsequent labs must be completed in teams of two. (Exceptions must be cleared with the instructor in advance. The benefits of having somebody to double check your work are substantial!) Each team is expected to complete the assigned work on its own. You are free to discuss the lab assignments with others, but the code you create should be entirely your own -- as a team. Any deviation from this will be treated as a violation of BYU's honor code.

You are required to read protect your working directories and all files therein to keep others from browsing through your work. See the man pages for chmod or ask the TAs for details on setting access permissions.

At the end of each lab, you will be asked to submit a short lab report (1 per team). Clearly the main goal of each lab will be to get your code working. The lab report is not intended to add unnecessarily to your work, but rather to provide you a formal means to provide feedback. You are expected to report the total time you took to complete the lab and to give a brief synopsis of problems you encountered. You are invited to comment on interesting things you learned, conceptual problems you had to overcome, and recommendations for improving the lab in the future.

The labs build on each other, so timely completion is imperative. Late labs will be docked 25 percent per weekday (Monday-Friday) for the first two days, then 20 percent per weekday thereafter, to a maximum of 90 percent. To illustrate, a well done lab due on Tuesday but turned in on Wednesday will receive 75 percent of the full points; the same lab turned in Friday (3 days late) will receive 30 percent. A fully functional lab will never receive less than 10 percent of the possible points. Email submissions for lab passoffs will be graded based on the timestamp of the submission, as well as file timestamps when passed off with TAs. The deadline for each lab is 11:59 PM on the due date.

In recognition of the importance of labs in all our courses, it is the policy of our department that all lab assignments must be completed to receive a course grade. If you do not complete all the assigned labs, you will receive an "E" for this course.

Homework

Homework assignments are to be completed by each individual student. It is permissible to discuss and work together with others on the homework, but, after all the discussion, what you turn in must be your own work. You are responsible for placing your own completed homework assignment (hardcopy) in the department homework box before the 4:45 PM deadline. Your homework must be neat and organized and should follow the department standards for homework or it may not receive full credit. You may type and print your homework solutions, but please use a fixed-width font, such as Courier New, to make your code listings and output easier to follow. Homework submitted after the due date may receive half credit if it is submitted (in the homework box) before 4:45 PM on the second weekday after the original due date. Submissions after that point will receive no credit.

Exams

Two closed-book midterms will be given during the semester. The exams will be given in class. In accordance with university policy, the final will be comprehensive and given at the time indicated in the class schedule. Please do not ask to take the final early; plan your travel and interview trips around your finals.

Final Grades

I'll use something along the following lines to compute final grades:

Homework 10%
Lab Assignments 30%
Midterms 30%
Final 30%

100%

Although the final exam is just one factor in determining your final grade, you will not receive a passing grade in the class if you do not receive a passing grade on the final.

Honor Code Standards

In keeping with the principles of the BYU Honor Code, students are expected to be honest in all of their academic work. Academic honesty means, most fundamentally, that any work you present as your own must in fact be your own work and not that of another. Violations of this principle may result in a failing grade in the course and additional disciplinary action by the university. Students are also expected to adhere to the Dress and Grooming Standards. Adherence demonstrates respect for yourself and others and ensures an effective learning and working environment. It is the university's expectation, and my own expectation in class, that each student will abide by all Honor Code standards. Please call the Honor Code Office at 422-2847 if you have questions about those standards.

Preventing Sexual Discrimination or Harassment

Sexual discrimination or harassment (including student-to-student harassment) is prohibited both by the law and by Brigham Young University policy. If you feel you are being subjected to sexual discrimination or harassment, please bring your concerns to the professor. Alternatively, you may lodge a complaint with the Equal Employment Office (D-240C ASB) or with the Honor Code Office (4440 WSC).

Students with Disabilities

If you have a disability that may affect your performance in this course, you should get in touch with the office of Services for Students with Disabilities (1520 WSC). This office can evaluate your disability and assist the professor in arranging for reasonable accommodations.

Last updated on 31 August 2009