Preliminary Software Engineering
Unit 1 - Programming Fundamentals
Unit 1 - Programming Fundamentals
  • 1 - Programming Fundamentals
    • Programming Fundamentals Content
  • 2 - Python
    • Expected Python Knowledge
    • GitHub
    • Learning Python
    • Data Structures and File Management
      • Data Structures
        • Lists
        • Arrays
          • Single and Multi-Dimensional Arrays
        • Lists vs Arrays
          • Activities
        • Tuples
        • Sets
        • Dictionaries
          • Activities
      • File Handling
        • Loops, Lists, Dictionaries
        • Activities
  • 3 - Theory Content
    • Theory Content Explained
      • NESA Directional Verbs
      • Responding to Directional Verbs
  • 4 - Software Development and Management
    • Approaches to Software Development
      • Waterfall Model
      • Agile Model
      • Summary: Waterfall vs Agile
      • Activities
    • Software Development Steps
      • Sample Exam Question
      • Requirements Definition
        • Understanding the Need
        • Key Questions to Ask
        • Examples
        • Activities
        • Sample Exam Question
      • Determining Specifications
        • Functional Specifications
        • Non-Functional Specifications
        • Activities
      • Design
        • Top-Down Design Approach
        • Bottom-Up Design Approach
      • Development
        • Optimising Code
      • Integration
        • Example: Payment Program
        • Activity
        • Application Programming Interface (API)
          • Example: OpenWeather API
          • Example: WeatherAPI
          • Activity: Prepare Spells
      • Testing and Debugging
        • Test Data
          • Activities
        • Testing the System
          • Activities
        • Debugging
          • Types of Errors
            • Activities
          • Python Debugger
            • Activities
          • VS Code Debugger
            • Activities
      • Installation
        • Activities
        • Sample Exam Question
      • Maintenance
  • Charts and Algorithms
    • Example: IPO Charts and Pseudocode
      • Activities
    • Algorithms, Flowcharts, Pseudocode
      • Pseudocode Activities
      • Flowchart Activities
      • Sample Exam Questions
    • Structure Charts
      • Activities
      • Sample Exam Questions
    • Data Flow Diagrams
      • Activities
    • Data Dictionaries
      • Activities
    • Decision Trees
      • Activities
      • Sample Exam Questions
    • Gantt Chart
    • Class Diagrams
      • Sample Exam Question
    • Storyboards
      • Sample Exam Question
  • Testing and Debugging
    • Test Data
      • Activities
    • Testing the System
      • Activities
    • Debugging
      • Types of Errors
        • Activities
      • Python Debugger
        • Activities
      • VS Code Debugger
        • Activities
  • Computational Thinking
    • Decomposition
    • Abstraction
    • Activities
  • Version Control
    • Git
    • GitHub
    • Activities
  • Number Systems
    • Binary Systems
    • Hexadecimal Numbers
    • Using Two's Complement
    • Activities
  • 5 - Assessment Task 1
    • Data Science Project
      • Before we Start
        • Setting up GitHub Repository
        • Setting Up Markdown Documentation
      • Examples of API Usage
        • Starter Code: NASA Scenario
        • Starter Code: Spell Book
        • Starter: Pokédex Explorer
        • Starter Code: Weather App
        • Example: OpenWeather API
        • Example: WeatherAPI
        • Example: Prepare Spells
    • Task Guide
      • Requirements Definition
      • Determining Specifications
        • Use Cases
      • Design
        • Gantt Chart
        • Structure Chart
        • Algorithms
        • Data Dictionary
      • Development
        • Comments vs DocStrings
        • UI - main.py
        • Create Python Module
          • Example: NASA Module
          • Example: WeatherFetch Module
          • Example: SpellBook Module
      • Integration
        • Example: Pokedex
      • Testing and Debugging
        • Commit Changes
      • Installation
      • Maintenance
    • Submitting Your Task
Powered by GitBook
On this page
  • Create UI in main.py
  • Create Module for Functions in Separate .py file
  • Test Your Functions
  • Commit to GitHub
  • Add Code Blocks to PROJECT_DEVELOPMENT.md
  • Computational Thinking
  1. 5 - Assessment Task 1
  2. Task Guide

Development

PreviousData DictionaryNextComments vs DocStrings

Last updated 3 months ago

It is now time to start writing your code. You will be provided of examples to get you started.

You are welcome to use and editing the examples - there are no disadvantages in doing so. It depends on what you are wanting to do.

This is the process you are recommended to follow:

1

Create UI in main.py

Inside a program called main.py create your User Interface. Define and run the main() function. For now, just focus on getting the UI working and test each user choice with simple print statements to make sure the UI functions as intended.

2

Create Module for Functions in Separate .py file

Create a module (separate .py file) for functions and API call (e.g. pokedex.py) and keep main.py and this .py file in the same folder.

3

Test Your Functions

Make sure your functions work! Test them inside the separate .py file, one at a time.

4

Commit to GitHub

Make sure to make regular commits to GitHub!

Check out the ' section for what you may write in your commits.

5

Add Code Blocks to PROJECT_DEVELOPMENT.md

Once you have finished your above files and they work, place them in code blocks under a heading of Development in your PROJECT_DEVELOPMENT.md file.


Code Comments

Remember to add comments to your code as you go - it is part of the assessment criteria!

Also consider using Doc Strings to document your functions in more detail (they can be multi-line which is handy!).

For more information, .


Computational Thinking

In the above, we are engaging in both decomposition and abstraction.

Decomposition

Decomposition is about breaking a complex system into smaller parts.

By separating the UI from the backend logic (e.g., functions handling Pokémon data), you're decomposing the program into modules.

Abstraction

Abstraction is about hiding complex details and exposing only what is necessary.

The UI abstracts away the implementation details, allowing users to interact without seeing the inner workings.

Testing and Debugging'
click this link to Comments vs DocStrings