0% found this document useful (0 votes)
78 views46 pages

Fit1056 Week 01 Workshop

Uploaded by

zacoleary
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views46 pages

Fit1056 Week 01 Workshop

Uploaded by

zacoleary
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

FIT1056: Introduction to Software

Engineering
Week 1 - Workshop 1 - Unit Introduction + Python Basics

Dr. Chetan Arora


Dr. Charith Jayasekara
Dr. Sanoop Mallissery
Faculty of Information Technology
© 2025 Monash University
Unit Teaching Team CLAYTON TEAM

Dr. Charith Jayasekara Dr. Chetan Arora Gayani Siriwardana


(CE, Lecturer) (Subject Architect, Lecturer) Admin TA

Rahi Wasim Khondker Sebastian Jose Tuhin Chakraborty


TA TA TA
Unit Teaching Team MALAYSIA TEAM

Link Link

Dr. Sanoop Mallissery Ms. Moganavatsala Jeevanantham


(UC, Lecturer) (Scholarly Teaching Fellow)
Today’s Objectives
• Unit Learning Outcomes • Introduction to Software Engineering
• Cheating and Plagiarism Concerns • Software Process
• Assessment Breakdown • Introduction to Python Programming Language
• Building Your Team • Discussion Activities
• Teaching & Learning in the Unit • Use-Case Discussion
• Teaching Plan • References
Unit Learning Outcomes

Describe and explain basic software engineering concepts, including


methodologies, processes and topical issues for software engineering.

Apply human-centric software engineering best practices to build a


user-centric system using an industry-standard programming language.

Design, develop and evaluate a software engineering project by working


collaboratively in a diverse team.

Explore and discuss the role of software engineering in solving real-world


problems and ethical considerations.
Cheating and Plagiarism
• Plagiarism = unacknowledged use of someone else’s work
• Cheating = plagiarism + intent of unfair advantage
• Teamwork encouraged for study
• Individual assessments must however be your own entirely (we run computer checks)
• See cheating policy of Faculty of IT
• Must do: Academic Integrity Awareness Training Tutorial Activity (available on Moodle).

It is going to be recorded in your study record, so


please do not do it.
ChatGPT Uses
• Students can use ChatGPT to study about the concepts that you do not understand.
However, ChatGPT may not provide the right answer.

• Students cannot use ChatGPT for any of the assignments!!!

Cautions!

• The plagiarism records will be kept within university system up to 15 years. This record
will be provided to relevant employer if employer request for background check.
Assessment Breakdown

● Python concepts (Weekly tasks) - Individual: 20% (5 submissions of 4% each)


● Milestone 1 (Team + Individual): 30% [End of Week 7 with draft in Week 5]
● Milestone 2 (Team + Individual): 50% [End of Week 12 with draft in Week 10 +
Final Presentation/Interview - Week 14]
Start Thinking about your Project Team!

Team-Size Policy at a Glance


Standard size: 4 members per team -> our baseline for balanced
workload and collaboration.

One exception: If the total class head-count leaves an odd


remainder, exactly one team may expand to 5 members.

Minimum threshold: A team that winds up with only 3 members


proceeds as-is; no further reshuffling or late additions.

Policy:
All project groups must be formed within the same Workshop Cohort. Students
cannot be moved or reshuffled into different Workshop Sessions.
Start Thinking about your Team!

Why 4 Is the Sweet Spot?


Promotes equal participation (2 sub-pairs or roles per task).

Easier scheduling 🡪 fewer calendars to align.

Clearer accountability: responsibilities split four ways.

Policy:
All project groups must be formed within the same Workshop Cohort. Students
cannot be moved or reshuffled into different Workshop Sessions.
Start Thinking about your Team!

Handling the 5-Member Team


Applies once and only if needed.

Ensure roles are still clearly allocated (e.g., split a role in two or add a
reviewer).

Extra member ≠ free rider: workload scales up slightly or introduces a


new supporting function (documentation, QA, etc.).

Policy:
All project groups must be formed within the same Workshop Cohort. Students
cannot be moved or reshuffled into different Workshop Sessions.
Start Thinking about your Team!

Working as a 3-Member Team


No penalties or extra credit 🡪 same deliverables, tighter coordination.

Encourage lean workflows: automation, shared templates, staggered


milestones.

Flag resource constraints early to the instructor if blockers arise.

Policy:
All project groups must be formed within the same Workshop Cohort. Students
cannot be moved or reshuffled into different Workshop Sessions.
Start Thinking about your Team!
Count total students → divide by 4 → note remainder.

Quick Checklist
Form as many 4-member teams as possible.

If remainder = 1, roll one team up to 5.

If remainder = 2 or 3, create a single 3-member team.

Publish final roster; no swaps after kickoff.

Make sure your reports are NOT an AI generated

Policy:
All project groups must be formed within the same Workshop Cohort. Students
cannot be moved or reshuffled into different Workshop Sessions.
Responsibilities of
Team Members

✅ Own your role -- Completely ✅ 🚫 “I don’t code” is not an excuse 🚫


You are part of a team, not a passenger. You’re in a computing project. Learn. Try. Contribute.
Each member must carry their share of the load. Support your team technically, even if you’re still learning.

🚫 “I only code” doesn’t fly either 🚫 ✅ An individual contribution report ✅


Documentation, testing, communication -- it’s all part Required from each member -- this is separate from the group
of the project. Build skills beyond your comfort zone. submission report.

🚫 Fair division ≠ doing only what you like. 🚫


Collaborate, distribute tasks smartly, and make sure no one is left carrying someone else’s weight.

Team projects mirror real-world software development. Your habits here shape your future workplace readiness.
Teaching & Learning in the Unit

● Role of Workshops
● Focus on active learning – similar activities will be required for assessment
● Role of Applied Sessions
● Note: you need to demonstrate your work in the session
● Team work for assessment
● Assignment deadlines and late submissions
● 5% penalty for each day and any submission later than 7 will not be considered for
marking.
Teaching Plan
Week(s) Plan
Week 1-3 Python Basics (Applied + Workshop)
Week 4-5 Software Processes + Requirements Engineering
Week 6-7 Software Architecture + Design + Object-Oriented Programming Concepts
Week 8 – 9 Software Usability + UI Design (StreamLit)
Week 10 – 11 Software Quality Assurance + Exception Handling
Week 12 SE Careers + Generative AI in SE
Week 13 SWOTVAC
Week 14 Interviews + Presentation
How to use Ed Forum?

Moodle > Forums >


Ed Discussion
How to use PollEV?

https://pollev.com
● Join PollEV using the QR code on the screen
(When available).

● Follow the prompts. Please enter your name


when joining.

● You can use your mobile devices to complete the


activities.
Introduction to Software Engineering
Activity Time!!!

PollEV: Engage and Interact!


Software Engineering
What is software engineering?

Definitions

Software: computer programs, procedures and possibly associated documentation and data pertaining to the
operation of a computer system

(IEEE 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering, 2.1)

Software Engineering: application of a systematic, disciplined, quantifiable approach to the development,


operation, and maintenance of software; that is, the application of engineering to software

(ISO/IEC TR 19759:2016 Software Engineering -- Guide to the Software Engineering Body of Knowledge (SWEBOK))
(ISO/IEC/IEEE 12207:2017 Systems & software engineering--Software life cycle processes, 3.1.52)

https://www.pxfuel.com/
Attributes of a Good Software
Maintainability: Software should be written in such a way so that it can evolve
to meet the changing needs of the client.

Dependability & Security. Should not cause physical or economic damage in


the event of system failure. Malicious users should not be able to access or
damage the system.

Efficiency. Should not waste system resources, such as memory and processor
cycles – responsiveness, processing time, memory utilization etc.

Acceptability. Must be acceptable to the type of users for which it is designed.


Must be understandable, usable and compatible with other systems they use.

Photo by Markus Spiske from Pexels


SOFTWARE
ENGINEERING
HISTORY

https://www.pinterest.com/pin/331929435020539999/
Software Engineering
History

The term “software engineering”

• The notion of SE was proposed in 1968


at a NATO conference (Oct 7-11 in
Garmisch, Germany) to discuss software
crisis

• Margaret Hamilton, computer scientist


and systems engineer for the NASA
Apollo missions coined the term
“software engineering”

https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apollo-code-0817
Software Engineering
History: Major Software Failures

Mariner 1 Failure

• First Mariner mission. It was intended to perform a Venus flyby for sending scientific data.

• The spacecraft was destroyed by the Range Safety Officer 293 s.

• Faulty application of the guidance commands made steering impossible.

• The destruct command was sent 6 seconds before separation, after which the launch vehicle could
not have been destroyed.

Loss Estimated: USD 18.5M

https://www.wired.com/2009/07/dayintech-0722/
https://nssdc.gsfc.nasa.gov/nmc/spacecraft/display.action?id=MARIN1
Intended Program Typed Program

https://www.wired.com/2009/07/dayintech-0722/
https://nssdc.gsfc.nasa.gov/nmc/spacecraft/display.action?id=MARIN1
Software Engineering
History: Major Software Failures

Ariane 5 Launch Failure – 4 June 1996

What Happened?

• Maiden flight of Ariane 5 ended in disaster Root Cause: Software Error


Conversion error in Ada code:
• ~37 seconds after launch, rocket veered off course

• Launcher broke up and exploded, destroying


four onboard satellites

Loss Estimated: USD 500m

https://www.esa.int/ESA_Multimedia/Images/2009/09/Explosion_of_first_Ariane_5_flight_June_4_1996
Software Engineering
History: Major Software Failures

Queensland Health Payroll System Failure

• Project Overview
o Goal: Replace outdated payroll system for
What Went Wrong?
Queensland Health
o Contractor: IBM
• System launched prematurely, despite unresolved
o Timeline: 2008–2010
issues
• Result: ~35,000 payroll errors
• Scope Issue: • Employees underpaid, overpaid, or not paid at all
• Poorly defined business requirements
• IBM submitted multiple change
requests due to evolving specs
Loss Estimated: AUD 1.2B

Photo by Tima Miroshnichenko from Pexels:


https://www.pexels.com/photo/a-laptop-near-the-dollars-and-papers-on-a-wooden-table-6693655/
Software Engineering
History: Major Software Failures

Global IT Outage – Triggered by Faulty Update July 2024

• What Happened? Global Impact Financial and Tech. Fallout

o A CrowdStrike software update caused • Flights grounded (Delta Airlines: 600+ • ~8.5 million Microsoft devices went
system crashes worldwide cancellations) down

o Affected Windows systems using Microsoft • Hospitals, banks, and • US$13.4B


Defender broadcasters experienced outages wiped from CrowdStrike’s market
value
o Systems failed to boot, enter blue screens • Critical services offline: healthcare,
(BSOD), or restart loops aviation, banking, media • Business continuity severely
disrupted across multiple sectors

https://uproxx.com/viral/crowdstrike-crash-airports-jokes-terminator-skynet/
Activity Time!!!

Software failures in
your experiences.
Software Process
A structured set of activities required to develop a software system.

Break tasks into smaller step.. Many different types of software processes, but all processes involve
the following activities:

1. Requirements and Analysis (Specification) – defining what the system should do

2. Design and Implementation – defining how the system should do it, organization of the system
and implementing the system

3. System verification and validation – checking that it does what the customers want

4. Evolution (Maintenance) – changing the system in response to changing needs


Photo by Chevanon
Photography from Pexels
Let’s start learning Python!
The Python programming language
What is programming?

➢ A set of instructions designed for execution by a computer


➢ Typically solving problem(s) or automating task(s)

• Python is one of several languages in which programming


instructions are written

➢ Created in 1991 by Guido van Rossum


➢ Named after Guido’s favourite comedy series Monty
Python’s Flying Circus
History of Programming Languages

https://javaconceptoftheday.com/history-of-programming-languages/
Compiled and interpreted languages
• An interpreter reads a high-level program and executes it.

• A compiler reads the program and translates it complete before the program states running.

• Python uses both processes (first compiled into a lower-level language, and then interpreted),
but because of the way programmers interact with it, it is usually considered an interpreted
language.
Execution of Python programs
Steps involved when you run your Python code

1. The compiler receives the source code.

2. The compiler checks the syntax of each line in the


source code.

3. If the compiler encounters an error, it halts the


translation process with an error message (Syntax
error).

4. Else if the instruction is well formatted, then it


translates the source code to Bytecode.
Execution of Python programs
Steps involved when you run your Python code (continued)

5. Bytecode is sent to the Python Virtual Machine


(PVM)

6. Bytecode along with the inputs and Library modules


is given as the input to the PVM.

7. PVM executes the Bytecode and if any error occurs,


it displays an error message (Runtime error).

8. Otherwise, if there is no error in execution, it results


in the output.
Discussion Activity
10 Minutes (5 + 5)

• Discuss the step-wise Interpretation Process for


print(“Hello World”)

https://www.programiz.com/python-programming/online-co
mpiler/
Values
A value is one of the fundamental things - like a word or a number - that a program manipulates.

These are classified into different classes (or data types).


Data types
• If you are not sure what data type a value falls into, Python has a function called type which can
tell you. For example,
Data types
Python has these common native data types:

This is not an exhaustive list; more will be covered in subsequent sessions.


Variables
• A variable is a name that refers to a value.

• Assignment statements create new variables and also give them values to refer to.

• a = 10

• Here, we assign a to the value 10 (or “a is assigned the value 10”).


➢ Not “a equals 10”

• The assignment token, = , should not be confused with equality (which uses the == token)
Your New Project
CareLog
You will develop CareLog – a lightweight, Python-based
application used in hospitals / care centers to log both
clinical and personal notes about patients.

👥 Who is it for?

● Nurses, doctors, and allied health staff writing daily logs


● Patients, especially those from culturally and linguistically diverse backgrounds

💡 What makes it unique?

● Goes beyond clinical data: captures human stories, emotions, and cultural needs
● Encourages empathetic care through reflective logging
● Designed with ethics, privacy, and dignity in mind
CareLog Features
🧠 These are some ideas to get you started. Feel free to adapt or add features as your project evolves over the
semester.

● 📝 Daily Log Entry ● 🔒 Access Control


Record day-to-day observations, activities, Support different types of users (e.g., staff vs.
or events for each patient. patient) with appropriate access.

● 😊 Mood and Pain Tracking ● 🌍 Cultural Preferences


Capture how a patient is feeling and their Include notes on cultural needs, language,
pain level using a simple scale. religious practices, or food preferences.

● 💬 Personal Reflections ● 📂 Export or Share Logs


Allow space for emotional notes, personal Provide a way to safely share or export logs
stories, or thoughts shared by patients. when needed, with appropriate consent.

● 🔍 View History ● 🤝 Consent and Respectful Design


Access previous entries to get a full picture Prompt users to be mindful when logging
of a patient’s experience over time. sensitive or personal information.
Discussion Activity
15 Minutes (8 + 7)

CareLog - Case Study


- Discuss the datatypes for different concepts in CareLog
References
[1] I. Sommerville, Software Engineering, 10th ed. Boston, MA, USA:
Pearson, 2016, ch. 1.

[2] S. R. Schach, Object-Oriented and Classical Software Engineering, 1st


ed. New York, NY, USA: McGraw-Hill, 1993, ch. 1.

You might also like