Assignment #4 - Group H8
Interactive Learning Resource
Megan Fraser | Max Thomson | Scott Kenning | Kacey Friesen |
---|---|---|---|
University of Victoria | EDCI 335 |
---|
Jess Mitchell | Dec 2, 2024 |
---|
Definition on chosen topic
This learning resource is crafted to provide a foundational understanding of programming through JavaScript, a versatile and widely-used language in web development. Effective learning in introductory programming necessitates an interactive and practical approach. Research indicates that students gain more from writing, testing, and revising code compared to merely reviewing lecture notes or memorizing information (Moraes et al., 2023). Engaging in hands-on activities is crucial for bridging the gap between theoretical concepts and their real-world applications, which in turn enhances learners' engagement and comprehension (Li et al., 2013). This module is designed to build learners' confidence in coding by showing that programming proficiency develops with practice. By engaging in structured, interactive coding exercises, learners will see the immediate results of their efforts, reinforcing the idea that programming is both a powerful and accessible skill with practical applications across a multitude of domains.
Learning Context and Learners:
This resource is designed for high school students (ages 15-18) with little or no prior programming experience. Basic computer literacy, including web browsing and typing is assumed. Their diverse interests will likely include a general curiosity about technology and problem solving. Their lifestyles involve significant interaction with technology through social media, online games, and mobile apps, providing a relevant context for learning JavaScript. The resource’s design is adaptable to varying levels of motivation and prior knowledge, recognizing that some students may prefer hands-on activities while others thrive in more structured settings.
Learning Theory: Constructivism
This learning resource utilizes constructivist learning theory, recognizing that learners actively build knowledge through experiences and interactions (Ertmer & Newby, 2013). This approach aligns well with the hands-on nature of programming. Constructivism views learning not as a passive absorption of facts, so instead of simply memorizing rules, you’ll learn by doing. Learners will experiment with interactive coding exercises, receive immediate feedback (right or wrong), and refine their understanding as they go. Project-based learning, culminating in a final project, provides evidence of learning while also providing empowerment by showing them they have the ability to create useful programs. The students’ final reflection will determine their understanding and insight on their coding experience, detailing their learning challenges faced and strategies used to overcome those challenges.
Learning Design: Project-Based/ Direct Instruction Learning
While emphasizing active learning, we recognize the importance of providing structure and guidance, particularly for novice programmers. This resource implements direct instruction to introduce fundamental concepts, giving learners a solid foundation. Clear explanations, examples and demonstrations will guide the students through the initial stages of learning (Carraba, C., & Farmer, A., 2018). Building on this foundation, the resource uses project-based learning. The learners will engage in increasingly complex interactive coding practice, culminating in a final project. This approach allows students to apply their knowledge meaningfully, seeing how concepts connect to create functional and practical applications. This approach is intended to facilitate problem solving skills by tackling challenges, while also expressing creativity through the final project. Taking the direct instruction and project-based approach will foster deeper engagement with the material and caters to the intended audience.
Designing for Inclusion (UDL and CAST Principles)
This resource is designed with a commitment to Universal Design for Learning (UDL), creating a flexible and supportive learning environment. Leveraging the CAST framework (Multiple Means of Representation, Action and Expression, and Engagement) it provides options and choices throughout the learning experience. Multiple means of representation are addressed through varied formats, combining clear and concise text with visuals, including syntax highlighting for enhanced code readability (CAST, 2024). Complex topics are chunked into manageable units with clear headings, supporting comprehension. Interactive exercises provide instruction, and learners can easily revisit prior material. Multiple means of action and expression are facilitated through interactive learning with editable code blocks, offering opportunities for experimentation, immediate feedback, and refinement. Learners demonstrate their understanding through coding, written reflections accompanying the final project, and visual representations of code functionality. Multiple means of engagement connect JavaScript to real-world applications, building learner confidence by addressing common coding misconceptions. Project choices cater to individual interests, promoting intrinsic motivation. Finally, upon completing the final project, reflection prompts encourage learners to analyze their learning progress, the challenges they encountered, and the strategies they employed.
Rationale for our Choice of Technology
This learning resource prioritizes accessibility and ease of use. Equipping learners with even basic coding skills empowers them to solve problems creatively, and engage critically with the technology that shapes our lives. Learners only need a device with a modern web browser, either Firefox or Chrome and internet access. While a laptop is recommended, a tablet or smartphone will also suffice, ensuring broad accessibility. The interactive learning environment utilizes MdBook, an open-source platform ideal for interactive content. This tailored MdBook includes integrated quizzes for self-assessment and a built-in JavaScript execution environment, allowing users to write, run, and test their code directly within the learning resource. This setup will maximize engagement by providing immediate feedback and a straightforward learning experience.
Learning Objectives
- Understand and explain basic programming concepts such as variables, data types, and syntax. Establishing a strong grasp of fundamental programming concepts is critical for learners to write and interpret simple code. It provides learners with the vocabulary and understanding needed to explore more complex topics.
- Write and debug a JavaScript program that uses conditional statements and loops. Conditional statements and loops are the backbone of logical flow in programming. Through this, learners practice breaking problems into smaller, testable pieces and learn iterative problem-solving.
- Apply JavaScript to solve real-world problems by creating interactive, user-driven programs. By focusing on practical applications, learners see how programming relates to everyday life. Creating interactive programs fosters engagement and motivation.
- Analyze and correct common coding errors to improve code readability and functionality. Debugging is a key skill in programming. It reinforces a constructive approach to learning, as mistakes are treated as opportunities to deepen understanding.
- Design and implement a final project that integrates multiple JavaScript concepts, such as variables, programming arithmetic, loops, functions, etc. A culminating project allows learners to synthesize what they've learned and demonstrate their skills. It fosters creativity, problem-solving, and confidence in applying programming knowledge.
These objectives are designed to:
- Build foundational knowledge incrementally.
- Provide opportunities for practice and immediate feedback.
- Encourage active learning and problem-solving, consistent with the constructivist approach.
- Connect abstract programming concepts to tangible outcomes.
- Empower learners to see programming as an accessible and valuable skill.
- Learners will demonstrate the ability to identify and correct poor coding practices, ensuring the code is clean, readable, and maintainable.
- Learners will gain confidence in explaining their code.
References
Carrabba, C., & Farmer, A. (2018). The Impact of Project-based Learning and Direct Instruction on the Motivation and Engagement of Middle School Students. Language Teaching and Educational Research, 1(2), 163-174.
CAST. “Universal Design for Learning Guidelines.” CAST, 2024, udlguidelines.cast.org/. Accessed 2 Dec. 2024.
Ertmer, P. A., & Newby, T. J. (2013). Behaviorism, cognitivism, constructivism: Comparing critical features from an instructional design perspective. Performance Improvement Quarterly, 26(2), 43-71.
Li, T., Liu, W., Mao, X., & Zhou, H. (2013). Introduction to programming. Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education, 324–324. https://doi.org/10.1145/2462476.2462512
Moraes, M. C., Lionelle, A., Ghosh, S., & Folkestad, J. E. (2023). Teach students to study using quizzes, study behavior visualization, and reflection: A case study in an introduction to programming course. The 15th International Conference on Education Technology and Computers, 26, 409–415. https://doi.org/10.1145/3629296.3629362