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

About

Table of contents

  1. Discussion
  2. Schedule
  3. Grading
    1. Individual assignments (total: 40%)
    2. Team assignments (total: 40%)
    3. Final exam (total: 20%)
  4. Comprehensive exam
  5. Pass/fail
  6. Academic Integrity
  7. Resources
  8. Reading assignments

Discussion

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

Schedule

Class will be MWF 10:00 - 10:50. Class meets at 10 AM MWF in Center Hall 113.

Discussion and participation in exercises is an instrumental part of the class. To promote free discussion (since students may want to discuss experiences they had at internships, etc.) as well as active attendance, class will not be recorded. You may not use recording devices to record class unless you have an OSD-approved disability accomodation (in which case any recordings are for personal use only).

If you are sick, please do not come to class. Instead, if you are feeling up to it, contact me and I can give you a Zoom link to use that day. No need for a doctor’s note; we’re all adults here.

We will have a final exam on Friday, March 22 8 AM - 11 AM.

Grading

  • 40% of your grade will be determined by your individual work on homework assignments and reading responses.

  • 40% of your grade will be determined by your team project. Of this 40%, part will be determined by team-level signals of quality, which will be assessed in weekly meetings with TAs and with team deliverables. The remaining part will depend on our assessment of your individual contributions to your group. For this portion, we will not assess the technical merits of each project and assign the same grade to each contributing member. Instead, you will report weekly both on your own contributions as well as your teammates’ contributions. Your contribution will be assessed in the following 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?
    • Teamwork: 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?
    • Independence: to what extent have you provided direction to your group or exercised individual discretion? This category could also be called leadership, but this is not a competition to be the group “leader.” Instead, our focus is on your ability to think critically about the team’s needs and propose directions – either techical or otherwise.
  • 20% of your grade will be determined by your final exam.

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.

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: 40%)

ComponentWeight
Team matching survey0%
Reading response: Soul of a New Machine6%
Reading response: agile2%
Reading response: scrum2%
Requirements elicitation1%
Team contribution reports (x7)7% total. We will forgive one missed report.
HCI (heuristic evaluation)5%
Software architecture7%
Project reflection5%
Rust programming assignment, pt. 13%
Rust programming assignment, pt. 22%

Team assignments (total: 40%)

ComponentWeight
Project vision5%
Design mockup and requirements document5%
Project demo2%
Ongoing quality: testing, continuous integration2%
Ongoing quality: documentation2%
Ongoing quality: evidence of appropriate process2%
Your contribution to team success22%

Final exam (total: 20%)

We will have a final exam in the assigned final exam slot (March 22, 8-11 AM).

Comprehensive exam

To pass the comprehensive exam for the course, you must earn a final exam grade of B- and an individual contribution to team success grade of B-.

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 resopnsibility 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 GPLv3 license, you are stealing someone’s work and may be subject to an academic integrity violation report. Note that for this reason, GPL code can typically not be used in commercial projects, and you may want to choose a more permissive license. 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, 2007. Available free online through the 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 will 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.