CODESWITCH · Mirror Docs 01

The bilingual CS glossary — in four languages.

Introductory Python and computer science terms in English, Spanish, Vietnamese and Arabic — with the plain-language explanation, not just the word. Plus the ten error messages every beginner hits, taken apart line by line.

Free to use, copy, print, and put in front of students. No signup, no attribution required beyond a link back.


Translation status, honestly. The Spanish and Arabic entries are written by a bilingual Arabic/English speaker with working Spanish. The Vietnamese entries are a first pass and have not yet been reviewed by a native speaker. If you speak any of these languages and something here is wrong, awkward, or would confuse a fifteen-year-old, please tell me — yusuf.gadelrab06@gmail.com. Corrections get made the same week and credited. A glossary that quietly contains bad translations is worse than no glossary.


Read this first

The keywords aren't translated. That's on purpose.

You'll notice if, for, return and def stay in English everywhere on this page. They're not translated because they aren't really English words when they're in code — they're symbols that happen to be spelled like English words.

Think of them the way you think of a person's name: you don't translate Nguyễn or محمد into English, you just learn to recognise it. Python has about 35 of these, you'll use maybe 12 regularly, and once you can recognise them on sight you never think about them again.

What does get translated is everything else — the concepts, the explanations, the error messages, and the questions you ask. That's the part that carries the meaning.


01 · Concepts

The twenty words that unlock the first eight weeks

Learn these and you can follow almost any beginner Python lesson, in any language.

EnglishEspañolTiếng ViệtالعربيةWhat it actually is
Variable variable biến مُتَغَيِّرmutaghayyir A labelled box that holds one value. You choose the label — and the label can be in your language.
Value valor giá trị قِيمَةqīma The thing inside the box. A number, some text, a list of things.
Assignment asignación phép gán إِسْنَادisnād Putting a value into a box, written with one =. It's an instruction, not a claim that two things are equal.
Equality igualdad so sánh bằng تَسَاوٍtasāwin Asking whether two things are the same, written with two: ==. Mixing this up with = is the single most common beginner bug.
String cadena (de texto) chuỗi سِلْسِلَة نَصِّيَّةsilsila naṣṣiyya Text, always inside quotes. "7" is text; 7 is a number. They behave differently.
Integer número entero số nguyên عَدَد صَحِيحʿadad ṣaḥīḥ A whole number, no decimal point.
Float número decimal số thực عَدَد عَشْرِيʿadad ʿashrī A number with a decimal point.
Boolean booleano giá trị luận lý قِيمَة مَنْطِقِيَّةqīma manṭiqiyya A value that is only ever True or False. Capital letter in Python.
Conditional condicional câu điều kiện شَرْطsharṭ A fork in the road. if this is true do that, else do something different.
Loop bucle vòng lặp حَلْقَةḥalqa Doing the same thing repeatedly until a condition stops it.
List lista danh sách قَائِمَةqāʾima A numbered row of boxes, in order. Counting starts at 0, not 1.
Index índice chỉ số فِهْرِسfihris The position number of one item in a list. First item is index 0.
Dictionary diccionario từ điển قَامُوسqāmūs Boxes with names instead of numbers. You look things up by key, like a real dictionary.
Function función hàm دَالَّةdālla A recipe you name once and can use many times. Written with def.
Parameter / Argument parámetro / argumento tham số / đối số مُعَامِل / وَسِيطmuʿāmil / wasīṭ The ingredients you hand to a function. Parameter is the name in the recipe; argument is what you actually pass in.
Return devolver trả về إِرْجَاعirjāʿ Handing a result back out of a function. Not the same as printing it — printing shows it to a person, returning gives it to the rest of your program.
Print imprimir / mostrar in ra طِبَاعَةṭibāʿa Showing something on the screen so a human can read it.
Syntax sintaxis cú pháp بِنَاء الجُمْلَةbināʾ al-jumla The grammar rules of the language. Break them and the program won't run at all.
Indentation sangría thụt lề مَسَافَة بَادِئَةmasāfa bādiʾa The blank space at the start of a line. In Python this is grammar, not decoration — it says what belongs inside what.
Bug / Debug error / depurar lỗi / gỡ lỗi خَطَأ / تَصْحِيح الأَخْطَاءkhaṭaʾ / taṣḥīḥ al-akhṭāʾ A mistake in your code, and the process of finding it. Everyone's code has bugs. Finding them is the actual skill.
Library / Module biblioteca / módulo thư viện / mô-đun مَكْتَبَةmaktaba Code somebody else already wrote that you can use. Bring it in with import.
Comment comentario chú thích تَعْلِيقtaʿlīq A note for humans that the computer ignores, after a #. Write these in your own language.

02 · The error decoder

Ten error messages, taken apart

Reading an error message is the most transferable skill in programming, and it's the one that monolingual teaching skips fastest. Three rules before the list:

1. Read the last line first — that's the actual error. 2. Find the line number — the problem is on that line or just above it. 3. The error type is two words jammed together, and each word tells you something.

SyntaxError: unterminated string literal

You opened a quote and never closed it

Syntax = grammar. Unterminated = not finished. String literal = a piece of text in quotes. Python read your quote mark, started reading text, and hit the end of the line still waiting for the closing quote. Look for a " or ' with no partner.

ESAbriste unas comillas y no las cerraste.
VIBạn đã mở dấu ngoặc kép nhưng chưa đóng lại.
ARفتحت علامة اقتباس ولم تُغلقها.
NameError: name 'edad' is not defined

You used a name Python has never seen

Almost always a typo, or using a variable before you created it. Python is case-sensitive: Edad and edad are two completely different names. Check the spelling against where you first created it.

ESUsaste un nombre que Python no conoce — normalmente un error de escritura, o lo usaste antes de crearlo.
VIBạn dùng một tên mà Python chưa biết — thường là lỗi chính tả, hoặc bạn dùng nó trước khi tạo.
ARاستخدمت اسمًا لا يعرفه بايثون — غالبًا خطأ إملائي، أو استخدمته قبل إنشائه.
IndentationError: expected an indented block

Python wanted space at the start of the line and didn't get it

After a line ending in : — an if, a for, a def — the next line must be pushed in. That blank space is how Python knows what's inside. Press Tab once. Never mix tabs and spaces in one file.

ESFalta la sangría. Después de una línea que termina en : la siguiente debe ir más a la derecha.
VIThiếu thụt lề. Sau dòng kết thúc bằng : dòng tiếp theo phải lùi vào.
ARينقصك مسافة بادئة. بعد سطر ينتهي بـ : يجب أن يكون السطر التالي مُزاحًا للداخل.
TypeError: can only concatenate str (not "int") to str

You tried to add text and a number together

Type = what kind of thing it is. Concatenate = join end to end. "I am " + 20 fails because one is text and one is a number. Convert first: "I am " + str(20).

ESIntentaste unir texto con un número. Convierte el número con str().
VIBạn đã cố nối chuỗi với số. Hãy chuyển số bằng str().
ARحاولت دمج نص مع رقم. حوّل الرقم باستخدام str().
IndexError: list index out of range

You asked for an item that isn't there

A list of 3 items has indexes 0, 1 and 2 — there is no index 3. Counting from zero is the cause of this error roughly every time. len(my_list) tells you how many items there are; the last index is always one less than that.

ESPediste una posición que no existe. Una lista de 3 elementos tiene los índices 0, 1 y 2.
VIBạn yêu cầu một vị trí không tồn tại. Danh sách 3 phần tử có chỉ số 0, 1 và 2.
ARطلبت موقعًا غير موجود. قائمة من ٣ عناصر لها الفهارس ٠ و١ و٢.
KeyError: 'nombre'

That key isn't in the dictionary

You looked something up by name and the name isn't there. Check the spelling and the capitalisation of the key. .get("nombre") returns nothing instead of crashing, if a missing key is acceptable.

ESEsa clave no existe en el diccionario. Revisa la ortografía y las mayúsculas.
VIKhóa đó không có trong từ điển. Kiểm tra chính tả và chữ hoa chữ thường.
ARهذا المفتاح غير موجود في القاموس. تحقّق من الإملاء وحالة الأحرف.
ValueError: invalid literal for int() with base 10: 'hola'

The right kind of operation, the wrong content

You asked Python to turn something into a number, and it isn't a number. Usually from input(), which always gives you text — even when the person typed digits. Check what the user actually entered.

ESIntentaste convertir en número algo que no lo es. input() siempre devuelve texto.
VIBạn đã cố chuyển thành số một thứ không phải số. input() luôn trả về chuỗi.
ARحاولت تحويل شيء ليس رقمًا إلى رقم. الدالة input() تُعيد نصًا دائمًا.
AttributeError: 'list' object has no attribute 'lower'

You used a tool that doesn't belong to that thing

Attribute = something a thing can do or has. .lower() belongs to text, not to lists. Usually it means the variable isn't holding the type you thought it was — print it and check.

ESEse método no pertenece a ese tipo. La variable probablemente no contiene lo que crees.
VIPhương thức đó không thuộc kiểu dữ liệu này. Biến có lẽ không chứa thứ bạn nghĩ.
ARهذه الدالة لا تنتمي لهذا النوع. غالبًا المتغيّر لا يحتوي ما تظنّه.
ZeroDivisionError: division by zero

You divided by zero

Mathematically undefined, so Python refuses. Usually the divisor is a variable that turned out to be 0 — an empty list's length, a counter that never incremented. Check the value before dividing.

ESDividiste entre cero. Revisa el valor del divisor antes de dividir.
VIBạn đã chia cho 0. Hãy kiểm tra giá trị số chia trước khi chia.
ARقسمت على صفر. تحقّق من قيمة المقسوم عليه قبل القسمة.
ModuleNotFoundError: No module named 'pandas'

The library isn't installed here

Your code asked for someone else's code that isn't on this machine. Install it, or check the spelling of the module name. Nothing is wrong with your program's logic.

ESEsa biblioteca no está instalada. Instálala o revisa el nombre.
VIThư viện đó chưa được cài đặt. Hãy cài hoặc kiểm tra lại tên.
ARهذه المكتبة غير مُثبَّتة. ثبّتها أو تحقّق من الاسم.

03 · Asking for help

How to ask, when asking is the hard part

A lot of students get stuck not because they can't code but because asking a question in a second language, in front of a room, feels expensive. Here's a template that removes most of that cost — fill in four lines and you have a complete question, in any language.

1. What I was trying to do: 2. What I wrote: (paste the code) 3. What happened instead: (paste the WHOLE error, last line included) 4. What I already tried:

Write it in whichever language you think in. A tutor who reads all four lines can almost always answer without asking you anything else — which means you only have to speak once.


Use this however you want. Print it, copy it into your own materials, translate it into a language that isn't here, put it on a classroom wall. If you translate it into a new language and send it back, it goes up here with your name on it. This page is Mirror Docs 01 — the first piece of the open library described on the CODESWITCH page.