Instructor: Nicholas DeMarinis
Email: ndemarinis at wpi dot edu
Office Hours: TBD
Senior Tutor: TBD
Office Hours: TBD
|Lectures||Tuesdays, 2:00-3:50pm, Thursdays, 12:00-1:50pm in AK219|
|Labs||Thursdays, 2:00-3:50pm in AK113
4 labs + 1 short “lab”
All labs must be completed in order to pass the course!
|Homework||5 assignments, solutions posted after the due date.|
|Exams||2 exams, see schedule for details.|
Embedded computers are literally everywhere in modern life. On any given day we interact with and depend on dozens of small computers to make coffee, run cell phones, take pictures, play music, control elevators, manage the emissions and antilock brakes in our automobile, control a home security system, and so on. Using popular everyday devices as case studies, students in this course are introduced to the unique computing and design challenges posed by embedded systems. Students will then solve real-world design problems using small, resource constrained (time/memory/power) computing platforms. The hardware and software structure of modern embedded devices and basic interactions between embedded computers and the physical world will also be covered in lecture and as part of laboratory experiments. In the laboratory, emphasis is placed on interfacing embedded processors with common sensors and devices (e.g. temperature sensors, keypads, LCD display, SPI ports, pulse width modulated motor controller outputs) while developing the skills needed to use embedded processors in systems design. This course is also appropriate for RBE and other engineering and CS students interested in learning about embedded system theory and design.
Recommended Background: It is expected that you have experienced C programming prior to taking this class, but you are not required to be fully comfortable with it. This course is designed to teach you embedded design while helping build your programming skills and teaching you the relevant systems programming concepts along the way!
Textbook and References
There is no required textbook for this course. Instead, you will be provided notes and shown how to find the information you need from online manuals, documentation, and datasheets related to our development platform.
A good reference text (which is not required) is “MSP430 Microcontroller Basics” by John H. Davies, which is available online from the WPI library. You can access the textbook by clicking here and selecting “Connect to E-book”.
It is also useful (though not required) to have a good reference on C programming. Any textbook from a systems programming course should be sufficient. If you are looking for an additional reference, my personal recommendation for a C programming reference is “The C programming language” by Brian Kernighan and Dennis Ritchie, 2nd edition, which is also available from the library here or can be purchased online at a low cost.
During the course, we will be developing for the TI MSP430 architecture using a platform based on TI’s MSP430 Launchpad development board. At the beginning of term, you will be assigned a development board to use for your labs and homework assignments. Our development boards contain a TI Launchpad, an LCD display, and a custom hardware board developed at WPI with some peripherals for us to use.
At the end of term, you must return the board with all components (board, box, cables, etc.) in working condition. Until your board is returned, you will not receive a grade for the course!
General grading policies
All grades will be posted to WPI’s new course management system, Canvas.
Your grade will be computed as follows:
You must receive a passing grade in the exam portion and make a good faith attempt on all lab assignments in order to receive a grade. For details on this requirement, please contact the course instructor.
Final grades will be determined as follows: a grade of A indicates exceeding the course requirements and expectations; a B indicates that the requirements and expectations have been successfully met; a C indicates that the requirements have been minimally met, but below expectations; an NR indicates that the course requirements have not been met.
Lab assignments are a key part of this course. Labs are typically conducted in teams of two, though you may work alone if you wish. Teams larger than two are not permitted.
Team members should contribute equally to the development of the lab. Both partners are responsible for understanding all components of the work you develop–be prepared to answer questions about your work at the end of your lab! In addition, both partners are expected to contribute to the lab report; it is not sufficient for one partner to do the lab and leave the other partner to write the report.
During lab, you are welcome to discuss the lab assignment with other teams as well as the course staff. However, the implementation for the lab developed by your team must be your own. Sharing of source code between teams or using source code from previous offerings of the course is considered a violation of the Academic honesty policies and will be handled accordingly.
Your labs will require use of our MSP430 Development Board, which will be provided to you at the start of class. See Development Boards for more information on this. Your implementation for each lab must adhere to the Coding Standard defined for our course, which emphasizes good software engineering practices.
Each lab will require a short report explaining your implementation, results, and your conclusions about them to demonstrate your understanding of the lab goals. A grading rubric for these reports is available on the course website.
Homework assignments will be given each week with problems relating to the lecture material for the given week. Solutions to the assignments will be posted after the assignments are due. Assignments may be handwritten or typed, but must be completed neatly. All assignments will be completed individually, though you are welcome to collaborate with your peers.
Late and absence policies
Due to the compact nature of our course schedule, it is strongly recommended that all students attend all classes. In case of a planned or unplanned absence, please notify the instructor via email as soon as possible.
In general, late homework cannot be accepted without prior
arrangements since the solutions will be posted immediately. Lab
signoffs and reports may be submitted up to one week late for a 10%
Otherwise, since our course is small, our schedule and due dates can be flexible to a degree—requests for extensions on deadlines can be made by contacting the course instructor. I will be reasonable as long as you are.
Academic Honesty Policies
For all portions of this course, full adherence to WPI’s and the ECE Department’s Academic Honesty policies is expected. Please refer to the course website and the appropriate pages of WPI’s website for details. Failure to follow these policies will result in /at least/ a grade of zero on the pertaining assignments.
On homeworks and labs, you are welcome (and encouraged!) to discuss the assignments with other students in the class and the course staff in order to determine how to approach the assignment. However, the solution you use in your work must be your own. Sharing of source code or homework solutions between students, or using other students’ solutions from previous course offerings is not permitted. Please consult the course staff if you have questions on this policy.
Once submitted, your labs may be compared against other submissions and submissions from previous course offerings to detect similarity to other submitted work.
Exams are a strictly individual effort. Copying or otherwise cheating on an exam is a violation of the academic honesty policies and will be handled accordingly.
Students with Disabilities
Students with disabilities, who believe that they may need accommodations in this class, are encouraged to contact the Disability Services Office (DSO), as soon as possible to ensure that such accommodations are implemented in a timely fashion. The DSO is located in West St. House (157 West St.) 508-831-4908. Please then make an appointment with me to discuss the accommodations or any important medical information you believe you should share with me.