Matua Doc

Matua Doc

Project management for Level 3

Select one of the following technical constraints to define the scope, architecture, and implementation of your project. Each constraint presents unique challenges in terms of optimization, logic, and hardware interaction.

1. Virtual Reality Application

Focus: Immersive Environments & Spatial Computing

Develop an interactive 3D application for virtual reality, such as the Meta Quest 3S. Your project must be designed to run in one of the following two modes:

  • Standalone Mode: The application is compiled to run natively on the Quest 3S hardware (utilizing its internal operating system via side-loading). Some VR development environments can run natively inside this system, such as a VR version of Godot.
  • PCVR Mode: The application runs on a powerful desktop computer and streams the visuals to the Quest 3S via a wired Quest Link connection. This allows for higher fidelity graphics but requires managing latency and streaming.

If you have your own headset, you can use that for development. If not, you will need to have some additional time with the VR headsets; I will let you book in certain lunchtimes to come in and use the VR headsets and I’ll also make some time available after school.

📚 Learning Resources

2. Functional Programming

Focus: Mathematical Logic & Declarative Code

Instead of using traditional imperative (Level 1 and 2) or object-oriented (Level 3) styles, your software must be built using a Functional Programming (FP) language. This constraint requires you to rethink how data is handled.

  • Key Concepts: You must prioritise functions, immutability (data that cannot be changed once created), and the avoidance of “side effects.”
  • Logic Style: You will move away from telling the computer how to do something step-by-step, and instead focus on what the desired result is through pure functions and recursion.

📚 Learning Resources

Suggested FP languages

  • Gleam
  • F# (uses .NET)
  • Scala (uses the JVM, same as Java and Kotlin)

3. Legacy System Development

Focus: Resource Management & Retro-Computing

Develop software intended to run on technology that is at least 17 to 18 years old (dating back to 2007 or earlier). This constraint can be applied to the hardware, the operating system, or both.

The tough stuff

  • Hardware Constraints: Targeting older CPU architectures (e.g., 32-bit processors) or limited RAM.
  • OS Constraints: Developing for specific legacy operating systems (e.g., Windows XP, Mac OS X or Mac OS 9, early Linux kernels, or even MS-DOS).
  • Challenge: You must work within the strict limitations of older memory management, slower processing speeds, and outdated driver support.
  • Emulation and virtualisation: To develop at home, you may need to use an emulator or virtualisation software. You should research what the system requirements are and try running some to see how speedy they are.

The good news

  • You can use modern development tools to write your programs. However, you will then need to learn how to backport your code to older platforms.
  • You can also try using older development tools in a modern environment. For example, you could use older versions of a programming language, older compilers, etc. on your modern Windows 11, macOS, or Linux systems.
  • There are real-world Macs available for those who would like to target Mac OS 9 or Mac OS X.
  • There are two Intel Macs that can be set up to run Windows XP in a virtual machine.

📚 Learning Resources