"

6 Indigenous Pedagogy: File I/O (part 1)

Lanz Angeles; Moeez Omair; and Rutwa Engineer

If you would like to try out the optional experiments included, please download and open the required files in your IDE: [Download Here]

Disclaimer

The content of this module heavily relies on the translations and alphabets provided by FirstVoices, a website that provides resources for multiple different First Nations languages. As a result, we cannot guarantee the accuracy of all linguistic information shown throughout this module. Furthermore, localized communities concerning the nations discussed in this module were not consulted. Nevertheless, we believe that using these resources and starting a discussion about First Nations peoples can still give us some insight into their experiences as well as their culture and language for the future and beyond.

Learning Objectives

In this module, you will:

  • Learn about two language systems of the First Nations peoples and their differences and similarities to English
  • Practice file I/O by reading and writing from files that use a different language
  • Practice using for loops, lists and dictionaries for various functions
  • Generate non-English sentences using concepts from Lazy Literature

Introduction

What is Indigenous Pedagogy About?

Indigenous pedagogy aims to give insight into the experiences and cultures of First Nations people, the original settlers of Canada. It’s easy to forget their influence and impact on us, especially how they’ve helped shape Canada into what it is today. In this respect, Indigenous pedagogy serves to amplify the voices of First Nations peoples, inspiring a more inclusive and diverse environment.

What can you Expect From This Module?

This module incorporates the various languages of the First Nations peoples into two computing topics: File I/O and Lazy Literature. In these topics, you’ll answer coding and open-ended questions based on translations between English and another Indigenous language. This approach allows us to refocus our attention back to the First Nations perspective, reminding ourselves of Canada’s cultures that have nearly become extinct.

Sub-Module 1: Anishinaabemowin Syllabic Translator (AST)

Learning Objectives

In this first sub-module, you will:

  • Understand the differences and similarities between English and Anishinaabemowin syllabics
  • Study how files are named and the solutions surrounding file names
  • Practice how to read and write from CSV files containing Anishinaabemowin syllabics
  • Learn more about how lists and dictionaries can be used in a translation context

You can also follow this sub-module by using these slides [PDF]. They cover the same content and are added for your convenience.

Anishinaabemowin Syllabic Translator – An Introduction

Though much attention is given to English in our programs, our code can also accommodate other languages!

In particular, this sub-module will focus on the writing system used by the “Anishinaabe” people, using its alphabet and phrase translations found here and here respectively.

The ”Anishinaabe”

The ”Anishinaabe” is a group of First Nations peoples that resides around the Great Lakes region of Canada and the United States. They use a unique writing system, called ”Anishinaabemowin syllabics.” Here’s an example of these syllabics in practice:

“ᐃᓇᑯᔑᓐ.”

The above syllabary is pronounced as ”inagoshin” and translates to ”It is evening” in English.

What are your thoughts about this new writing system?

Examples

Let’s look at some more examples of Anishinaabemowin syllabics and English!

Example 1

In English, the phrase

“It is 1 o’clock.”

can be expressed in Anishinaabemowin syllabics by writing

“ᐯᔑᒃ ᐃᔑᓭ.”

This Anishinaabemowin phrase is pronounced as ”bezhik izhise”.

Example 2

To say the English phrase

“It is 10 o’clock.”

we can write the following in Anishinaabemowin syllabics

“ᒻᑖᓱ ᐃᔑᓭ.”

The above syllabary is pronounced as ”madaaso izhise”.

What do you notice from these examples?

Optional Experiment: Translating Between English and Anishinaabemowin Syllabics

Noticeably, translating between English and Anishinaabemowin syllabics can be difficult, especially since Anishinaabemowin syllabics are very different from English.

For these exercises, we’ve provided you a CSV file, ani_eng_phrases.csv, designated by the constant “CSV_LOC” in our starter code. Using this CSV, let’s create a program to make this translation process easier!

Here’s the first six lines of what this file looks like:

ani_eng_phrases.csv

Anishinaabemowin phrases,English phrases
“ᐧᐁᑯᓀᓐ ᐃᓯᒋᑫᔾᐧᐃᓐ”,”What is she/he doing?”
“ᐁᓐᐦ ᓐᑎ ᐊᓐᑕᐧᐁᓐᑕᓐ”,”Yes, I want”
“ᐊᐧᐁᓀᓐ ᐊᐧᐁᐦ”,”Who is this?”
“ᐧᐁᓀᔥ ᒃᑎ ᐅᔑᑖ”,”Are you ready?”
“ᐧᐁᓀᔥ ᒃᑎ ᑮᔒᑖ”,”Are you finished?”

To facilitate the learning process, the lines of code have already been provided in the starting code. You must simply uncomment and replace each None with the respective code.

Task 1

Fill in the appropriate lines in the function:

find_phrase(eng_search: str, ani_search: str) -> Dict[str, str]

, which returns a dictionary where the keys are English phrases and the value of a key is an English phrase’s Anishinaabemowin syllabic translation. Ensure your function works for both English and Anishinaabemowin options.

Task 2

Fill in the appropriate lines in the function:

write_results(translation_dict: Dict[str, str], eng_translation: bool, phrase_to_find: str) -> None

, which writes your translation results to a new file.

The contents written by write_results should be identical to what is printed by print_results, excluding the "End of results.” line.

References

 

License

Icon for the Creative Commons Attribution-NonCommercial 4.0 International License

Introducing Critical Algorithmic Literacies in Computer Programming Copyright © by Rutwa Engineer; Moeez Omair; Alisha Hasan; Adelina Patlatii; Lanz Angeles; Sana Sarin; Madhav Ajayamohan; and marianne is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License, except where otherwise noted.