Skip to content

Syllabus

Course Syllabus and Policies

The course is currently planned to be entirely in person for lectures and recitations. Most office hours will be in person, but some may be held over Zoom as well. The course uses Canvas and Gradescope for homework submission, grading, discussions, questions, and supplementary documents; slides and handouts are posted here on the course website; GitHub is used to coordinate group work. We also use Slack for communication and group work: check your email during the first week of classes for the Slack sign up link.

Waitlist

The class has a waitlist. We will add as many students as we can. Waitlists are processed in FIFO order. If you are on the waitlist, we recommend attending the first couple of weeks of class and attempting the first homework.

Prerequisites

Prior knowledge of programming for either desktop, mobile, web, or data science is helpful, but not required. You should be willing to engage in software development tasks and user studies. You need not be strong in either to take this class.

If you have questions, please reach out to the instructor.

Communication

The primary form of communication about this course is through Slack. We will make announcements through a dedicated channel in Slack, and also provide channels for homework clarifications and team-based communication. As such, we highly recommend that students install Slack on their phones / tablets / laptops with notifications enabled.

The instructors will hold weekly office hours to provide support with course materials and projects. You can find the office hours schedule updated weekly here on the course website. If you cannot make it to office hours, contact us via email (using the course-wide email address, unless the issue is sensitive) and we will find an alternative time to meet.

You can contact the course instructor and TA via Slack and email.

Teamwork

Teamwork is an essential part of this course. Projects are done in teams of 4-5 students. Teams will be self-organized and work together for the entirety of the semester. Choose your teammates wisely. Make sure your team has some good programmers and some good user researchers. You'll need both for a successful project.

Being able to address project team issues is a core learning goal of this class. Guidance on teamwork, reflection, and conflict resolution will be provided throughout the semester and are an essential component of the class. We expect significant efforts in attempting to address the team issues before asking instructors to step in. When you get stuck, we are always available to provide advice on how to navigate these issues.

Most project assignments have a component that is graded for the entire group and a component that is graded individually. By default, group assignments will receive a single grade for all individuals in the group. However, we reserve the right to institute peer grading in problematic situations.

Textbook

Various readings throughout the semester are available online or through the library; we do not have a single textbook but rather assemble readings from different sources.

Grading

Evaluation will be based on the following distribution:

  • 50% Individual homework assignments
  • 30% Team project assignments
  • 20% Class participation
    • 3 free absences for any reason

Homework Points Breakdown (tentative)

Project # Days Given Points % of homework grade % of total grade
HW1 7 100 9% 4.5%
HW2 5 100 9% 4.5%
HW3 7 100 9% 4.5%
HW4 7 100 9% 4.5%
HW5 5 100 9% 4.5%
HW6 14 200 18% 9%
HW7 14 200 18% 9%
HW8 9 200 18% 9%
TOTAL 1100 100% 50%

Project Points Breakdown (tentative)

Project # Days Given Points % of project grade % of total grade
P0 7 0 0% 0%
P1 12 84 10% 3%
P2 3 42 5% 2%
P3 14 168 20% 6%
P4 21 168 20% 6%
P5 12 168 20% 6%
P6 17 140 17% 5%
P7 2 70 8% 3%
TOTAL 840 100% 30%

After an assignment is graded, the grades are released to you and accessible on Canvas and Gradescope. For the next 7 days, you may submit a regrade request via Gradescope if you feel that your assignment was incorrectly graded. This is not a mechanism for forgetting to do some part of the assignment and submitting corrected information after the submission deadline. Beyond one week, you may no longer request a regrade or correction to the grading of an assignment.

Late Work and Absence Policy

Late Work

Late homework assignments will incur a 10% penalty for on the first day overdue, 20% on the second day, 50% on the third day, and no credit beyond that. We make exceptions in extraordinary circumstances, typically involving either a family or medical emergency (ideally, your academic advisor or the Dean of Student Affairs should request such exceptions on your behalf). We can make accommodations for travel (e.g., for interviews) so long as you request it in advance.

There are no late days for project assignments. We expect that you anticipate unexpected events in your team's planning procedures, and coordinate with your teammates when they arise. Always communicate with your team about such issues.

Participation

Class attendance and participation are important parts of the learning in this course. To account for this, a portion of the final grade is based on your regular attendance and active participation (see Grading section).

Class participation points are measured by meaningful participation in lecture activities. Pointwise, you may miss 3 classes for any reason (illness, interview, travel, etc) and not be penalized. Once you go over 3 missed classes, further absences will count against your participation points. Absences related to an official CMU activity (e.g. a CMU sports team that needs to travel) will not impact your participation points if you tell us in advance of class. When you know you will miss class, please notify the instructor on Slack (at least 24 hours in advance), so that we can discuss alternative arrangements for catching up on class content and associated work. Absences caused by an emergency (like a car accident or apocalyptic viral infection) will never impact your participation points. Please let us and your academic advisors know if you are ok.

If you find yourself in a situation that calls for an extended absence for other reasons, please have your academic advisor reach out to the instructors, and they will work to find a solution on a case by case basis.

Recording

Classroom activities may be recorded by a student for the personal, educational use of that student or for all students presently enrolled in the class only, and may not be further copied, distributed, published or otherwise used for any other purpose without the express written consent of the instructor. All students are advised that classroom activities may be taped by students for this purpose.

Time Management

This is a 12-unit course, and it is our intention to manage it so that you spend close to 12 hours a week on the course, on average. In general, 3 hours/week will be spent in lectures and 9 hours on readings, assignments, and the team project. There is never enough time to implement everything that you want; it is therefore important that you practice time management, estimation, and task prioritization. We would rather you make well-justified decisions to not do something than spend tens of hours on your homework.

Team projects are done in groups, so please account for the overhead and decreased time flexibility that comes with group work.

Throughout the semester, please feel free to give the course staff feedback on how much time the course is taking for you.

Writing

Describing tradeoffs among decisions and communication with less technically-minded stakeholders are key aspects of this class. Most project assignments have a component that requires discussing issues in written form or reflecting about experiences. To practice writing skills, the Student Academic Success Center (SASC) offers one-on-one help for students, along with workshops. The instructors are also happy to provide additional guidance if requested.

Policy on use of Generative AI for Writing

You may use generative AI technologies such as ChatGPT or CoPilot for assisting in code development or client communications, unless the assignment specifically prohibits it. However, you are liable for factually inaccurate answers or unspecific rambling produced by AI tools; it is your responsibility to edit AI-produced content before submitting it for class purposes.

Academic Honesty and Collaboration

The University Policy on Academic Integrity applies. Team project assignments will be done in groups. Our expectations regarding academic honesty and collaboration for group work are the same as for individual work, elevated to the level of "group." Group members will collaborate with one another, but groups should work independently from one another, not exchanging code with other groups. Within groups, we expect that you are honest about your contribution to the group's work. This implies not taking credit for others' work and not covering for team members that have not contributed to the team.

The course also includes individual assignments and individual components of group assignments. Although your solutions for individual parts may be based on the content produced for the group component (e.g., written reflections), we expect you to complete individual components independently of your groupmates.

Collaboration Policy

Regarding solutions from other students in the course, we reuse the Collaboration Policy from 15-214, with minor modifications:

"You may not copy any part of a solution to a problem that was written by another student, or was developed together with another student. You may not look at another student's solution, even if you have completed your own, nor may you knowingly give your solution to another student or leave your solution where another student can see it. Here are some examples of behavior that are inappropriate:

  • Copying or retyping, or referring to, files or parts of files (such as source code, written text, or unit tests) from another student (whether in final or draft form, regardless of the permissions set on the associated files) while producing your own. This is true even if your version includes minor modifications such as style or variable name changes or minor logic modifications.
  • Getting help that you do not fully understand, and from someone whom you do not acknowledge on your solution, even if that someone is an AI.
  • Writing, using, or submitting a program that attempts to alter, influence, or erase grading information or otherwise compromise security of course resources.
  • Lying to course staff.
  • Giving copies of work to others, or allowing someone else to copy or refer to your code or written assignment to produce their own, either in draft or final form. This includes making your work publicly available in a way that other students (current or future) can access your solutions, even if others' access is accidental or incidental to your goals. Beware the privacy settings on your open source accounts!
  • Coaching others step-by-step without them understanding your help.

Citing Others' Work

If any of your work contains a statement that was was copied verbatim from an external source, you must put it in quotes and cite the source. If you are paraphrasing an idea you read elsewhere, you must acknowledge the source. If you are using a tool to help format or structure text significantly based on content and facts that you provided, you must acknowledge the use of such tools (see policy on generative AI tools above). Using existing material without proper citation is plagiarism, a form of cheating. If there is any question about whether the material is permitted, you must get permission in advance.

It is not considered cheating to clarify vague points in the assignments, lectures, lecture notes; to give help or receive help in using the computer systems, compilers, debuggers, profilers, or other facilities; or to discuss ideas at a high level, without referring to or producing code.

Acceptable Use of Material from the Internet

Regarding the internet, StackOverflow, and similar sources: in real-world development, engineers often generate code via AI or adapt code from Q&A sites, open source repositories, or similar sources to new ends. This is acceptable in this course, with two caveats:

  • You may not copy a solution for our homework assignments specifically from another student or group, even if, for some reason, that code is available openly on GitHub or elsewhere (see below on the importance of keeping your homework code).
  • If you generated any part of your homework or project assignment answer with AI, you must turn in the complete set of transcripts/logs of your interactions with it. Many of the popular GenAI tools like ChatGPT have an easy way to produce a URL to your chatlog. If we can't read the chatlog when we grade AI-generated homework answers, you will receive a 0.

Consequences for Violations

Any violation of this policy is cheating. The minimum penalty for cheating (including plagiarism) will be a zero grade for the whole assignment. Cheating incidents will also be reported through University channels, with possible additional disciplinary action (see the above-linked University Policy on Academic Integrity).

If you have any question about how this policy applies in a particular situation, ask the instructors for clarification.

Note that the instructors respect honesty in these (and indeed most!) situations.

Diversity Statement

Your classmates are your colleagues. This is particularly true in this course, where we aim to provide you with principles, practices, tools, and paradigms that will enable you to be an effective, real-world accessibility researcher. We ask that you treat one another like the professionals you are and that you are preparing to be.

We are diverse in many ways, and this diversity is fundamental to building and maintaining an equitable and inclusive campus community. Diversity can refer to multiple ways that we identify ourselves, including but not limited to race, color, national origin, language, sex, disability, age, sexual orientation, gender identity, religion, creed, ancestry, belief, veteran status, or genetic information. Each of these diverse identities, along with many others not mentioned here, shape the perspectives our students, faculty, and staff bring to our campus. We, at CMU, will work to promote diversity, equity and inclusion not only because diversity fuels excellence and innovation, but because we want to pursue justice. We acknowledge our imperfections while we also fully commit to the work, inside and outside of our classrooms, of building and sustaining a campus community that increasingly embraces these core values.

Each of us is responsible for creating a safer, more inclusive environment.

Unfortunately, incidents of bias or discrimination do occur, whether intentional or unintentional. They contribute to creating an unwelcoming environment for individuals and groups at the university. Therefore, the university encourages anyone who experiences or observes unfair or hostile treatment on the basis of identity to speak out for justice and support, within the moment of the incident or after the incident has passed. Anyone can share these experiences using the following resources:

All reports will be documented and deliberated to determine if there should be any following actions. Regardless of incident type, the university will use all shared experiences to transform our campus climate to be more equitable and just.

Accommodations for Students with Disabilities

If you have a disability and require accommodations but do not already have them approved by the Office of Disability Resources, please apply for accommodations through the Application section of the Disability Resources Online Portal. If you already have accommodations approved with Disability Resources, please use the Accommodations Management section of the Disability Resources Online Portal to notify me about your accommodations, and discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate.

A Note on Self Care

The world today is a polarizing place. We are all under a lot of stress and uncertainty. We encourage you to find ways to move regularly, eat well, and reach out to your support system or the instructors if you need to. We can all benefit from support in times of stress, and this semester is no exception.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:

  • CaPS: 412-268-2922
  • Re:solve Crisis Network: 888-796-8226
  • If the situation is life threatening, call the police
    • On campus: CMU Police: 412-268-2323
    • Off campus: 911

Food Insecurity

If you are worried about affording food or feeling insecure about food, there are resources on campus that can help. Any undergraduate or graduate student can visit the CMU Pantry and receive food for free. Follow the directions on the CMU Pantry website to schedule your visit.