I study the development of software engineers through professionalizing experiences. My research was initially developed and applied in my role as director of the Computer Science Senior Capstone Projects course at the University of Colorado at Boulder. Currently, I am a senior software engineer with Lucid Software, combining my developer role with an advising role for transitioning new hires into productive teams and training new team leads.
The CS Senior Capstone course supports student engagement in professional practice, augmented by the educational resources of the CS department and the larger university community. As a result, the student project work integrates learning from across the Bachelor's program, shifts the authority role from faculty to project sponsors, and promotes ownership where students shape their project experience. Over the full academic year, the project teams actively decide how to structure their software development practices in pursuit of the sponsor's objectives. They have time to see the outcome of those decisions and opportunity to learn from those outcomes by make adjustments to their practices.
Through the project course, students become software engineers by doing software engineering. Their engagement in the practice of software engineering, through which they develop functional software solutions, aids their understanding of the "why" behind the practices. Students emerge from the course with greater understanding and appreciation for software engineering best practices, far beyond what could be obtained through lecture-based teaching alone.
The CS Senior Capstone course supports student engagement in professional practice, augmented by the educational resources of the CS department and the larger university community. As a result, the student project work integrates learning from across the Bachelor's program, shifts the authority role from faculty to project sponsors, and promotes ownership where students shape their project experience. Over the full academic year, the project teams actively decide how to structure their software development practices in pursuit of the sponsor's objectives. They have time to see the outcome of those decisions and opportunity to learn from those outcomes by make adjustments to their practices.
Through the project course, students become software engineers by doing software engineering. Their engagement in the practice of software engineering, through which they develop functional software solutions, aids their understanding of the "why" behind the practices. Students emerge from the course with greater understanding and appreciation for software engineering best practices, far beyond what could be obtained through lecture-based teaching alone.