ECEN 5713

Advanced Embedded Software Development

(Advanced Embedded Linux Development)

University of Colorado at Boulder

Fall 2024


Course Objective:

This course  provides students with the fundamentals of embedded operating systems including a working understanding of how to configure and deploy a Linux based Embedded System.  Students will  gain expertise in software tools and development methods which can be used to create applications and build custom Linux based Embedded Devices

Outcomes

This course will focus heavily on designing concurrent software for embedded systems applications using the Linux operating system.  At the end of this course, students will be able to...

Logistics

3 Credit Hours

Workload: 15 hours per week for work including Lectures, Programming Assignments, Course Projects, Readings, and Quizzes  

Lecture:  Asynchronous video content and weekly synchronous review sessions in ECCR 105

Class Period:  Class Virtual/Remote via Zoom Wednesdays 3:35 to 6:05 PM.  All students have the option to attend in-person or via Zoom.

Contact:

Prerequisite(s)

Course Topics 

Linux Operating System

Linux Kernel Driver Development

Software Engineering  and Programming Topics

Course Materials

Course materials include textbooks, papers, lecture slides, project guides, and other online materials. 

Textbooks (CU Bookstore/Online)

Textbooks are optional, but will cover the background of the course content and are used as references for course material.

PC Requirements

Students need a computing platform for this course (laptop machine preferrably) with at least 16GB of RAM (8GB of which you can devote to a virtual machine)  and running Windows or MacOS x86_64, supporting VirtualBox minimum requirements, with at least 100GB of free disk space (ideally 200GB or more).   Only x86_64 based host computing environments are supported currently.  You may use a Cloud Based Development Host if necessary/desired.  See the Development Host Setup Instructions used to setup the build platform used for this course. Alternatively, you can use dedicated hardware capable of running Ubuntu 18.04 with at least 8GB of RAM and 100GB of disk space.  All students should ensure the have a computer available with web camera and microphone (for use with lecture, project scrum, and proctored exams).  Please note that Windows Subsystem for Linux (WSL) is unfortunately not yet sufficient for completion of course content.

Required Development Board

The first 2/3 of the course will use an emulator for development.  The last 1/3 of the course will require hardware of a student's choosing for their final project.  Platforms supported by the department include Beaglebone Black and Raspberry Pi.  The department has limited inventory of these platforms available for on campus students.  Remote students will need to procure their own hardware for the last 5 weeks of the course.

Required for Distance students:

Students attending the class remotely (off the CU Boulder campus) should ensure they have a reliable internet connection with broadband bandwidth speeds.   

Course Content

Course lectures, assignments, grades, quizzes, and announcements will use Canvas.

The midterm and final exam will be proctored online through Canvas.  All remote students must have A PC with a microphone and web camera and a reliable internet connection (minimum 5 megabits per second download speed) to support online proctored testing.  On campus students will take these tests in-person with an in-room proctor.

Other online materials

Example Final Project Submissions

See links to previous class final project submissions below:

Honor code

A complete description of the honor code can be found here .

To summarize: "Violations of the Honor Code are acts of academic dishonesty and include but are not limited to plagiarism, cheating, fabrication, aid of academic dishonesty, lying to course instructors, lying to representatives of the Honor Code, bribery or threats pertaining to academic matters, or an attempt to do any of the aforementioned violations."


ESE Academic Integrity Policy

Any suspected violations of the Honor Code will be submitted to our Office of Student Conduct and Conflict Resolution (OSCCR).  Students found responsible by our faculty for violating the cheating policy of the Honor Code will be expelled from the course with a failing grade.  A second such violation will result in expulsion from the ESE program and courses. Further non-academic sanctions may be rendered by the OSCCR.  We have a zero-tolerance policy and there are NO first-offense warnings. We take these issues seriously and have a responsibility to all students who uphold the Honor Code, and to the highest industry standards for which we are preparing students. If you have any questions whatsoever regarding what collaboration is permissible in the course, consult your instructor directly before proceeding. Sharing of knowledge between students is highly encouraged; however, each student is expected to independently create and implement their own project files and submit original content for all assignments and exams. Students may find that they are able to leverage firmware designs from books, magazines, the internet, or their work environments; however, in these cases, students are expected and required to fully credit the source of the information clearly and completely. Again, by default, students are expected to turn in their own original work and cite any and all portions they did not create. All aspects of the Honor Code apply.

You Should Consider Taking This Course If...

Interview Questions You Will Be Able To Answer After Completing This Course