Admissions / Practice tasks 3 tasks

The task, before you apply.

These are the actual kind of task used in selection. Nothing is hidden, nothing is a trick, and no task is designed to fail people who have never written code.

Format

Written answer plus files or a link

Time

45 to 60 minutes, untimed if you need more

Scored on

Correctness, clarity, edge cases

Not scored

Speed, English fluency, prior grades

[01] Marks and edge cases

Write a program that reads six exam marks from standard input, one per line, and prints the highest mark, the lowest mark and the average, each on its own line, with the average to one decimal place.

Rules

  • — Any language you are comfortable with. Python, Java, C or C++ are all fine.
  • — No libraries for reading input or formatting numbers.
  • — Do not read from a file. Standard input and standard output only.

What you submit

Your source file and a short note, at most ten lines, describing one decision you made and why.

What a good answer shows

  • You read input line by line rather than assuming a single line of numbers.
  • You initialise your highest and lowest values correctly instead of starting them at zero.
  • You decide what happens if the input is empty, and you say so in the note.
  • Your average is correct when the six marks do not divide evenly.
[02] A branch, a commit, a pull request

You are given a repository with one commit and a README containing a typo in the installation command. Fix the typo, on a branch, with a commit message that explains what changed, and open a pull request.

Rules

  • — Use Git from the command line. The GitHub interface is not enough.
  • — The default branch must not receive your commit directly.
  • — One problem, one commit.

What you submit

A link to the pull request, or a bundle with the branch and the commit history if you have not pushed it.

What a good answer shows

  • You created a named branch and checked out the right branch before editing.
  • Your commit message says what changed, not that you finished the task.
  • The pull request describes the change in a sentence someone can review without opening the diff.
  • You did not commit build output, editor settings or secret files.
[03] One card, two widths

Build a single card that shows a person's name, role and three links. On a narrow screen it should stack. On a wide screen it should sit as a row with the links aligned to the right.

Rules

  • — HTML and CSS only. No CSS framework, no JavaScript.
  • — It must work at 360 pixels wide and at 1280 pixels wide.
  • — The links must be reachable by keyboard, in order, with a visible focus state.

What you submit

The HTML file, the CSS file, and one screenshot taken at each width.

What a good answer shows

  • You used a flex or grid layout instead of fixed pixel widths and absolute positioning.
  • You chose a breakpoint that matches the content, not an arbitrary device width.
  • You kept the DOM order matching the visual order, so the links are not tabbed in a confusing sequence.
  • Your focus state is visible against the card background.

One task is enough.

You are asked for one practical task, not three. If you would rather show the kind of task you are strongest at, say so when you apply and we will agree which one you sit.