Courses/SOLID-ify/Design Philosophy

From etwiki
Jump to navigation Jump to search

Instructional Design Philosphy

Fig. 1: Logic model used during course planning

SOLID-ify was developed using backwards design, documented in a logic model as shown in Figure 1. Logic models are used as a framework for creating links between the resources, activities, outputs and outcomes (Kekahio et al. 2014). First, the type of learner was identified and placed in the resources. Long- and mid-term objectives were then identified to guide the lasting impact of the course. Learning objectives were identified and classified using Bloom’s Taxonomy to make sure a) there was progression in critical thinking required to achieve each objective and b) the verbs used for each objective were clearly measurable. The learning objectives were then placed in the short-term outcome section in the logic model. Next, assessments were identified to measure each objective. For each assessment, the type was placed in the activities section and the measurement was placed in the output section. Finally, lesson types required to prepare for the assessments and the resources they may need were placed in the activities and resources sections respectively.

SOLID-ify assessments and lessons were created while keeping in mind several design guidelines from the “Own It, Learn It, Share It” framework of student-centered learning. “Own It, Learn It, Share It” (OLS) organizes learning aspects into concepts: ownership of the learning process by the student through meaningful learning goals, autonomous learning through scaffolding, and artifact construction by the intended audience beyond the purposes of the course (Lee & Hannafin 2016). One OLS design guideline used is number three: “provide choices that matter.” Providing choices can increase learners’ perceived autonomy and providing choices that are personally relevant to the learner can increase intrinsic motivation (Lee & Hannafin 2016). The final project allows learners to choose their starting code base; while SOLID-ify provides a code base learners may start in, learners are encouraged to bring in their own starting code base, either from another course or a personal project.

Another OLS design guideline used is number 4: “provide explicit directions on initiating engagement”. Fixed directive procedural and strategic scaffolding can help reduce cognitive load, allowing learners to focus on their goals (Lee & Hannafin 2016). The organization of the course website also functions as a procedural scaffold as learners can proceed straight down the navigation bar on the left as they progress through the course. The module descriptions in the syllabus which outline the order of each part of the modules also functions as a procedural scaffold. Finally, there is a strategic scaffold at the end of every SOLID principle module that addresses the inherent design differences that occur when two different software developers approach the same problem. Learners are prompted to compare and contrast the in-class implementation and their own approach to each new requirement.

A third OLS design guideline used is number 8: “support students as they monitor progress”. Learners generally have difficulty monitoring their own learning, managing time effectively, and identifying gaps (Lee & Hannafin, 2016). In the syllabus is a schedule that provides suggested activities the learner might want to focus on that week to enable them to complete the final project on time, which functions as a metacognitive scaffold. Also in the schedule section, there are one or more “driving questions” for each module, which function as a conceptual scaffold. Learners should be able to answer these questions for themselves at the end of each lesson.

The basis for each module was informed by the worked example effect. Worked examples are full problem solutions intended to reduce cognitive load by allowing learners to focus attention on problem states and the steps between them (Sweller et al. 2019). It is found that “the cognitive strategies for comprehension become internalized and self-regulated” when the strategies are first modeled by the instructor and are scaffolded while the learners learn the strategies (Caccamise 2005). Each module has a worked example that is completed over the duration of the video. For example, “Open-Closed, Part 1” starts with a new requirement, provides each step to a preliminary implementation, then provides each step to a refactored solution that uses the open-closed principle.

Fig. 2: Ellipses hide some of Main and Invoicer, as well as all of Dog, Client, and Invoicer

SOLID-ify videos were created with several multimedia principles in mind. The first multimedia principle used is the coherence principle, which recommends excluding extraneous material (Mayer 2019). Every SOLID principle video is heavy with code examples. In order to reduce unnecessary implementation details and focus on the principle, code irrelevant to the example is replaced with ellipses to show that it’s there, but hidden. In Figure 2, slide 17 of “Open-Closed, Part 1” shows many places where code is hidden in order to help the learner focus on changes to Main based on changes to Invoicer. There are also several locations where fun facts about the origin of the principles as well as new Java 8 features and other seductive details would have been interesting, but these were ultimately omitted to maintain focus on the principles alone.

Fig. 3.1: Without code highlighting
Fig. 3.2: With code highlighting

The second multimedia principle used is the signaling or cueing principle, which recommends highlighting essential material (Mayer 2019). In addition to hiding unnecessary code details, different sections of code are highlighted from slide to slide to draw focus to the direct changes. In Figure 3, slide 10 from “Single Responsibility, Part 1” in particular benefits from code highlighting, using green for additions and red for removal.

The third multimedia principle used is the temporal contiguity principle, where spoken words should be said simultaneously with any graphics. The videos make use of Google Slides animations to add or remove elements as narration continues. Provided is the script of slide 10 from “Single Responsibility, Part 1”, where each “(click)” is a change in the information displayed on the slide, culminating in the final slide in Figure 3:

Another reason to change is (click) adding, removing or updating functionality to a class or interface. (click) For example we may have a Formatter that takes care of formatting objects into strings. We may want to (click) add formatting to JSON for a client, (click) or remove formatting to xml once it’s no longer used. We also may need to (click) update the JSON formatting function to allow for “pretty printing” to improve human readability of the output.

Because the worked examples are code heavy, reading comprehension is paramount to getting the most out of this course. This course takes into account Kintsch’s Construction-Integration Model, which is a theory of reading comprehension, when modeling problem solving questions that involve reading code snippets. Learners can be taught to internalize cognitive processes by using active comprehension strategies like “predicting, questioning, self-explanation, constructing images representing test meaning, relating to prior knowledge, monitoring understanding, summarizing, and seeking clarification” (Caccamise 2005). Free self-explanation in particular has been shown to be helpful in code comprehension (Tamang et al. 2021). For this reason, the self-explanation module was added to the beginning of the course.

References

Caccamise, D., & Snyder, L. (2005). Theory and Pedagogical Practices of Text Comprehension. Topics in Language Disorders, 25(1), 5–20. https://doi.org/10.1097/00011363-200501000-00003

Kekahio, W., Lawton, B., Cicchinelli, L., & Brandon, P. R. (2014). Logic Models: A Tool for Effective Program Planning, Collaboration, and Monitoring. REL 2014-025.

Lee, E., & Hannafin, M. J. (2016). A design framework for enhancing engagement in student-centered learning: own it, learn it, and share it. Educational Technology Research and Development, 64(4), 707–734. https://doi.org/10.1007/s11423-015-9422-5

Mayer, R. E. (2019). How Multimedia Can Improve Learning and Instruction. In Cambridge University Press eBooks (pp. 460–479). https://doi.org/10.1017/9781108235631.019

Sweller, J., Van Merriënboer, J. J. G., & Paas, F. (2019). Cognitive Architecture and Instructional Design: 20 Years Later. Educational Psychology Review, 31(2), 261–292. https://doi.org/10.1007/s10648-019-09465-5

Tamang, L. J., Alshaikh, Z., Khayi, N. A., Oli, P., & Rus, V. (2021). A Comparative Study of Free Self-Explanations and Socratic Tutoring Explanations for Source Code Comprehension. Proceedings of the 52nd ACM Technical Symposium on Computer Science Education. Published. https://doi.org/10.1145/3408877.3432423