Monash University · FACULTY OF INFORMATION TECHNOLOGY

FIT9136 Chap.3 Functions, Scope and Dictionaries

- one subject, every graph, every model, every mark
5 Chapters3-page Bible
Our own words - no uploaded lecturer files
Updated for this semester
Chapter 3 of 8 · FIT9136

Functions, Scope and Dictionaries

Define function contract

The course material gives this chapter a concrete anchor: Week 4 combines function design, namespaces, scoping and dictionaries as a modularity step. That function contract anchor controls how scope is explained and how dictionary is tested in changed practice.

Functions, Scope and Dictionaries turns function contract, scope and dictionary into executable reasoning.

The chapter's practical target is to decompose a task into functions with local state and dictionary-based lookup, so every explanation should connect syntax to program state, control flow and observable output.

Treat function contract as a precise program object, not a loose label. Identify the value or responsibility of function contract before execution, then trace what can read it, change it or depend on it.

This makes state changes visible before they become debugging guesses.

Use scope to explain the program's next move. Work through one representative scope input by hand and name the branch, iteration or call that follows. If the scope trace cannot be stated, the code may run by accident rather than by understood design.

Bring in dictionary as the test of structure.

Compare normal, boundary and invalid inputs for dictionary; state the expected behaviour first; then use the mismatch between expectation and result to localise the defect.

For the application — decompose a task into functions with local state and dictionary-based lookup — write the smallest complete example that exposes the rule.

Explain why the dictionary result works, what would break it and how the program should signal or recover from that failure.

Trace scope

Before running an example involving function contract, make a trace table with the important state before and after each operation. Include the value associated with function contract, the control decision governed by scope and the output or object affected by dictionary.

The function contract table turns an unexplained result into a sequence that can be tested one transition at a time.

Test three inputs: an ordinary case, a boundary case and an invalid case. State the expected dictionary result for each before execution, then compare it with what the program actually does.

A useful test of scope isolates one rule; changing several conditions at once cannot reveal which condition caused the failure.

Practise explaining the solution without reading the code. For fit9136, name the data representation, the control flow, the responsibility of each function or class and the reason the chosen design supports decompose a task into functions with local state and dictionary-based lookup.

This dictionary rehearsal matters when a written test or interview asks why the program works rather than whether it produces one correct output.

A complete response should make the task visible before the detail: identify what must be decided, define the relevant terms, connect the evidence to scope, and use dictionary to test the result.

The final sentence about dictionary should answer the question actually asked rather than merely repeat the topic.

The controlling limit is specific: A function that depends on undeclared global state is difficult to test and reuse.

Keep that dictionary limit beside the worked example, because it separates a careful fit9136 answer from one that sounds confident but claims more than the task or evidence supports.

For revision, retrieve function contract, scope and dictionary without notes, explain their relationship aloud, then complete a changed version of the application: decompose a task into functions with local state and dictionary-based lookup.

Record the first failed scope reasoning move and repair it before attempting another case.

In this chapter

What this chapter covers

  • 01

    function contract

  • 02

    scope

  • 03

    dictionary

  • 04

    Applying function contract

  • 05

    Limits of scope and dictionary

Worked example · free

Count words with a dictionary

Q [4 marks]. AskSia-authored practice. Design a function that counts case-insensitive words in a list and returns a dictionary.
  • 1Define the input and returned mapping.
  • 1Normalise each word inside the loop.
  • 1Increment an existing key or initialise it to one.
  • 1Return the local dictionary and test repeated and empty input.
The function builds a local mapping such as {'red': 2, 'blue': 1}; no global counter is required and empty input returns an empty dictionary.
Sia tip — A dictionary update becomes easy once normalisation and missing-key behaviour are decided.
Glossary

Key terms

function contract
Statement of accepted inputs, returned result, side effects and exceptional conditions. This chapter uses the concept when students decompose a task into functions with local state and dictionary-based lookup. Use this definition when the task is to decompose a task into functions with local state and dictionary-based lookup.
scope
Region in which a name binding is visible and can be resolved. It helps explain the reasoning required to decompose a task into functions with local state and dictionary-based lookup. Use this definition when the task is to decompose a task into functions with local state and dictionary-based lookup.
dictionary
Mutable mapping from unique hashable keys to values. Its limit matters because a function that depends on undeclared global state is difficult to test and reuse. Use this definition when the task is to decompose a task into functions with local state and dictionary-based lookup.
FAQ

Functions, Scope and Dictionaries FAQ

What is the main task in Functions, Scope and Dictionaries?

Decompose a task into functions with local state and dictionary-based lookup.

How do function contract and scope work together?

Use function contract to establish the object or condition, then use scope to explain how it changes the outcome being analysed.

What must a fit9136 answer qualify here?

A function that depends on undeclared global state is difficult to test and reuse.

How should I revise Functions, Scope and Dictionaries?

Retrieve function contract, scope and dictionary, apply them to a changed case, and correct the first point where the evidence no longer supports the conclusion.

Study strategy

Assessment move

Reconstruct the relationship among function contract, scope and dictionary; complete the chapter application without notes; then test the result against this limit: A function that depends on undeclared global state is difficult to test and reuse.

Working through Functions, Scope and Dictionaries in FIT9136? Sia is AskSia’s AI Information Technology tutor — ask any FIT9136 Functions, Scope and Dictionaries question and get a clear, step-by-step explanation grounded in how FIT9136 is taught and assessed. Read this chapter free, then take your hardest questions to Sia.

A+Everything unlocked
Unlocks this Bible + all 69 of your Monash University subjects - and 1,000+ Bibles across every Australian university.
Sia - your FIT9136 tutor, unlimited, worked the way the exam marks it
The full 3-page Bible + practice bank with worked solutions
Chrome extension - sync your LMS so Sia knows your deadlines
Bilingual EN / Chinese on every Bible and every Sia answer
$0.99 Trial
30-day money-back · cancel in one tap · how it works
FIT9136 · Introduction to Python Programming - independent study guide on the AskSia Library. More Monash University subjects · Microeconomics across all universities
Unlock the full FIT9136 Bible + 69 Monash University subjects
$0.99 Trial