Skip to content

Syllabus

This course studies the engineering of software delivery and production operations. Students will learn how modern teams build delivery systems that are reproducible, observable, secure, resilient, and continuously improvable.

Communication

The primary form of communication within this course is through Slack. We will make announcements through a dedicated channel in Slack. As such, we highly recommend that students install Slack on their phone and laptop and enable notifications.

The course staff will also hold office hour by appointment to provide support with course materials and projects.

You can contact the course instructors and TAs via both Slack and email.

Assessment

The final grade for the course will be based on the following distribution: 50% assignments, 30% midterms (15% each), 10% labs, and 10% in-class participation.

Assignments

You will work on a long-running project through a series of assignments across the semester. Most assignments are either one-week long or else are comprised of multiple checkpoints. These assignments are intended to complement and integrate the material we cover in class. All assignments are submitted via Canvas and GitHub.

Midterms

  • There are two midterms during the course.
  • The midterms are completed on paper during the normal class period as per the posted schedule.
  • The second midterm is not comprehensive, and only covers material after the first midterm.

Students who require accommodations due to a documented disability should reach out to us. The exam will be proctored by the Office of Disability Resources.

Labs

  • Labs are designed to give focused, hands-on practice with tools and operational capabilities that are later required in your assignments.
  • Lab assigments should take approximately 1 to 2 hours of work.
  • Each lab has a set of clear deliverables, each of which is graded pass/fail by an autograder.
  • Submit the URL of the requested final commit through Canvas.
  • Collaboration with other students is allowed and encouraged.

Regrades

Regrade requests can be submitted via Canvas. The regrade period is open for one week after grades have been released for a particular assignment.

Late Work and Absence Policy

Missed Participation

Participation points in this class are earned by completing in-class activities. To accommodate for life's uncertainties (e.g., health issues, scheduling conflicts), we will ignore up to four absences when determining your final grade. You do not need to email instructors individually for one-off absences of this sort.

There will be no make-ups for participation points, but you are strongly encouraged to reach out to the course staff to learn or review the materials that you may have missed.

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

Late Assignments

Each graded assignment or checkpoint lists two times:

  • Due: the time when late-day use or a late penalty begins.
  • Last accepted: the time when Canvas closes and we stop accepting work.

All students receive four penalty-free late days to use across graded assignments and checkpoints. Each started 24-hour period after the applicable due time uses one late day; late days cannot be divided. You do not need to notify the instructors before using one. We apply late days automatically from the Canvas submission timestamp.

After you use all four penalty-free late days, a submission loses 10% of that assignment or checkpoint's points for each additional started 24-hour period. We grade the latest Canvas submission made by the last-accepted time and ignore later repository changes.

Unless an assignment states otherwise, its last-accepted time is 96 hours after its original due time. For a multi-checkpoint assignment, submitting a checkpoint late moves your remaining due times and associated course activities by the same number of charged late days so that you retain the intended work intervals. Staff will record those adjusted due times in Canvas, but the listed last-accepted times do not move.

Some assignments depend on fixed operational windows, shared course activities, or staff-provided artifacts. Any deadline that does not use the ordinary rule, or that limits the number of usable late days, is identified in that assignment. An approved accommodation, course-authorized extension, or replacement window for a course infrastructure failure overrides these rules and does not consume penalty-free late days.

For other extraordinary circumstances, almost always involving a family or medical emergency, ask your academic advisor or the Dean of Student Affairs to contact the instructors on your behalf.

Time Management

As a 12-unit course, you should spend approximately 12 hours per week, on average, on course-related activities. In a typical week, 3 hours will be spent on lectures, 1–2 hours on labs, and 7 hours on assignments. Please let the course staff know if your time spent on course activities differs significantly from our intentions.

Devices in Lecture

Research shows that using devices on non-class related activities harms both the device user's learning, and other students' learning as well. Therefore, in general, we do not allow the use of devices during lecture. If you genuinely use your laptop for class-related activities (e.g., note-taking), tell us, and we will make an exception. However, we ask that if you do so, you are careful to keep your devices in note-taking mode (and don’t stray to Facebook, homework, etc). In addition, you will be required to sit in the back row of the lecture to minimize the impact your screen has on others.

Policy on use of Generative AI

We recognize that generative AI tools (e.g., ChatGPT, GitHub Copilot, Claude) are becoming standard in the software engineering industry. Generally, you are welcome to use these tools in this course, much like you would use a search engine, Stack Overflow, or documentation. Using AI to brainstorm ideas, debug code, or suggest implementations is acceptable, provided that you take full ownership of the final output. This policy mirrors the real world: while tools can accelerate your work, you are ultimately responsible for the correctness, security, and quality of what you deliver.

However, there are important rules regarding their use:

  1. Ownership and Understanding: You must understand every line of code and every sentence of text you submit. If we ask you to explain a piece of code or a design decision during class or office hours, "Copilot wrote it" is not a valid answer. Blindly pasting code you do not understand is dangerous and unprofessional.

  2. Report Writing: Your written reflections, design documents, and post-mortems must be your own original work. While you may use AI to help with formatting, structuring, or polishing your prose, the core ideas and the writing itself should be yours. Do not use AI to generate the substance of your reports.

  3. Disclosure: You must be transparent about your use of AI. In your assignment writeups or READMEs, you should include a section describing how you used AI tools. For example: "We used ChatGPT to brainstorm potential failure scenarios for the risk analysis and Copilot to help write the boilerplate for our test suite." We want to know how these tools fit into your workflow.

In summary: Use AI as a force multiplier, not a replacement for your own critical thinking.

Collaboration Policy

The usual policies apply, especially the University Policy on Academic Integrity. 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, or was copied from another unauthorized source such as the Internet. 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 person or source (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.
  • Writing, using, or submitting a program that attempts to alter 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.

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. We will be using automated systems to detect software plagiarism.

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 very high level, without referring to or producing code.

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 or TAs for clarification.

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

Accommodations

If you have a disability with an accommodations letter from the Disability Resources office, we encourage you to discuss your accommodations and needs with us as early in the semester as possible. Please come and talk to us and do not rely on automated emails from the Disability Resources office. We will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, we encourage you to contact them at 412-268-6121 or access@andrew.cmu.edu.

A Note on Self Care

Please take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress. All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.

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 at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.