AssignmentsWeek 01 · FoundationsScholarship eligibility checker
wk01.mp1Week 01 · FoundationsOpen · due in 1 week

Scholarship eligibility checker

Build a program that asks for GPA, English score, degree level, and target country, then prints which scholarships the user might qualify for.

What you'll build

Build a program that asks for GPA, English score, degree level, and target country, then prints which scholarships the user might qualify for.

Requirements

The must-do parts. If any are missing, we'll ask you to take another pass.

  1. Asks the user for GPA (float), English test score (int), degree level (str), and target country (str).
  2. Uses at least one if / elif / else chain that touches more than one variable.
  3. Calls a function you wrote — not just inline code in __main__.
  4. Prints which broad category of scholarships the user might qualify for, plus two or three example names per category.
  5. Handles the case where the user types nonsense (e.g. 'B+' for GPA) without crashing.
Bonus, if you're feeling brave
  • Add an optional 'research experience: yes/no' question and let it raise the tier.
  • Print the result as a small table instead of three lines.
  • Accept input from a CSV instead of input().

Examples

What your program should look like when it runs. Lines starting with $ are typed by you; the rest is your program.

Example 1 — happy path
$ python eligibility.py
GPA (0.0–4.0): 3.7
English test score (0–120): 105
Degree level (BSc / MSc / PhD): MSc
Target country: Germany

You may qualify for:
  · Competitive merit scholarships (DAAD, Fulbright)
  · Country-specific programs (DAAD-EPOS)
Example 2 — nonsense input
$ python eligibility.py
GPA (0.0–4.0): B+
That doesn't look like a number. Try again with something like 3.5.

Where to start

Copy this scaffold into a new file. You don't have to use it — it's just a friendly nudge.

eligibility.py
def categorize(gpa: float, english: int, level: str, country: str) -> list[str]:
    # TODO: return a list of category names this applicant fits
    return []

if __name__ == "__main__":
    # TODO: read inputs, call categorize(), print the result
    pass

How we'll grade it

Four checks, four points. Three or above is passing — we'll ask you to revise anything we can't tick.

CheckWhat we look forPt
It runsStarts cleanly on a fresh Python 3.11+, no missing imports.1
Solves the problemDoes what the prompt asks — accepts the four inputs and prints categories.1
Uses what we taughtFunctions, conditionals, and at least one list or dict.1
ReflectionYour note tells us one thing you learned or got stuck on.1
Ready?
Hand it in
You can submit a draft and revise later if you're not done.
Begin submission →