Home
Research profile
Teaching profile
Professional profile
Personal profile
Contact information

Course title

EECS 447 (3 credit hours): Introduction to Database Systems ✦ Fall 2026
Meets in person, Tuesdays and Thursdays, 11:00 am - 12:15 pm, LEA 2112

Instructor

Professor Hossein Saiedian
Office: Eaton Hall 3012
☎ +1 785-864-8812
@ saiedian AT ku.edu
🌐 people.eecs.ku.edu/~saiedian
Teaching: people.eecs.ku.edu/~saiedian/Teaching
Office hours: Tuesdays and Thursdays, 1:00-2:30 PM (and by appointment)

Course description

Introduction to the concept of databases and their operations. Basic concepts, database architectures, storage structures and indexing, data structures: hierarchical, network, and relational database organizations. Database design and normalization: ER model, candidates keys, functional dependencies, normal forms, decomposition. Emphasis on relational databases, relational algebra, and SQL. Introduction to views, transactions, and database access control. Introduction to database security, big data, NoSQL, CAP theorem, key-value stores. Prerequisite: Upper-level EECS eligibility or departmental consent.

Course outcomes

Database concepts mastery. Apply database concepts including conceptual modeling, data models, relational schemas, and normalization techniques to design and implement scalable database systems.

SQL query proficiency. Develop, execute, and optimize SQL queries for data definition, data manipulation, data retrieval, and reporting while ensuring data accuracy and efficient performance.

Database security and transactions. Apply principles of database security, backup and recovery, and transaction management to maintain data integrity, reliability, and secure operation of database systems.

Databases in big data and cloud. Explain the role of databases in big data ecosystems and cloud platforms, and apply appropriate database technologies to support data-intensive and data science applications.

Project management and teamwork. Demonstrate effective project management and teamwork skills by planning, coordinating, communicating, and contributing to the successful completion of database projects.

Recommended textbooks

The following are two of the most popular database systems textbooks:

A. Elmasri, H. Navathe,
Fundamentals of Database Systems, 7th edition,
Pearson, 2016

The textbook's table of contents.

This button shows which chapters from this book cover a given topic. For example, if a topic is covered in Chapter 1, it will appear as: .


A. Silberschatz, H. Korth, S. Sudarshan
Database System Concepts, 7th edition
McGraw-Hill, 2020

The textbook's table of contents.

This button shows which chapters from this book cover a given topic. For example, if a topic is covered in Chapter 1, it will appear as: .


Evaluation (subject to revision)

Evaluation criteria. Students will be evaluated as follows:

Term project: 40%
Assignments: 10%
Exams: 50%

Term project. The term project is a team-based effort, with each team consisting of 4 to 6 students. Project requirements will be discussed in class, and detailed specifications, deliverables, and deadlines will be provided on Canvas.

Each team will select an appropriate computing platform and develop its project using a SQL-based relational database management system. Teams are expected to apply the concepts and techniques learned in the course, including database design, implementation, querying, and management.

All project artifacts, including source code, documentation, database scripts, and related deliverables, must be maintained in a GitHub repository to support collaboration, version control, and project evaluation.

Assignments. Assignments may take a variety of forms, including labs, homework exercises, in‑class activities, or mini‑projects. Students are expected to complete assigned work both inside and outside the classroom as appropriate for the course. In courses that include hands‑on laboratory components (such as software engineering course), certain lab activities must be completed during scheduled lab sessions under TA supervision to ensure academic integrity; work completed outside the lab in these cases will not receive credit. Full assignment descriptions, requirements, and due dates are provided on Canvas.

Exams and quizzes. Exams and quizzes will be conducted in person and administered through Canvas. All exams and quizzes are closed-book and closed-notes.

Students must bring a laptop or tablet with a sufficiently large screen capable of accessing Canvas. During an exam or quiz, the only permitted application is the Canvas app or a web browser with a single tab open to Canvas. All other applications, files, browser tabs, windows, and electronic resources must be closed before the assessment begins and may not be accessed during the assessment.

To maintain academic integrity, students must remain focused on the exam window for the entire assessment. Canvas records instances of "Stopped viewing the quiz-taking page", and such instances may be reviewed and investigated as potential academic integrity violations.

Only devices and applications explicitly required for taking the assessment are permitted. Smartphones, smartwatches, earbuds, headphones, Bluetooth devices other than a mouse or stylus, remote-access software, screen-sharing software, generative AI tools, and similar technologies are prohibited unless expressly authorized by the instructor. Because these technologies can facilitate communication, information access, or other unauthorized assistance, their use is not permitted during exams or quizzes.

Screen brightness must remain at a normal, visible level throughout the assessment. The use of display dimmers, screen-darkening software, privacy overlays, or any method intended to obscure screen contents is not permitted.

Violations of the above testing requirements may be treated as violations of the University's academic integrity policy and may result in disciplinary action.

  • Structuring responses for exams, quizzes, and lab assignments. For questions with multiple parts (e.g., “name three parts of…”), address each part separately to ensure clarity and avoid confusion. Use clear identifiers such as “(1)”, “(2)”, and “(3)” to organize your answers. If more than the requested number of parts are provided, only the first three will be graded. Structured, precise responses demonstrate your understanding effectively.
  • Demonstrating engagement in exams, quizzes, and lab assignments. Responses should reflect your understanding of concepts as presented and discussed in class. Credit will be awarded for answers that demonstrate familiarity with course lectures, discussions, examples, and assigned materials, rather than reliance on external sources.
  • Providing technical and detailed responses. Exams, quizzes, and lab assignments require precise, technically accurate, and comprehensive answers. Vague, incomplete, or off-topic responses will not earn full credit, even if partially correct. To maximize points, provide detailed explanations supported by specific examples and relevant course concepts. Demonstrate a clear understanding through well-crafted, focused responses.

Submission format policy. All course work—including assignments, reports, and projects—must be typeset and submitted electronically via Canvas. Please note that “typeset” refers to work composed using digital tools (e.g., word processors, , image editing software, etc.). Handwritten or hand-drawn submissions will not be accepted.

Course lectures and resources

Students are responsible for engaging with all course materials, including lecture slides, topics covered in class discussions, assigned readings, and supplementary resources (e.g., handouts, code samples, or project guidelines) distributed during class sessions. All materials will be posted on Canvas, and students are expected to regularly check Canvas for updates to ensure they remain informed and prepared. Active engagement with these resources is critical for success in assignments, projects, and exams, and aligns with the course’s emphasis on professional responsibility and self-directed learning.

Course announcements (Canvas)
Lecture slides (Canvas)
Readings (Canvas)
Project resources (Canvas)

Guest speakers

Throughout the semester, we may host guest speakers who bring valuable insights and real-world perspectives related to the course material. Attendance during these sessions is especially important, as guest speakers may not provide lecture slides or written materials. Students are expected to take careful notes and engage respectfully. These sessions may include content relevant to assignments or exams.

Grading philosophy and scale

This course is not curved in the traditional sense. I do not set a fixed class average (e.g., a "B") and scale grades to fit a predetermined distribution. Instead, I ask one fundamental question: “Has this student mastered the material?”

If every student demonstrates clear mastery of the course content, then every student earns an A. Grades are not a measure of relative ranking—they are a reflection of your personal understanding and engagement with the work.

I encourage you to shift your focus away from grade anxiety. Instead, concentrate on being present, asking questions, exploring ideas, and participating fully in the learning process. In return, I promise to be fair, transparent, and extra supportive. We are in this together, and I want each of you to succeed—not just by earning a grade, but by growing as scholars and professionals.

I am genuinely invested in your progress, and nothing would make me happier than seeing every student earn an A through honest work and intellectual curiosity.

The above said, final course grades will be determined by the total percentage of points earned. The following standard scale will be used:

  • A (Excellent): 90–100%
  • B (Good): 80–89%
  • C (Satisfactory): 70–79%
  • D (Poor): 60–69%
  • F (Failing): Below 60%

Tentative weekly schedule (re-visit for updates)

💡 Course syllabus and overview
    ☑️ Striving for successful teams

💡 Introduction to database management systems
    ☑️ Why a database system?
    ☑️ The three-schema architecture and data independence
    ☑️ Classification of database management systems
    ☑️ Database languages

💡 Requirements engineering
    ☑️ The role of modeling
    ☑️ Domain modeling

💡 Conceptual modeling
    ☑️ High-level conceptual data models for database design
    ☑️ Data modeling using the Entity-Relationship model
    ☑️ Data entities, relationships

Team formation and role alignment

In this initial phase, students are expected to meet with their teammates to begin building rapport and establish a collaborative foundation. The focus is on getting to know one another’s backgrounds, skills, availability, and working styles. Teams should openly discuss and tentatively assign roles based on individual strengths and interests, such as project manager, front-end developer, documentation lead, etc. The goal is to foster early communication and ensure that each member has a clear sense of how they’ll contribute to the upcoming project milestones.

💡 Conceptual modeling (continued)

💡 Introduction to the relational model
    ☑️ Structure of relational databases

Vision statement and project plan

For Part 1 of the term project, each team must produce a well-defined vision and scope statement that outlines the project’s motivation, intended platform, anticipated user base, preliminary interface ideas, and team structure. This document should clearly articulate the system’s purpose and overall direction, including each team member’s tentative roles, relevant skills, and contact information. A full description of this portion of the project, including the rubric, due date, and submission guidelines, is available on Canvas.

Mini-Exam 1 (intro topics and conceptual modeling)

💡 Relational data model
    ☑️ Integrity constraints
    ☑️ Update operations and dealing with constraint violations
    ☑️ Introduction to functional dependencies

💡 Manipulating relational databases
    ☑️ Relational algebra expressions
    ☑️ Unary relational operations
    ☑️ Binary relational operations
    ☑️ Relational algebra operations from set theory

Project requirements

For Part 2 of the term project, your team is expected to produce a requirements document that clearly defines the goals and functionalities of your proposed database system. This should include a concise description of the system’s primary objectives, a breakdown of essential features and capabilities, and a list of key stakeholders who will interact with or benefit from the database. A full description of this portion of the project, including the rubric, due date, and submission guidelines, is available on Canvas.

💡 Relational algebra (continued)
💡 Building logical models from ER diagrams

💡 Introduction to SQL
    ☑️ SQL structure and constructs
    ☑️ Overview of the SQL query language
    ☑️ SQL data definition
    ☑️ Basic structure of SQL queries

Mini-Exam 2 (primarily on relational model)

💡 Introduction to SQL (continued)
    ☑️ Basic SQL and set operations
    ☑️ Null values
    ☑️ Aggregate functions
    ☑️ Nested subqueries
    ☑️ Modification of the database

Project conceptual model

For Part 3 of the term project, your team should build a complete Entity-Relationship (ER) model based on the specifications outlined in your requirements document. The model should effectively capture the key entities, attributes, and relationships needed to support your system’s data architecture, reflecting both structural integrity and real-world relevance. A detailed description of this portion of the project, including the rubric, due date, and submission guidelines, is available on Canvas.

💡 Intermediate SQL
    ☑️ Join expression, nested queries, aggregate functions
    ☑️ SQL views
    ☑️ SQL transactions

October 17--20: Fall Break (no class Tuesday, October 20)

💡 Intermediate SQL (continued)
    ☑️ Views, constraints, assertions
    ☑️ Integrity constraints
    ☑️ Authorization

Logical relational model

For Part 4 of the term project, your team must convert your conceptual ER model into a robust logical relational schema. This transformation should apply the formal mapping techniques and algorithms discussed during class sessions to ensure consistency, normalization, and data integrity. The resulting schema should accurately reflect the structure and constraints of your system’s data model in a relational format suitable for implementation. A detailed description of this part of the project, including the rubric, due date, and additional guidelines, is available on Canvas.

Mini-Exam 3 (primarily on SQL fundamentals)

💡 Complex data types and big data
    ☑️ Big data concepts
    ☑️ Structured, semi-structured, and unstructured data
    ☑️ Non-SQL databases

💡 Data analytics, data science, and AI
    ☑️ Data lifecycle: preprocessing, visualization, predictive modeling, SQL for data analysis
    ☑️ Databases for AI and machine learning, data quality and AI outcomes
    ☑️ Retrieval-augmented generation (RAG) and AI-assisted database development

Physical design and data population

⚠️ This is the largest and most time-intensive part of the term project. It is not due until Week 15, but teams are strongly encouraged to begin work now.

For Part 5 of the term project, your team must implement a physical database derived from your logical design. This includes creating all necessary tables, constraints, and relationships using appropriate SQL syntax, and populating the database with meaningful and realistic sample data that reflects your project’s use cases. The completed database must undergo rigorous testing to ensure it meets all specified functional (and non-functional) requirements outlined in your original proposal. A detailed description of this part of the project, including the rubric, due date, and additional guidelines is available on Canvas.

💡 Database transactions and ACID properties
    ☑️ Transaction concept
    ☑️ Transaction atomicity and consistency
    ☑️ Transaction isolation and durability
    ☑️ Serializability
    ☑️ Transaction isolation levels
    ☑️ Transactions as SQL statements

💡 Concurrency control and recovery algorithms
    ☑️ Lock-based protocols and locking algorithms
    ☑️ Recovery and atomicity
    ☑️ Database log buffer and recovery algorithm
    ☑️ Checkpoints and undo and redo operations

💡 Database architectures: centralized, distributed, and cloud systems
    ☑️ Centralized database systems
    ☑️ Server system architectures
    ☑️ Distributed systems
    ☑️ Cloud-based services
    ☑️ CAP properties

💡 Database security and privileges
    ☑️ Access control mechanisms
    ☑️ SQL views
    ☑️ SQL authorization
    ☑️ Database encryption

Mini-Exam 4 (big data/analytics, transactions, concurrency, architecture, and security)

💡 Relational database design
    ☑️ Definition of good relations
    ☑️ Features of good relational designs

November 25-29: Thanksgiving Break (no class Thursday, November 26)

💡 Relational database design (continued)
    ☑️ Normal forms based on primary keys
    ☑️ General definitions of second and third Normal forms
    ☑️ Boyce-Codd normal form
    ☑️ Database-design process

💡 Relational database design (continued)
    ☑️ Properties of relational decompositions
    ☑️ Decomposition algorithms (lossless, preserving FDs)
    ☑️ Other dependencies and normal forms

Project demonstrations

For Part 6 of the term project, your team should demonstrate the key functionalities and user interface of your developed database system. This presentation should clearly illustrate how the system fulfills the requirements and objectives defined in your project proposal. Be sure to emphasize any distinctive features, novel design elements, or technical innovations that contribute to the system’s effectiveness, usability, or uniqueness. A detailed description of this part of the project, including the rubric, due date, and additional guidelines is available on Canvas.

💡 Course review

December 10: Last day of class  |  December 11: Stop day

Final Exam: Friday, December 18, @10:30am-1:00pm


Course policies

Classroom engagement via

iClicker is an interactive classroom response system that allows students to engage actively by answering questions and participating in polls. The University of Kansas has secured an iClicker subscription for classroom use, and the EECS department is incorporating this system into its courses to boost student engagement. Participation in the iClicker community is mandatory for this course.

When an iClicker notification is sent, students are briefly polled to confirm receipt. If a student encounters a technical issue or need more time, they should raise their hand to be acknowledged and if the issue is not resolved, meet with the instructor immediately after class to manually adjust the iClicker record.

Responding to iClicker notifications when not physically present in the classroom is strictly prohibited. It constitutes a deliberate act of academic dishonesty and a direct violation of the University of Kansas code of conduct. Logging attendance or submitting responses while absent undermines the integrity of our learning environment and disrespects both the instructor and fellow students who are fully participating. Violations will be treated as academic misconduct and reported accordingly.

LLM and generative AI tools

Generative AI tools, such as ChatGPT, GitHub Copilot, Gemini, and others, can be valuable resources for learning. When used appropriately, they may assist in brainstorming, exploring ideas, and refining drafts. However, they must never replace your own intellectual work.

These tools are akin to the writing center consultants, the EECS programming tutors, and lab assistants: they can guide and support but must not generate final submissions. Submitting content primarily generated by AI is a violation of academic integrity, comparable to submitting work completed by someone else.

Unless explicitly permitted, all coursework must reflect your original understanding, reasoning, and expression. Use of generative AI tools is not permitted for any assignment unless the instructor explicitly authorizes it for that specific assignment; where such use is authorized, it must be disclosed via a brief reflection describing how and why the tool was used, the specific prompts entered, how the output was validated and revised, and any challenges or limitations encountered.

  • A description of how and why AI was used
  • The specific prompts you entered
  • How you validated and revised the AI output
  • The challenges or limitations you faced while using AI

Failure to disclose use of AI tools or submitting AI-generated work as your own will be treated as academic misconduct. Minimum consequences include a zero on the assignment. Depending on severity, further penalties may include failure in the course and formal referral to the School of Engineering disciplinary committee.

This course is designed to build your skills—not evaluate the performance of generative tools. Authentic engagement with course challenges leads to meaningful growth. Overreliance on AI undermines both your learning and the integrity of our academic community.

Intellectual honesty is not optional; it defines your identity as an engineer, a scholar, and a professional.

Academic integrity policy

The University of Kansas, the School of Engineering, and the Department of Electrical Engineering & Computer Science (EECS) maintain a zero-tolerance policy toward academic dishonesty and misconduct. All students enrolled in this course are expected to uphold the highest standards of integrity and professionalism in their academic work.

Academic dishonesty includes, but is not limited to:

  • Plagiarism and unauthorized collaboration: Representing another person’s work, ideas, or writing as your own without proper attribution, or giving/receiving unapproved help on assignments, projects, quizzes, or exams.
  • Cheating: Using unauthorized resources or materials during assessments, or submitting work completed by someone else.
  • Misrepresentation and falsification: Knowingly presenting false information, fabricating or manipulating data/research results, or falsely representing your presence, participation, or attendance in a course activity.

The minimum consequence for an academic integrity violation is a zero on the item in question (e.g., lab, assignment, quiz, or exam). Depending on severity, penalties may include a grade reduction, a failing grade for the course, and formal referral to the School of Engineering's disciplinary committee for further review and sanctions.

Please also see KU's academic misconduct policy

LMS features. During exams or quizzes, only one device should be used, with solely the Canvas app or a single browser tab for Canvas open. Having any other tab, app or file open will be considered a violation of academic integrity. To further facilitate academic integrity, the following features of Canvas will be utilized:

  • The "originality checking" mechanisms of LMS will be utilized for exams but also assignments.
  • LMS features to prohibit printing, copying/pasting of exams will be turned on.
  • LMS lockdown feature will be employed.

Code of student rights and responsibility: Code of Student Rights and Responsibilities

Attendance, late work, and makeup policies

Attendance expectation. Regular attendance is essential for success in this course. Attendance will be recorded throughout the semester via iClicker for classroom meetings (and, if the course includes a lab component, via a sign-up attendance sheet for lab sessions). More than three unexcused absences (in classrooms or labs) will result in a one‑letter reduction in the final course grade, which will be applied when grades are posted at the end of the term.

Course-specific attendance policy (EECS 581). Because this course meets once per week, a single absence carries the weight of two regular sessions. Accordingly, no more than two unexcused absences will be permitted (equivalent to four regular sessions under the standard format); a third unexcused absence will result in the one-letter grade reduction described above. This applies to the Tuesday classroom sessions; TA/Scrum-meeting participation is assessed separately, using the project rubric posted on Canvas.

Late-work, makeup policy. Late work and make‑up opportunities for labs, quizzes, and exams are available exclusively for students with excused, documented, and approved absences, ensuring full support for those with qualifying circumstances.

Excused absence requests. Requests for excused absences must be submitted in advance and approved by the instructor, except in cases of emergency. Supporting documentation must accompany all requests. For emergencies, notify the instructor as soon as possible following the absence. Examples of excusable absences include:

  • Illness or injury
  • Verifiable personal mental health or medical crisis, or that of a relative
  • Unforeseen life event or compelling circumstances beyond the student's control (e.g., divorce, birth or adoption of a child, death, loss of employment, sexual assault, domestic violence)
  • Academic field trips or conferences
  • Participation in university activities at the request of university authorities (e.g., an approved concert or athletic event)
  • Jury duty or officially mandated court appearances

If a student experiences a confidential personal or family situation that does not fall under the above categories, they may consult CAPS or their academic advisor, who can then contact me on their behalf.

Make-up policy and integrity. For excused absences, quizzes and exams must be made up before the content is reviewed or the answer key is released. Labs, assignments, or homework are due within one week of the absence. Additional flexibility will be provided for special circumstances.

By taking a make-up assessment, you affirm that you have an excused absence and have not sought or received any information about its content from prior test-takers. Violating this pledge is academic misconduct (see above).

Responsibility for missed work. Students who miss class are responsible for obtaining any missed materials.

Common policies

Classroom conduct policy: Students are expected to arrive on time, remain attentive, and conduct themselves professionally. Please avoid behaviors that disrupt the learning environment or instructor presentations, and note that profanity is strictly prohibited. Additionally, students are encouraged to actively engage during class sessions by asking questions, contributing to discussions, and providing feedback.

Canvas announcements. Important course updates will be posted via Canvas Announcements. You are responsible for checking Canvas regularly; email notifications may also be sent depending on your account settings.

Email communications
As an engineering student at the University of Kansas, all written communications should reflect professional standards. Please note:

  • Subject lines: Must be descriptive and begin with EECS### for course-related messages.
  • Etiquette: Please follow standard professional email etiquette.
  • Format: Send text-only emails in text-only format. All classroom assignments, labs, or projects should be typeset and submitted on Canvas.
  • Attachments: Other documents (e.g., documents for an excusable absence) should be emailed in PDF or a well-known image format (e.g., JPG or PNG). Please choose a descriptive file name for the attachment (avoid file names like "image", "my document", etc.).

Grade and absence clarification or correction. We want to ensure your records are accurate and fair. If you believe a grade on an assignment, lab, quiz, or exam is incorrect, you must submit an grade correction request within one week of receiving the graded work. Similarly, if you need to submit documentation for an excused absence after the fact, you must do so within one week of the absence. Failure to address these matters within this one-week timeframe will result in the decision becoming final, ensuring timely resolution and consistency for the entire class.

Typographical errors. Any typographical errors on exams or other course materials, including those introduced by Canvas, will be resolved in favor of the students.

Technical problems. Submit a support request help at: https://tsc.ku.edu/request-support-engineering-tsc.

Electronic device policy: Cell phones must be silenced before entering the classroom. While laptops, tablets, and phones are welcome for note-taking and approved tools like iClicker, non-academic uses (such as social media or web surfing) must be avoided to prevent distractions. Audio should remain turned off. Additionally, devices may be used to photograph whiteboard notes or projects, provided the shots exclude the instructor and other students.

Incomplete grade policy. An Incomplete ("I") grade is reserved for exceptional circumstances beyond your control and must be resolved within the instructor's timeframe (up to one year before automatically converting to an "F" or "U"). For full details please review KU policies: here and here.

Accommodations for students with disabilities. The University of Kansas is committed to equal opportunity and accessible learning. Requests for special accommodations should be made through KU Student Access Services.

Nondiscrimination and equal opportunity. KU strictly prohibits discrimination based on protected characteristics across all programs and activities. For full institutional policies, please review KU's statements on nondiscrimination and the racial and ethnic harassment policy.

Sexual harassment. KU prohibits sexual harassment and is committed to preventing, correcting, and disciplining unlawful harassment and assault. Please review KU's statement on sexual harassment for details.

Mandatory reporter statement. As a faculty member and KU employee, I am a mandatory reporter required to share disclosures of discrimination, harassment, or sexual violence with the Office of Civil Rights and Title IX. For confidential support options (such as CAPS, Watkins Health Care, or the Ombuds Office), please review KU's statement on mandatory reporting.

Commercial note-taking ventures. Pursuant to KU's commercial note-taking policy, selling lecture notes or course materials for commercial gain is strictly prohibited and subject to disciplinary action. Note-taking provided as an official ADA accommodation for a student with a disability is exempt.

Concealed handguns. Individuals choosing to carry concealed handguns must do so safely and in strict compliance with state/federal laws and KU weapons policy, which requires that handguns remain under constant control, fully concealed, holstered with the trigger covered, and carried with the safety on and no round in the chamber.

The School of Engineering statement on EdTech

Professors and instructors at the KU School of Engineering are aware that students sometimes post or access course assignments, labs, and exam questions on EdTech platforms (such as Chegg).

Please note that agreeing to an EdTech service's "terms of service" does not protect you if an academic misconduct investigation is initiated. Platforms like Chegg retain and release traceable user data upon request.

Using these services constitutes academic misconduct, violates the School of Engineering Rules & Regulations, and can lead to a failing grade in the course, a transcript citation, and expulsion from the University of Kansas. Instead, please utilize authorized resources such as instructor office hours, TAs, and tutoring.

Ethical foundations for technical professionals

As computing and engineering professionals, you are expected to know and apply the professional codes of ethics throughout your academic and professional careers:

As the ACM preamble notes: "Computing professionals' actions change the world. To act responsibly, they should reflect upon the wider impacts of their work, consistently supporting the public good."