Chapter 10

Chapter 10 Flashcards: Ethics and Ownership

Term: Ethics Definition: The moral principles that guide a person's or group's behaviour. In the context of computer science, it refers to the responsible and morally sound practices in the development and use of technology. Example: Choosing not to write code that could be used to harm others, even if it's legal to do so.

Term: Ownership Definition: Legal right to possess, use, and control something, including intellectual property like software. Example: A software developer owning the copyright to the code they have written.

Term: Copyright Definition: Legal protection given to the creators of original works, including literary, dramatic, musical, and certain other intellectual works. Example: Preventing others from copying or distributing a copyrighted piece of software without permission.

Term: Plagiarism Definition: Using someone else's work or ideas without proper attribution, presenting them as your own. Example: Copying code from a website and using it in a project without giving credit to the original author.

Term: Open Source Software Definition: Software distributed with a license that allows users to access, modify, and distribute the source code. Example: The Linux operating system, where users can freely use, modify, and distribute the source code.

Term: Proprietary Software Definition: Software owned by an individual or company, where the source code is not freely available and usage is restricted by licensing agreements. Example: Microsoft Windows, where users need to purchase a license to use the software.

Term: Freeware Definition: Software that is available for use free of charge, but the source code may not be accessible or modifiable. Example: A free image editing program offered for download.

Term: Shareware Definition: Software initially available for free trial, but requiring payment for continued use after a certain period. Example: A trial version of a video game that restricts access to some features until purchased.

Term: Software License Definition: A legal document that grants permission to use a piece of software, outlining the terms and conditions of use. Example: An End User License Agreement (EULA) that a user must agree to before installing a software program.

Term: Unethical Behaviour in Software Development Definition: Actions taken by software developers that violate ethical principles or standards of professional conduct. Example: Looking at someone else's code to get ideas for your own program without their permission.

Term: ACM/IEEE Software Engineering Code of Ethics Definition: A set of principles and guidelines for ethical conduct in the software engineering profession, developed by the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers (IEEE). Example: Principles like "Software engineers shall act consistently with the public interest," and "Software engineers shall maintain integrity and independence in their professional judgment."The code emphasizes the importance of accountability, ensuring that software engineers are responsible for their actions and the impact of their software on society.

Chapter 10: Ethics and Ownership Notes

  • Ethics: There are multiple definitions of "ethics", but this chapter focuses on the rules of conduct within specific professions or areas of human life. However, these rules should still align with the moral principles that guide individuals.

  • Moral Principles: Some key considerations when thinking about moral principles include:

    • Right and wrong actions.

    • Benefits or harm resulting from actions.

    • Fair treatment of others.

    • Honesty.

    • Taking responsibility for actions.

10.02 Codes of Conduct

  • Professional organisations: Groups like the ACM (Association for Computing Machinery) and IEEE-CS (Institute of Electrical and Electronics Engineers Computer Society) establish codes of conduct for their members.

  • Purpose of Codes of Conduct:

    • To establish guidelines for ethical behaviour.

    • To define the responsibilities of professionals in the field.

    • To provide a framework for resolving ethical dilemmas.

  • Key Similarities in Codes:

    • Prioritising the public good or interest.

    • Establishing fundamental principles.

    • Expecting professionals to use their own judgement.

    • Encouraging professionals to seek advice when unsure.

10.03 Applying a Code of Ethics

  • Real-Life Scenarios: Codes of ethics are applied to real-life situations to guide ethical decision-making. This often involves considering multiple clauses within the code.

  • Example Scenario: If a software developer discovers untested features in a nearly-finished product, several ethical concerns might arise.

  • Potential Issues:

    • Public interest: While not immediately relevant, it could become a factor if the product posed a risk to public safety.

    • Client interests: The client could receive a sub-standard product, potentially harming the reputation of the developer's employer.

    • Product quality: Delivering a poorly tested product is a primary concern as it might not function as intended.

  • Ethical Actions: In this scenario, the developer would need to consider their ethical obligations and the potential consequences of their actions. Possible scenarios include:

    • Ethical action leads to a fully tested product. This is the ideal outcome.

    • Ethical action has no effect. Further steps might be needed.

    • Unethical action results in a sub-standard product. This could have negative repercussions for the client and the developer's employer.

10.04 Ownership and Copyright

  • Copyright: A formal recognition of ownership for original published works. The creator (individual or organisation) holds the copyright.

  • Exceptions: Copyright cannot be claimed for ideas or for pre-existing published work.

  • Copyright Laws:

    • Vary by country, but there's an international agreement to prevent circumvention.

    • Typically require registration to record the creation date.

    • Define a time period for copyright protection.

    • Protect the rights of copyright holders, including the right to control usage.

  • Copyright Statement Examples: Copyright statements can outline different levels of usage control, such as:

    • All rights reserved - restricts any use without permission.

    • Non-commercial use permitted - allows for limited use without permission.

    • Creative Commons licenses - offer various levels of sharing and adaptation permissions.

10.05 Open Source

  • Open Source Software: Individuals can use, copy, study, change and distribute the software.

  • Open Source Licenses: Control the use of Open Source software and often require acknowledgement of the original developer.

10.06 Artificial Intelligence (AI)

  • AI: Defined as using computers or computer-controlled devices to perform tasks typically associated with human intelligence.

  • AI and Ethics: The development and use of AI raise ethical concerns, such as:

    • Bias: AI systems can perpetuate and amplify existing biases, leading to unfair or discriminatory outcomes.

    • Privacy: AI systems often collect and process large amounts of personal data, raising privacy concerns.

    • Job displacement: AI automation can lead to job displacement, requiring societal adjustments and support for affected workers.

    • Responsibility: Determining accountability for decisions made by AI systems, especially in critical applications like healthcare or autonomous vehicles.

Key Points from Examples

  • Ethical Behaviour: Tom's action in reporting bugs needing rectification is considered ethical behaviour.

  • Unethical Behaviour: Amit's action in copying and releasing confidential information, despite signing a confidentiality agreement, is considered unethical behaviour.

  • Documentation in Codes of Conduct: The ACM/IEEE Software Engineering Code of Ethics frequently mentions documentation, emphasizing its importance for ethical software development. Documentation helps ensure transparency, accountability, and maintainability.

These notes offer a comprehensive overview of Chapter 10, covering key concepts in

Chapter 10 Flashcards: Ethics and Ownership in Databases

Term: Data Security Definition: Protecting data from unauthorised access and ensuring confidentiality. Example: A bank implementing strict access controls to its customer database, ensuring only authorised personnel can view or modify sensitive financial information.

Term: Data Integrity Definition: Ensuring that data is accurate, consistent, and reliable. This involves protecting data from accidental or deliberate modifications that might compromise its validity. Example: A school using data validation techniques during data entry to prevent incorrect grades being recorded in its student database.

Term: User Access Rights Definition: Different levels of access privileges granted to users based on their roles and responsibilities. This ensures that only authorised individuals can perform specific actions on a database. Example: A company database administrator granting read-only access to certain employees, allowing them to view data but not make any changes.

Term: Data Dictionary Definition: A central repository containing detailed information about the database design, structure, and data elements. Example: A data dictionary for a hospital database might include descriptions of each table, field, data types, and any constraints on the data.

Term: Database Normalisation Definition: A process of organising data in a database to reduce redundancy and improve data integrity. This involves breaking down large tables into smaller, well-structured tables. Example: Normalising a customer database to separate customer information from order details, preventing data duplication and potential inconsistencies.

Term: Foreign Key Definition: A field in one table that refers to the primary key in another table. This creates a relationship between the two tables and helps maintain data integrity. Example: In a database with separate tables for customers and orders, the "CustomerID" field in the "Orders" table would be a foreign key referencing the "CustomerID" primary key in the "Customers" table.

Term: Primary Key Definition: A field that uniquely identifies each record in a table. This is essential for accessing and manipulating data efficiently. Example: In a table storing student data, the "StudentID" field could be used as a primary key, as each student would have a unique ID number.

Term: SQL (Structured Query Language) Definition: A standardised language for interacting with relational databases. It's used for tasks like querying data, inserting new records, updating existing data, and managing database structure. Example: A developer using SQL to retrieve all orders placed by a specific customer from an online store's database.

Term: DBMS (Database Management System) Definition: Software that allows users to interact with a database, providing tools for data definition, data manipulation, data security, and data integrity. Example: Popular DBMS examples include MySQL, Oracle Database, and Microsoft SQL Server.

Chapter 10: Ethics and Ownership Detailed Notes

  • Ethics: Defining ethics can be complex, but in the context of this chapter, it refers to the specific rules of conduct recognized within particular professions or areas of human life. These rules are built upon fundamental moral principles that guide individuals.

  • Moral Principles: These principles provide a foundation for ethical behaviour and help us distinguish between right and wrong actions. Key considerations when examining moral principles include:

    • Determining the right course of action and identifying actions that are considered wrong.

    • Assessing the potential benefits and harms that could result from specific actions.

    • Ensuring fair and equitable treatment for all individuals involved.

    • Upholding honesty and integrity in all professional dealings.

    • Accepting responsibility for the consequences of one's actions.

10.02 Codes of Conduct

  • Role of Professional Organisations: Organisations like the ACM (Association for Computing Machinery) and the IEEE-CS (Institute of Electrical and Electronics Engineers Computer Society) play a crucial role in setting ethical standards for their members by establishing comprehensive codes of conduct.

  • Purpose of Codes of Conduct: These codes serve several essential purposes:

    • Guidelines for Ethical Behaviour: They provide clear guidelines for ethical conduct, outlining acceptable and unacceptable behaviours for professionals in the field.

    • Professional Responsibilities: Codes of conduct clearly define the responsibilities of professionals, ensuring they understand their obligations to clients, colleagues, and the public.

    • Framework for Resolving Dilemmas: They offer a structured framework for approaching and resolving ethical dilemmas that may arise in professional practice.

  • Commonalities Across Codes: Despite variations in specific details, codes of conduct often share key similarities:

    • Public Interest: Most codes prioritize the public good or the broader interests of society.

    • Fundamental Principles: They outline fundamental ethical principles that guide decision-making.

    • Professional Judgement: Codes generally expect professionals to exercise their own judgement when applying ethical principles to specific situations.

    • Seeking Guidance: They encourage professionals to seek advice or guidance from experienced colleagues or ethical boards when facing uncertainty or complex ethical dilemmas.

10.03 Practical Application of Ethical Codes

  • Real-World Scenarios: Codes of conduct are not merely theoretical documents; they are meant to be applied to concrete situations to guide ethical decision-making in professional practice. This application often requires considering multiple clauses within the code and carefully weighing their relevance to the specific circumstances.

  • Illustrative Scenario: Consider a scenario where a software developer, close to completing a project, uncovers untested features within the software. This situation raises various ethical concerns that the developer must address.

  • Potential Ethical Conflicts:

    • Public Interest: While the immediate impact might be limited to the client, the untested features could potentially pose a risk to public safety, depending on the nature of the software. This risk might require the developer to consider the broader public interest.

    • Client's Interests: Delivering a product with untested features could result in a sub-standard product being provided to the client. This could damage the client's operations and negatively impact the reputation of the developer's employer.

    • Product Quality: The primary concern is the potential compromise of the product's quality due to the presence of untested features. The software might not function as intended, leading to errors, malfunctions, or security vulnerabilities.

  • Ethical Decision-Making: The developer must carefully weigh their ethical obligations, considering the potential consequences of their actions. Several possible scenarios could emerge:

    • Ideal Outcome: The developer takes ethical action, advocating for thorough testing, which leads to the delivery of a fully tested and reliable product.

    • Ineffective Action: The developer acts ethically by raising concerns, but their actions fail to effect change. This raises the question of whether further steps should be taken to address the ethical issue.

    • Unethical Behaviour: The developer chooses not to report the issue or actively conceals it, resulting in the delivery of a sub-standard product to the client. This unethical behaviour can have severe repercussions, damaging trust, reputation, and potentially causing harm.

10.04 Ownership and Copyright

  • Defining Copyright: Copyright is the legal framework that formally recognizes ownership of original works, particularly published works that exhibit a degree of creativity. The creator of the work, whether an individual or an organization, holds the copyright, granting them exclusive rights over the use and distribution of their work.

  • Limitations of Copyright: Copyright protection does not extend to abstract ideas or concepts. Additionally, copyright cannot be claimed for any part of a work that was previously published by another individual or organization.

  • International Copyright Law: While specific copyright laws vary between countries, an international agreement ensures that copyright protections cannot be easily circumvented. This agreement prevents individuals or organizations from seeking to publish copyrighted works in other countries without the original copyright holder's explicit permission.

  • Key Aspects of Copyright Laws:

    • Registration: Copyright laws usually require registration of the work to establish a clear record of the creation date, providing evidence of ownership in case of disputes.

    • Duration of Protection: Copyright laws define a specific time period during which the copyright remains valid. This duration varies by country and type of work.

    • Protection of Rights: Copyright law protects the rights of copyright holders, including the exclusive right to reproduce, distribute, display, perform, and create derivative works based on their original creation.

  • Controlling Usage Through Copyright Statements: Copyright holders can specify how their work can be used by including clear instructions within a copyright statement. These statements outline the terms and conditions for using the work, including any restrictions or permissions granted. Some common examples of usage control statements include:

    • All Rights Reserved: This restrictive statement signifies that all rights associated with the work are reserved by the copyright holder. Any use of the work, including copying, distribution, or adaptation, requires explicit permission from the copyright holder.

    • Non-Commercial Use Permitted: This statement allows for limited use of the work without explicit permission, specifically for non-commercial purposes. Users are generally free to copy, share, or adapt the work as long as they do not use it for profit or commercial gain.

    • Creative Commons Licenses: These licenses offer a flexible framework for copyright holders to grant specific permissions for the use and adaptation of their work. Creative Commons licenses provide a standardized way for creators to share their work while retaining some control over how it is used.

10.05 Open Source Software

  • Defining Open Source: Open source software stands in contrast to traditional proprietary software, promoting a collaborative and transparent approach to software development. Open source software grants individuals the freedom to use, copy, study, modify, and distribute the software without restrictions.

  • Open Source Licenses: While open source software encourages free use and modification, open source licenses are used to control and manage the distribution and modification of the software. These licenses often require users to acknowledge the original developers and maintain the open-source nature of the software, preventing it from becoming proprietary.

10.06 Artificial Intelligence (AI) and Ethical Considerations

  • Defining Artificial Intelligence: A concise definition of Artificial Intelligence (AI) is the utilization of computers or computer-controlled systems to perform tasks that are typically associated with human intelligence. However, the full scope of AI encompasses a wide range of technologies and applications, making a comprehensive definition challenging.

  • Ethical Challenges Posed by AI: The rapid development and deployment of AI systems raise significant ethical concerns that require careful consideration:

    • Bias in AI Systems: AI systems are susceptible to inheriting and amplifying biases present in the data they are trained on. This can lead to unfair or discriminatory outcomes, particularly in sensitive domains like hiring, lending, or criminal justice.

    • Privacy Concerns: AI systems often rely on collecting and processing vast amounts of data, including personal information. Ensuring the privacy and responsible use of this data is crucial to prevent misuse or harm.

    • Job Displacement: As AI technologies automate tasks previously performed by humans, there is a growing concern about job displacement and its societal impact. Addressing the potential economic and social consequences of AI-driven automation is essential.

    • Accountability and Responsibility: A key challenge in AI ethics is determining accountability for decisions made by AI systems. Especially in high-stakes applications like healthcare or autonomous vehicles, it is crucial to establish clear lines of responsibility when AI systems make errors or cause harm.

Key Points from Examples

  • Ethical Conduct: Tom's action in promptly reporting the bugs needing rectification exemplifies ethical behaviour in software development. He prioritizes the quality of the product and the interests of the client by bringing the issue to attention.

  • Unethical Conduct: Amit's actions, despite signing a confidentiality agreement, in copying and publicly releasing confidential information demonstrate unethical behaviour. His actions violate the trust placed in him, potentially harming the companies involved and undermining professional ethics.

  • Significance of Documentation: The ACM/IEEE Software Engineering Code of Ethics consistently emphasizes the importance of documentation in ethical software development. Documentation serves several key ethical purposes:

    • Transparency: Comprehensive documentation makes the development process more transparent, allowing stakeholders to understand the design choices and rationale behind the software.

    • Accountability: Documentation helps establish accountability by providing a clear record of decisions made, code modifications, and testing procedures.

    • Maintainability: Well-documented software is easier to understand, maintain, and modify, reducing the risk of errors and ensuring the long-term integrity of the system.