1/6
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Being a Computer Scientist isn’t just about Programming
‘Computer science is the study of computers and algorithmic processes, including their principles, their hardware and software designs, their applications, and their impact on society’
Involves a whole range of other skills - requirements engineering, design, ethical thinking, user research etc
Even if you don’t end up using all of these yourself, you’ll likely be working with people who do and need to be able to communicate with them
Problem solving is crucial, and this doesn’t just mean solving technical problems
Types of Problem Solving
Seeing the bigger picture
Identifying potential risks and unintended consequences
Understanding a current problem
Identifying requirements
Designing a solution that meets requirements
Negotiating trade-offs
A Computer Scientist has Legal and Ethical Obligations
Legal requirements govern behaviours
Ethics - moral principles. Ethics codes provide rules of conduct recognised by a given group, e.g. a professional body
Best practice - not just sticking to legal requirements as a bare minimum, but trying to do what is ethically right
Codes of Conduct/Codes of Ethics
BCS code of conduct
Professional competence and integrity - e.g., only completing work that is within your competency, commitment to continued professional development and learning
Public interest - e.g., ‘have due regard for public health, privacy, security and wellbeing of others and the environment’, not discriminating against others, ‘promote equal access to the benefit of IT’
Duty to the profession - e.g., upholding the profession’s reputation
ACM code of ethics
Codes of conduct suggest how members should behave, in relation to their employer and wider society
Legal frameworks
GDPR - EU’s data privacy law (2018): grants rights to ‘data subjects’ and dictates how personal data should be stored and used
Equality Act (2010): failure to design for inclusiveness and accessibility may constitute unfair discrimination
Copyright, Designs and Patents Act (1988): software copyright (covers licences etc), licences of use, etc
Consequences of breaking the law when it comes to personal data storage and usage
Major fines - 4% of turnover
British Airways - £183 million (2019)
Marriott Hotels - £99 million (2019)
Facebook (Cambridge analytical Scandal) - £500,000 (2018)
Reputational damage
Harm to end-users
Importance of Managing Risk
Anticipating and minimising unintended consequences
Many possible unintended consequences to be aware of:
Potential misuse, malevolent actors
Negative effects on wellbeing
Inadequate protection of privacy and security
Anticipating these risks and thinking about how to minimise them is a key part of what it means to be a problem-solver
Building dependable systems
Very important property for most systems
‘Dependability is defined as that property of a computer system such that reliance can justifiably be placed on the service it delivers’
There are ways of enhancing dependability (through, e.g., removing faults, being fault-tolerant, etc)
Building error-tolerant systems
Design systems that minimise potential for human error, detect and correct human error, and tolerate human error
Norman: design for errors, assume errors will occur and plan for error recovery, e.g. make it easy to reverse actions
Significance of SDLC and requirements engineering
Good planning and analysis stages should enable consideration of potential risk
Incomplete requirements are a key cause of project failure, so identifying the right requirements is crucial
Importance of Considering End-Users
Vital to consider end-users throughout the SDLC
Why?
Computing - used by many people (no longer just technical professionals)
People have diverse needs, desires, capabilities and limitations
System should be accessible and have good usability
Accessibility:
‘Digital accessibility means disregarding and building your digital offerings so that, regardless of a person's mental/physical ability, they can still interact with your website, app, or other digital product in a meaningful and equal way’
Accessible design is often good for everyone - concept of universal design
Usability:
Learnability - the system should be easy to learn
Efficiency - the system should be efficient to use
Memorability - the system should be easy to remember
Errors - the system should have a low error rate
Satisfaction - the system should be satisfying to use
However there are many obstacles:
Users may not know what they want, or struggle to articulate it
Users may not be aware of the technical possibilities and constraints
Tensions between different stakeholder and user needs