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
- Meta Developer Documentation – The official starting point for Quest SDKs and development standards.
- Unity Learn – Comprehensive tutorials for building VR experiences using C#.
- Unreal Engine Documentation – Advanced resources for high-fidelity PCVR development.
- Godot XR - Documentation for Godot’s VR/AR implementation.
- OpenXR Standard – Documentation on the industry-standard API for cross-platform VR/AR.
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
- Gleam – Explore one of the most newest pure functional languages with a syntax similar to Swift.
- Exercism.org (Gleam Track) – Practice functional concepts through small, mentored coding challenges.
- Functional Programming (Wikipedia) – A theoretical overview of the core concepts and paradigms.
- Computerphile (YouTube) – Search their channel for “Functional Programming” to see high-level visual explanations.
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
- The Internet Archive (Software Library) – A massive repository of historical software and operating system images.
- MAME Project – Documentation on how hardware is emulated and the technical specs of older machines.
- Retrocomputing Wiki – A deep dive into the history and technical specifications of vintage computing.
- GitHub (Emulation Topics) – Find tools and projects that help run legacy software on modern hardware for testing purposes.