A laboratory for teaching object oriented thinking
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Extreme Programming Explained: Embrace Change (2nd Edition)
Extreme Programming Explained: Embrace Change (2nd Edition)
Improving the teaching of object-oriented design knowledge
ACM SIGCSE Bulletin
Teaching Design Patterns Through Computer Game Development
Journal on Educational Resources in Computing (JERIC)
A review of using design patterns in CS1
Proceedings of the 46th Annual Southeast Regional Conference on XX
A pattern language for teaching design patterns (part 1)
Proceedings of the 16th European Conference on Pattern Languages of Programs
Continuous activity: a pedagogical pattern for active learning
Proceedings of the 16th European Conference on Pattern Languages of Programs
Hi-index | 0.00 |
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.