3.1 General Program Assignments
Generally, after a series of lectures in the programming course, the teacher usually assigns homework to make learners obtain a deeper knowledge of the design concepts they have learned. Figures 3 ~ 5 show three different implementation processes of program assignment, where the teacher uses the Video Rental Management System (VRMS) project as an example to make the students think how to design this project. The horizontal axis means the assignment iteration, which is set by teacher according to the project’s features like the amount of functionality or project to students in one time. The teacher requests students to apply the knowledge which have been learned from the course to accomplish this project, but the scope of VRMS project is too big for students to know how to start implementing it. Hence, the students usually have trouble with this wide-scope assignment.
Major
Figure 4 shows that in progressive program assignment, the teacher segments the VRMS project into several assignments according to the constructing procedure from basic components to major requirements, and the learners are asked to complete parts of programs progressively. This bottom-up manner can make learners understand the constructing process, but they have no idea about why and how the design of basic components and its details.
3.2 Major-Requirement-First Strategy (MRFS)
Hence, we propose a teaching strategy named Major-Requirement-First Strategy (MRFS) to help learners easily understanding how to design the VRMS project. This teaching strategy adopts a top-down imitating learning mechanism which guides the learners from the major requirements of VRMS to basic components and apply the ideas of Scaffolding Instruction Theory [12, 13].
As mentioned in scaffolding instruction theory, the Zone of Proximal Development (ZPD) [12, 13] noted that it is also very efficient for learners to use their prerequisite knowledge to help themselves developing new knowledge. So we intend to combine the learners’ implementation ability and request them to complete the
14
project by imitating the software architecture which is designed by teachers in advance.
Moreover, scaffolding instruction theory also mentioned that building some scaffolds for learners and assisting them to complete the target they can’t accomplish before, and then gradually dismantling the scaffolds they have learned, is an effective way to get the learning objectives. So we provide the necessary scaffold which called program scaffolds, such as component requirements, interface and usable objects of each component, relationships between the components, library packages and source codes to assist learners to implement from the major requirements with these imitating information and library supporting. The detailed information of program scaffolds is shown in Table 1.
Table 1. The detailed information of program scaffolds
Program Scaffold Description
System Requirement Describe the main target of this system.
Class Requirement Describe the requirement and design concepts of this class.
Method Requirement Describe the requirement and utility of this method.
Interface Describe what methods are included in this class.
Usable Objects Describe what objects will be used in this method.
Relationship Describe the relationship between two components.
Library Package A program library used for this component implementation.
Source Code A solution code created by teacher for this component.
Class Diagram An overall configuration of this system.
Therefore, based on scaffolding instruction theory, MRFS guides learners to imitate the program architectures from major functionalities of system to detailed
components through a series of implementations with program scaffolds supporting.
As shown in Figure 5, top-down program assignment applies the idea of MRFS, where the teachers have to construct the necessary program scaffolds and segment the VRMS project into progressive assignments in advance, and then assign a task which is the major functionality of VRMS to students. After the students finish the assignment with program scaffolds supporting like library, they will continue to finish the detailed components of major functionality. Consequently, the learners can figure out the overall configuration of VRMS first, and then they will easily comprehend the design concepts of each detailed component. The learning efficacy of MRFS will be compared with general program assignments in our experiment in Chapter 5.
Major
Example 1. Major-requirement-first strategy for program assignments
Figure 6 shows our teaching case in this thesis, Video Rental Management System (VRMS), which is represented by class diagram. VRMS is a common web-based system which can offer user convenient services about online video rental, such as video introduction, video search, popular video recommendation, subscribe and relend for video, online comment and member management, etc. Besides the user interface and database I/O, the learners are supposed to focus on logic tier design of
16
The teacher will segment the project into several assignments, and ask the learners to complete the assignments from “MemberMgr”, “VideoMgr” or
“OnlineMgr”, the major functionalities of VRMS, to detailed components. If the
“MemberMgr” task is assigned to learners, all the information about the task like design concepts, component requirements, interface, usable objects and library packages like “DBMgr”, “MemberInfo”, etc. should also be provided to assist learners implementing this class. The learners can imitate the software architecture design of VRMS through a sequence of implementations with guidance and program scaffolds supporting in this top-down imitating manner.
Major-requirement-first strategy is not only adaptive for VRMS but also suitable for use in logic tier design of web-based system, and the learners can get the software architecture design concepts easily in this top-down imitating manner.
Figure 6. The class diagram of Video Rental Management System (VRMS)