Fifty shades of neurodiversity: A CS50x project

I have always been interested in engineering, particularly computer science. The reason is that I love problem-solving! Untangling a messy, convoluted chaos into at least a visible line gives me satisfaction. I also enjoy building things for people. Unsurprisingly, as a high school student, my dream was to attend the Bandung Institute of Technology (ITB), which left me with one option: the School of Electrical Engineering and Informatics (STEI). However, knowing it was ranked first among other schools, I decided not to apply because I am really bad at mathematics.

I am not talking about being bad at linear algebra or calculus, but about being bad at counting change, reading clocks, misinterpreting 789 as greater than 3211, writing “dua belas” as 21, and mistaking 18.00 for 8PM instead of 6PM. In fact, reading numbers in itself is confusing to me, so I avoid it whenever possible.

This project is my attempt to design a way of learning programming that does not begin with numbers.

Anyway, you can skip the introduction if you want to go straight to the project, but you might miss the interesting story that shapes what I built 🙂

  1. What is CS50x?
  2. What is this project?
  3. 🐈‍⬛️ Inattentive ADHD simulator (Scratch)
  4. 🧮 num2words (JavaScript)
  5. ⏳️ Time without numbers (Python, Tkinter)
  6. Final takes?

Fast forward to October last year, and I was clinically diagnosed with inattentive ADHD (Attention-Deficit/Hyperactivity Disorder), a neurodevelopmental condition that affects the prefrontal cortex and the default mode network. This was after two failed attempts that diminished my long-time struggle with executive function because I was considered smart, even gifted. The thing is, my hobby is learning random stuff out of curiosity, but I am terrible at formal study. I received low scores because I missed submitting assignments, teachers disliked me because I could not pay attention in class, and during my PhD, I missed half of a course’s class sessions. I am in my current position because I am lucky. That is it. I seem to be doing well because people rarely realise how messy I am behind the scenes and often need assistance with small things.

The diagnosis introduces me to the concept of neurodiversity, which somehow explains everything and more. This is not me being lazy or unmotivated; my brain simply struggles to make sense of what seem like ordinary things for other people. As I tried to understand myself better and learn about comorbidity, one thing stood out to me: dyscalculia. In simple terms, it is like dyslexia, which is difficulties in reading, but with numbers. Travelling, then, becomes a nightmare for me. Flight number, bus number, gate number, terminal number, departure time, currency exchange, luggage weight, etc. The world is filled with numbers, but numbers are disorienting to me.

Getting an ADHD diagnosis also forced me to re-examine my entire childhood, often cross-checking my memories with my parents. During the process, I came across an elementary school IQ test result—something required for the evaluation—that I had never seen before. I remember telling my psychologist, “I think my IQ test is wrong, if not outdated. Where did those numbers go all these years? Why did I have to circle around by enrolling in FSRD ITB instead of going straight to STEI? Don’t you think I should at least join OSN? But I really was not capable of that.”

“That circling around is exactly your strength,” she replied. “Imagine there is a swimming pool and you have to cross it. People who cannot swim will avoid it and move on, but you force yourself to take a long detour or build a raft to get to the other side. You solve your problem in an unconventional way. Slower, maybe, but you always get exactly to where you want.”

It reminded me of my scholarship selection. The scholastic aptitude test (TBS) for the LPDP scholarship is notoriously one of the most challenging examinations in Indonesia, consisting of three sections: numerical skills, verbal skills, and problem-solving. I quietly gave up on the first, yet I did not give up on the scholarship because of it. I focused on the other two sections instead, and thankfully, I passed. Though I was unaware, my life has long been shaped by these kinds of accommodations and strategies; ways of working around limitations while refusing to be defined by them. Now, perhaps it is time to face my greatest fear, mathematics, to be the person I have always aspired to be since high school.

Of course, while learning programming, I faced many obstacles, such as repeatedly making mistakes on the simple Mimo quiz because I could not understand why 5 is not included in “while counter < 5” and why it is not written as ≤ 4 instead. On top of that, I only realised this after asking ChatGPT. In my case, I use LLMs as assistive technology. Before this, I would be too ashamed to ask anyone in case they thought, “How stupid this girl can be?” Thanks to it, I can finally pursue what I have always wanted to learn.

Admitting all of this is indeed still quite shameful. Nevertheless, I want to appreciate how I continue to march through the struggles. Before my diagnosis, I told only one person—in passing—about my dyscalculia. But since it is no longer a secret, I hope anyone in a similar situation will be motivated to overcome our limitations, whether self-imposed, inherited, or biologically rooted. Let us cross that swimming pool by conjuring creative solutions that make us most comfortable, and maybe someday, we can finally learn to swim after all.

This is me trying by being pushed into the ocean.


What is CS50x?

CS50x is, without exaggeration, one of the best online courses available, led by Dr David Malan from Harvard University. This “Introduction to Computer Science” course consists of ten modules, with an extra lecture on artificial intelligence. We will take a similar course with Harvard students—albeit online from home—since the team always updates the materials each year. In addition, they offer courses in web programming, cybersecurity, and AI, which I plan to finish next year.

The best part is, you can get a certificate for free. This course is indeed available on edX, which requires you to pay $219 for a verified certificate. However, Harvard University offers its own certificate and OpenCourseWare, including access to VS Code. We still need an edX account, but most assignments will be submitted via GitHub, and the course team will grade our submissions.

The easiest way to watch the materials is to bookmark the YouTube playlist and complete the assignments through OpenCourseWare. For CS50x, we have 26 coding assignments, 1 Scratch project, and 1 final project that implements one of the programming languages we have learned, presented through a YouTube video. This year, the final deadline is 01/06/2026, so there is still plenty of time in case you want to join—asking for a friend here.


What is this project?

“Fifty shades of neurodiversity” is a series of programming exercises that aim to shed light on the various ways our brains interpret the lifeworld and the space-time. The name takes inspiration from the non-numeric representation of the course title, while also highlighting the nuance of being neurodiverse, especially as someone with Inattentive ADHD and dyscalculia myself. Even though the course only requires one final project, I decided to make two with JavaScript and Python. By basing the projects on issues I am deeply passionate about, I hope to encourage myself to finish the course, learn in a way that honours how my mind works, and above all, invite you into understanding another way of understanding.


🐈‍⬛️ Inattentive ADHD simulator (Scratch)

Play the game on Scratch

“Inattentive ADHD simulator” is a digital tag game based on chase-and-avoid mechanics. The player takes the role of a person with Inattentive ADHD and aims to finish their thesis by touching the graduation cap in under 50 seconds; otherwise, they will miss the deadline. The person is represented by a black cat resembling the CS50x and Scratch icons. A messy desk, meanwhile, reminds us of our tendency to measure everything by its outputs, yet behind many well-composed masterpieces are probably desks that look like the one in the picture. Additionally, the vintage style underscores that ADHD is not just a modern problem.

At the beginning of the game, an intentionally confusing design temporarily hides the goal for three seconds, depicting the ADHD paralysis. The goal then continues to appear and disappear throughout gameplay, mirroring experiences of forgetfulness. This principle also extends to the deliberately indistinguishable visual style. Unlike typical games of this genre, where goals are rendered in striking or contrasting colours, the goal here blends into its surroundings.

As for the sprites to be avoided, instead of choosing stereotypical distractions such as doomscrolling, binge-watching, and playing video games, which are forms of screen addiction that the general public finds equally challenging to avoid, it shows what happens when your mind moves rapidly with no brakes. It also omits distractions that more closely reflect hyperactive tendencies, such as suddenly running miles, rearranging the furniture, or taking a train to nowhere. In inattentive ADHD, someone may seem productive from the outside yet remain distracted from their primary intention or goal. They might seem physically still, but in their chronic daydreaming, they have made up yet another poem that must be finished now.

In this game, the distractions include taking a programming course, applying to a competition, writing an opinion essay, and learning about impressionism. One sprite follows from behind, calling your loved ones for hours, as this represents something equally important but can be easily forgotten or not carefully scheduled around daily responsibilities. One sprite that moves randomly, starting a YouTube channel, represents an innocent long-term commitment taken just because, yet it ends up taking more time and energy than expected. This approach, I hope, will offer a brief glimpse of the gruelling tension between what appears to be productivity and the required clarity to manage time and finish a task without detours, no matter how positive it sounds. In this regard, the term “deficit” can be misleading, as it often reflects not an inability to focus but an inability to direct focus toward an intentional goal, since the brain already hyperfocuses on the next curious venture.

  • Credits
  • Images & sprites: DALL-E
  • Intro music: Nocturne Op.9 No.2 by Abydos_Music | Composed by Frédéric Chopin
  • Game music: The Can Can IMPOSSIBLE by @SheetMusicBoss | Composed by Jacques Offenbach

🧮 num2words (JavaScript)

While digital products are often designed to be user-friendly, they can be quietly inaccessible to neurodivergent users. Built in response to the assumptions that numbers speak clearly to everyone, “num2words” is a critical interface intervention that helps reduce invisible cognitive labour in people with dyscalculia. Integrated as an overlay within Google Chrome extension, it aims to fix the environment rather than the user by expanding numerical representations into linguistic representations. Interestingly, the name itself comes from a design inversion: computers translate words into numbers, and this tool turns numbers back into words for people.

The last paragraph of the CS50x subsection above will be used to ensure this tool works.

I promise I will make it!


⏳️ Time without numbers (Python, Tkinter)

Long before time was measured in numbers, humans oriented themselves through experience—sunrise and sunset, changing seasons, the waxing and waning of the moon—using these natural markers to guide everyday decisions. For many people with ADHD, time blindness reflects a reliance on similar experiential cues, in which the passage of time is difficult to sense, and the temporal continuum collapses into merely two markers: now and not now, resembling an object permanence challenge applied to time, where what or whom is no longer present here and now easily slips from mind.

Furthermore, for someone with dyscalculia, the challenge is compounded by the numeric abstraction itself, in which clocks and dates expressed in numbers fail to convey meaning. In my case, I always ask people to send a Google Calendar invite, even for a simple coffee catch-up, because I pay attention to how the line marker moves across the coloured blocks rather than to the symbols. A reminder system is inherently inseparable from me.

The “time without numbers” desktop widget addresses time blindness as a representational mismatch by translating numeric time into experiential anchors—one song, one Pomodoro, one podcast episode—so that time is felt through accessible metaphor. It is a timer without digits, using shapes, colours, and movements to embody concepts that often elude the neurodiverse mind.

I promise I will make it!


Final takes?

Manifesting

Coming soon with a certificate. Wish me luck!

Meanwhile…

Salvador Dali (1954) – The disintegration of the persistence of memory

Leave a comment