top of page

PROJECT TYpE: PERSONAL INDIVIDUAL PROJECT

C Programmed Big Five Personality Quiz

Project Impact

Bridging computer science principles with behavioural psychology, this project delivered a robust, 30-question personality assessment program entirely programmed in C. Through streamlined data structures, modular function design, and rigorous input validation, the application successfully processes user inputs, handles edge-case errors, and computes detailed Big Five psychological traits. The result is an efficient, highly readable codebase that showcases foundational software engineering practices, algorithmic logic, and clean code architecture.

Project Focuses

01

Code Maintainability & Streamlining

02

Algorithmic Logic & Data Structures

Focused heavily on organising declarations, condensing functions, and structuring arrays for maximum readability and future scalability.

Designed a structured 30-item question array integrating normal and reverse-scoring logic into a unified evaluation loop.

03

Robust Input Validation

04

User Experience & Feedback Generation

Implemented strict error handling to gracefully reject invalid or non-numerical user inputs and re-prompt safely.

Programmed automated calculation logic to parse raw scores, track trait totals, and clearly output personalized highest and lowest score summaries.

THE CHALLENGE
Digital screenshot of programming code displayed on a dark terminal. The lines of code are numerous and appear technical.

Creating efficient and easily maintainable code with accessible UI.

As the final project for Harvard CS50x, the challenge was to independently design, develop, and deliver a substantial piece of software that draws upon the course's core programming lessons. Rather than following a guided problem set, the challenge required applying the full spectrum of computer science principles learned throughout the course, ranging from core algorithmic logic and data structuring to memory management and program architecture, to solve a self-selected problem. Beyond writing functional code, I was tasked with adhering to high standards of code maintainability, managing project scope effectively, and documenting my work thoroughly via a technical README and a formal video demonstration that clearly communicates the software's design choices and practical utility.

THE SOLUTION

Custom function building and robust input-validation.

To solve this, I engineered a streamlined, single-file C program structured around custom arrays and modular functions. I defined a specialised data structure to cleanly house each question’s text, associated personality trait, and scoring logic type. To ensure a smooth user experience, I implemented robust input-validation loops that catch non-numerical or out-of-range errors, alongside helper functions to automatically compute score distributions, identify peak traits, and generate comprehensive psychological feedback. I ensured easy code editing by using custom made functions, to make sure future personal edits and/or other users editing the code is efficient and easy.

bottom of page