← VCE Software Development U4O1

Keeping a project journal

A dated record of progress, decisions, problems, solutions and reasons for changes, written as development happens and kept as evidence for evaluation.

Understanding Keeping a project journal in VCE Software Development U4O1

What it does: The date and the event are recorded straight away, so the journal can be used later as evidence for evaluation. Stating the reason for the change gives evidence that can be used to evaluate how effective the plan was. A good entry is dated and specific. It says what was done, what problem came up and how it was solved. Dates let you build a timeline and compare actual progress with expected progress when you evaluate. A problem and solution entry names the problem, its cause and the fix. This helps in later evaluation and when similar bugs appear again.

Common mistakes: today is a function, so it needs brackets to run. Without them the variable holds the function itself, not the date. It should be datetime.date.today() so the journal entry has a real date. The string is missing its closing quote, which causes a syntax error. The dated entry must end with " so it can be added to the journal.

Class: _____________________  ·  Name: _____________________  ·  Date: _________

Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.

This module's key terms are also in a printable crossword (Modules 186–198) and word search (Modules 172–198).

Take this worksheet further — free with Cloodit

Each concept is reinforced from every angle — learned, then applied, then tested.

Learning
Duo
Which journal entry is better practice?
Worked on the project. It went fine.12 May: Login form done. Fixed a crash by adding a check for empty input.
Matches
Week 3: Did some coding. Things went okay.
↓
The entry has no exact date and is vague. It does not say what was done, any decisions made or any problems found.
Applying
Meanings
Term
project journal
Meaning
A dated record of progress, decisions, problems, solutions and reasons for changes, written as development happens and kept as evidence for evaluation.
Practice
Date: 12/05/2025
Testing
Gaps
.append(entry)
Check Answer
Spots
1import datetime
2today = datetime.date.today

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Stag' badge — Forest Legend, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

Quick Questions

1. Which journal entry is better practice?
A. Worked on the project. It went fine.
B. 12 May: Login form done. Fixed a crash by adding a check for empty input. ✓
A good entry is dated and specific. It says what was done, what problem came up and how it was solved.
2. When should you write a project journal entry?
A. As development happens, so the details are fresh ✓
B. All at once the night before the project is due
A journal is written as work happens. Entries written later are often vague or inaccurate, which weakens them as evidence.
3. Why does each journal entry include a date?
A. It shows when things happened, so progress can be compared with the plan ✓
B. It makes the entry look longer and more professional
Dates let you build a timeline and compare actual progress with expected progress when you evaluate.
4. Which entry records a problem and its solution?
A. Bug: scores were not saving. Cause: file was never closed. Fix: used a with block. ✓
B. Scores were not saving, but I will think about it later.
A problem and solution entry names the problem, its cause and the fix. This helps in later evaluation and when similar bugs appear again.
5. A task took 5 days instead of 2 because the API changed. What should the journal show?
A. Nothing, because delays are not worth recording
B. The delay, the reason for it and any change made to the plan ✓
Reasons for changes are a key part of a journal. They explain why the plan was adjusted and support the evaluation.

Match the Pairs

2025-03-14: Finished login screen. Decided to use tkinter Entry for passwords. → A dated entry that records progress made and a decision taken, as it happens
Problem: crash on empty input. Solution: added an existence check before converting. → A problem and solution entry that shows how an issue was found and fixed
A journal entry should be written when the work happens, with a date so the order of events can be shown → 2025-04-02: Tested search feature with 5 testers. 2 found it slow.
A journal records the reason for a change to the plan, not just that the change happened → Change: moved testing back 2 days because the file reading code failed.
Week 3: Did some coding. Things went okay. → The entry has no exact date and is vague. It does not say what was done, any decisions made or any problems found.
Wrote the whole journal on the last day from memory. → The journal was not written as development happened, so details, problems and reasons for changes may be forgotten or wrong.

Key Term

project journal
A dated record of progress, decisions, problems, solutions and reasons for changes, written as development happens and kept as evidence for evaluation.

Fill in the Blanks

1. journal = [] entry = {"date": "2025-03-04"} journal.append(entry)
Hint: Type the list variable that stores all of the journal entries.
2. entry = {"date": "2025-03-04"} print(entry["date"])
Hint: Type the key name that records when the entry was written, matching the lookup on the next line.
3. problem = "Crash on empty input" fix = "Added an existence check" entry = {"problem": problem, "fix": fix}
Hint: Type the variable that holds how the problem was solved.
4. with open("journal.txt", "a") as f: f.write("2025-03-04: Fixed bug")
Hint: Type the file mode letter that adds new entries to the end without erasing earlier ones.
5. journal = ["day 1", "day 2", "day 3"] print("Entries:", len(journal))
Hint: Type the built-in function that counts how many items are in a list.

Spot the Error

Question 1
A import datetime
B today = datetime.date.today
C entry = f"{today}: Login"
D print(entry)
Line B — today is a function, so it needs brackets to run. Without them the variable holds the function itself, not the date. It should be datetime.date.today() so the journal entry has a real date.
Question 2
A journal = []
B entry = "2025-03-04: Bug fix
C journal.append(entry)
D print(journal)
Line B — The string is missing its closing quote, which causes a syntax error. The dated entry must end with " so it can be added to the journal.
Question 3
A problem = "Slow search"
B solution = "Use a dictionary"
C date = "2025-05-02"
D print(date, problem, soluton)
Line D — The variable name is misspelled as soluton, so Python raises a NameError. It should be solution, the variable that holds the fix recorded in the journal.
Question 4
A with open("j.txt", "a") as f:
B f.write("2025-06-01\n")
C f.write("Bug: crash\n")
D f.write("Fix: add try\n"
Line D — The closing bracket of f.write() is missing, which causes a syntax error. The line should end with ) so the fix is saved in the journal file.
Question 5
A entry = {}
B entry["date"] = "2025-07-10"
C entry["problem"] == "Slow load"
D entry["fix"] = "Added index"
E print(entry)
Line C — == compares values instead of storing one. The key "problem" does not exist yet, so this causes a KeyError. Use a single = to record the problem in the entry.

Student with a class code? Join your class →