The coding project I am presenting in here is my final project for the online course "CS50P - Introduction to Programming with Python" at Harvard University, which you can find on the edX educational platform and which, as the name suggests, deals primarily with programming in the Python programming language. I passed the course on January 14, 2024 and received a corresponding certificate of completion.
Inspired by the course's own homework assignment "My Little Professor" from CS50P, which involved reprogramming the functions of a mathematical educational toy from the 1990s, and also inspired by Nintendo's video game "Dr. Kawashima's Brainjogging" for the DS, 3DS and Switch consoles, I created a terminal program that I call "Brainjogging 10/30". My terminal program, written in Python3, contains three mini-games so far and two versions for each mini-game, which differ in the number of tasks given - hence the name 10/30.
The first version for each mini-game has ten tasks per game, the second version has thirty tasks per game. You can start them by specifying the name of the game as sys.argv[1] - i.e. as the second command line argument for the regular start of the program in your terminal. The names of the games are as follows, depending on the tasks they offer: "--math10", "--math30", "--rps10", "--rps30", "--sentences10" and "--sentences30"; If you want to try out the terminal program, please be sure to follow the instructions in the "requirements.txt" file offered in the public repository, in which I have tried to give user-friendly instructions on all the dependencies that the terminal program may have.
In Math10 and Math30 you have to solve simple math problems and equations. At the moment, addition, subtraction, multiplication and division are supported by the game. You can collect points by solving the math problems. To win the game, you have to achieve a total of 70% of the points - just like in the CS50P homework - which is something that all mini-games have in common. According to Dr. Kawashima, solving simple math problems activates the prefrontal cortex in your brain.
In RPS10 and RPS30, you have to solve a given task in a party of the world-famous game "Rock, Paper, Scissors" (hence the abbreviation RPS). The tasks specify whether you should win or lose with a certain position of rock, paper or scissors and you then have to choose which position you want to bring into the round - by typing it into the terminal and confirming the entry with the enter key. This is not as easy as it sounds, especially if you are trying to play for time. The answers must be entered in the terminal with the respective English terms, as the original target group for the project was an American and therefore English-speaking university (see the introduction to the article again). According to Dr. Kawashima, this exercise can also activate the prefrontal cortex.
In Sentences10 and Sentences30 you have to form sentences with five words, where each word has to begin with a specific, randomly selected and predetermined letter of the alphabet. This can be tricky, because you are often given letters such as "q", "x", "y" or "z", for example, for which my personal vocabulary does not contain enough English words to form a meaningful sentence. Unfortunately, the program does not yet check whether the sentence you have created makes sense, which is still a disadvantage. In principle, you can also play the game in any other language that supports the English alphabet and are not dependent on English here - but since I was a total beginner in programming when I started with CS50P, it is reasonably OK for me and my personal use of the terminal program. Try not to cheat on this if possible.
I tried to find an appropriate architecture in my code to easily implement more minigames in the future via additional functions in my program and keep it as readable as possible. Since the program in its current form relies heavily on randomized decisions via Python's built-in random library, I was not able to implement an appropriate Pytest file as requested in the original project specifications. In the "test_project.py" file, I only test if the random module is working properly via a code snippet I found on StackOverflow - and at the moment it is without a doubt.
All in all, CS50P was one of the most challenging online courses I have taken so far. I found it inspiring and ideal for personal growth and often enough I was also very proud when I had solved a homework assignment - there were ups and downs and, as mentioned, some formative experiences of success during the course. The tasks and everyday problems I was confronted with in the course made me realize where in the world there was already a programmer at work who solved and programmed a certain task and application for us in a user-friendly way and perhaps spent days and nights debugging his or her code. After the course, I have the deepest respect for every programmer who has contributed to our digital world with his or her skills. At this point, a big thank you to everyone!
A few words about the benefits of brain training - according to my research, brain training is generally controversial in the scientific community. As it is so often the case, there are supporters and doubters. The team around Dr. Kawashima, whose video game series inspired my terminal program, has dedicated itself to researching the neurological effects of brain jogging and declares a clear benefit, which has emerged from numerous studies and investigations. Nevertheless, there are many voices in the press claiming that brain jogging has no effect on the brain - and that the improvement in the results achieved is merely a learning effect. Other neurologists claim that regular training in particular creates a reserve in the brain that slows down the onset of memory problems in old age. For my part, I can't say anything definite about this - but I do believe that brain training can definitely be fun - personally, it's enough to keep me busy with little puzzles from time to time.