Skip to main content Link Search Menu Expand Document (external link)

About

Table of contents

  1. TOC

Discussion

We will be using Piazza for discussion; we will enroll students from the waiting list as well.

Schedule

Class will be MWF 11:00 - 11:50 in Center Hall 105.

A podcast of the class will be available in case students are sick or have unavoidable travel commitments on a small number of class days.

Students will present their projects in the final exam slot, which will be Monday, March 16 11:30 AM - 2:29 PM.

Staff meetings

Your team will meet with an assigned member of the course staff several times:

  • Week 4 (to discuss your vision)
  • Week 5 (to discuss your design)
  • Week 7 (to discuss the outcome of Sprint 1)

Grading

  • 55% of your grade will be determined by your individual work, including your contributions to your team and your skills assessments. Your contributions will be assessed at the end of the quarter in two categories:
    • Technical contributions: to what extent has your technical work (writing code, designing software, writing documentation, writing tests, maintaining CI/CD systems) helped your team deliver great software?
    • Non-technical contributions: to what extent have you been a collaborative and effective team member? Have you delivered what you promised in a timely fashion, and communicated as needed when you were running late? Have you been an independent contributor (making decisions about your own tasks on your own), or even led others in design or implementation choices?

    You will also need to complete three skills checks during the quarter. You may choose three of the following skills to demonstrate (each is worth 10% of your total grade):

    • Architecture and design: document your design using diagrams, justifying key design decisions.
    • Implementation: show that you write high-quality code that implements a significant feature.
    • Testing: show that you have developed a thorough test suite for a feature
    • Code review: show that you have given high-quality feedback to a peer on a substantive pull request
    • Usability study: recruit a participant in a user study of your software system.
  • 25% of your grade will be determined by your team project. Part will be determined by team-level signals of quality and progress, which will be assessed in weekly meetings with TAs and with team deliverables.

  • 20% of your grade will be determined by exams, which will consist of two in-class exams. Each will be worth 10% of your grade, and each will cover roughly half of the material.

If you submit individual work late, we will not directly penalize your grade. However, we only commit to promptly grading and returning work that is submitted on time. Other work will be graded (and awarded credit) as resources allow. Reading assignments cannot be accepted late (because you need to come prepared to each class). This policy applies to your skills checks, but be cautious taking advantage of it because of the high value of each one and the substantial grading time required for each.

Your grade in this class will be no higher than the lower of (in-class activities grade + 15%) and (your grade on all other class components). To maximize your grade, you should complete at least 85% of the in-class activities. Missing up to 15% of the in-class activities will not impact your grade at all (please do not request exceptions for illness, etc.; that’s what this 15% is for). If you do not complete at least 65% of the activities, then you will not pass the course (80% is the lowest passing grade for graduate students).

Letter grades will be given according to the following scale:

  • A: grade >= 90%
  • B: 80% <= grade < 90%
  • C: 70% <= grade < 80%
  • D: 60% <= grade < 70%
  • F: grade < 60%

The instructor has discretion to assign + and - grades within those ranges and to decrease the thresholds for grades if the overall grades are lower than expected. This discretion may be used to award small amounts of credit for exceptional contributions to in-class discussion.

Individual assignments (total: 55%)

ComponentWeight
Vision (individual)2%
Reading responses4%
Skills assessments (choose three)30%
Project reflection5%
Your contribution to team success14%

Oral exam

Of the three skills checks, we will select one to assess orally. We will inform you which one, and you will have one week to schedule a meeting to discuss your skills check. We will accommodate you if you have special circumstances, such as travel, during that week. To manage our workload, we may spread these throughout the quarter.

Reading responses

This course will require a significant amount of reading, particularly early in the quarter. After doing each reading, you will complete a reading response that will (a) show the course staff that you completed the reading; (b) help you think more deeply about the content. You MAY NOT use AI-based tools, such as ChatGPT, in writing or revising your responses. We have, in the past, successfully identified (in a manner that was convincing to the Academic Integrity Office) violations of this policy.

The reading response for “The Soul of a New Machine” is special because unlike the other readings, this is a whole book. The book is old enough that it is easy to find used copies, and a new copy is under $12 at Amazon as of January 2026 ($7 for the Kindle version). You should start reading early; unlike the other readings, you will not be able to read this in two days between class meetings. Although we will not require a book report per se, there will be an in-class discussion on the book and the major themes may appear on the final exam.

Team assignments (total: 25%)

ComponentWeight
Vision document5%
Design mockup5%
Sprint 1 quality5%
Sprint 2 quality9%
Project demo1%

On project grading

Note that there is NO grade component that assesses how many features are present in your final project! Our aim is to encourage steady progress that uses good software engineering practices, and NOT to encourage a last-minute sprint to the finish.

Exam (total: 20%)

Exams will be given in class. They will consist mostly of short-answer questions, with a few multiple-choice questions and longer responses mixed in. They will cover the principles discussed in class. They will not cover any specific technology or programming languages, but we will assume that you know Java. The second exam may cover material that was presented prior to the first exam, but will emphasize material from the second half of the quarter.

Comprehensive exam

To pass the comprehensive exam for the course, you must obtain grades of at least B- in ALL of the following categories:

  • Average exam grade (across both exams)
  • Individual contribution to team success
  • All three skills checks

Pass/fail

If you take this class pass/fail, we will grade your work as usual. At the end of the course, we will map final grades of B- and above to “pass” and grades lower than B- to “fail.”

Academic Integrity

Teamwork and collaboration are critical to success in software engineering. In individual homework assignments, I ask students to follow a whiteboard policy: you may discuss the homework assignments with anyone you like in front of a whiteboard. However, after you are done, erase the whiteboard, and each student should write their own submissions. You must write the names of those you collaborated with in your submissions.

In team projects, all forms of collaboration are permitted within teams. Work between teams should follow the whiteboard policy above. Teams may not use each other’s code or other artifacts.

When writing software, you may make use of resources to which you have legitimate access. For example, you may leverage open source projects or GitHub Copilot. However, it is your responsibility to vet these tools to ensure the quality of the software you are delivering. Importantly, you must adhere to any licensing restrictions for any software you use. For example, if you use GPLv3 code in your project but do not give your code a compatible license, you are stealing someone’s work and may be subject to an academic integrity violation report. Licensing should be one of the earliest discussions you have with your team. If this policy seems harsh, keep in mind that licensing mistakes can lead to very expensive lawsuits.

The default license for a software project is that no one else can use artifacts from that project. If you use code from a project that does not have a license, or you use code without appropriate attribution, you are in violation of a software license’s terms and therefore violating this course’s academic integrity policy.

We recognize that you are not lawyers (neither are we!). Therefore, we will exercise reasonable judgment provided any problems are corrected immediately (typically by adding attribution or by removing the copied artifacts from your repositories). We reserve the right to report academic integrity violations for egregious cases (e.g. use of another team’s code or repeated violations).

Students hold copyright to their own work; see Supplement I, section C.

Resources

  • Dan Pilone and Russ Miles. Head First Software Development, O’Reilly Media, Inc. 2007. Available free for UCSD students: UCSD library.

  • Eric Freeman and Elisabeth Robson. Head First Design Patterns, 2nd Edition. O’Reilly Media, Inc. 2020. Available free for UCSD students: UCSD library

  • Additional optional reading: Michael A. Cusumano and Richard W. Shelby. Microsoft Secrets: How the World’s Most Powerful Software Company Creates Technology, Shapes Markets and Manages People. 1998.

Reading assignments

On days when a reading is assigned, a reading reflection may also be due. This is an opportunity for you to think more deeply about the reading material and how its lessons might impact your software engineering practice.