There will be a set of assignments in this course. Ultimately, the goal of this course is to improve your skills to make successfu judgments rather than use a specific set of tools or a particular approach to engineering a software artifact.

There will be two types of assignments: Home and in-class and occasionally students should answer to a few specific questions on a topic or paper during the lecture hours. In fact, class sessions will involve a lot of discussion.

1. Resume preparation and job application assignment

2. Emprical software process assesment.

3. A three phased group project assignment starting from requirements analysis, design and via testing.

All assignments will involve evaluation and interpretation of given situations rather than practice in applying particular development techniques.

There will be a midterm and a final exam. 

Class Sessions

Class meetings include a mixture of lecture and discussion. You will find some concepts are easily learned from the lecture notes. However, many topics such as agile development, DevOps, cohesion and coupling are difficult to learn on your own so they will be exercised in lecture hours. You will get the most out of the class if you participate in the class discussions.