How do lecturers know that their teaching is effective? If they want to formally assess this, they first have to define learning objectives that specify the intended outcome of their teaching, in terms of competencies to be developed in their students. On this basis, they can then design appropriate assessment tools, such as formal exams, that attempt to objectively measure to what extent the aspired competencies have been developed. As an example, we focus an introductory, two-term class on software development. We provide a subset of a generic definition of learning objectives that covers all six levels of Bloom's taxonomy. Based on that, we design an exam concept that matches these objectives, specifying the share that each competence level holds in the overall exam. Finally, we analyze exam results focusing on competence levels that our students reached.