Teaching Programming with Minecraft Education: A Reflection

Introduction In the dynamic landscape of education, integrating innovative tools to enhance learning is essential. This term, I embarked on a collaborative journey to weave Minecraft Education into our Programming 11/12 course. Our objective was to enliven the curriculum by presenting programming concepts in a more engaging and interactive manner. This reflection delves into our …

Continue reading

Measuring Student Contribution in a Software Engineering Team

Introduction In software engineering, there is very little consensus on how to measure an individual developer’s contribution. Although many measures have been proposed, their usefulness in the industry lacks validation, particularly from the perspectives of team leaders and managers (Lima et al., 2015). The lack of measurement also challenges educators (Gardner et al., 2003). This …

Continue reading

Teaching Computer Science with Minecraft

Introduction to Minecraft Minecraft is currently one of the most popular games of 2023, boasting over 140 million monthly active users, according to searchlogistics.com. Despite this popularity, many players overlook that Minecraft offers an engaging and immersive environment for learning terminal commands, programming basics, computational thinking, and even artificial intelligence. In this blog post, I …

Continue reading

Reflecting on a Study of Competitive Programming and Cultural Inclusion

Length of Study The study is designed to take place over two academic terms, which provides adequate time to collect meaningful data. The inclusion of an initial summer term without competitive programming establishes a baseline for comparison. The second summer term incorporates competitive programming using standardized questions, allowing assessment of this pedagogical approach. The fall …

Continue reading

Culturally Responsive Computing Approaches

Introduction Culturally responsive computing (CRC) is an approach to designing technology education programs and tools that responds to the cultural contexts of learners and represents an intersection between computer science, education, and sociocultural understanding. It has roots in the extensive and well-studied area of culturally responsive teaching (CRT), which argues that empowering diverse students requires …

Continue reading

Incorporating Competitive Programming into a Beginner Programming Course

Introduction Driven by the increasing automation and digitalization of virtually every workflow, programming has become an indispensable part of our lives. As a result, introducing programming at the earliest stage of education has become a hot topic of discussion among educators and academics alike. A particular area of interest is the concept of competitive programming …

Continue reading

How Effective are Pair Programming Tools for one-on-one Collaboration with Students and Colleagues?

Introduction The practice of pair programming is a software development methodology that involves two programmers working jointly on one workstation to accomplish a shared objective. The two programmers involved in the pairing exercise work together to solve a single problem, with one functioning as the driver whose primary task is to write the code, while …

Continue reading

Collaborating on Git!

Introduction Background and Motivation Git is the industry-leading version control system that streamlines software development and helps teams collaborate more efficiently. It provides a wide range of features to track changes, manage projects, store code, resolve conflicts, create branches/rollbacks and keep an eye on contributions from each team member. Its excellent performance, security, scalability and …

Continue reading

Issues with Remote Agile Software Development

Introduction The Agile methodology is a software development approach that prioritizes flexibility, collaboration, and iterative delivery. It involves breaking down the development process into smaller segments called sprints that typically last 1-4 weeks. The focus is on teamwork, communication, and daily stand-up meetings to keep everyone informed. Agile emphasizes individuals and interactions over processes and …

Continue reading