Engineering computing is a topic that is included in the curriculum of many biomedical engineering departments and a topic with which many other engineering disciplines have wrestled (7-8, 10, 14, 23, 30, 32). Yet, the philosophical underpinnings and pedagogical goals of a computing course are often nebulous. Should the course lean toward an advanced engineering mathematics course (e.g. linear algebra, splines, numerical methods), with programming as a means to an end (14, 18-20, 29)? Or should the course be designed to learn a specific computer language, such as MATLAB, as an example of an engineering tool (5, 6, 10, 22, 26, 28)? Alternatively, the course could be structured to teach algorithmic thought processes (10, 14, 20, 31-34). No one way is best and any computing course should address all three to some extent. The implementation of a computing course, however, does need to be tailored to the objectives and backgrounds of the students. For example, the lecture-homework-test progression may be excellent at addressing an applied math objective, while short programming assignments may address the learning of syntax. Here we present a semester-long project that has as its primary aim to address algorithmic thinking. The paper is organized in the following way. Background is presented on how the project fits into the overall introduction to computing course. Next is a detailed outline of the project assignments. A related detour is then taken to discuss a class-wide group programming exercise called The Triangle Game. Assessment from student and the instructor are presented as well as ABET assessment associated with the project. Lastly, recommendations are made for improvements and alternative implementations of the project.
展开▼