This course is about the practice of being a software engineer. Our goal is to help you learn the skills and practices that can make you a more effective software engineer. As with all practices you learn this by doing and by reflecting upon what you have done. Thus, this course is experiential. You will be doing a lot of doing. It also is very reflective. We emphasize and teach techniques for reflecting upon the state of you, your team, and your project so that you can better understand what has happened and use that understanding to create a better future for you, your team, and your project.
Proficient in any domain requires a decade of consistent practice, so we only have enough time in a quarter to start building some practices and to become aware of the importance of other practices.
These reflective techniques are especially important in a profession with rapid and unpredictable change and the associated anxiety and stress that this causes. An essential aspect of the software engineering profession is being able to reflect upon what has happened in order to learn and be able to do better next time. Thus, we emphasize reflective skills and learning by doing.
The goal of this course is to help you become a more effective software engineer.Your final grade will be determined by your performance on the following metrics:
We will give these approximately equal weighting, though we reserve the right to modify this list and to change the weighting.