Real-time and embedded systems - teaching reliability |
| |
Authors: | Regehr J |
| |
Affiliation: | Sch. of Comput., Utah Univ., Salt Lake City, UT, USA; |
| |
Abstract: | Computer science students routinely practice just-in-time software engineering that results in solutions to programming assignments that barely limp through the test cases. Worse, when they have access to the test suite used for grading, students who have reached an impasse will often resort to a kind of evolutionary programming where they incrementally tweak parts of a program, test the code, and repeat. This random walk through the program space can move programs away from correctness rather than toward it. Embedded systems, with their concurrency, resource limitations, flaky tools, and all-too-frequent debugging through LEDs and logic analyzers, provide the perfect environment for students to experience some truly difficult debugging. Embedded systems must be reliable, but computer science students aren't in the habit of creating reliable software. It will be better, if we explicitly teach them techniques that can increase software reliability even though this reduces the amount of time we can spend on more traditional technical material. |
| |
Keywords: | |
|
|