CS 280 in 202110

Topics and Learning Outcomes for the Knowledge Units, within the Knowledge Areas, explored in this course are based on the ACM/IEEE Curriculum Guidelines for Undergraduate Degree Programs in Computer Science (2013) report, a version of which is available in HTML on this website . That report associates one of three levels of mastery with each Learning Outcome. The mastery levels are defined as:

  • Familiarity: The student understands what a concept is or what it means. This level of mastery concerns a basic awareness of a concept as opposed to expecting real facility with its application. It provides an answer to the question “What do you know about this?”
  • Usage: The student is able to use or apply a concept in a concrete way. Using a concept may include, for example, appropriately using a specific concept in a program, using a particular proof technique, or performing a particular analysis. It provides an answer to the question “What do you know how to do?”
  • Assessment: The student is able to consider a concept from multiple viewpoints and/or justify the selection of a particular approach to solve a problem. This level of mastery implies more than using a concept; it involves the ability to select an appropriate approach from understood alternatives. It provides an answer to the question “Why would you do that?”

Topics and Learning Outcomes with:

  • 2 stars ( ★ ★ ) appear in the CS2013 report as Core-Tier1
  • 1 star ( ★ ) appear in the CS2013 report as Core-Tier2
  • 0 stars appear in the CS2013 report as Elective
  • grey text are not covered in this course offering
SP / Social Context

Computers and the Internet, perhaps more than any other technologies, have transformed society over the past 75 years, with dramatic increases in human productivity; an explosion of options for news, entertainment, and communication; and fundamental breakthroughs in almost every branch of science and engineering. Social Context provides the foundation for all other SP knowledge units, especially Professional Ethics. Also see cross-referencing with Human-Computer Interaction (HCI) and Networking and Communication (NC) Knowledge Areas.

  1. Social implications of computing in a networked world (cross-reference HCI/Foundations/social models; IAS/Fundamental Concepts/social issues) ★★
  2. Impact of social media on individualism, collectivism and culture. ★★
  3. Growth and control of the Internet (cross-reference NC/Introduction/organization of the Internet) ★
  4. Often referred to as the digital divide, differences in access to digital technology resources and its resulting ramifications for gender, class, ethnicity, geography, and/or underdeveloped countries. ★
  5. Accessibility issues, including legal requirements ★
  6. Context-aware computing (cross-reference HCI/New Interactive Technologies)/ ubiquitous and context-aware) ★
Learning Outcomes
  1. Describe positive and negative ways in which computer technology (networks, mobile computing, cloud computing) alters modes of social interaction at the personal level. [Familiarity] ★★
  2. Identify developers’ assumptions and values embedded in hardware and software design, especially as they pertain to usability for diverse populations including under-represented populations and the disabled. [Familiarity] ★★
  3. Interpret the social context of a given design and its implementation. [Familiarity] ★★
  4. Evaluate the efficacy of a given design and implementation using empirical data. [Assessment] ★★
  5. Summarize the implications of social media on individualism versus collectivism and culture. [Usage] ★★
  6. Discuss how Internet access serves as a liberating force for people living under oppressive forms of government; explain how limits on Internet access are used as tools of political and social repression. [Familiarity] ★
  7. Analyze the pros and cons of reliance on computing in the implementation of democracy (e.g. delivery of social services, electronic voting). [Assessment] ★
  8. Describe the impact of the under-representation of diverse populations in the computing profession (e.g., industry culture, product diversity). [Familiarity] ★
  9. Explain the implications of context awareness in ubiquitous computing systems. [Familiarity] ★
SP / Analytical Tools

Ethical theories and principles are the foundations of ethical analysis because they are the viewpoints from which guidance can be obtained along the pathway to a decision. Each theory emphasizes different points such as predicting the outcome and following one’s duties to others in order to reach an ethically guided decision. However, in order for an ethical theory to be useful, the theory must be directed towards a common set of goals. Ethical principles are the common goals that each theory tries to achieve in order to be successful. These goals include beneficence, least harm, respect for autonomy, and justice.

  1. Ethical argumentation ★★
  2. Ethical theories and decision-making ★★
  3. Moral assumptions and values ★★
Learning Outcomes
  1. Evaluate stakeholder positions in a given situation. [Assessment] ★★
  2. Analyze basic logical fallacies in an argument. [Assessment] ★★
  3. Analyze an argument to identify premises and conclusion. [Assessment] ★★
  4. Illustrate the use of example and analogy in ethical argument. [Usage] ★★
  5. Evaluate ethical/social tradeoffs in technical decisions. [Assessment] ★★
SP / Professional Ethics

Computer ethics is a branch of practical philosophy that deals with how computing professionals should make decisions regarding professional and social conduct. There are three primary influences: 1) an individual’s own personal code; 2) any informal code of ethical behavior existing in the work place; and 3) exposure to formal codes of ethics. See cross-referencing with the Information Assurance and Security (IAS) Knowledge Area.

  1. Community values and the laws by which we live ★★
  2. The nature of professionalism including care, attention and discipline, fiduciary responsibility, and mentoring ★★
  3. Keeping up-to-date as a computing professional in terms of familiarity, tools, skills, legal and professional framework as well as the ability to self-assess and progress in the computing field ★★
  4. Professional certification, codes of ethics, conduct, and practice, such as the ACM/IEEE-CS, SE, AITP, IFIP and international societies (cross-reference IAS/Fundamental Concepts/ethical issues) ★★
  5. Accountability, responsibility and liability (e.g. software correctness, reliability and safety, as well as ethical confidentiality of cybersecurity professionals) ★★
  6. The role of the computing professional in public policy ★
  7. Maintaining awareness of consequences ★
  8. Ethical dissent and whistle-blowing ★
  9. The relationship between regional culture and ethical dilemmas ★
  10. Dealing with harassment and discrimination ★
  11. Forms of professional credentialing ★
  12. Acceptable use policies for computing in the workplace ★
  13. Ergonomics and healthy computing environments ★
  14. Time to market and cost considerations versus quality professional standards ★
Learning Outcomes
  1. Identify ethical issues that arise in software development and determine how to address them technically and ethically. [Familiarity] ★★
  2. Explain the ethical responsibility of ensuring software correctness, reliability and safety. [Familiarity] ★★
  3. Describe the mechanisms that typically exist for a professional to keep up-to-date. [Familiarity] ★★
  4. Describe the strengths and weaknesses of relevant professional codes as expressions of professionalism and guides to decision-making. [Familiarity] ★★
  5. Analyze a global computing issue, observing the role of professionals and government officials in managing this problem. [Assessment] ★★
  6. Evaluate the professional codes of ethics from the ACM, the IEEE Computer Society, and other organizations. [Assessment] ★★
  7. Describe ways in which professionals may contribute to public policy. [Familiarity] ★
  8. Describe the consequences of inappropriate professional behavior. [Familiarity] ★
  9. Identify progressive stages in a whistle-blowing incident. [Familiarity] ★
  10. Identify examples of how regional culture interplays with ethical dilemmas. [Familiarity] ★
  11. Investigate forms of harassment and discrimination and avenues of assistance. [Usage] ★
  12. Examine various forms of professional credentialing. [Usage] ★
  13. Explain the relationship between ergonomics in computing environments and people’s health. [Familiarity] ★
  14. Develop a computer usage/acceptable use policy with enforcement measures. [Assessment] ★
  15. Describe issues associated with industries’ push to focus on time to market versus enforcing quality professional standards. [Familiarity] ★
SP / Intellectual Property

Intellectual property refers to a range of intangible rights of ownership in an asset such as a software program. Each intellectual property ‘right’ is itself an asset. The law provides different methods for protecting these rights of ownership based on their type. There are essentially four types of intellectual property rights relevant to software: patents, copyrights, trade secrets and trademarks. Each affords a different type of legal protection. See cross-referencing with the Information Management (IM) Knowledge Area.

  1. Philosophical foundations of intellectual property 
  2. Intellectual property rights (cross-reference IM/Information Storage and Retrieval/intellectual property and protection) 
  3. Intangible digital intellectual property (IDIP) 
  4. Legal foundations for intellectual property protection 
  5. Digital rights management 
  6. Copyrights, patents, trade secrets, trademarks 
  7. Plagiarism 
  8. Foundations of the open source movement 
  9. Software piracy 
Learning Outcomes
  1. Discuss the philosophical bases of intellectual property. [Familiarity] 
  2. Discuss the rationale for the legal protection of intellectual property. [Familiarity] 
  3. Describe legislation aimed at digital copyright infringements. [Familiarity] 
  4. Critique legislation aimed at digital copyright infringements. [Assessment] 
  5. Identify contemporary examples of intangible digital intellectual property. [Familiarity] 
  6. Justify uses of copyrighted materials. [Assessment] 
  7. Evaluate the ethical issues inherent in various plagiarism detection mechanisms. [Assessment] 
  8. Interpret the intent and implementation of software licensing. [Familiarity] 
  9. Discuss the issues involved in securing software patents. [Familiarity] 
  10. Characterize and contrast the concepts of copyright, patenting and trademarks. [Assessment] 
  11. Identify the goals of the open source movement. [Familiarity] 
  12. Identify the global nature of software piracy. [Familiarity] 
SP / Privacy and Civil Liberties

Electronic information sharing highlights the need to balance privacy protections with information access. The ease of digital access to many types of data makes privacy rights and civil liberties more complex, differing among the variety of cultures worldwide. See crossreferencing with the Human-Computer Interaction (HCI), Information Assurance and Security (IAS), Information Management (IM), and Intelligent Systems (IS) Knowledge Areas.

  1. Philosophical foundations of privacy rights (cross-reference IS/Fundamental Issues/philosophical issues) 
  2. Legal foundations of privacy protection 
  3. Privacy implications of widespread data collection for transactional databases, data warehouses, surveillance systems, and cloud computing (cross-reference IM/Database Systems/data independence; IM/Data Mining/data cleaning) 
  4. Ramifications of differential privacy 
  5. Technology-based solutions for privacy protection (cross-reference IAS/Threats and Attacks/attacks on privacy and anonymity) 
  6. Privacy legislation in areas of practice 
  7. Civil liberties and cultural differences 
  8. Freedom of expression and its limitations 
Learning Outcomes
  1. Discuss the philosophical basis for the legal protection of personal privacy. [Familiarity] 
  2. Evaluate solutions to privacy threats in transactional databases and data warehouses. [Assessment] 
  3. Describe the role of data collection in the implementation of pervasive surveillance systems (e.g., RFID, face recognition, toll collection, mobile computing). [Familiarity] 
  4. Describe the ramifications of differential privacy. [Familiarity] 
  5. Investigate the impact of technological solutions to privacy problems. [Usage] 
  6. Critique the intent, potential value and implementation of various forms of privacy legislation. [Assessment] 
  7. Identify strategies to enable appropriate freedom of expression. [Familiarity] 
SP / Professional Communication

Professional communication conveys technical information to various audiences who may have very different goals and needs for that information. Effective professional communication of technical information is rarely an inherited gift, but rather needs to be taught in context throughout the undergraduate curriculum. See cross-referencing with Human-Computer Interaction (HCI) and Software Engineering (SE) Knowledge Areas.

  1. Reading, understanding and summarizing technical material, including source code and documentation ★★
  2. Writing effective technical documentation and materials ★★
  3. Dynamics of oral, written, and electronic team and group communication (cross-reference HCI/Collaboration and Communication/group communication; SE/Project Management/team participation) ★★
  4. Communicating professionally with stakeholders ★★
  5. Utilizing collaboration tools (cross-reference HCI/Collaboration and Communication/online communities; IS/Agents/collaborative agents) ★★
  6. Dealing with cross-cultural environments (cross-reference HCI/User-Centered Design and Testing/crosscultural evaluation) 
  7. Tradeoffs of competing risks in software projects, such as technology, structure/process, quality, people, market and financial (cross-reference SE/Software Project Management/Risk) 
Learning Outcomes
  1. Write clear, concise, and accurate technical documents following well-defined standards for format and for including appropriate tables, figures, and references. [Usage] ★★
  2. Evaluate written technical documentation to detect problems of various kinds. [Assessment] ★★
  3. Develop and deliver a good quality formal presentation. [Assessment] ★★
  4. Plan interactions (e.g. virtual, face-to-face, shared documents) with others in which they are able to get their point across, and are also able to listen carefully and appreciate the points of others, even when they disagree, and are able to convey to others what they have heard. [Usage] ★★
  5. Describe the strengths and weaknesses of various forms of communication (e.g. virtual, face-to-face, shared documents). [Familiarity] ★★
  6. Examine appropriate measures used to communicate with stakeholders involved in a project. [Usage] ★★
  7. Compare and contrast various collaboration tools. [Assessment] ★★
  8. Discuss ways to influence performance and results in cross-cultural teams. [Familiarity] 
  9. Examine the tradeoffs and common sources of risk in software projects regarding technology, structure/process, quality, people, market and financial. [Usage] 
  10. Evaluate personal strengths and weaknesses to work remotely as part of a multinational team. [Assessment] 
HCI / Foundations

For end-users, the interface is the system. So design in this domain must be interaction-focused and human-centered. Students need a different repertoire of techniques to address this than is provided elsewhere in the curriculum.

  1. Contexts for HCI (anything with a user interface, e.g., webpage, business applications, mobile applications, and games) ★★
  2. Processes for user-centered development, e.g., early focus on users, empirical testing, iterative design ★★
  3. Different measures for evaluation, e.g., utility, efficiency, learnability, user satisfaction ★★
  4. Usability heuristics and the principles of usability testing ★★
  5. Physical capabilities that inform interaction design, e.g., color perception, ergonomics ★★
  6. Cognitive models that inform interaction design, e.g., attention, perception and recognition, movement, and memory; gulfs of expectation and execution ★★
  7. Social models that inform interaction design, e.g., culture, communication, networks and organizations ★★
  8. Principles of good design and good designers; engineering tradeoffs ★★
  9. Accessibility, e.g., interfaces for differently-abled populations (e.g., blind, motion-impaired) ★★
  10. Interfaces for differently-aged population groups (e.g., children, 80+) ★★
Learning Outcomes
  1. Discuss why human-centered software development is important. [Familiarity] ★★
  2. Summarize the basic precepts of psychological and social interaction. [Familiarity] ★★
  3. Develop and use a conceptual vocabulary for analyzing human interaction with software: affordance, conceptual model, feedback, and so forth. [Usage] ★★
  4. Define a user-centered design process that explicitly takes account of the fact that the user is not like the developer or their acquaintances. [Usage] ★★
  5. Create and conduct a simple usability test for an existing software application. [Assessment] ★★
HCI / Designing Interaction

CS students need a minimal set of well-established methods and tools to bring to interface construction.

  1. Principles of graphical user interfaces (GUIs) 
  2. Elements of visual design (layout, colour, fonts, labelling) 
  3. Task analysis, including qualitative aspects of generating task analytic models 
  4. Low-fidelity (paper) prototyping 
  5. Quantitative evaluation techniques, e.g., keystroke-level evaluation 
  6. Help and documentation 
  7. Handling human/system failure 
  8. User interface standards 
Learning Outcomes
  1. For an identified user group, undertake and document an analysis of their needs. [Assessment] 
  2. Create a simple application, together with help and documentation, that supports a graphical user interface. [Usage] 
  3. Conduct a quantitative evaluation and discuss/report the results. [Usage] 
  4. Discuss at least one national or international user interface design standard. [Familiarity] 
SP / Sustainability

Sustainability is characterized by the United Nations as ‘development that meets the needs of the present without compromising the ability of future generations to meet their own needs.’ Sustainability was first introduced in the CS2008 curricular guidelines. Topics in this emerging area can be naturally integrated into other familiarity areas and units, such as human-computer interaction and software evolution. See cross-referencing with the Human-Computer Interaction (HCI) and Software Engineering (SE) Knowledge Areas.

  1. Being a sustainable practitioner by taking into consideration cultural and environmental impacts of implementation decisions (e.g. organizational policies, economic viability, and resource consumption). 
  2. Explore global social and environmental impacts of computer use and disposal (e-waste) 
  3. Environmental impacts of design choices in specific areas such as algorithms, operating systems, networks, databases, or human-computer interaction (cross-reference SE/Software Evaluation/software evolution; HCI/Design-Oriented HCI/sustainability) 
  4. Guidelines for sustainable design standards 
  5. Systemic effects of complex computer-mediated phenomena (e.g. telecommuting or web shopping) 
  6. Pervasive computing; information processing integrated into everyday objects and activities, such as smart energy systems, social networking and feedback systems to promote sustainable behavior, transportation, environmental monitoring, citizen science and activism. 
  7. Research on applications of computing to environmental issues, such as energy, pollution, resource usage, recycling and reuse, food management, farming and others. 
  8. The interdependence of the sustainability of software systems with social systems, including the knowledge and skills of its users, organizational processes and policies, and its societal context (e.g., market forces, government policies). 
Learning Outcomes
  1. Identify ways to be a sustainable practitioner. [Familiarity] 
  2. Illustrate global social and environmental impacts of computer use and disposal (e-waste). [Usage] 
  3. Describe the environmental impacts of design choices within the field of computing that relate to algorithm design, operating system design, networking design, database design, etc. [Familiarity] 
  4. Investigate the social and environmental impacts of new system designs through projects. [Usage] 
  5. Identify guidelines for sustainable IT design or deployment. [Familiarity] 
  6. List the sustainable effects of telecommuting or web shopping. [Familiarity] 
  7. Investigate pervasive computing in areas such as smart energy systems, social networking, transportation, agriculture, supply-chain systems, environmental monitoring and citizen activism. [Usage] 
  8. Develop applications of computing and assess through research areas pertaining to environmental issues (e.g. energy, pollution, resource usage, recycling and reuse, food management, farming). [Assessment] 

Engage in critical examination of computing, identify and challenge assumptions

Purpose of Computing

    Code Stars (2013)

    We need a moral operating system (2011)

Purpose of Computing

    Code Stars (2013)

    We need a moral operating system (2011)

Social Media Platforms

    Beware online filter bubbles

    What obligation do social media platforms have to the greater good?

Social Media Platforms

    Beware online filter bubbles

    What obligation do social media platforms have to the greater good?


Design (UR Courses)

Metaphors and Interface Design

Ethics and Interfaces

    Flight 401

  • An interface is humane if it is responsive to human needs and considerate of human frailties. ~ Jef Raskin
  • A computer shall not harm your work or, through inaction, allow your work to come to harm. ~ Jef Raskin
  • A computer shall not waste your time or require you to do more work than is strictly necessary. ~ Jef Raskin
Brand New Problems?
  • I'm Not a Cat!
  • Responses to meetings
  • Design of Class meetings and website
  • Tristan Harris

    Team Human

Analysis and Judgement

    Cradle to cradle design

    The next web

  • Spime
Professional Responsibilities
Professional designations
Applying a Code of Ethics
Guests from SaskTel