Project Proposal by Martin Stacey
Computer Tutor for Object Oriented Thinking
Software |
Language with good GUI tools, or Java and XHTML for a web-based system |
Covers |
Programming, object oriented systems design, psychology of learning |
Skills Required |
Programming, object-oriented design, some interest in how people learn |
Challenge |
Conceptual Technical Programming |
Brief Description
For many students, learning how to think in object-oriented terms is a major stumbling block in learning computer science. Entire courses are devoted to teaching students what objects are, how objects send messages to each other, how to model bits of reality using networks of objects, and how to read class diagrams and sequence diagrams. But at the end of these courses many students have a woefully inadequate understanding of what objects are and how they work in combination with each other. This is partly because most students simply don't practise understanding how object oriented systems work, and when they do, they don't make effective use of their time or get feedback on how they're doing.
The aim of the project is to build a computer tutor that gives students studying computer science and information systems practice and feedback with reading and understanding diagrams and descriptions of object oriented computer systems, so that they develop an understanding of how object oriented systems work and develop skills in thinking about problems and situations in object oriented terms.
An important part of building an effective computer teaching system is having a teaching strategy that fits how people learn. You'll need to think about what activities and ways of providing correction and reinforcement will fit how people learn, and how to put activities into effective sequences.
Variant
An applet or website accessible through the web would be an especially valuable resource for learners and teachers.
Extension
You could build an effective tutor that simply asked questions requiring the selection of radio buttons. However a more ambitious approach would be to provide the user with a limited range of diagram-drawing facilities, perhaps including pre-packaged diagram chunks, so that they could practice creating diagrams and descriptions without being allowed to flounder. If you want to be really ambitious - you could try developing a system that would create prepackaged chunks from an imported class diagram, or from imported Java (or whatever) code.
Cross-Reference
For some kinds of computer tutors, having a way of measuring how well the students are doing is important, but building a complex testing tool might be an elaborate task, especially if you want to take the results seriously for evaluating student performance. I've proposed an Internet Quiz Administration System as a separate project.
Back to