Skip to main content
Slop Hill at dusk, with the kitchen below, homes along the hillside and a narrow passage between two towers.

SLOP3969 · Twenty Dinners, One Hill

Twenty Dinners, One Hill

One ghost kitchen, one evening, twenty orders.

One decision to try now

A carries order #13 to Home 13. B is returning through the passage between two towers on the slope. The passage rule allows one drone at a time.

What should A do?

Conflict · 5 seconds sharedBoth drones occupy the tower passage on [107, 112).

Before and after

MeasureBoth departYour choice
Overlap5 s5 s
A arrives157 s157 s
A hovers0 s0 s
A flight energy33.7 kJ33.7 kJ
Who occupies the tower passage?
A[107, 132)B[87, 112) 80 s140 s

Seconds after 18:00. Shading marks overlap. The whole crossing must be free.

Starting case computed at build time. JavaScript recomputes each choice.

This checks two flight legs sharing the pass. Complete deliveries, batteries and charging are checked in later weeks.

What you will do

Design and improve the algorithms, one constraint at a time. The problem grows in five steps: find a route (weeks 1–3); find a route the drone can actually fly and return from (week 4); order many deliveries for one drone (weeks 5–6); divide the work between drones that share two charging pads (weeks 7–8); make the plans of five drones executable together in one shared airspace (weeks 9–12). Each step starts from the method you already have, breaks it on a small example, and makes you change the state, the cost or the check that was wrong.

Every week you write a prediction before you run anything, derive one thing by hand, implement one key function, test it against a counterexample, and explain the result under the objective the course fixed. You leave with a cumulative planner — search, scheduling, space-time coordination — and the arguments, tests and records that say what it guarantees and what it does not.

Learning outcomes

By the end of this course, you will be able to:

  1. Model a delivery task as a weighted graph, implement Dijkstra and A*, and explain when their results are optimal.
  2. Check a complete delivery against payload, energy and reserve limits, including service and the flight home.
  3. Build and improve delivery schedules that account for ready times, deadlines, different drones and shared charging pads.
  4. Coordinate flights using timed reservations and space-time search, then update the schedule when route costs change.
  5. Compare algorithms under the same conditions, reproduce an experiment, and explain failures and the limits of your evidence.

Who it is for

Third-year undergraduates who have done introductory programming and data structures: functions, loops, lists and dictionaries, queues and priority queues, basic graphs, and enough algebra to sum costs along a path. No robotics, no flight control, no prior optimisation course. If you can write a loop that pops the smallest item from a queue, you can start; if you want a course about real drones and real airspace rules, this is not it — every number here is a teaching setting, and the policies page says so.

Twelve weeks · five stages

How it is assessed

Assessment details

SLOP3969 runs in Semester 1, 2027, over 12 teaching weeks.

Each week pairs a one-hour Monday lecture with a two-hour Wednesday tutorial. The lecture develops the model and algorithm; the tutorial asks you to predict, try a small case and explain what happened. Finish your implementation, tests and reports outside class.

In weeks 1–6, you build the search and single-drone schedule used in Assignment 1. In weeks 7–12, you extend that work to fleet assignment, shared resources and coordinated flights for Assignment 2. Both assignments are individual and assess your code, validation and explanation.

Every tutorial counts towards your grade. All 12 sessions contribute equally to the tutorial component through attendance and lab participation. The timeline brings those weekly sessions together with the assignment weights, release dates and deadlines. Select a lecture, tutorial or assignment to open its page.

  1. Route
  2. Energy
  3. Order
  4. Fleet
  5. Together
  1. W1One order, a complete task

    LectureOne order, a complete taskTutorialCheck a legal route2 pts
  2. W2Dijkstra: when to stop

    LectureDijkstra: when to stopTutorialCatch an early stop2 pts
  3. W3A*: a useful estimate

    LectureA*: a useful estimateTutorialReopen a better route2 pts
  4. W4A route that can return

    LectureA route that can returnTutorialKeep the route home2 pts
  5. W5Which dinner goes first?

    LectureWhich dinner goes first?TutorialOrder six dinners2 pts
  6. W6When swaps stop helping

    LectureWhen swaps stop helpingTutorialCompare swaps with all 7202 pts
  7. W7Choose a capable drone

    LectureChoose a capable droneTutorialAssign the hotpot2 pts
  8. W8Who gets the charging pad?

    LectureWho gets the charging pad?TutorialTrace the pad queue2 pts
  9. W9Two drones, one corridor

    LectureTwo drones, one corridorTutorialClear the corridor2 pts
  10. W10Search around a reservation

    LectureSearch around a reservationTutorialChange the planning priority2 pts
  11. W11Let delays change the assignment

    LectureLet delays change the assignmentTutorialExplain a feedback change2 pts
  12. W12Audit the twenty dinners

    LectureAudit the twenty dinnersTutorialAudit a complete evening2 pts

Each Wednesday: 1 point for attendance + 1 point for taking part in the experiment. How participation is marked →

Where to go next