ABSTRACT
Our CS0.5 course is required for all students and tasked to develop and assess the system development process proficiencies of an engineering-based institutional outcome. To achieve this tasking, we created a course-wide project that simulates NASA's Mars Ingenuity helicopter using an approach that emphasized our software system development process. With this project, our first-year college students created a 2-dimensional simulation of the Ingenuity helicopter flying through the thin Martian atmosphere with the goal of maximizing the area mapped subject to flight dynamics, available battery, landing proximity, and impact constraints. Students created their Ingenuity simulator using Python in three spirals: Spiral 1 - rendering of the simulation view with some initial movement, Spiral 2 - manual flight operations via thrust and roll keyboard inputs, and Spiral 3 - full auto-pilot. The students utilized a software system development process called "UDIT" (pronounced, "U Did IT") which stands for Understand - Design - Implement - Test. The assignment document was purposefully organized based on this process. The Understand and Design steps were presented via storyboards, enumerated requirements, a recommended structure chart, pseudocode, and suggested variables. As the Understand and Design steps address higher order objectives on Bloom's Taxonomy, we strived to model effective approaches for these steps. Most of our novice programmer's efforts involved the Implementation and Test steps emphasizing a build-a-little, test-a-little strategy. Forty percent of points come from testing via test procedures that the students created. The remaining points were earned based on code correctness and quality. The course also introduced the students to Artificial Intelligence to contribute to another proficiency of the engineering institutional outcome. For this, the project introduced students to genetic algorithms. They learned how the algorithm's parameters can be configured to train a more sophisticated version of the autopilot that needed to deal with additional Ingenuity features, including altitude-dependent mapping, as well as randomness in the form of varying winds at different altitudes. Currently being used with 450 students across 22 sections, the project is being assessed by sub-score tracking across the spirals; students' self-assessments of learning, interest, and self-efficacy; and collection of instructors' experiences and perceptions on the project.
Index Terms
- Introducing Software Development Process, Software Engineering, and Artificial Intelligence in a CS0.5 Course Project
Recommendations
Crafting a software engineering capston project course
Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain ConferenceWhen properly constructed, a project-based capstone software engineering course can provide the challenging, but essential bridge from academic computing to the world of professional software development while fostering critical teamwork, leadership, ...
Comments