ACSE Conference 2025

The ACSE Conference 2025 offers a rich variety of sessions across several key strands, including Computer Science, Computer Technology, Pedagogical Topics, and Teaching Technology and the Skilled Trades (TAS1O/TAS2O).

Continue reading “ACSE Conference 2025”

Please help me promote the new #OntEd K-8 Coding Email List

To read the announcement about this new email list, click here.

To join the list, click here.

Unveiling ACSE-K8: An Innovative Email List for Ontario’s K-8 Educators in Coding and Technology

Welcome to the latest addition to Ontario’s educational landscape—ACSE-K8, an interactive, private email list designed exclusively for K-8 educators. Whether you’re teaching in public or private schools, or you’re a consultant in this field, ACSE-K8 offers a unique platform to integrate coding into your classrooms.

Continue reading “Unveiling ACSE-K8: An Innovative Email List for Ontario’s K-8 Educators in Coding and Technology”

Programming Challenge: Temperature Conversion (Easy)

Description

Write a program to convert a temperature from Fahrenheit to Celsius. The formula to convert Fahrenheit to Celsius is:

where ( C ) is the temperature in Celsius and ( F ) is the temperature in Fahrenheit.

Continue reading “Programming Challenge: Temperature Conversion (Easy)”

Programming Challenge: Array and Loop Manipulation (Intermediate)

This image is an illustration featuring a stylized scene with a central magnifying glass focused on a number 5 on a cube. The magnifying glass has a classic design with a blue tinted glass and a beige handle. Surrounding the magnifying glass are multiple cubes with numbers and mathematical symbols on their faces. The cubes have different numerical values such as 3, 4, 5, 6, 7, and 8, with mathematical operations next to them like "+4," "-2," "x4," and "?". Arrows around the cubes suggest movement or rearrangement, implying a dynamic or interactive aspect to the puzzle-like setting. The overall color scheme is warm with a monochromatic tan background that complements the blue and white of the cubes. The image could be interpreted as a metaphor for problem-solving, analysis, or mathematics, as it appears to represent a numerical puzzle or game being examined or solved.

Challenge Description:

You are provided with a list of n non-negative integers. Your task is to write a program that performs the following operations:

  1. Query Mode:
    • The program should first ask the user if they want to perform queries or updates: Enter 'Q' for query and 'U' for update.
    • If the user enters Q, prompt them to enter a range [l, r] (1-based index) and then output the sum of elements from index l to r inclusive.
  2. Update Mode:
    • If the user enters U, prompt them to enter an index i (1-based index) and a value v. Update the element at index i by adding v to it (this is an increment operation, not set).
    • After each update, print the new full array.

The challenge is designed to teach basic array manipulations and looping constructs, with a focus on handling user inputs and performing range queries and updates efficiently.

Continue reading “Programming Challenge: Array and Loop Manipulation (Intermediate)”

ICS Assessment GPT

This image shows a user interface for an "Ontario ICS Assessment" tool, presumably an online platform for submitting and grading assignments or projects. The top of the interface has a dropdown menu labeled "Ontario ICS Assessment." Below this is a large title "Ontario ICS Assessment" followed by the subtitle "By Peter Beens" with a printer icon next to the name. Underneath, there is a brief description stating, "Submit anything and have it graded according to the Ontario ICS achievement chart." At the bottom of the interface, there is a search bar with the placeholder text "What can this GPT do?" suggesting the interface includes a chat or search function related to the assessment tool. To the bottom left, there is a message button labeled "Message Ontario ICS Assessment…" indicating a feature to send messages. The overall color scheme is simple, with dark text on a light background. There is no additional contextual information outside of the interface elements.

Introduction

Just for fun I wanted to see if I could create a custom GPT (Generative Pre-trained Transformer) that could use The Achievement Chart for the Grade 10 Computer Studies Course to assess assignments from any of the ICS Computer Studies courses.

The instructions I gave it were:

Continue reading “ICS Assessment GPT”

Using Python To Quickly Open Multiple Websites In Your Browser

Generated with AI ∙ January 18, 2024 at 1:10 p.m.

I had a problem where I was opening about a dozen bookmarks at the same time in Brave, and in doing so, it was giving me a “503 Service Temporarily Unavailable” error.

To fix this, I turned to Copilot Pro with this prompt:

Write a Python program that opens in my web browser (using Django?) that has a list of URLs that it opens in new tabs with a pause of 0.5 seconds between them. For the initial URLs, use Google and Microsoft.

Continue reading “Using Python To Quickly Open Multiple Websites In Your Browser”

How to Save Python Files in the Same Directory in VS Code (Update)

In a recent post I gave a programmatic solution to how to get Python to write files in the same folder as the Python file itself when working in VS Code. By default, Python programs in VS Code write files in the root folder of the project, not in the folder where the Python file is saved.

My solution involved the use of a built-in variable named “__file__“, which together with some fancy path concatenation, achieved what I was hoping for.

Continue reading “How to Save Python Files in the Same Directory in VS Code (Update)”

How to Save Python Files in the Same Directory in VS Code

Introduction

Have you ever been frustrated because your Python programs in VS Code always save in the root folder of your GitHub project, even if the program is in a subfolder? You’re not alone. I’ve encountered this problem too, and I couldn’t find a solution within VS Code’s settings.

Solution

The solution is within Python itself.

Python has a built-in variable called __file__ that refers to the path of the current Python file. By using this with os.path.join(), you can ensure that your file will be saved in the same directory as your program, not in the root folder.

The os.path.join() function in Python is a smart way to stick together pieces of a file path. It knows how to correctly use the right kind of slash (/ or \) depending on your computer’s operating system. So, if you have a folder named “folder” and a file named “file.txt”, os.path.join("folder", "file.txt") will give you the correct full path: “folder/file.txt”. It’s a handy tool for dealing with file paths in Python.

Continue reading “How to Save Python Files in the Same Directory in VS Code”

Ten Things I Learned – December 5, 2023 Update

April Wine

I was sad to hear of Myles Goodwyn‘s death. Myles was the lead singer of April Wine, a Canadian band that had quite an influence on my musical tastes.

WordPress

Want to your open WordPress links in a new tab as the default? “External Links in New Window / New Tab” is your solution.

Speed Test

Google has a speed test webpage. (I’ve added it to my Google A-Z page.)

Continue reading “Ten Things I Learned – December 5, 2023 Update”