ECE 558 Embedded Systems Programming

Overview

In this potential first term course (i.e. no prerequisites) students learn how to program modern embedded systems. These systems are typically required to operate under stringent performance, power, cost, size, reliability, usability, and real-time constraints. .

ECE 558 is most definitely a programming course although we have introduced a significant IoT project that includes prototyping a hardware system with an external single board computer (currently a Raspberry PI 3) attached to several sensors and actuators. We use the Android platform and application development tools to introduce topics from the domains of Java, object oriented programming, multitasking and threading, advanced sensors, databases, location-based services, and networking. The course is project-oriented, allowing students to acquire hands-on experiences based on the material taught in the lectures. At the end of the course, students will be able to program Android apps that involve many aspects of embedded systems. Lecture topics include Java and OOP fundamentals, UML and XML, single and multi-threaded applications, activities and fragments, using the Android OS to interface to the web, dialogs, lists, databases, etc. and embedded systems for the IoT.

Course structure:

  • The course is offered at both the downtown PSU campus and at our remote campus at the Willow Creek Center (WCC). WCC is located at 185th and Edgeway, adjacent to the Max station in Hillsboro. There is plenty of free parking at WCC because it is a Trimet Park and Ride.

  • Lectures, 4 hrs. per week (class meets twice per week).

  • Three programming projects are done either individually or in a small team. The projects are of increasing complexity with each one making use of additional capabilities of the Android framework. The third project is an IoT project involving a mobile device, a single board computer with sensors, and the Google Firebase suite of cloud-based tools.

  • Team-based final project of the students’ choosing. Teams make a technical presentations to the class including a demo of their final project.

  • Two in-class exams. Tests generally include a mix of T/F, multiple choice, short answer questions and programming (Java) problems.

  • There are no graded homework assignments although the instructor may release one or more practice homework assignments.

  • Grading criteria may vary with instructor but the Final project is typically a significant portion of the grade (20% - 25% of the final grade).

Required TA Skills

A TA for this course must be a competent programmer and have some experience with embedded systems hardware and firmware. Java (or Kotlin) programming experience is required; experience with Android or IOS programming is a plus.

TA Responsibilities

The TA position is a 0.30 FTE assignment. The TA for this course is expected to work an average of 10-12 hrs./week; some weeks will have a heavier load, some a lighter load.

  1. Participates and/or leads the effort to develop new projects or refine existing projects. This includes producing some of the documentation for the project, prototyping the project, and, if appropriate, introducing the project(s) to the class.

  2. Hosts weekly office hours. For classes with Westside and downtown campus students, the TA is expected of offer office hours at both the downtown campus and WCC

  3. Give additional support to students as they work on their projects including accepting appointments for debug and design sessions and monitoring the D2L forums to provide answers to questions posed by students.

  4. Grade project deliverables and exams and graded exercises (if there are any). Solution sets will generally be provided by the instructor but the TA may be asked to assist in the generation of the solution set. The general expectations is that assignments will be graded and returned to students within two weeks of submission; there are exceptions to that.

  5. Be in contact with the instructor and keep him/her informed of any problems.

  6. There may be other responsibilities depending on the instructor such as holding exam review sessions, proctoring exams, and other assistance to the instructor if requested.

Verifying Your Qualifications

Strong preference will be given to students who have completed the course with a grade of A- or A.