Scoping a project you can actually finish, the environmental cost of computing, the research areas shaping the field, and where computing leads after Grade 11.
1Scope a project by sorting features into must, should, could and will-not have, and build strictly in that order.
2A milestone must be provable by running something, not by an estimate of how complete it feels.
3Reserve about a fifth of your time for testing, fixing and documentation.
4Manufacturing a device usually costs more energy than the electricity it will consume in its whole life, so extending lifespan is the strongest environmental lever.
5E-waste contains both hazardous materials and recoverable metals, so it must go to a designated recycling program.
6Ontario pathways include university computer science or engineering, college programming and IT, combined transfer routes, and certification.
A culminating performance task is a program you design and build yourself, from an idea to a working demonstration. The single most common reason one goes badly is not difficulty — it is scope. Pick a problem small enough that the core of it could be working within the first quarter of the time you have, then write the features down in priority groups and build strictly in that order. When time runs short, and it will, you drop from the bottom of the list rather than abandoning a half-built feature in the middle.
Priority
Meaning
Example for a quiz program
Must have
Without it there is no project
Load questions, ask them, check answers, report a score
Should have
Clearly better with it
Store scores between runs, shuffle the question order
Could have
Only if everything else is done
Timed questions, a difficulty setting, a graphical interface
Will not have
Written down explicitly so it stops tempting you
Online multiplayer, accounts, a mobile version
Writing the fourth row down is what protects the first row.
Build one thin slice end to end first
Make a version that reads one question, asks it, checks the answer and prints a score — then stop and make sure it runs. A working skeleton can be extended in any direction. A collection of finished pieces that has never been assembled cannot be demonstrated at all.
Break the project into milestones that are each provable by running something. "Work on the data structure" is not a milestone, because it can be 90 percent done forever. "The program loads a file of questions and prints them" is a milestone: it either runs or it does not. Then plan backwards from the deadline and leave the final fifth of your time for testing, fixing and documentation, because that work always exists and is always underestimated.
Milestone
Proof it is done
Share of the time
Requirements and design
IPO chart, pseudocode and a list of test cases exist
15 percent
Thin slice running
One question asked and answered end to end
20 percent
Must-have features complete
Every must-have item demonstrably works
30 percent
Should-have features
Added one at a time, re-testing after each
15 percent
Testing, fixing, documentation
Full test set passes; code is commented and named clearly
20 percent
Losing work is a self-inflicted wound and it is entirely preventable. Keep the project in one folder, with each source file named exactly after the class it contains. Keep a dated copy every time something significant starts working, and never edit that copy — when a change breaks everything and you cannot see why, being able to return to the last version that ran is the difference between an hour lost and a weekend lost. Back up to a second location, because one copy is no copies. Version control such as Git does all of this properly and records why each change was made. And never rename a file to finalFINAL2: dates sort, adjectives do not.
What to have ready for a demonstration
A demonstration should show the program running on prepared data, including at least one invalid input being rejected gracefully. Have the design documents, the test cases with their results, and a one-sentence explanation of any feature you chose not to build. Being able to say what you left out, and why, shows you controlled the scope rather than ran out of time.
Computing is not weightless. Every device consumes electricity while it runs, took energy and mined materials to manufacture, and becomes waste at the end of its life. Manufacturing dominates: for a typical laptop, making it accounts for far more energy than the years of electricity it will ever draw, which reorders the whole list of what actually helps — keeping a device in service longer beats almost any efficiency measure. Data centres deserve a separate mention, because they are where cloud services, streaming and machine learning actually run, and their two big costs are the computing itself and the cooling needed to remove the heat it produces. Efficiency there is measured by comparing total facility power with the power delivered to the computers alone; the closer that ratio is to 1, the less is wasted on everything other than computation.
Fig 1From raw materials through manufacture and use to recovery or landfill, and the loop back into new products.
Policy or practice
What it does
Why it matters
Power management: sleep and hibernate
Drops idle draw from tens of watts to a few
Most machines are idle far more than they are used
Turning displays off when idle
A monitor is often the largest single draw at a workstation
Costs nothing and needs no hardware change
Extending device lifespan
Repair, upgrade the memory or drive, reinstall rather than replace
Avoids the manufacturing energy of a whole new device
Responsible e-waste recycling
Recovers copper, aluminium, gold and rare metals; keeps lead and mercury out of landfill
Ontario has designated drop-off programs for exactly this
Efficient code and right-sized hardware
Less computation means less energy for the same result
Scales enormously when the program runs on many machines
Data-centre efficiency
Cooling design, waste-heat reuse, siting near low-carbon electricity
Much of Ontario's supply is low-carbon, which changes a centre's footprint as much as any efficiency measure
Electronic waste is hazardous, not ordinary garbage
Devices contain lead, mercury, cadmium and flame retardants that leach out of landfill, alongside copper, aluminium and gold worth recovering. They also contain your data, so wipe storage before disposal. Municipal and retailer take-back programs exist specifically so that none of this ends up in household waste.
Research field
The core idea
Where you already meet it
Machine learning
Programs that improve at a task by finding patterns in data, instead of being given explicit rules
Speech recognition, recommendations, translation, medical image analysis
Quantum computing
Using quantum states to explore many possibilities at once, for a narrow class of problems classical machines find intractable
Still experimental; its main near-term effect is driving new encryption standards
Cybersecurity
Protecting systems and data from attack, and designing systems that stay safe when something fails
Encryption on every website you visit, two-factor login, security updates
Human-computer interaction
Studying how people actually use systems and designing to fit that, including accessibility
Applying computing to biological data such as genomes and protein structures
Genetic testing, drug discovery, tracking how a virus changes
These fields are worth knowing about now because they change what a programmer's job involves. Machine learning shifts effort from writing rules to gathering and checking data, which brings new responsibilities around bias and privacy. Quantum computing threatens some current encryption, which is why new standards are already being deployed. Cybersecurity has moved from a specialism to something every developer is expected to understand, and human-computer interaction keeps the field honest about the fact that software exists for people to use.
Fig 2Routes from secondary school into computing: university, college, apprenticeship and direct certification.
Systems and embedded work, and a route toward professional engineer status
College — computer programming or IT
2 to 3 years, applied focus
Developer, analyst, network or support roles; fastest route into practical work
College and university combined
Transfer and degree-completion agreements
College skills plus a degree, often with credit for completed work
Certification and self-directed study
Months, ongoing
Networking, cloud, security and support roles where certifications are recognized
Role
What the work is actually like
Software developer
Turning requirements into code, reviewing others' code, and maintaining systems already in use
Data analyst or data scientist
Cleaning and combining data, finding patterns, and explaining findings to people who will act on them
Cybersecurity analyst
Monitoring systems, investigating incidents, and hardening software before it is attacked
Network or systems administrator
Keeping infrastructure running, planning capacity, and restoring service when it fails
Game or interactive developer
Programming with tight performance limits, alongside artists and designers
UX designer or researcher
Studying how people use a system and redesigning it around what they actually do
Every one of these routes values the same starting evidence: finished programs, readable code, and the ability to explain your decisions.
Worked examples
Reveal one step at a time and try to beat it to the next line.
Example 1
A student proposes a multiplayer online game with accounts and a graphical interface for a project lasting six weeks. Rescope it into something that can be finished.
Example 2
A desktop computer draws 120 W in use and 3 W asleep. It is currently left on 24 hours a day. Calculate the energy over 30 days, then for a policy of 8 hours awake and 16 hours asleep, and state the saving.
Example 3
A working laptop is three years old and feels slow. Compare replacing it with upgrading it, on environmental grounds.
Where marks get lost
Choosing a project by how impressive it sounds rather than by whether its core can be running early.
Setting milestones that cannot be proven by running something, so progress can only be guessed at.
Leaving no time for testing and documentation, which guarantees both are done badly or not at all.
Keeping a single copy of the project on one machine, so one failure or one bad edit erases everything.
Assuming a newer device is greener, when manufacturing is the largest part of a device's lifetime energy.
Flashcards 10
What is the most common reason a culminating project fails?
What makes a good milestone?
Roughly how much of the schedule should be reserved for testing and documentation?
Why keep dated copies of working versions?
+ 6 more
Practice
1
Order the milestones of a well-planned culminating project.
1Full testing, fixes and documentation
2Should-have features added one at a time
3All must-have features complete
4Requirements, design and a written test plan
5A thin slice running end to end
2
A computer draws 120 W and is left on for 24 hours a day. How many kilowatt hours does it use in 30 days?
kWh
3
The same 120 W computer is set to sleep at 3 W for 16 hours a day and run for 8. How many kilowatt hours does it use in one day?
kWh
4
Which stage of a laptop's life typically consumes the most energy?
5
Match each emerging research area to its core idea.
Machine learning
Quantum computing
Cybersecurity
Bioinformatics
6
Why write down a "will not have" list when scoping a project?
7
Name one reason a device should go to a designated e-waste program rather than household garbage.
8
Which is a genuine milestone rather than a vague task?
9
Which Ontario pathway is the most direct route into applied developer and support work?
10
Order these actions by how much they reduce computing's environmental impact, from most to least.
1Enable sleep and display power management on every machine
2Replace a working device with a newer, more efficient model
3Recycle the device responsibly at the end of its life
4Keep a working device in service for two extra years through repair and upgrade
11
What is the main purpose of keeping dated copies of versions that worked?
12
What should a project demonstration include, beyond the program working on ordinary data?