Policies
Lectures and studios are held in person. The course uses Gradescope for assignment submission and regrade requests, Canvas for grades, announcements, and supplementary documents, and Piazza for questions. The schedule and course materials are posted here on the course website.
Communication¶
The primary form of communication within this course is through Canvas. If you have a question, post it on Piazza or email us.
Office hours are held by appointment. Email either instructor to arrange a time to meet (in person or over Zoom).
Course Modality¶
Students in the in-person section are expected to be present in the classroom during lectures. Students in the distance section may watch either the live stream or the recordings.
We do not make the recordings or live stream available to students in the in-person section. Lectures are highly interactive, and taking part in the in-class activities and discussion is a core part of the course. For students in the distance section, we provide this interaction through an additional weekly live session.
We record lectures but not studios. Students in the in-person section with an excused absence from a lecture may request the recording link from the instructors.
Assessment¶
Final course grades are based on participation (20%), an in-person final exam (30%), three individual assignments (30%), and a group project (20%). See the Grading page for details.
Regrades¶
Regrade requests can be submitted via Gradescope. The regrade period is open for one week after grades have been released for a particular assignment.
Late Work and Absence Policy¶
Late Assignments¶
Across the course, each student is given 3 late-day waivers. Consuming one waiver extends a deadline by 24 hours. There are no fractional waivers, and waivers are applied automatically. Late days cannot be used for the group project. A late G1 or G2 scores zero.
Once a student has exhausted their waivers, a 10%-per-day penalty is applied to the submission.
Exceptions to this policy are made only in extraordinary circumstances, almost always involving a family or medical emergency, with your academic advisor or the Dean of Student Affairs requesting the exception on your behalf.
Missed Participation¶
Participation points are earned by attending lectures and studios (see Grading). If you have an excused absence, contact the instructors. For lectures, the recording link is available upon request per the modality policy above.
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.
Time Management¶
As this is a 6-unit mini course, you should spend approximately 12 hours per week (on average) on course-related activities. In a typical week, about 3 hours are spent in lectures and studios and the remainder on assignments and preparation. Please feel free to give the course staff feedback on how much time the course is taking for you.
Devices¶
Studios are worked on paper unless a session says otherwise. Some studios (the first in particular) require a laptop with an AI coding tool, and we will announce this in advance.
In lectures, research shows that using devices on non-class-related activities harms both the device user's learning and that of the students around them. In general, we do not allow the use of devices during lectures. If you use a laptop for class-related activities such as note-taking, tell us and we will make an exception. We ask that you keep the device in note-taking mode (and do not stray to email, other homework, and so on). We also ask that you sit in the back row of the lecture so that your screen does not distract the students behind you.
Policy on Use of Generative AI¶
This course assumes you will use AI, and much of it is about doing so well. The rules follow from one principle: you own the design, even when AI writes the code.
-
Implementation: You are encouraged to use AI agents to implement your designs in assignments. Steering the agent, noticing where it deviates from your design, and judging what it built are skills this course teaches and grades.
-
Logs: You must share your AI chat or agent logs as part of each assignment submission. What the AI decided on your behalf is part of what the assignments ask you to analyze. See exporting your agent transcripts for the mechanics. We do not care about your mannerisms when interacting with AI (you can swear at it, or thank it profusely, or anything in between). We care about your engineering judgment as you work.
-
Reflections: Written reflections must be your own work, written without AI. They are framed as questions you should be able to answer aloud about your own system, as you would in a technical interview.
-
Ownership and understanding: You must understand every design decision in what you submit. If we ask you to explain a piece of code or a design decision in class or office hours, "the agent wrote it" is not a valid answer.
Grading focuses on your design reasoning and reflection rather than the implementation, and the final exam assesses the same skills in person and on paper. If you rely on AI to do your thinking during the course, you will be unprepared for the exam.
Exporting Your Agent Transcripts¶
Assignment submissions include your transcripts in a dedicated transcripts/ directory.
An assignment will usually span several working sessions, and spreading the work out is good practice.
Submit a transcript for every session that touched the assignment, one file per session, exported in full rather than as screenshots or excerpts.
Any readable format is fine (Markdown, JSONL, PDF).
A submission without its transcripts is incomplete. We grade it once the transcripts arrive, and the late policy applies until then. The transcripts themselves are not graded; see the AI policy for what we do care about.
On the group project, transcripts are individual.
Each member includes their own sessions in a subdirectory of transcripts/ named after them.
Missing transcripts make the submission incomplete for that member alone; teammates' grades are unaffected.
Export at the end of each working session, starting with the first studio. Some tools keep no durable history, and a transcript you did not save may not be recoverable by the time you assemble your submission.
How to export from common tools:
| Tool | How to export |
|---|---|
| Claude Code | In the terminal, run /export and save to a file (the command is not available in the IDE extension). Full session logs for every session are also stored as JSONL under ~/.claude/projects/. |
| Codex CLI | Sessions are stored as JSONL under ~/.codex/sessions/. Copy the session files. |
| Cursor | Use the export option in the chat panel menu. If your version lacks one, copy the conversation into a file. |
| Copilot in VS Code | Open the Command Palette and run "Chat: Export Chat" to write the session to a file. |
| aider | The full history is saved automatically to .aider.chat.history.md in your repository. |
These tools change quickly. If you notice this table has gone stale, let us know and we will update it.
If your tool is not listed, make sure it can export a transcript before you commit to it. A tool that cannot produce a transcript is not allowed for graded work in this course.
Professionalism¶
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 Software Engineer. We ask that you treat one another like the professionals you are and that you are preparing to be.
To that end, we will not tolerate harassment in this class. We define harassment as unwelcome or hostile behavior of an ad hominem nature, i.e., that focuses not on ideas but on people and identity. This includes offensive verbal or written comments in reference to gender, sexual orientation, national origin, disability, physical appearance, race, or religion; sexual images in public spaces; deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of class meetings, inappropriate physical contact, and unwelcome sexual attention.
Harassment is against the law and we have no tolerance for it, and neither does the university. Even when behavior does not rise to the level of harassment (even if you think you're "just joking!"), it can still make people very uncomfortable, and harm their educational and professional career by forcing them to devote mental energy to something other than the material they are trying to learn or the professional successes they are trying to achieve. However, we expect that we do not need to threaten you to earn your respect on this matter: we simply ask that you treat one another like professionals, in the most positive sense.
This has two implications:
- If you feel someone is violating these principles (for example, with a joke that could be interpreted as sexist, racist, or exclusionary), and you feel you have the standing to do so, speak up! Do not be a bystander to unprofessional behavior.
- If you do not feel comfortable doing so, and/or if the behavior persists, send a private email to the course instructors or set up a meeting with us to discuss the matter. We will preserve your anonymity. We, the course staff, are committed to affording you the same respect we ask you to afford one another. If you feel that we are not doing so, we hope you will feel comfortable either telling us so directly, or approaching another one of the course staff with your concerns.
(Thank you to Shriram Krishnamurthi and Evan Peck for sharing their own policies, from which we drew inspiration for this one.)
Academic Honesty and Collaboration¶
The usual policies apply, especially the University Policy on Academic Integrity. Individual assignments are completed individually; the group project is completed in teams. We expect that group members collaborate with one another, but that groups work independently from one another, not exchanging results 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.
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 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. 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.
Note that the AI policy above is part of this policy: AI use within its rules is authorized, and AI use that violates them (for example, generating a reflection) is an academic integrity violation.
It is not considered cheating to clarify vague points in the assignments, lectures, or 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 for clarification.
Accommodations¶
If you wish to request an accommodation due to a documented disability, please contact Disability Resources 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.