Developing Personalized, Expandable Learning Modules for CS1 Programming

Project Team

  • Abdallah Mohamed, Instructor, Department of Computer Science, Mathematics, Physics and Statistics, Irving K. Barber Faculty of Science (Lead Applicant)
  • Yves Lucet, Professor, Department of Computer Science, Mathematics, Physics and Statistics, Irving K. Barber Faculty of Science
  • Jake Bobowski, Senior Instructor, Department of Computer Science, Mathematics, Physics and Statistics, Irving K. Barber Faculty of Science
  • Isaac Li, Assistant Professor, Department of Chemistry, Irving K. Barber Faculty of Science
  • Dean Richert, Instructor, School of Engineering, Faculty of Applied Science


Themes

  • Flexible Learning
  • Interdisciplinary
  • Professional Skills and Competencies

Year

2020


About the Project

Computer programming is a crucial, cross-disciplinary skill that has become important to audiences beyond merely computer scientists. Records from the past few years at UBCO show that students from BSc, BA, BASc, BFA, BHK, BMgt, BMS, BSN, MA, and MEng were registered in one or more first-year programming courses. Further, several researchers seek to learn the fundamentals of computer-programming to help them implement their research ideas and algorithms. Such mix of students have different abilities and needs.

This project aims to create a learning hub that has seven modules to cover the fundamentals of computer programming with two key innovations:

  1. Personalized Learning: Learners will have the flexibility to customize the learning modules to meet their needs. For each module, learners can choose: (a) depth of learning material (Basics or Advanced), (b) programming language (Java or Python), (c) application domain for coding examples and exercises (math, computer science, physics, or biochemistry), and (d) website language (English, or French).
  2. Modules Expansion and Reusability: Instructors can expand existing modules by adding more options under the four customization attributes listed above. For example, instructors can add C++ option under the “programming language” attribute, then they only need to modify the parts in the modules that are related to the new customization option, e.g. append C++ code that would replace Java or Python code if C++ is chosen under the programming language attribute.

Additional Information