In this paper we describe our experiences with reengineering an undergraduate course in software design. The course's learning outcomes require that students can model, design and implement software. These are inherently practical skills and rely on functioning knowledge. To facilitate a learning environment in which students can acquire the necessary deep level of understanding, we have designed the course by applying the educational theory of constructive alignment and a number of proven techniques for teaching, learning, and assessment. Fundamentally, we have embraced the active learning paradigm that recognises that student activity is critical to the learning process. In this paper, we describe several active learning techniques that we have used including role play, problem solving and peer learning. We also describe two novel assessment techniques we have developed, holistic assessment and formative examination. In addition we describe how students work with JUnit, a popular unit testing tool, not as users but as developers by applying design patterns to extend it with new functionality. Finally, we report on student assessment results and relay student feedback.
[1]
J. Biggs,et al.
Teaching For Quality Learning At University
,
1999
.
[2]
B. Bloom.
Taxonomy of educational objectives
,
1956
.
[3]
Michael B. Paulsen,et al.
Teaching and Learning in the College Classroom
,
1998
.
[4]
Ralph Johnson,et al.
design patterns elements of reusable object oriented software
,
2019
.
[5]
D. Bligh.
What's the Use of Lectures?
,
1971
.
[6]
David Boud,et al.
Enhancing learning through self assessment
,
1995
.
[7]
Kent L. Beck,et al.
Extreme programming explained - embrace change
,
1990
.
[8]
Phil Race,et al.
Never mind the teaching feel the learning
,
1993
.
[9]
Robert West,et al.
Expectations and actions: Expectancy-value models in psychology: N. T. Feather: Erlbaum, Hillsdale, N.J. (1982). xi+436 pp. £24.95.
,
1983
.
[10]
Kent Beck,et al.
Extreme Programming Explained: Embrace Change (2nd Edition)
,
2004
.